Interface to construction history command constructors, AlContact - Interface to Alias contact information.
Synopsis
#include <AlContact.h>
class AlCommandRef : public AlObject
AlCommandRef();
virtual ~AlCommandRef();
virtual AlObjectType type() const;
AlCommandRef* nextRef();
AlCommandRef* prevRef();
statusCode nextRefD();
statusCode prevRefD();
AlDagNode* dagNode();
AlCurveOnSurface* curveOnSurface();
AlContact* contact();
class AlContact : public AlObject
AlContact();
virtual ~AlContact();
statusCode deleteObject();
virtual AlObjectType type() const;
statusCode create();
statusCode appendContact( AlContact * );
int numberContacts() const;
AlContact* nextContact();
AlContact* prevContact();
statusCode nextContactD();
statusCode prevContactD();
AlContactType contactType() const;
// These are different values common to the various contact types
// derived classes are not used since this would result in about 6
// new classes, each with a single method.
//
statusCode calculate( AlDagNode *dagNode, double tolerance = 0, boolean adjustTolerance = FALSE );
boolean areEqual( AlDagNode *dagNodeThis, AlContact *contactOther, AlDagNode *dagNodeOther) const;
AlTrimCurve* trimCurve();
AlCurveOnSurface* curveOnSurface();
int freeCurveIndex();
double curveOnSurfaceParam() const;
double paramValue() const;
double nonisoparamMin() const;
double nonisoparamMax() const;
AlCurve* curve();
AlCurve* curveUV();
Description
Two classes are defined here. The first, AlContact, is used to access Alias contact information. It can be used in conjunction with commands to describe a constructor curve. The second class, AlCommandRef,
is used to access the constructor references for the command.
AlCommandRef::AlCommandRef()
Description
Constructs a wrapper for a reference object.
AlCommandRef::~AlCommandRef()
Description
Destructor for a reference object.
AlObjectType AlCommandRef::type() const
Description
Returns kCommandRefType.
AlCommandRef* AlCommandRef::nextRef()
Description
Returns the next reference in this list of references for the command's constructor or target.
statusCode AlCommandRef::nextRefD()
Description
Returns the next reference in this list of references for the command's constructor or target.
Return Codes
sSuccess - the wrapper points to the next reference
sFailure - there is no next reference
sInvalidObject - the reference is invalid
AlCommandRef* AlCommandRef::prevRef()
Description
Returns the previous reference in this list of references for the command's constructor or target.
statusCode AlCommandRef::prevRefD()
Description
Returns the previous reference in this list of references for the command's constructor or target.
Return Codes
sSuccess - the wrapper points to the next reference
sFailure - there is no previous reference
sInvalidObject - the reference is invalid
AlDagNode *AlCommandRef::dagNode()
Description
Returns the DAG node that this reference refers to.
Note that exactly one of dagNode() or curveOnSurface() will be used (the other will be NULL).
AlCurveOnSurface *AlCommandRef::curveOnSurface()
Description
Returns the curve on surface that this reference refers to.
Note that exactly one of dagNode() or curveOnSurface() will be used (the other will be NULL).
AlContact *AlCommandRef::contact()
Description
If this reference was generated from a contact, this pointer points to it. dagNode() and curveOnSurface() are set properly
regardless of whether a contact generated this reference.
AlContact::AlContact()
Description
Constructor for a contact wrapper.
AlContact::~AlContact()
Description
Destructor for a contact wrapper.
AlObjectType AlContact::type() const
Description
Returns kContactType
statusCode AlContact::create()
Description
Creates a contact (to be used along with a reference).
Note: you will have to call deleteObject() on this contact in your destructor or the memory will be lost. Contacts are often
used in conjunction with commands to describe a constructor curve. In Alias, the contacts are the individual curves selected in the command history.
Return Codes
sSuccess - the contact was created
sInsufficientMemory - no memory
statusCode AlContact::deleteObject()
Description
Deletes a contact object. See the note in create().
Return Codes
sSuccess - the contact was deleted
sInvalidObject - the contact was invalid
AlContact* AlContact::nextContact()
Description
Returns the contact of the next contact curve.
AlContact* AlContact::prevContact()
Description
Returns the contact of the previous contact curve.
statusCode AlContact::nextContactD()
Description
Returns the contact of the next contact curve.
Return Codes
sSuccess - the wrapper points to the next contact
sFailure - there is no next contact
sInvalidObject - the object is invalid
statusCode AlContact::prevContactD()
Description
Returns the contact of the previous contact curve.
Return Codes
sSuccess - the wrapper points to the next contact
sFailure - there is no next contact
sInvalidObject - the object is invalid
statusCode AlContact::appendContact( AlContact *addcontact )
Description
Considering the current contact to be the head in a list, adds the given contact to this list.
Arguments
< addcontact - the contact to add
Return Codes
sInvalidArgument - contact was invalid
sObjectInvalid - the current contact was invalid
sSuccess - the contact was added
int AlContact::numberContacts() const
Description
Considering the current contact to be the head of a list, returns the number of contacts in this list. Returns 0 on error.
AlContactType AlContact::contactType() const
Description
Returns the type of this contact. From the type, the appropriate information can be determined by using the methods trimCurve(),
freeCurve(), curveOnSurface(), curveOnSurfaceParam(), isoparamValue(), nonisoparamMin() or nonisoparamMax().
This method returns one of the following:
kContactInvalid, kContactIsoparamU/V, kContactCurveOnSurface, kContactTrimEdge or kContactFreeCurve.
AlTrimCurve* AlContact::trimCurve()
Description
If this is a kContactTrimEdge, then this returns the selected trim edge.
AlCurveOnSurface* AlContact::curveOnSurface()
Description
If this is a kContactCurveOnSurface, then this returns the selected curve on surface.
double AlContact::paramValue() const
Description
Returns the Isoparametric value or Curve On Surface parameter.
double AlContact::nonisoparamMin() const
Description
Returns the non iso-parameter minimum.
double AlContact::nonisoparamMax() const
Description
Returns the non iso-parameter maximum.
AlCurve *AlContact::curve()
Description
Returns the resulting contact line (in XYZ coordinates). Note that if this curve is allocated, a deleteObject() must be used
to delete it.
AlCurve *AlContact::curveUV()
Description
Returns the resulting contact line (in UV coordinates). Note that if this curve is allocated, a deleteObject() must be used
to delete it.
statusCode AlContact::calculate( AlDagNode *dagNode, double tolerance, boolean adjustTolerance )
Description
Calculates the geometry describing the contact. If transform is not set, the tolerance will be adjusted (so specify the world
space tolerance).
Arguments
< dagNode - picked DAG node
< tolerance - error tolerance (0 indicates use default)
< adjustTolerance
Return Codes
sSuccess - geometry calculated
sFailure - geometry could not be calculated
sInvalidArgument - dagNode was NULL
boolean AlContact::areEqual( AlDagNode *dagNodeThis,AlContact *contactOther, AlDagNode *dagNodeOther) const
Description
Returns TRUE if the two contact descriptions are equal.
Arguments
this - the first contact to compare
dagNodeThis - the dagnode of this contact
contactOther - the other contact
dagNodeOther - its dagnode