Interface to Alias polyset vertices.
#include <AlPolysetVertex.h>
class AlPolysetVertex : public AlObject , public AlClusterable , public AlAnimatable , public AlSettable , public AlPickable
AlPolysetVertex();
virtual ~AlPolysetVertex();
virtual AlObject* copyWrapper() const;
virtual AlObjectType type() const;
statusCode worldPosition( double&, double&, double& )const;
statusCode affectedPosition( AlTM&, double&, double&, double& )const;
statusCode unaffectedPosition( double&, double&, double& )const;
statusCode setWorldPosition( double, double, double, boolean );
statusCode setWorldPosition( double, double, double, AlTM );
statusCode setUnaffectedPosition( double, double, double );
statusCode normal( double&, double&, double& ) const;
statusCode setNormal( double, double, double );
statusCode freezeNormalFlag( boolean& ) const;
statusCode setFreezeNormalFlag( boolean );
statusCode st( double&, double& ) const;
statusCode setSt( double, double );
statusCode color( double&, double&, double&, double& ) const;
statusCode setColor( double, double, double, double );
int index() const;
AlPolyset* polyset() const;
statusCode blindData( int, long&, const char *& );
statusCode setBlindData( int, long, const char * );
statusCode removeBlindData( int );
statusCode doUpdates( boolean newState = TRUE );
AlPolysetVertex is the interface to the vertex data of Alias' polyset objects. An AlPolysetVertex can only be created through AlPolyset::newVertex() method, and it can be deleted only through the AlPolyset::deleteVertex() method. AlPolysetVertex's have similar methods to AlCurveCV and AlSurfaceCV for getting and setting the unaffected and affected positions of vertices.
An AlPolysetVertex defines a location in space for a corner of an AlPolygon.
This virtual function returns a non-null pointer to itself, indicating that it is safe to cast to an object of this class.
This virtual function returns a non-null pointer to itself, indicating that it is safe to cast to an object of this class.
This virtual function returns a non-null pointer to itself, indicating that it is safe to cast to an object of this class.
This virtual function returns a non-null pointer to itself, indicating that it is safe to cast to an object of this class.
Constructs an AlPolysetVertex wrapper object.
Deletes an AlPolysetVertex wrapper object.
Makes an exact copy of the AlPolysetVertex wrapper.
Returns the class identifier kPolysetVertexType.
This virtual function returns a non-null pointer to itself, indicating that it is safe to cast to an object of this class.
Returns a pointer to the AlPolyset for this vertex.
Returns the world position of the vertex. This position includes the transformations of all DAG nodes above this polyset, as well as the effect of clusters.
> double& x - the world position in the x direction
> double& y - the world position in the y direction
> double& z - the world position in the z direction
sSuccess - the normal was retrieved from the vertex
sFailure - the vertex is inactive
sInvalidObject - the vertex is invalid
Returns the affected position of the vertex. The affected position is the unaffected position pre-multiplied by the AlTM.
> AlTM& tm - the transformation matrix
> double& x - the affected position in the x direction
> double& y - the affected position in the y direction
> double& z - the affected position in the z direction
sSuccess - the affected position was retrieved from the vertex
sFailure - the vertex is inactive
sInvalidObject - the vertex is invalid
Returns the position of this vertex PRIOR TO ANY TRANSFORMATIONS (hence "unaffected").
> double& x - the local x position
> double& y - the local y position
> double& z - the local z position
sSuccess - the unaffected position was retrieved from the vertex
sFailure - the vertex is inactive
sInvalidObject - the vertex is invalid
See AlDagNode for information.
Sets the world position of the vertex. This includes vertices in clusters.
> double x - the unaffected position in the x direction
> double y - the unaffected position in the y direction
> double z - the unaffected position in the z direction
> boolean includeWorld - include world transformation in move
sSuccess - affected position was set
sFailure - the vertex is inactive
- the move could not be performed
sInvalidObject - the vertex is invalid
Sets the world position of the vertex. This includes vertices within clusters. Note that this method uses the inverse of the transformation matrix that is passed in, so that the calling routine does not need to generate it.
> double x - the unaffected position in the x direction
> double y - the unaffected position in the y direction
> double z - the unaffected position in the z direction
> AlTM tm - user's transformation matrix
sSuccess - affected position was set
sFailure - the vertex is inactive
- the move could not be performed
sInvalidObject - the vertex is invalid
Sets the unaffected position of the vertex.
> double x - the unaffected position in the x direction
> double y - the unaffected position in the y direction
> double z - the unaffected position in the z direction
sSuccess - unaffected position was set
sFailure - the vertex is inactive
sInvalidObject - the vertex is invalid
Gets the normal for the vertex.
> double &x, &y, &z - retrieved 3D vector for the normal
sSuccess - the normal was retrieved from the vertex
sFailure - the vertex is inactive
sInvalidObject - the vertex is invalid
Sets the normal for the vertex.
< double x, y, z - 3D vector for the normal
sSuccess - the normal was retrieved from the polygon
sInvalidObject - the vertex is invalid
sFailure - the normal was frozen or the polyset's normals are frozen
Returns the value of the flag that determines whether or not the renderer recalculates vertex normals.
> freezeNormal - the returned state of the freeze flag
sSuccess - the flag was properly returned
sInvalidObject - the vertex is invalid
Sets the flag that governs whether or not vertex normals are recalculated by the renderer. If the freezeNormal flag is set to TRUE, the renderer will NOT recalculate the vertex normal. If it is set to FALSE, the renderer will recalculate the vertex normal.
< freezeNormal - flag state to set
sSuccess - the flag was properly set
sInvalidObject - the vertex is invalid
Gets the ST coordinates for the vertex. S and T coordinates for a polyset vertex are typically used for texture coordinates, and may be generated based on the parametrization of the surface.
> s - the s coordinate to retrieve
> t - the t coordinate to retrieve
sSuccess - the st coordinates were retrieved from the vertex
sFailure - the st coordinates were invalid and not returned
sInvalidObject - the vertex is invalid
Sets the ST coordinates for the vertex. S and T coordinates for a polyset vertex are typically used for texture coordinates, and may be generated based on the parameterization of the surface.
< s, t - the s,t parametric coordinate for the vertex
sSuccess - the st coordinates were set in the polygon
sFailure - the vertex is inactive
sInvalidObject - the vertex is invalid
Gets the color information for a vertex.
> double &r, &g, &b, &a - the retrieved color information
sSuccess - the color was retrieved from the vertex
sFailure - the vertex is inactive
sInvalidObject - the vertex is invalid
Sets the color information for a vertex.
< double r, g, b, a - the red, green, blue, alpha information to set
sSuccess - the color was set in the polygon
sInvalidObject - the vertex is invalid
Returns the index of this vertex in the polyset. On errors -1 is returned.
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 between 0 and 11999 are reserved. If you would like to reserve a block of "user_types" please contact us.
< user_type - user type of the data desired
> size - number of characters in the block of data
> data - address of the block of data
sSuccess - blind data retrieved
sInvalidObject - object is invalid
Associates a block of data with the object. If a block of data is already associated with this object and this user_type, the old block is replaced by a reference to the new block. The old block of data is not deleted.
< user_type - user type of the blind data desired
< size - number of characters in the block
< data - address of the block of data
sSuccess - operation was successful
sInsufficientMemory - not enough memory to allocate a new block
sInvalidObject - the vertex is invalid
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.
< user_type - user type of the blind desired
sSuccess - operation was successful
sFailure - no such blind data existed sInvalidObject - the given object was not valid