Interface to Alias face curves.
#include <AlFace.h>
class AlFace : public AlCurve
AlFace();
virtual ~AlFace();
virtual statusCode deleteObject();
virtual AlObject* copyWrapper() const;
statusCode create( int, curveFormType, int, const double[], int, const double[][4], const int[] );
virtual AlObjectType type() const;
AlFaceNode* faceNode() const;
AlFace* prevFace() const;
AlFace* nextFace() const;
statusCode prevFaceD();
statusCode nextFaceD();
statusCode area( double&, boolean = TRUE, double = 0.001 );
AlShader* firstShader() const;
AlShader* nextShader( AlShader* ) const;
statusCode nextShaderD( AlShader* ) const;
statusCode renderInfo( AlRenderInfo& ) const;
statusCode setRenderInfo( const AlRenderInfo& ) const;
statusCode normal( double[3] ) const;
An AlFace is derived from AlCurve and inherits AlCurve’s public methods.
AlFace objects are created independently from the AlFaceNode, and then added to the AlFaceNode afterwards. An AlFaceNode requires one valid AlFace object in order for it to be created. Other faces can be added to the list of faces under the AlFaceNode afterwards using AlFaceNode::addFace().
Deleting a face can cause one of two things to happen. If the AlFace is not under an AlFaceNode, or it is one of several faces under an AlFaceNode, then only the face will be deleted. If the AlFace is the only face under the AlFaceNode, then the AlFaceNode will also be deleted.
Each face curve must be planar and each face curve must lie in the same plane as all the others. In addition to the parent class (AlCurve) methods this class allows you to walk through the list of the face curves that make up the face.
All AlFace objects will have at least one shader attached to them. These can be accessed through the firstShader and nextShader methods.
statusCode AlFace::create( int degree, curveFormType form,int lengthKnotVector, const double knotVector[],int lengthControlP, const double controlPoints[][4],const int multiplicity[] )
Similar to the AlCurve::create() method except that the form can only be either closed or periodic (kClosed or kPeriodic). See the description in AlCurve of the AlCurve::create() method for more details.
statusCode AlFace::nextShaderD( AlShader* last_shader ) const
statusCode AlFace::setRenderInfo( const AlRenderInfo &render ) const
statusCode AlFace::area( double& area, boolean worldCoordinates, double tolerance )
Determines the area of the face sSuccess will be returned if the evaluation succeeded. sFailure will be returned if the evaluation failed.