Basic Interface to Alias DAG node objects. 
         
         
            
            Synopsis 
            
            
            
#include <AlDagNode.h>
class AlDagNode : public AlObject , public AlClusterable , public AlAnimatable , public AlSettable , public AlPickable
virtual	~AlDagNode();
virtual statusCode	deleteObject();
virtual AlObject*	copyWrapper() const;
AlDagNode*	copyObject( AlCopyOptions* = NULL );
AlDagNode*	copyObject( AlCopyOptions*, int, int * );
virtual AlObjectType	type() const;
virtual const char*	name() const;
virtual statusCode	setName( const char* );
AlGroupNode*	parentNode() const;
AlDagNode*	nextNode() const;
AlDagNode*	prevNode() const;
virtual boolean	isInstanceable();
statusCode	addSiblingNode( AlDagNode* );
statusCode	comment( long&, const char*& );
statusCode	setComment( long, const char* );
statusCode	removeComment( void );
statusCode	blindData( int, long&, const char*& );
statusCode	setBlindData( int, long, const char* );
statusCode	removeBlindData( int );
statusCode	persistentID( AlPersistentID *&, int );
statusCode	hasPersistentID( int );
statusCode	localTransformationMatrix( double[4][4] ) const;
statusCode	globalTransformationMatrix( double[4][4] ) const;
statusCode	inverseGlobalTransformationMatrix( double[4][4] ) const;
statusCode	affectedTransformationMatrix( const AlTM&, double[4][4] ) const;
statusCode	localTransformationMatrix( AlTM& ) const;
statusCode	globalTransformationMatrix( AlTM& ) const;
statusCode	inverseGlobalTransformationMatrix( AlTM& ) const;
statusCode	affectedTransformationMatrix( const AlTM&, AlTM& ) const;
statusCode	translation( double&, double&, double& ) const;
statusCode	rotation( double&, double&, double& ) const;
statusCode	scale( double&, double&, double& ) const;
statusCode	rotatePivot( double&, double&, double& ) const;
statusCode	scalePivot( double&, double&, double& ) const;
statusCode	rotatePivotIn( double &x, double &y, double &z ) const;
statusCode	rotatePivotOut( double &x, double &y, double &z ) const;
statusCode	scalePivotIn( double &x, double &y, double &z ) const;
statusCode	scalePivotOut( double &x, double &y, double &z ) const;
statusCode	setTranslation( double, double, double );
statusCode	setWorldTranslation( double, double, double );
statusCode	setRotation( double, double, double );
statusCode	setScale( double, double, double );
statusCode	setRotatePivot( double, double, double );
statusCode	setScalePivot( double, double, double );
statusCode	localRotationAxes( double[3], double[3], double[3] ) const;
statusCode	setLocalRotationAxes(double[3], double[3], double[3]);
statusCode	localRotationAngles( double&, double&, double& ) const;
statusCode	setLocalRotationAngles( double, double, double );
statusCode	localRotateBy(double , double ,double );
statusCode	localTranslateBy(double , double ,double );
statusCode	boundingBox( double[8][4] ) const;
boolean	isDisplayModeSet( AlDisplayModeType ) const;
statusCode	setDisplayMode( AlDisplayModeType, boolean );
AlJoint*	joint() const;
statusCode	addJoint();
statusCode	removeJoint();
AlDagNode*	searchBelow( const char * ) const;
AlDagNode*	searchAcross( const char * ) const;
statusCode	updateDrawInfo( void ) const;
statusCode	sendGeometryModifiedMessage();
statusCode	doUpdates( boolean newState = TRUE );
AlConstraint*	firstConstraint( void ) const;
AlLayer*	layer() const;
statusCode	setLayer( const AlLayer * );
boolean	isAConstructionPlane();
AlList*	clusterPreTransformationMatrices() const;
statusCode	createSymmetricGeometry();
statusCode 	createSymmetricGeometry( AlDagNode *& );
unsigned int version( void ) const;
class AlCopyOptions
AlCopyOptions();
virtual	~AlCopyOptions();
boolean	instanceCopy() const;
statusCode	setInstanceCopy( boolean );
boolean	copyAnimation() const;
statusCode	setCopyAnimation( boolean );
boolean	copyClusters() const;
statusCode	setCopyClusters( boolean );
int	numCopies() const;
statusCode	setNumCopies( int );
AlParamControlType	parameterControl() const;
statusCode	setParameterControl( AlParamControlType );
AlHierarchyType	hierarchy() const;
statusCode	setHierarchy( AlHierarchyType );
double	timeOffset() const;
statusCode	setTimeOffset( double );
statusCode	translation( double&, double&, double& ) const;
statusCode	setTranslation( double, double, double );
statusCode	rotation( double&, double&, double& ) const;
statusCode	setRotation( double, double, double );
statusCode	scale( double&, double&, double& ) const;
statusCode	setScale( double, double, double );
 
         
            
            Description 
            
            
            This class encapsulates the basic functionality for creating, manipulating and deleting a DAG node. A DAG node is part of
               a tree-like hierarchical structure known as a directed acyclic graph or DAG. All DAG nodes belong to a single DAG which is
               contained in the current universe. The head of the DAG is accessible by calling the AlUniverse::firstDagNode() static method. 
            
            
            Each DAG node can be mutually attached to a previous and next DAG node to form a list of DAG nodes. This list can belong to
               a group (or parent) DAG node. This list of DAG nodes that belong to a group node are called "children" of the group node.
               
            
            
            A DAG node contains information that defines particular affine transformations such as scale, rotation and translation. There
               is a specific fixed order in which the transformations are combined. There are methods for accessing each particular transformation
               and a method exists for obtaining the local transformation matrix built from these transformations. For more information,
               see the description for the method localTransormationMatrix(). 
            
            
            Classes derived from this class will refer to a particular type of object. For example, the AlCameraNode class is derived
               from AlDagNode and refers to AlCamera objects only. The shape, position and/or orientation of the object referred to is defined
               by combining the transformations for the DAG node with all the transformations inherited from the DAG nodes above it in the
               DAG. There is a method for obtaining the global transformation matrix, which is built from the local transformations and all
               inherited transformations. For example, if DAG node A is a parent of DAG node B which is a parent of DAG node C, then the
               global transformation of C is the matrix product [C]*[B]*[A], where [C], [B], and [A] are local transformations of each DAG
               node. 
            
            
            A DAG node can have some user-defined text associated with it and so there are methods for getting and setting the text. 
            
            
            Users cannot instantiate an AlDagNode directly. A derived class of an AlDagNode must be instantiated and then if required
               the create() method of the class must be called. This will insert the DAG node into the DAG as a parent-less node. A DAG node
               can be moved so that it is a sibling of any DAG node in the DAG. Deleting a DAG node removes the node from its list of siblings.
               For derived classes, deletion of a DAG node will cause the deletion of the object that it refers to. 
            
            
            Since an AlDagNode simply contains transformations but does not refer to any transformable object, this class is of little
               practical use on its own. It is primarily an abstract base class from which other DAG node classes are derived. Note that
               NULL DAG nodes created in the Alias Interactive package are retrieved by this library as group nodes without children. 
            
            
            What does a transformation matrix mean? This matrix is the product of matrices for scale, rotate and translate. One useful
               piece of information from this matrix is the POSITION of an object. The first three values in the bottom row of the matrix
               (indices (3,0), (3,1), and (3,2)) represent the translation of the origin (0,0,0) in the x, y, and z directions. For instance,
               if you placed a sphere at (20, 30, 16) in the Alias interactive package, then moved it to (-30, 16, 28), you would notice that its global transformation matrix would have (-30,
               16, 28) in the bottom row. 
            
            
            Additionally, AlDagNode includes AlCopyOptions as a nested class. This class allows for the querying and setting of options
               for AlDagNode::copyObject(). When first instantiated, an instance of AlCopyOptions will have its values set according to the
               values in Edit->Duplicate Object option box. It is not possible to set the values in this option box through this class. 
            
            
          
         
            
            AlDagNode::~AlDagNode()
            
            
            
               
               Description
               
               
                 Deletes an AlDagNode wrapper object. 
               
               
             
            
          
         
            
            statusCode AlDagNode::deleteObject()
            
            
            
               
               Description
               
               
                 Destructor for AlDagNode. The entire DAG branch rooted at this node will be deleted. For each delete DAG node its animation
                  will be deleted and the DAG node will be removed from all clusters or sets it is in. Some DAG nodes cannot be deleted (for
                  example, AlTextureNodes), in which case this method will return sFailure. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the DAGnode and all associated objects were deleted 
               
               
               sFailure - the DAG node could not be deleted 
               
               
               sInvalidObject - the DAG node was not valid 
               
               
             
            
          
         
            
            AlObject *AlDagNode::copyWrapper() const
            
            
            
               
               Description
               
               
                Returns an exact duplicate of this AlDagNode wrapper. 
               
               
             
            
          
         
            
            AlDagNode *AlDagNode::copyObject( AlCopyOptions* options )
            
            
            
               
               Description
               
               
                Copies this AlDagNode returning a pointer to the new copy. If "options" is not NULL then the given copy options will be used
                  in making copies, otherwise the options as they exist in the Duplicate object option box will be used. If multiple copies
                  are made, a reference to the last copy will be returned. AlUniverse::redrawScreen() must be called once the copy is complete
                  to see the results. 
               
               
             
            
          
         
            
            AlObjectType AlDagNode::type() const
            
            
            
               
               Description
               
               
                Returns the class identifier ’kDagNodeType’. 
               
               
             
            
          
         
            
            const char* AlDagNode::name() const
            
            
            
               
               Description
               
               
                 Returns the name of the object. 
               
               
             
            
          
         
            
            statusCode AlDagNode::setName( const char *newName)
            
            
            
               
               Description
               
               
                Changes the name of the DAG node to a new name. If the given name is not unique, then a unique name is generated based on
                  the given name and assigned to the DAG node. In this case, a status code of sNameChangedToUniqueOne is returned. It is illegal
                  for the new name to be NULL. 
               
               
             
            
            
               
               Arguments
               
               
               < newName - new name of the object 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - name was changed 
               
               
               sInvalidArgument - newName was NULL 
               
               
               sFailure - the request could not be completed 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
               sNameChangedToUniqueOne - name was changed to be a unique version of the given name 
               
               
             
            
          
         
            
            AlGroupNode* AlDagNode::parentNode() const
            
            
            
               
               Description
               
               
                Returns a pointer to the parent AlGroupNode or NULL if there is no parent. 
               
               
             
            
          
         
            
            AlDagNode* AlDagNode::nextNode() const
            
            
            
               
               Description
               
               
                Returns a pointer to the object’s next sibling AlDagNode or NULL if there is no next sibling. 
               
               
             
            
          
         
            
            AlDagNode* AlDagNode::prevNode() const
            
            
            
               
               Description
               
               
                Returns a pointer to the object’s previous sibling AlDagNode or NULL if there is no previous sibling. 
               
               
             
            
          
         
            
            statusCode AlDagNode::addSiblingNode( AlDagNode *sibling )
            
            
            
               
               Description
               
               
                Inserts an AlDagNode as the next sibling of this AlDagNode object. If the AlDagNode is already a sibling of this object, then
                  nothing is done and the AlDagNode is left where it is in the list of siblings. Otherwise, the AlDagNode is removed from the
                  list of siblings it belongs to and added to the list of siblings for this object. If the AlDagNode is an AlGroupNode and it
                  has siblings which are instanced AlGroupNodes, those instanced siblings are also made siblings of this object. 
               
               
             
            
            
               
               Arguments
               
               
               < sibling - the AlDagNode to be inserted 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the AlDagNode is now a sibling of this object 
               
               
               sInvalidArgument - ’sibling’ was invalid or NULL 
               
               
               sFailure - the AlDagNode could not be made a sibling of this object 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
             
            
          
         
            
            boolean AlDagNode::isInstanceable()
            
            
            
               
               Description
               
               
                Returns TRUE. An AlDagNode is instanceable but derived classes that are not instanceable DAG nodes will redefine this method.
                  
               
               
             
            
          
         
            
            statusCode AlDagNode::comment( long &size, const char* &data )
            
            
            
               
               Description
               
               
                Obtains the size and address of a block of textual data associated with the object. If there is no textual data, then the
                  size will be zero and the address of the data is NULL. 
               
               
               Note that the comment is NOT a null terminated string. 
               
               
             
            
            
               
               Arguments
               
               
               > size - number of characters in the block of text 
               
               
               > data - address of the block of text 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - normal completion 
               
               
               sInvalidObject - the given object is not valid 
               
               
             
            
          
         
            
            statusCode AlDagNode::blindData( int user_type, long &size, const char* &data )
            
            
            
               
               Description
               
               
                Obtains the size and address of a block of data associated with the object. If there is no data, then the size will be zero
                  and the address of the data is NULL. User_types must be reserved. If you would like to reserve a block of "user_types" please
                  contact us. User_types less than zero indicate that the blind data is not persistent. As such, when the model is stored, blind
                  data with a negative user_type will not be stored. 
               
               
             
            
            
               
               Arguments
               
               
               < user_type - user type of the data desired 
               
               
               > size - number of characters in the block of text 
               
               
               > data - address of the block of text 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - normal completion 
               
               
               sInvalidObject - the given object is not valid 
               
               
             
            
          
         
            
            statusCode AlDagNode::persistentID( AlPersistentID *&id, int userType )
            
            
            
               
               Description
               
               
                Returns a copy of the AlPersistentID associated with this node. If one does not exist one is created. User_types between 0
                  and 9999 are reserved. If you would like to reserve a block of "user_types" please contact us. 
               
               
             
            
            
               
               Arguments
               
               
               > id - a copy of the AlPersistentID 
               
               
               < userType - user type of the persistent ID desired 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - normal completion 
               
               
               sInvalidObject - the given object is not valid 
               
               
               sFailure - the ID did not exist or could not be created 
               
               
             
            
          
         
            
            statusCode AlDagNode::setPersistentID( AlPersistentID &id, int userType )
            
            
            
               
               Description
               
               
               Sets the values of the AlPersistentID associated with this node. This method only allows you to create persistent IDs with
                  user types other than 1. If the persistent ID does not exist, it will be created. 
               
               
               User types between 0 and 9999 are reserved. If you would like to reserve a block of user types please contact us. 
               
               
             
            
            
               
               Arguments
               
               
               < userType - user type of the persistent ID desired 
               
               
               > id - a copy of the AlPersistentID 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - normal completion 
               
               
               sInvalidObject - the given object is not valid 
               
               
               sInvalidArgument - the given userType is not valid 
               
               
               sFailure - the ID did not exist or could not be created 
               
               
             
            
          
         
            
            statusCode AlDagNode::hasPersistentID( int userType )
            
            
            
               
               Description
               
               
                Checks to see if the DagNode has a persistent ID associated with it. 
               
               
             
            
            
               
               Arguments
               
               
               < userType - user type of the persistent ID desired 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - node has a persistent ID 
               
               
               sFailure - node does not have a persistent ID 
               
               
               sInvalidObject - the given object is not valid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setComment( long size, const char* data )
            
            
            
               
               Description
               
               
                Associates a block of textual data with the object. If a block of text is already associated with the object, the reference
                  to the old block of text is replaced by a reference to the new block of text. The old block of text is not deleted. It is
                  up to the user to manage the deletion of the old block of text. 
               
               
             
            
            
               
               Arguments
               
               
               < size - number of characters in the block of text 
               
               
               < data - address of the block of text 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - operation was successful 
               
               
               sInsufficientMemory - not enough memory sInvalidObject - the given object is not valid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setBlindData( int user_type, long size, const char* data )
            
            
            
               
               Description
               
               
                Associates a block of data with the object. If a block of data is already associated with the object, the reference to the
                  old block of data is replaced by a reference to the new block of data. The old block of data is not deleted. It is up to the
                  user to manage the deletion of the old block of data. The user_type may be user defined to add more than one blind data block
                  to any one object (see blindData() above for additional information). 
               
               
             
            
            
               
               Arguments
               
               
               < user_type - desired user type of the blind data 
               
               
               < size - number of characters in the block of text 
               
               
               < data - address of the block of text 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the blind data was set 
               
               
               sInsufficientMemory - there is not enough memory 
               
               
               sInvalidObject - the given object is not valid 
               
               
             
            
          
         
            
            statusCode AlDagNode::removeComment( void )
            
            
            
               
               Description
               
               
                Removes the block of text associated with this object from the object itself. Note that the user is still responsible for
                  the memory associated with the block of text. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - text was removed 
               
               
               sFailure - there was no comment to remove sInvalidObject - the given object is not valid 
               
               
             
            
          
         
            
            statusCode AlDagNode::removeBlindData( int user_type )
            
            
            
               
               Description
               
               
                Removes the block of data of the given type from the object. Note that the user is still responsible for the memory associated
                  with this block of data. 
               
               
             
            
            
               
               Arguments
               
               
               < user_type - user type of the blind desired 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - data was removed 
               
               
               sFailure - no such blind data existed sInvalidObject - the given object is not valid 
               
               
             
            
          
         
            
            statusCode AlDagNode::localTransformationMatrix( AlTM& matrix ) const
            
            
            
               
               Description
               
               
                Computes the local transformation matrix for the object. This version of the function takes an AlTM matrix instead of a 4x4
                  matrix of doubles. 
               
               
             
            
            
               
               Arguments
               
               
               > matrix - the matrix to contain the local transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the transformation was successfully computed 
               
               
               sInvalidArgument - the matrix was NULL 
               
               
               sFailure - the request could not be completed 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::localTransformationMatrix( double matrix[4][4] ) const
            
            
            
               
               Description
               
               
                Computes the local transformation matrix for the object. The matrix is oriented such that to transform a point, the point
                  must be pre-multiplied by the matrix. The local transformation matrix is defined by seven triples which specify components
                  for scale, rotation, and translation transformations. It is computed by doing the following transformations: 
               
               
               local transform = T1 * T2 * T3 * T4 * T5 * T6 * T7 * T8 * T9 
               
               
               - (T1) translation by x,y,z of scalePivotIn vector 
               
               
               - (T2) scale by x,y,z of scale vector 
               
               
               - (T3) translation by x,y,z of scalePivotOut vector 
               
               
               - (T4) translation by x,y,z of rotatePivotIn vector 
               
               
               - (T5) x-axis rotation by x component of rotation vector 
               
               
               - (T6) y-axis rotation by y component of rotation vector 
               
               
               - (T7) z-axis rotation by z component of rotation vector 
               
               
               - (T8) translation by x,y,z of rotatePivotOut vector 
               
               
               - (T9) translation by x,y,z of translation vector 
               
               
               This order reflects the order in which a point would be transformed by each transformation. When setting and querying the
                  rotate pivot and the scale pivot, you only need to worry about setting the pivot in world space. The methods setRotatePivot()
                  and setScalePivot() will calculate the corresponding In and Out transformations (T1,T3,T4,T8). 
               
               
             
            
            
               
               Arguments
               
               
               > matrix - the matrix to contain the local transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the transformation was successfully computed 
               
               
               sInvalidArgument - matrix was NULL 
               
               
               sFailure - the request could not be completed 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::globalTransformationMatrix( AlTM& matrix ) const
            
            
            
               
               Description
               
               
                Computes the global transformation matrix for the object, which is obtained by post multiplying the local transformation matrix
                  with the global transformation matrix of the parent AlGroupNode. This version of the function takes an AlTM matrix instead
                  of a 4x4 matrix of doubles. 
               
               
             
            
            
               
               Arguments
               
               
               > matrix - the matrix to contain the global transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the global transformation matrix was computed 
               
               
               sInvalidArgument - matrix was NULL 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::globalTransformationMatrix( double matrix[4][4] ) const
            
            
            
               
               Description
               
               
                Computes the global transformation matrix for the object, which is obtained by post-multiplying the local transformation matrix
                  with the global transformation matrix of the parent AlGroupNode. For more information, see the AlDagNode class description. 
               
               
             
            
            
               
               Arguments
               
               
               > matrix - the matrix to contain the global transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the global transformation matrix was computed 
               
               
               sInvalidArgument - matrix was NULL 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::inverseGlobalTransformationMatrix( AlTM& matrix ) const
            
            
            
               
               Description
               
               
                Computes the inverse of the global transformation matrix for the object, which is obtained by post-multiplying the local transformation
                  matrix with the global transformation matrix of the parent AlGroupNode. This version of the function takes an AlTM matrix
                  instead of a 4x4 matrix of doubles. You will want to use this method to transform normals. There is a routine in AlTM called
                  AlTM::transNormal, however it may not be numerically stable. Normals are transformed by the equation n’ = n * trans(inv(M)).
                  To transform a normal (nx,ny,nz), the following code fragment can be used: 
               
               
               
