Files
envi-code/SourceCode/Code2026/Dimension/GeTriangle.h
T
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

50 lines
947 B
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include "ADSGePoint3d.h"
#include "Ge3DFace.h"
#define SIDE1_INVISIBLE 0x01
#define SIDE2_INVISIBLE 0x02
#define SIDE3_INVISIBLE 0x04
// 用三角形拼多边形
class GeTriangle
{
public:
GeTriangle(const ADSGePoint3d &pt1, const ADSGePoint3d &pt2, const ADSGePoint3d &pt3, int nFlag=0);
virtual ~GeTriangle();
void Ecs2Wcs(TVector3D vtEcs);
void Wcs2Ecs(TVector3D vtEcs);
void AsFace(Ge3DFace &face) const;
int IsLinear();
int IsInvisible();
// 1~3-命中1~3点;-1~-3 -命中1~3边;0-外部;4-内部
int HitTest2d(const ADSGePoint3d &ptTest) const;
enum HitType
{
HIT_SIDE1 = -1, //边1
HIT_SIDE2 = -2, //边2
HIT_SIDE3 = -3, //边3
HIT_OUTSIDE = 0, //外部
HIT_VERTEX1 = 1, //顶点1
HIT_VERTEX2 = 2, //顶点2
HIT_VERTEX3 = 3, //顶点3
HIT_INSIDE = 4 //内部
};
public:
int m_nFlag;
ADSGePoint3d vertex1, vertex2, vertex3;
};