DD::Image::Polygon Class Reference

Inherits DD::Image::PolygonPrimitive.

List of all members.

Public Member Functions

const char * Class () const
 Polygon (unsigned vertices, bool closed)
 Polygon (int p0, int p1, bool closed)
 Polygon (int p0, int p1, int p2, bool closed)
 Polygon (int p0, int p1, int p2, int p3, bool closed)
 Polygon (const Polygon &)
Polygonoperator= (const Polygon &b)
Primitiveduplicate () const
bool closed () const
void closed (bool v)
bool IntersectsRay (const Ray &ray, int n, const PointList *pointList, CollisionResult *result) const
void validate (PrimitiveContext *)
void tessellate (Scene *, PrimitiveContext *) const
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 Polygon *)

Protected Attributes

bool closed_

Detailed Description

Polygon primtive class consisting of n vertices. Can be defined as open or closed. If closed, the edge between the first and last vertex is added. All vertices must be coplanar otherwise unpredictable results will occur.


Member Function Documentation

void Polygon::copy ( const Polygon b) [protected]

Destructive copy.

References DD::Image::Primitive::normal_.

Primitive * Polygon::duplicate ( ) const [virtual]

Copy this Polygon into a new one, and return a pointer to it. Vertex data is duplicated, point indices are unchanged.

Implements DD::Image::Primitive.

bool DD::Image::Polygon::closed ( ) const [inline]

Indicated whether the polygon is open or closed. If closed, the edge between the first and last vertex is added.

bool DD::Image::Polygon::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 .

Reimplemented from DD::Image::Primitive.

References DD::Image::Primitive::PolyIntersectsRay().

void Polygon::tessellate ( Scene scene,
PrimitiveContext ptx 
) const [virtual]

Subdivide the polygon into triangles and add them to the rendering pipeline.

Reimplemented from DD::Image::PolygonPrimitive.

void Polygon::draw_solid_face ( int  n,
ViewerContext ctx,
PrimitiveContext ptx 
) const [virtual]

Draw the single face as a filled polygon.

Reimplemented from DD::Image::Primitive.