AlCommandRef
 
 
 

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