hrplib
hrpCollision
Opcode
Ice
IceTriangle.h
Go to the documentation of this file.
1
8
11
// Include Guard
12
#ifndef __ICETRIANGLE_H__
13
#define __ICETRIANGLE_H__
14
15
// Forward declarations
16
class
Moment;
17
18
// Partitioning values
19
enum
PartVal
20
{
21
TRI_MINUS_SPACE
= 0,
22
TRI_PLUS_SPACE
= 1,
23
TRI_INTERSECT
= 2,
24
TRI_ON_PLANE
= 3,
25
26
TRI_FORCEDWORD
= 0x7fffffff
27
};
28
29
// A triangle class.
30
class
ICEMATHS_API
Triangle
31
{
32
public
:
34
inline_
Triangle
() {}
36
inline_
Triangle
(
const
Point
& p0,
const
Point
& p1,
const
Point
& p2) { mVerts[0]=p0; mVerts[1]=p1; mVerts[2]=p2; }
38
inline_
Triangle
(
const
Triangle
& triangle)
39
{
40
mVerts[0] = triangle.
mVerts
[0];
41
mVerts[1] = triangle.
mVerts
[1];
42
mVerts[2] = triangle.
mVerts
[2];
43
}
45
inline_
~Triangle
() {}
47
Point
mVerts[3];
48
49
// Methods
50
void
Flip();
51
float
Area()
const
;
52
float
Perimeter()
const
;
53
float
Compacity()
const
;
54
void
Normal(
Point
& normal)
const
;
55
void
DenormalizedNormal(
Point
& normal)
const
;
56
void
Center(
Point
& center)
const
;
57
inline_
Plane
PlaneEquation
()
const
{
return
Plane
(mVerts[0], mVerts[1], mVerts[2]); }
58
59
PartVal
TestAgainstPlane(
const
Plane
& plane,
float
epsilon)
const
;
60
// float Distance(Point& cp, Point& cq, Tri& tri);
61
void
ComputeMoment(Moment& m);
62
float
MinEdgeLength()
const
;
63
float
MaxEdgeLength()
const
;
64
void
ComputePoint(
float
u,
float
v,
Point
& pt,
udword
* nearvtx=
null
)
const
;
65
void
Inflate(
float
fat_coeff,
bool
constant_border);
66
};
67
68
#endif // __ICETRIANGLE_H__
Triangle
Definition:
IceTriangle.h:30
TRI_PLUS_SPACE
@ TRI_PLUS_SPACE
Triangle is in the positive space.
Definition:
IceTriangle.h:22
PartVal
PartVal
Definition:
IceTriangle.h:19
TRI_FORCEDWORD
@ TRI_FORCEDWORD
Definition:
IceTriangle.h:26
Triangle::Triangle
inline_ Triangle()
Constructor.
Definition:
IceTriangle.h:34
TRI_INTERSECT
@ TRI_INTERSECT
Triangle intersects plane.
Definition:
IceTriangle.h:23
udword
unsigned int udword
sizeof(udword) must be 4
Definition:
IceTypes.h:65
Triangle::Triangle
inline_ Triangle(const Triangle &triangle)
Copy constructor.
Definition:
IceTriangle.h:38
Triangle::PlaneEquation
inline_ Plane PlaneEquation() const
Definition:
IceTriangle.h:57
Triangle::mVerts
Point mVerts[3]
Vertices.
Definition:
IceTriangle.h:47
Triangle::Triangle
inline_ Triangle(const Point &p0, const Point &p1, const Point &p2)
Constructor.
Definition:
IceTriangle.h:36
TRI_ON_PLANE
@ TRI_ON_PLANE
Triangle and plane are coplanar.
Definition:
IceTriangle.h:24
ICEMATHS_API
#define ICEMATHS_API
Definition:
OPC_IceHook.h:51
Point
Definition:
IcePoint.h:25
Plane
Definition:
IcePlane.h:17
Triangle::~Triangle
inline_ ~Triangle()
Destructor.
Definition:
IceTriangle.h:45
TRI_MINUS_SPACE
@ TRI_MINUS_SPACE
Triangle is in the negative space.
Definition:
IceTriangle.h:21
inline_
#define inline_
Definition:
IcePreprocessor.h:103
openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:03