Inherits DD::Image::PolygonPrimitive.
Public Member Functions | |
const char * | Class () const |
Triangle (int p0=0, int p1=1, int p2=2) | |
Triangle (const Triangle &) | |
Triangle & | operator= (const Triangle &b) |
Primitive * | duplicate () const |
Vector3 | average_center (const PointList *) const |
Returns the xyz center average of the triangle. | |
bool | IntersectsRay (const Ray &ray, int n, const PointList *pointList, CollisionResult *result) const |
Test for the intersection of this primitive with a given ray. | |
void | validate (PrimitiveContext *) |
unsigned | faces () const |
void | draw_wireframe (ViewerContext *, PrimitiveContext *, Primitive *prev_prim=0) const |
void | draw_solid (ViewerContext *, PrimitiveContext *, Primitive *prev_prim=0) const |
void | draw_solid_face (int n, ViewerContext *, PrimitiveContext *) const |
void | draw_primitive_num (ViewerContext *, PrimitiveContext *) const |
void | draw_primitive_normal (ViewerContext *, PrimitiveContext *) const |
void | print_info () const |
PrimitiveType | getPrimitiveType () const |
Protected Member Functions | |
void | copy (const Triangle *) |
Simple triangle primitive.
Triangle::Triangle | ( | int | p0 = 0 , |
int | p1 = 1 , |
||
int | p2 = 2 |
||
) |
Constructor accepting 3 points.
References DD::Image::Primitive::vertex_.
Referenced by duplicate().
void Triangle::copy | ( | const Triangle * | b | ) | [protected] |
Destructive copy.
Referenced by Triangle().
Primitive * Triangle::duplicate | ( | ) | const [virtual] |
Copy this Triangle into a new one, and return a pointer to it. Vertex data is duplicated, point indices are unchanged.
Implements DD::Image::Primitive.
References Triangle().
Vector3 Triangle::average_center | ( | const PointList * | points | ) | const [virtual] |
Returns the xyz center average of the triangle.
Return the primitive's xyz local-space center.
Reimplemented from DD::Image::Primitive.
bool DD::Image::Triangle::IntersectsRay | ( | const Ray & | ray, |
int | n, | ||
const PointList * | pointList, | ||
CollisionResult * | result | ||
) | const [inline, virtual] |
Test for the intersection of this primitive with a given ray.
If a collision is detected, information is returned in the collision result
Reimplemented from DD::Image::Primitive.
References DD::Image::Primitive::PolyIntersectsRay().
void Triangle::validate | ( | PrimitiveContext * | ptx | ) | [virtual] |
Calculate the surface normal - points out with a ccw winding.
Reimplemented from DD::Image::Primitive.
References DD::Image::Primitive::normal_, and DD::Image::Vector3::normalize().
void Triangle::draw_solid_face | ( | int | n, |
ViewerContext * | ctx, | ||
PrimitiveContext * | ptx | ||
) | const [virtual] |
Draw the single face as a filled triangle.
Reimplemented from DD::Image::Primitive.
References DD::Image::Vector3::array(), and DD::Image::Primitive::vertex_.