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.

84 lines
1.6 KiB
C

1 month ago
#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);
};