AlTM invTM;
dagNode->inverseGlobalTransformMatrix( invTM );
invTM.transpose().transVector( nx, ny, nz );
 
            
            
               
               Arguments
               
               
               > matrix - the matrix to contain the global transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the global transformation matrix was computed 
               
               
               sInvalidArgument - matrix was NULL 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::inverseGlobalTransformationMatrix( double matrix[4][4] ) const
            
            
            
               
               Description
               
               
                Computes the inverse of the global transformation matrix for the object, which is obtained by post-multiplying the local transformation
                  matrix with the global transformation matrix of the parent AlGroupNode. For more information, see the AlDagNode class description. 
               
               
             
            
            
               
               Arguments
               
               
               > matrix - the matrix to contain the global transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the global transformation matrix was computed 
               
               
               sInvalidArgument - matrix was NULL 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::affectedTransformationMatrix( const AlTM& tm, AlTM& matrix ) const
            
            
            
               
               Description
               
               
                Computes the transformation matrix for the object, which is obtained by post-multiplying the local transformation matrix with
                  the given AlTM ’tm’. 
               
               
             
            
            
               
               Arguments
               
               
               < tm - the transformation matrix generated while walking the DAG 
               
               
               > matrix - the matrix to contain the affected transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the transformation matrix was computed 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::affectedTransformationMatrix( const AlTM& tm, double matrix[4][4] ) const
            
            
            
               
               Description
               
               
                Computes the transformation matrix for the object, which is obtained by post-multiplying the local transformation matrix with
                  the given AlTM. 
               
               
             
            
            
               
               Arguments
               
               
               < tm - the transformation matrix generated while walking the DAG 
               
               
               > matrix - the matrix to contain the affected transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the transformation matrix was computed 
               
               
               sInvalidArgument - matrix was NULL 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::translation( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Gets the final local translation vector. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the final local translation vector was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::rotation( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Gets the amount of rotation (in degrees ) about the x, y, and z axes. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - amount of rotation about the x, y, z axis 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the rotation was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::scale( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Gets the amount of scale in the x, y, and z direction. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the scale transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the scale amount was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::rotatePivot( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Returns the rotate pivot position in world space. The rotate pivot is the point about which rotations take place. For more
                  information, see the description for the method localTransformationMatrix(). 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the rotate pivot was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::scalePivot( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Returns the scale pivot position in world space. The scale pivot is the point about which scaling take place. For more information,
                  see the description for the method localTransformationMatrix(). 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the scale pivot was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::doUpdates( boolean newState )
            
            
            
               
               Description
               
               
                Notifies the system that you are finished performing. If this flag is true, it is equivalent to sending out a ’geometry modified’
                  message to the rest of the system. When the system receives the update message, operations such as construction history, and
                  so on, are done. This feature is important when using construction history plug-ins. Construction history plug-ins should
                  always set the doUpdate flag to FALSE when doing updates (otherwise an infinite update loop will result, usually ending in
                  a core dump). The update can be explicitly forced using the AlDagNode::sendGeometryModifiedMessage() method. This flag DOES
                  NOT UPDATE THE SCREEN. Use the AlUniverse::redrawScreen to do the screen refresh. If the previous state of the flag was FALSE
                  and the new state is TRUE, an update will be done at this point and on each subsequent DAG modification. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the new state was set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setTranslation( double x, double y, double z )
            
            
            
               
               Description
               
               
                Sets the final local translation vector. The translation transformation is done after rotations. 
               
               
               This method takes advantage of the doUpdate mechanism to control whether updates happen immediately or are batched until the
                  end of an operation. 
               
               
               NOTE: If this DAG node is a surface made from construction history, then the construction history will be broken. To find
                  out if this surface is created by construction history, cast this DAG node to a surface. If it is a surface, call the method
                  AlSurface::isConstructionHistoryResultingSurface(). 
               
               
             
            
            
               
               Arguments
               
               
               < x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the final local translation vector was set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setWorldTranslation( double x, double y, double z )
            
            
            
               
               Description
               
               
                Sets the final world translation vector (by appropriately modifying the local translation). 
               
               
               See setTranslation() for notes on construction history. 
               
               
               See setTranslation() for notes on doUpdates(). 
               
               
             
            
            
               
               Arguments
               
               
               < x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the final local translation vector was set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::sendGeometryModifiedMessage()
            
            
            
               
               Description
               
               
                Sends out an update message notifying that the geometry of this dagNode has been modified. This function is intended to be
                  used after a series of geometry changes have been done with the ’doUpdate’ parameter set to FALSE. Note that updates should
                  not be done during construction history plug-ins (an infinite loop will result). 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the message was sent 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setRotation( double x, double y, double z )
            
            
            
               
               Description
               
               
                Sets the amount of rotation (in degrees) about the x, y, and z axes. The rotations will be done after the scale transformation
                  and before the final local translation. See setTranslation for notes on doUpdate. 
               
               
               See setTranslation() for notes on construction history and on doUpdates(). 
               
               
             
            
            
               
               Arguments
               
               
               < x, y, z - amount of rotation about the x, y, z axis 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the amount of rotation was set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setScale( double x, double y, double z )
            
            
            
               
               Description
               
               
                Sets the local scale vector. The scale transformation will be done before the local rotations. There is no restriction on
                  the values of the components of the scale vector. 
               
               
               See setTranslation() for notes on construction history and on doUpdates(). 
               
               
             
            
            
               
               Arguments
               
               
               < x, y, z - components of the scale transformation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local scale vector was set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setRotatePivot( double x, double y, double z )
            
            
            
               
               Description
               
               
                Changes the rotate pivot to the world space position given by x, y, and z. The rotate pivot is the point about which rotations
                  take place. 
               
               
             
            
            
               
               Arguments
               
               
               < x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the rotate pivot was set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setScalePivot( double x, double y, double z)
            
            
            
               
               Description
               
               
                Changes the scale pivot to the world space position given by x, y, and z. The scale pivot is the point about which scaling
                  take place. 
               
               
             
            
            
               
               Arguments
               
               
               < x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the scale pivot was set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::localRotationAxes( double x[3], double y[3], double z[3] ) const
            
            
            
               
               Description
               
               
                Returns vectors representing the local rotation axes for this node. These axes are the three axes vectors in world space co-ordinates.
                  
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - three vectors representing the 3 axes 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local rotation axes were returned 
               
               
               sInvalidArgument - x, y or z was NULL 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setLocalRotationAxes(double x[3], double y[3], double z[3])
            
            
            
               
               Description
               
               
                Sets the local rotation axes of this DAG node to the given world space vectors. Note that you must ensure that the three vectors
                  x, y and z are orthogonal, otherwise you may get unpredictable results. Also, note that if they are orthogonal, that all three
                  axes are not needed, and in fact this method does not use the z vector. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - three vectors representing the 3 axes 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local rotation axes were returned 
               
               
               sInvalidArgument - x, y or z was NULL 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::localRotationAngles( double& x, double& y, double& z ) const
            
            
            
               
               Description
               
               
                These angles allow you to determine how the local rotation axis have been rotated from their initial position. For example
                  the x value indicates how much the y and z axes have been rotated about the x axis. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - rotation angles about the three axes 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local rotation angles were returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::setLocalRotationAngles( double x, double y, double z )
            
            
            
               
               Description
               
               
                Setting the local rotation angles is the only means by which the local rotations axes can be modified. Each angle represents
                  how much the other two axes are rotated about itself from their initial position. For example the value for x will determine
                  how much the y and z axes are rotated about the x axis. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - rotation angles about the three axes 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local rotation angles were set 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
               sFailure - the local rotation angle could not be set 
               
               
             
            
          
         
            
            statusCode AlDagNode::localRotateBy(double x, double y,double z)
            
            
            
               
               Description
               
               
                Does a DAG node rotation based on the setting of the local axes. This function is additive or relative. Rotations are applied
                  against previous rotations. The current rotation in world space is returned by AlDagNode::rotation(). 
               
               
             
            
            
               
               Parameters:
               
               
               > x,y,z - amount to rotate by 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the method succeeded 
               
               
               sFailure - the method failed 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::localTranslateBy(double x, double y,double z)
            
            
            
               
               Description
               
               
                Does a DAG node translation based on the setting of the local axes. This function is additive or relative. Translations are
                  applied against previous translations. The current translation in world space is returned by AlDagNode::translation(). 
               
               
             
            
            
               
               Parameters
               
               
               > x,y,z - amount to translate by 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the method succeeded 
               
               
               sFailure - the method failed 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::boundingBox( double corners[8][4] ) const
            
            
            
               
               Description
               
               
                Returns the eight corners of the bounding box in world space. These corners are exactly like the bounding boxes drawn in the
                  interactive Alias package. This DAG node must be in bounding box mode before this method is called. 
               
               
             
            
            
               
               Arguments
               
               
               > corners - a matrix to hold the eight corners of the bounding box. Each corner has an x, y, z and homogeneous component.
                  
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the bounding box was returned 
               
               
               sInvalidArgument - ’corners’ was NULL 
               
               
               sFailure - the display mode was set or the box could not be determined 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
             
            
          
         
            
            boolean AlDagNode::isDisplayModeSet( AlDisplayModeType mode ) const
            
            
            
               
               Description
               
               
                Returns TRUE if the specified display mode is toggled on for the DAG node. Returns FALSE otherwise. 
               
               
               The only valid AlDisplayModeTypes for an AlDagNode are 
               
               
                  - kDisplayModeBoundingBox 
- kDisplayModeInvisible 
- kDisplayModeTemplate 
- kDisplayModeDashed 
- kDisplayModeConstructionPlane 
- kDisplayModeCompressedSbd 
 
            
            
               
               Arguments
               
               
               < mode - display mode of interest 
               
               
             
            
          
         
            
            statusCode AlDagNode::setDisplayMode( AlDisplayModeType mode, boolean on_or_off)
            
            
            
               
               Description
               
               
                For the given display mode, if the flag is TRUE then the display mode for the DAG node is set; otherwise it is unset. 
               
               
               The only valid AlDisplayModeTypes for an AlDagNode are 
               
               
                  - kDisplayModeBoundingBox 
- kDisplayModeInvisible 
- kDisplayModeTemplate 
- kDisplayModeDashed 
- kDisplayModeConstructionPlane 
- kDisplayModeCompressedSbd 
 
            
            
               
               Arguments
               
               
               < mode - display mode of interest 
               
               
               < on_or_off - TRUE means that this DAG node will have the display mode set. FALSE means it will be unset. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - operation was successful 
               
               
               sInvalidArgument - invalid display type 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
               sFailure - the display mode could not be set 
               
               
             
            
          
         
            
            statusCode AlDagNode::rotatePivotIn( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Gets the local pre-rotation translation vector. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local pre-rotation translation vector was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::rotatePivotOut( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Gets the local post-rotation translation vector. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local post-rotation translation vector was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::scalePivotIn( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Gets the local pre-scale translation vector. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local pre-scale translation vector was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            statusCode AlDagNode::scalePivotOut( double &x, double &y, double &z ) const
            
            
            
               
               Description
               
               
                Gets the local post-scale translation vector. 
               
               
             
            
            
               
               Arguments
               
               
               > x, y, z - components of the translation vector 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the local post-scale translation vector was returned 
               
               
               sInvalidObject - this DagNode is invalid 
               
               
             
            
          
         
            
            AlJoint* AlDagNode::joint() const
            
            
            
               
               Description
               
               
                Gets the IK joint node if one exists. 
               
               
             
            
          
         
            
            statusCode AlDagNode::addJoint()
            
            
            
               
               Description
               
               
                Adds an AlJoint to this DAG node to maintain IK information. Note that an AlDagNode may have only one AlJoint. If the AlDagNode
                  already has an AlJoint when this method is called nothing will be done, and sSuccess will be returned. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the operation succeeded 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
               sFailure - it was not possible to add an AlJoint 
               
               
             
            
          
         
            
            statusCode AlDagNode::removeJoint()
            
            
            
               
               Description
               
               
                Removes the AlJoint to this DAG node to maintain IK information. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the operation succeeded 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
               sFailure - it was not possible to remove the AlJoint 
               
               
             
            
          
         
            
            AlDagNode * AlDagNode::searchBelow( const char * name ) const
            
            
            
               
               Description
               
               
                Searches the DAG tree (rooted at the child of the current node) for a DAG node with a specific name. A pointer to the DAG
                  node is returned if it is found. NULL is returned if no such DAG node exists. 
               
               
             
            
            
               
               Arguments
               
               
               name - the name to look for 
               
               
             
            
          
         
            
            AlDagNode * AlDagNode::searchAcross( const char * name ) const
            
            
            
               
               Description
               
               
                Searches across the DAG tree (starting at the current node), for a DAG node with a specific name. A pointer to the DAG node
                  is returned if it is found. NULL is returned if no such DAG node exists. 
               
               
             
            
            
               
               Arguments
               
               
               name - the name to look for 
               
               
             
            
          
         
            
            statusCode AlDagNode::updateDrawInfo( void ) const
            
            
            
               
               Description
               
               
                Forces the internal draw information to be updated to match the DagNode’s geometry. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the draw information was updated 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
               sFailure - this call is not valid in OpenModel 
               
               
             
            
          
         
            
            AlLayer* AlDagNode::layer() const
            
            
            
               
               Description
               
               
                Gets the layer of an AlDagNode. 
               
               
             
            
          
         
            
            statusCode AlDagNode::setLayer(const AlLayer *layerObj)
            
            
            
               
               Description
               
               
                Sets the layer on a DAG node. When a layer is set to an AlDagNode, the following settings are assigned: 
               
               
               
                  - All the child nodes of the current node are assigned to the layerObj layer. 
- All the parent nodes are assigned to the default layer. 
- All the sibling nodes are unaffected. 
 
            
            
               
               Arguments
               
               
               < layerObj - the layer object to be assigned to the AlDagNode 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the layer was assigned successfully 
               
               
               sInvalidArgument - the layer is invalid 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
             
            
          
         
            
            AlConstraint* AlDagNode::firstConstraint( void ) const
            
            
            
               
               Description
               
               
                Returns a pointer to the first constraint on this DAG node. 
               
               
             
            
          
         
            
            boolean AlDagNode::isAConstructionPlane()
            
            
            
               
               Description
               
               
                Returns TRUE if the DAG node is a construction plane. 
               
               
             
            
          
         
            
            AlList* AlDagNode::clusterPreTransformationMatrices() const
            
            
            
               
               Description
               
               
                Returns a list of AlClusterPreTMItem, which contains the transformation matrices of the geometry DAG node for clusters. 
               
               
               NULL is returned for non_leaf or null DAG nodes, or if a DAG node does not involve with any cluster. 
               
               
               Note: you must delete the AlList object. 
               
               
             
            
          
         
            
            AlDagNode *AlDagNode::copyObject( AlCopyOptions* options, int numOfBlindDataIDsToCopy, int *blindDataIDsToCopy )
            
            
            
               
               Description
               
               
                This method is similar to the ::copyObject() method above. In addition, blind data IDs to be copied are specified with this
                  method. 
               
               
             
            
            
               
               Arguments
               
               
               < - numOfBlindDataIDsToCopy contains the number of elements of array blindDataIDsToCopy[] 
               
               
               < - blindDataIDsToCopy is an array of IDs to copy 
               
               
               NULL will be returned if numOfBlindDataIDsToCopy < 1 or blindDataIDsToCopy is NULL. 
               
               
               Warning: we suggest only copying blind data IDs that are managed by your code. Copying blind data IDs out of your range may
                  lead to program errors. 
               
               
             
            
          
         
            
            statusCode AlDagNode::createSymmetricGeometry( )
            
            
            
               
               Description
               
               
                Creates the symmetric geometry for this node if it is on a symmetric plane. 
               
               
             
            
            
               
               Return code
               
               
               sSuccess - the method succeeded 
               
               
               sFailure - the method failed 
               
               
               sInvalidObject - invalid dag node 
               
               
             
            
          
         
            
            statusCode AlDagNode::createSymmetricGeometry( AlDagNode *&symmGeomDag )
            
            
            
               
               Description
               
               
               Creates the symmetric geometry for this node if it is on a symmetric plane. 
               
               
             
            
            
               
               Return code
               
               
               sSuccess - the method succeeded 
               
               
               sFailure - the method failed 
               
               
               sInvalidObject - invalid dag node 
               
               
             
            
          
         
            
            unsigned int AlDagNode::version( void ) const
            
            
            
               
               Description
               
               
               Returns the version of the DagNode 
               
               
             
            
          
         
            
            AlDagNode::AlCopyOptions::AlCopyOptions()
            
            
            
               
               Description
               
               
               This constructor initializes the instance to the current Duplicate options, or in OpenModel to the defaults for the Duplicate
                  operation. 
               
               
                  - copyAnimation set to FALSE. 
- instanceCopy set to FALSE 
- copyClusters set to TRUE. 
- numCopies set to 1. 
- parameters set to ALL. 
- hierarchy set to BOTH. 
- timeOffset set to 0. 
- translate, rotate set to 0. 
- scale set to 1. 
By default, copies will be grouped with the original AlDagNode. 
               
               
             
            
          
         
            
            AlDagNode::AlCopyOptions::~AlCopyOptions()
            
            
            
               
               Description
               
               
                Deletes this instance of the AlDagNode::AlCopyOptions class. 
               
               
             
            
          
         
            
            boolean AlDagNode::AlCopyOptions::copyAnimation() const
            
            
            
               
               Description
               
               
                Returns TRUE if copying of an AlDagNode’s animation is enabled. 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setCopyAnimation( boolean animation )
            
            
            
               
               Description
               
               
                If "animation" is TRUE, animation data on the AlDagNode will be copied. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the flag was correctly set 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            boolean AlDagNode::AlCopyOptions::instanceCopy() const
            
            
            
               
               Description
               
               
                Returns TRUE if the copies are to be instances of the AlDagNode rather than new objects. 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setInstanceCopy( boolean instance )
            
            
            
               
               Description
               
               
                If "instance" is TRUE, instances of the AlDagNode will be created rather than new objects. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the flag was correctly set 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            boolean AlDagNode::AlCopyOptions::copyClusters() const
            
            
            
               
               Description
               
               
                Returns TRUE if new copies of clusters should be made of clusters that reference geometry below the AlDagNode. 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setCopyClusters( boolean clusters )
            
            
            
               
               Description
               
               
                If "clusters" is TRUE, new copies of clusters will be created for clusters that reference geometry below the AlDagNode. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the flag was correctly set 
               
               
             
            
          
         
            
            int AlDagNode::AlCopyOptions::numCopies() const
            
            
            
               
               Description
               
               
                Returns the number of copies to be created. Zero will be returned if the AlDagNode::AlCopyOptions object wasn’t properly created.
                  
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setNumCopies( int copies )
            
            
            
               
               Description
               
               
                Sets the number of copies to create. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the flag was correctly set 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            AlParamControlType AlDagNode::AlCopyOptions::parameterControl() const
            
            
            
               
               Description
               
               
                Returns the current parameter control setting. This will be one of kPARAMETER_ALL, kPARAMETER_GLOBAL, or kPARAMETER_LOCAL
                  as defined in AlAnim.h. 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setParameterControl( AlParamControlType control )
            
            
            
               
               Description
               
               
                Sets the parameter control to one of kPARAMETER_ALL, kPARAMETER_GLOBAL, or kPARAMETER_LOCAL as defined in AlAnim.h. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the flag was successfully set 
               
               
               sInvalidArgument - control was not one of the three possibilities 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            AlHierarchyType AlDagNode::AlCopyOptions::hierarchy() const
            
            
            
               
               Description
               
               
                Returns the current hierarchy setting. This will be one of kHIERARCHY_NONE, kHIERARCHY_ABOVE, kHIERARCHY_BELOW, or kHIERARCHY_BOTH
                  as defined in AlAnim.h. 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setHierarchy( AlHierarchyType hier )
            
            
            
               
               Description
               
               
                Sets the hierarchy to one of kHIERARCHY_NONE, kHIERARCHY_ABOVE, kHIERARCHY_BELOW, or kHIERARCHY_BOTH as defined in AlAnim.h.
                  
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the flag was successfully set 
               
               
               sInvalidArgument - control was not one of the three possibilities 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            double AlDagNode::AlCopyOptions::timeOffset() const
            
            
            
               
               Description
               
               
                Returns the time offset for the copies if animation is being copied. 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setTimeOffset( double offset )
            
            
            
               
               Description
               
               
                Sets the time offset for copies when copying animation 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the offset was correctly set 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::translation( double& x, double& y, double& z ) const
            
            
            
               
               Description
               
               
                Returns the translation which will be applied to copies of the AlDagNode. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the translation was successfully determined 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setTranslation( double x, double y, double z )
            
            
            
               
               Description
               
               
                Sets the translation, which will be applied to copies of the AlDagNode. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the translation was successfully set 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::rotation( double& x, double& y, double& z ) const
            
            
            
               
               Description
               
               
                Returns the rotation, which will be applied to copies of the AlDagNode. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the rotation was successfully determined 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setRotation( double x, double y, double z )
            
            
            
               
               Description
               
               
                Sets the rotation, which will be applied to copies of the AlDagNode. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the rotation was successfully set 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::scale( double& x, double& y, double& z ) const
            
            
            
               
               Description
               
               
                Returns the scale, which will be applied to copies of the AlDagNode. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the scale was successfully determined 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            statusCode AlDagNode::AlCopyOptions::setScale( double x, double y, double z )
            
            
            
               
               Description
               
               
                Sets the scale, which will be applied to copies of the AlDagNode. 
               
               
             
            
            
               
               Return Codes
               
               
               sSuccess - the scale was successfully set 
               
               
               sInvalidObject - the AlCopyOptions object was not properly created 
               
               
             
            
          
         
            
            statusCode AlDagNode::getSurfaceOrientation( boolean )
            
            
            
               
               Description
               
               
                For the given DAG node, detect whether the surface orientation has been flipped. 
               
               
               Returns TRUE if the surface orientation for the DAG node has not been flipped. 
               
               
               Returns FALSE if the orientation has been flipped. 
               
               
             
            
          
         
            
            statusCode AlDagNode::setSurfaceOrientation( boolean )
            
            
            
               
               Description
               
               
                For the given DAG node, set the surface orientation flag. 
               
               
             
            
            
               
               Arguments
               
               
               < boolean - Set the argument to TRUE to maintain the surface orientation; set it to FALSE to flip the orientation 
               
               
             
            
            
               
               Return Codes
               
               
                sSuccess - the orientation flag was set successfully 
               
               
               sInvalidObject - the DAG node was invalid 
               
               
               sInvalidArgument - the given argument is not valid