|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include <float.h>
|
|
|
|
|
|
#include <math.h>
|
|
|
|
|
|
#include "CommonDefines.h"
|
|
|
|
|
|
|
|
|
|
|
|
class CScatteredTrace;
|
|
|
|
|
|
class CGDFObjectLine;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SCATTEREDPOINTINDEX
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
SCATTEREDPOINTINDEX(){m_iPointIndex=-1;m_dPointIndex=FLT_MAX;};
|
|
|
|
|
|
int m_iPointIndex;//<2F>õ<EFBFBD><C3B5><EFBFBD>CScatteredTrace<63>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
double m_dPointIndex;//<2F>õ<EFBFBD><C3B5>ڱ߽<DAB1><DFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>,ֻ<>Ա߽<D4B1><DFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CScatteredEdge
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CScatteredEdge();
|
|
|
|
|
|
|
|
|
|
|
|
int m_iTriangleIndex;//<2F>ڽӵ<DABD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BYTE m_byteBorderIndex;//<2F>ڽӵ<DABD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>αߺ<CEB1>0,1,2
|
|
|
|
|
|
|
|
|
|
|
|
CGDFObjectLine* m_pObject;
|
|
|
|
|
|
|
|
|
|
|
|
double m_dCutPosition;
|
|
|
|
|
|
CPoint2D m_CutPoint;//<2F>ñ߶<C3B1>Ӧ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
SCATTEREDPOINTINDEX m_PointIndex0;
|
|
|
|
|
|
SCATTEREDPOINTINDEX m_PointIndex1;
|
|
|
|
|
|
|
|
|
|
|
|
BYTE m_byteType;//<2F><>ContourTracer<65><72> 0--<2D><><EFBFBD><EFBFBD> 1--<2D><><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD>б<EFBFBD><D0B1>
|
|
|
|
|
|
|
|
|
|
|
|
BYTE m_byteFlag;
|
|
|
|
|
|
|
|
|
|
|
|
void ClearFlag();
|
|
|
|
|
|
|
|
|
|
|
|
BYTE GetFlag();
|
|
|
|
|
|
void SetFlag(BYTE byteFlag);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL IsValid();
|
|
|
|
|
|
|
|
|
|
|
|
BOOL IsBorderBorder();
|
|
|
|
|
|
|
|
|
|
|
|
int GetPointIndex(BYTE byteIndex);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CScatteredTriangle
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CScatteredTriangle();
|
|
|
|
|
|
|
|
|
|
|
|
double m_dValue[3];
|
|
|
|
|
|
CScatteredEdge m_Border[3];
|
|
|
|
|
|
|
|
|
|
|
|
BYTE m_byteFlag;
|
|
|
|
|
|
|
|
|
|
|
|
CScatteredEdge* GetBorder(BYTE byteBorderIndex);
|
|
|
|
|
|
|
|
|
|
|
|
void GetPointIndex(int* piPointIndex);
|
|
|
|
|
|
int GetPointIndex(BYTE byteNodeIndex);
|
|
|
|
|
|
void GetBorderPointIndex(BYTE byteBorderIndex,int& iPointIndex0,int& iPointIndex1);
|
|
|
|
|
|
|
|
|
|
|
|
double GetValue(BYTE byteNodeIndex);
|
|
|
|
|
|
void SetValue(BYTE byteNodeIndex,double dValue);
|
|
|
|
|
|
|
|
|
|
|
|
void GetNeighbor(BYTE byteBorderIndex,int& iNeighborTriangleIndex,BYTE& byteNeighborBorderIndex);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL IsBorderBorder(BYTE byteBorderIndex);
|
|
|
|
|
|
void ClearBorderFlag();
|
|
|
|
|
|
|
|
|
|
|
|
void SetBorderFlag(BYTE byteBorderIndex,BYTE byteFlag);
|
|
|
|
|
|
BYTE GetBorderFlag(BYTE byteBorderIndex);
|
|
|
|
|
|
|
|
|
|
|
|
void operator=(CScatteredTriangle& triangle);
|
|
|
|
|
|
};
|
|
|
|
|
|
|