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