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

68 lines
1.4 KiB
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.
//-----------------------------------------------------------------------------+
// Copyright (C), 1998-2007, SH Software Co. Ltd.
// = FileName : XTriangle类
// = Version : ver2.0
// = Author : zjq
// = CreateDate : 2002-09-09
// = Description: XTriangle类声明
// = Maintainers:
//
//-----------------------------------------------------------------------------+
#ifndef _XTRIANGLE_H_
#define _XTRIANGLE_H_
#ifndef _XPOINT_H_
#include "XPoint.h"
#endif
#ifndef _X3DFACE_H_
#include "X3DFace.h"
#endif
#define SIDE1_INVISIBLE 0x01
#define SIDE2_INVISIBLE 0x02
#define SIDE3_INVISIBLE 0x04
// 用三角形拼多边形
class GEOAPI XTriangle
{
public:
XTriangle(const XPoint &pt1, const XPoint &pt2, const XPoint &pt3, int nFlag=0);
virtual ~XTriangle();
void Ecs2Wcs(XVector3D vtEcs);
void Wcs2Ecs(XVector3D vtEcs);
void AsFace(X3DFace &face) const;
int IsLinear();
int IsInvisible();
// 1~3-命中1~3点;-1~-3 -命中1~3边;0-外部;4-内部
int HitTest2d(const XPoint &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;
XPoint vertex1, vertex2, vertex3;
};
#endif