IFXAnimationModifier

The IFXAnimationModifier interface gets and sets bone information used for bones-based character animation. It includes three interfaces: IFXModifier, IFXSkeleton, and IFXAnimationModifier.

Modifier Methods

Interface Methods

Description

AddModifier

Attaches a new modifier to the end of the linked list

GetNextModifier

Retrieves a pointer to the next modifier in the list

SetNextModifier

Inserts a new modifier into the list

GetModelData

Retrieves a pointer to this modifier's IFXModelData

SetModelData

Assigns an IFXModelData pointer to this modifier

Render

Executes the rendering actions of this modifier; in effect, have the modifier do its modifications to the object which is associated with this list of modifiers.

GetScenegraph

Gets the scenegraph

Skeleton Methods (See IFXSkeleton for details)

SetBoneInfo

Set BoneInfo data

GetBoneInfo

Get BoneInfo data

SetTotalBoneWeightCount

Set the total number of vertices with weights and the total of weights for all the vertices

GetTotalBoneWeightCount

Get the total number of vertices with weights and the total of weights for all the vertices

SetBoneWeights

Set the weights for a particular vertex on a specified mesh

GetBoneWeightCount

Get the number of weights for a particular vertex on a specified mesh

GetBoneWeights

Get the weights for a particular vertex on a specified mesh

Animation Modifier Methods

EnhanceWeighting

Cleans up weights and sets up bone links

GetNumberBones

Returns the number of bones in the skeleton

GetBoneIndex

Returns ID for a named bone

FindSkeletonMixer

Finds a named premix in the modifier cache

CalcReachingLimit

Calculates the reaching limit

ParamNotify

Indicates initialize or destruct

GetParamCount

Gets the number of parameters that notified

GetWorldTime

Gets world time from IFXScheduler and updates IFXBonesManager

GetCoreBonesManager

Gets the IFXBonesManager

SelectMotionMixer

Selects a mixer for the model

BlendToMotionMixer

Blends to a mixer for the model

GetWorldTime

Cached world time

IsSingleTrack

Returns TRUE when operating as single-track

ResetToReference

Resets state so at Save data is written in initial reference positions

GetNotificationManager

Gets IFXNotificationManager and adds a reference


IFXAnimationModifier::AddModifier(IFXModifier* pInModifier)

This method causes the modifier to attach the specified modifier onto the end of the linked list of modifiers.

Parameters:

pInModifier

A pointer to the IFXModifier interface of the modifier to be added to the end of the list

Return Values


IFXAnimationModifier::GetNextModifier()

This method returns a pointer to the interface of the next modifier in the linked list.

Parameters:

None

Return Values:

IFXModifier* - The pointer to the interface of the next modifier. This value can be NULL, if the modifier is at the end of the list.


IFXAnimationModifier::SetNextModifier(IFXModifier* pInNextModifier)

This method inserts the specified modifier into the list after the modifier that is called. In other words, the modifier makes the specified modifier its NextModifier. The list is not otherwise disrupted. The input modifier, however, is treated as a single element and subsequently has its NextModifier assigned as well. If the input modifier was part of a pre-existing list, that list becomes broken, unless steps are taken to patch the extraction.

Parameters:

pInNextModifier

A pointer to the IFXModifier interface of the modifier to be inserted into the list

Return Values:

None


IFXAnimationModifier::GetModelData()

This method returns a pointer to the interface of the model data associated with the modifier.

Parameters:

None

Return Values:

IFXModelData* - A pointer to the interface of the model data associated with the modifier.


IFXAnimationModifier::SetModelData(IFXModelData* pInModelData )

This method assigns a model data interface to the modifier.

Parameters:

pInModelData

A pointer to the interface of the model data that will be assigned to the modifier

Return Values:

None

Comments:

A NULL interface pointer can be specified.


IFXAnimationModifier::Render( IFXRenderLayer* pInRenderLayer,  IFXModel* pInModel,  IFXModifierParam* InModifierParam,U32 uInNumberOfLights,  IFXLight** ppInLightList,  IFXView* pInView )

This method uses the provided interfaces, along with the modifier's IFXModelData interface, to apply its modifications. Typically, the modifier will query for the IFXShader interface for each mesh in its ModelData's meshgroup and apply the shader to the mesh.

Parameters:

pInRenderLayer

A pointer to the interface of the rendering layer that the modifier will use

pInModel

A pointer to a model interface

pInModifierParam

A pointer to the interface of a parameter group that this modifier will use

