Files
envi-code/SourceCode/Code2026/inc/AdsXRx/XTriangle.h
T
2026-09-28 15:28:50 +08:00

68 lines
1.3 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