IFXAuthorUpdateRecordGroup

The IFXAuthorUpdateRecordGroup class holds a collection of multiresolution mesh (MRM) update records associated with a particular mesh group. Both the Update Record group and the Mesh Group are in a format to facilitate easy back end conversion from popular 3-D authoring tools.

The present implementation assumes that the associated Mesh Group contains one mesh only. Some pre-processing (for example, what is done in AuthorGeomCompiler) may combine a Mesh Group and multiple meshes into a single mesh representation to facilitate easier MRM generation.

The IFXAuthorUpdateRecordGroup contains a list of IFXAuthorVertexUpdate records, one for each vertex in the mesh. Each of the IFXAuthorVertexUpdate records has a short list of IFXAuthorFaceUpdate records. These data structures provide the necessary information to quickly change the current resolution of the associated IFXAuthorMeshGroup to any desired resolution.

Interface Methods

Description

Allocate

Allocates the internal pools of Update records

Deallocate

Dellocates the allocated Update records

GetNumVertexUpdates

Returns the number of allocated records

GetVertexUpdate

Accesses an IFXAuthorVertexUpdate record

AllocateFaceUpdatesToVertexUpdate

Associates the proper number of IFXAuthorFaceUpdate records to a specific IFXAuthorVertexUpdate record.

SetVertexResolution

Sets the resolution of an associated IFXAuthorMeshGroup


IFXAuthorUpdateRecordGroup::Allocate (IFXAuthorGeomIndex uNumVertexUpdates, IFXAuthorGeomIndex uNumFaceUpdates)

This method allocates the internal pools of IFXAuthorVertexUpates and IFXAuthorFaceUpdates.

Parameters:

uNumVertexUpdates

Total number of IFXAuthorVertexUpdate records. This number should be equal to the number of vertices in the associated IFXAuthorMeshGroup.

uNumFaceUpdates

Total number of IFXAuthorFaceUpdate records.

Return Values


IFXAuthorUpdateRecordGroup::Deallocate () 

This method deallocates the associated pools of update records allocated when Allocate() was invoked. Invoking IFXAuthorUpdateRecordGroup's destructor will invoke Deallocate() automatically.

Parameters:

None

Return Values


IFXAuthorUpdateRecordGroup::GetNumVertexUpdates ()

This method returns the number of allocated IFXAuthorVertexUpdate records.

Parameters:

None

Return Values:

IFXAuthorGeomIndex


IFXAuthorUpdateRecordGroup::GetVertexUpdate(IFXAuthorGeomIndex uVertexIndex)

This method accesses an IFXAuthorVertexUpdate record. This accessor method is used when setting or getting data in the update record.

Parameters:

uVertexIndex

An integer index into the internal pool of IFXAuthorVertrexUpdate records.

Return Values: 

A pointer to an IFXAuthorVertexUpdate record.


IFXAuthorUpdateRecordGroup::AllocateFaceUpdatesToVertexUpdate (IFXAuthorGeomIndex uVertexIndex) 

This method is called after setting the vertex update record data to associate the proper number of IFXAuthorFaceUpdate records from the pool to a specific IFXAuthorVertexUpdate record.

This method assumes that there is sufficient data already in the specific IFXAuthorVertexUpdate record to indicate how many IFXAuthorFaceUpdate records will be required.

Parameters:

uVertexIndex

This is an integer index to indicate the IFXAuthorVertexUpdate record to which IFXAuthorFaceUpdates records are allocated.

Return Values


IFXAuthorUpdateRecordGroup::SetVertexResolution(IFXAuthorMeshGroup *pMeshGroup, U32 resolution)

The primary method for authoring the resolution of an associated IFXAuthorMeshGroup. It applies update records to the mesh group, which are passed in through the parameter interface.

Parameters:

*pMeshGroup

A pointer to the associated mesh group.

resolution

An integer number indicating the desired resolution. After invocation, the associated IFXAuthorMeshGroup will have the resolution number of the total number of vertices.

Return Values:

None

§See asterisked (*) statement at Legal Information © 2001 Intel Corporation.