#include <PrimitiveRep.h>
Inheritance diagram for PrimitiveRep:
Public Member Functions | |
const AffineTransform & | td () const |
direct transformation accessor | |
const AffineTransform & | ti () const |
inverse transformation accessor | |
virtual void | transform (const AffineTransform &md, const AffineTransform &mi) |
applies a transformation to this primitive object | |
int | id (PrimitiveRep *p) const =0 |
primitive family ID accessor | |
Box3d | bbox () const =0 |
bound box calculation operator | |
virtual int | classify (Vector3 q) const =0 |
relative position classification operator | |
virtual Vector3 | point (Real u, Real v) const =0 |
enumeration operator | |
virtual Vector3 | normal (Real u, Real v) const =0 |
normal calculation operator | |
virtual Vector3 | gradient (const Vector3 &q) const =0 |
gradiento calculation operator | |
virtual Inode * | intersect (const Ray &r) const =0 |
intercetion operator | |
virtual Poly * | uv_decomp (Real level) const =0 |
parametric decomposition operator | |
virtual Vector3 | texc (Real u, Real v) const =0 |
texture coordinates calculation operator | |
virtual Vector3 | du (Real u, Real v) const =0 |
first partial derivative operator | |
virtual Vector3 | dv (Real u, Real v) const =0 |
second partial derivative operator | |
virtual AffineTransform | local (PrimitiveRep *p) const =0 |
global to local coordinate system operator | |
virtual ofstream & | operator<< (ofstream &out)=0 |
output streamer | |
Protected Attributes | |
Box3d | b |
primitive bounding box | |
AffineTransform & | td |
direct transformation | |
AffineTransform & | ti |
inverse transformation |
The PrimitiveRep class implements the primitive modeling type base class.
NOTE : the draw operator was removed. We will assume that rendering toolkits would have an implementation for drawing the primitives rather. NOTE: would it be nice to store the bbox ? NOTE: the intersect method was commented out as does not seem to have a possible generic signature ???