uInNumberOfLights

Specifies how many lights this modifier will use

ppInLightList

An array of pointers to IFXLight interfaces

pInView

A pointer to the interface of the view that the modifier will use

Return Values


IFXAnimationModifier::GetSceneGraph(IFXSceneGraph **ppSceneGraph)

This method gets the scenegraph.

Parameters:

**ppSceneGraph

A pointer to a scenegraph

Return Values


See IFXSkeleton for the Skeleton interface.


Animation Modifier Interface

IFXAnimationModifier::EnhanceWeighting(IFXVertexMapGroup *pVertexMapGroup, bool RegenerateWeights, bool RemoveRogueWeights, bool SmoothWeights, bool CreateBoneLinks, F32 DefaultBoneLinks, F32 SmoothThreshold, F32 WeldMax, F32 ModelSize)

This method cleans up weights and sets up bone links. It must be called after SetModel() and before Render().

Parameters:

pVertexMapGroup

Pointer to the IFXVertexMapGroup

RegenerateWeights

Indicates whether weights were regenerated

RemoveRogueWeights

Indicates whether rogue weights were removed

SmoothWeights

Indicates whether smoothing was applied

CreateBoneLinks

Indicates whether bone links were created

DefaultBoneLinks

Gives the number of bone links

SmoothThreshold

Gives the smoothing threshold amount

WeldMax

Gives the WeldMax amount

ModelSize

Gives the model size

Return Values


IFXAnimationModifier::GetNumberBones ()

This method returns the number of bones in the skeleton.

Parameters:

None

Return Values:

Integer


IFXAnimationModifier::GetBoneIndex (IFXString bonename, U32 *pBoneID)

This method returns the ID for a specific bone.

Parameters:

bonename

Name of a specific bone

pBoneID

Pointer to the specific bone's ID number

Return Values


IFXAnimationModifier::FindSkeletonMixer(IFXString name,IFXSkeletonMixer *pSkeletonMixer)

This method finds a named premix in the modifier cache. If one is not found, and there is a motion with the same name, a new mixer mapped to that motion is created and returned.

Parameters:

name

Name of the skeleton mixer

*pSkeletonMixer

A pointer to a SkeletonMixer

Return Values


IFXAnimationModifier::ParamNotify( bool init, IFXSkeletonModifierParam *pSkelParam)

This method notifies the Skeleton Modifier Parameter of init or destruct.

Parameters:

init

Init state

*pSkelParm

Pointer to an IFXSkeletonModifierParam

Return Values:

None


IFXAnimationModifier::CalcReachingLimit()

This method calculates the reaching limit.

Parameters:

None

Return Values:

Integer


IFXAnimationModifier::GetParamCount ()

This method returns the number of parameters notified.

Parameters:

None

Return Values:

Integer


IFXAnimationModifier::GetWorldTime ()

This method returns the world time from Scheduler and updates the BonesManager.

Parameters:

None

Return Values:

F32


IFXAnimationModifier::GetCoreBonesMangager()

This method accesses and references the IFXBonesManager.

Parameters:

None

Return Values:

IFXBonesManagerInterface*


IFXAnimationModifier::IsSingleTrack()

This method returns True when operating as single-track, also known as "KeyFrame mode." When on, the intention is just to drive the motion of a single non-deformable object instead of the superset of animating a skeleton with deformable skin.

Parameters:

None

Return Values:

BOOL


IFXAnimationModifier::SelectMotionMixer(IFXMotionMixerInterface *pMotionMixer)

This method selects a mixer for this model

Parameters:

pMotionMixer

Pointer to the mixer for the model

Return Values


IFXAnimationModifier::BlendToMotionMixer(IFXMotionMixerInterface *pMotionMixer, const IFXBlendParam *pBlendParam)

This method blends to a mixer for this model.

Parameters:

pMotionMixer

Pointer to the mixer for the model

pBlendParam

Pointer to the blend parameter

Return Values


IFXAnimationModifier::GetWorldTime()

For internal use: cached world time.

Parameters:

None

Return Values:

Interger


IFXAnimationModifier::ResetToReference(IFXMeshGroup *pMesh)

This method resets the state so that Save or Clone commands will write data in initial reference positions.

Parameters:

*pMesh

Pointer to an IFXMeshGroup

Return Values:

None


IFXAnimationModifier::GetNotificationManager()

This method accesses and references the IFXNotificationManager.

Parameters:

None

Return Values:

IFXNotificationManager*

 

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