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.
93 lines
2.0 KiB
C++
93 lines
2.0 KiB
C++
#pragma once
|
|
|
|
#include "MLMicroStructureExport.h"
|
|
#include "MLPlineList.h"
|
|
|
|
class GMLDimsIter;
|
|
class MLPline;
|
|
class MLMICROSTRUCTURE_EXPORT MLMicroStructure
|
|
{
|
|
public:
|
|
MLMicroStructure();
|
|
|
|
public:
|
|
|
|
// 过滤最小面积
|
|
double m_minArea; // 曲线最小面积
|
|
int m_limitNum; // 曲线最小节点数
|
|
|
|
// 删除断层内部
|
|
bool m_bFaultFilter; // 删除断层内部曲线
|
|
double m_faultCloseDis;// 断层最小闭距离
|
|
|
|
// 闭合圈闭
|
|
bool m_bCloseShape; // 是否生成闭合
|
|
double m_closeDis; // 曲线闭合距离
|
|
|
|
// 断层圈闭
|
|
bool m_bFaultShape; // 是否生成断鼻和断槽
|
|
double m_extendDis; // 曲线延长距离
|
|
|
|
// 鼻状圈闭
|
|
bool m_bNoseShape; // 是否生成鼻状和沟槽
|
|
double m_offsetDis; // 曲线偏移距离
|
|
double m_minAngle; // 最小角度
|
|
double m_redundant; // 曲线冗余系数
|
|
double m_radius; // 最小半径
|
|
bool m_smooth; // 光滑半径
|
|
double m_zoomin; // 放大系数
|
|
double m_unitSacle; // 鼻状隆起和沟槽重合比
|
|
bool m_bOutCircle = false; // 是否输出圆圈
|
|
double m_dRadiusScale = 10.0; // 半径比
|
|
// 过滤深度范围之外的圈闭
|
|
double m_minDepth; // 最小幅度
|
|
double m_maxDepth; // 最大幅度
|
|
|
|
public:
|
|
// 设置等值线数据
|
|
void setContourList(const MLPlineList& contourList);
|
|
|
|
// 设置断层值数据
|
|
void setFaultList(const MLPlineList& faultList);
|
|
|
|
// 设置网格信息
|
|
//double xyRange[4]; /* Min/max x and y coordinates */
|
|
//int nxny[2]; /* nx nyNumber of columns Number of rows*/;
|
|
//double inc[2]; /* x and y increment */
|
|
//double zRange[2]; /* Minimum z value Maximum z value */
|
|
void setGridInfo(double* xyRange, int* nxny, double* inc, double*zRange);
|
|
|
|
// 设置Z值数据
|
|
// num = nx*ny
|
|
// data = z array
|
|
void setZData(long num, float* data);
|
|
|
|
// 运行
|
|
bool run();
|
|
|
|
// 清空内存
|
|
void clearMemory();
|
|
|
|
// 读dfg 网格
|
|
int readDfgBinary(const char* file);
|
|
|
|
// 闭合圈闭
|
|
MLPlineList m_closeObjPosiAry;
|
|
MLPlineList m_closeObjNegaAry;
|
|
|
|
// 断层圈闭
|
|
MLPlineList m_faultObjPosiAry;
|
|
MLPlineList m_faultObjNegaAry;
|
|
|
|
// 鼻状圈闭
|
|
MLPlineList m_noseObjPosiAry;
|
|
MLPlineList m_noseObjNegaAry;
|
|
|
|
private:
|
|
MLPlineList m_contourList;
|
|
MLPlineList m_faultList;
|
|
GMLDimsIter* m_dimsIter;
|
|
|
|
|
|
};
|