|
|
#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;
|
|
|
|
|
|
|
|
|
};
|
|
|
|