You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/SSBase/VoronoiMap/contourfillmap.h

70 lines
1.7 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#ifndef AFX_EXT_CLASS
#define AFX_EXT_CLASS Q_DECL_IMPORT
#endif
#include <vector>
#include <list>
#include "TBase/TObjectList.h"
#include "InterfaceElements.h"
#include "GObjects/Con2Pgn.h"
#include "GObjects/dfdfilereader.h"
/*@class: CContourFillMap
* @desc: 用于生成等值线填充图,及等值线,断层,边界包围区域多边形图
使用方法:
-----、文件方式:
-----、内存方式:
依次调用
1、SetContours(vector<CPolyline*>& vec);
2、SetFlts(vector<CPolyline*>& scrFlts);
3、SetBorder( CPolyline& border);
4、可选//设置等值线延伸长度
void SetExtensivePara(double dext);
4、//生成等值线间多边形存入m_resultLines
int CreatePolygons(void); //
* @date: 2023.5.11
*/
class AFX_EXT_CLASS CContourFillMap
{
public:
CContourFillMap();
~CContourFillMap();
//清空类
void Clear(void);
//文件读取方式
void ReadFiles(const CString& strContour, const CString StrFlt, const CString strBorder);
void SetContours(vector<CPolyline*>& vec);
void SetFlts(vector<CPolyline*>& scrFlts);
void SetBorder( CPolyline& border);
void SetContours(vector<CMyCurve*>& vec);
void SetFlts(vector<CMyCurve*>& scrFlts);
void SetBorder(CMyCurve& border);
//设置等值线延伸长度
void SetExtensivePara(double dext);
//生成等值线间多边形存入m_resultLines
int CreatePolygons(void); //
//输出多边形到文件中 ,decimalPlaces 为最多保留几位小数
void WritePolygons(char* strOutput, int decimalPlaces = 2);
//输出纯多边形到文件中,没有颜色等信息,曲线名为包围线的名字集合,由','分割
void WritePurePolygons(char* strOutput);
//返回结果多边形, 多边形名字为组成它的曲线名字合集,如"1000,1100"
std::vector<CMyCurve*>& GetResultPolygons(void);
protected:
std::vector<CPolyline*> m_resultLines;
};