1 #ifndef __FBCHARACTERSOLVER_H__ 2 #define __FBCHARACTERSOLVER_H__ 45 #include <kaydaradef.h> 50 #define FBSDK_DLL K_DLLIMPORT 55 #if !defined(K_NO_MANIPULATOR) 62 #ifdef FBSDKUseNamespace 75 #define FBRegisterCharacterSolver( UniqueNameStr, ClassName, Label, Description, IconFilename ) \ 76 HIObject RegisterCharacterSolver##ClassName##Create( HIObject ,const char* pName,void * ) \ 78 ClassName *Class = new ClassName(pName); \ 79 Class->UniqueName = UniqueNameStr; \ 80 if (Class->FBCreate()) { \ 81 return Class->GetHIObject(); \ 88 FBLibraryModule( ClassName ) \ 90 FBRegisterObject( ClassName##R1,"FbxStorable/CharacterSolver",UniqueNameStr,Description,RegisterCharacterSolver##ClassName##Create, true, IconFilename ); \ 91 FBRegisterObject( ClassName##R2,"Character/Solvers",UniqueNameStr,Description,RegisterCharacterSolver##ClassName##Create,true, IconFilename ); \ 99 #define FBCharacterSolverDeclare( ClassName, Parent ) \ 100 FBClassDeclare( ClassName, Parent ); \ 102 ClassName(const char* pName):Parent(pName) { FBClassInit; } \ 108 #define FBCharacterSolverImplementation( ThisComponent ) \ 109 FBClassImplementation( ThisComponent ) 128 #ifndef DOXYGEN_SHOULD_SKIP_THIS 129 IObject_Declare(K_IMPLEMENTATION);
153 void BackgroundEvaluateInfoEnd(
FBEvaluateInfo* pBackgroundEvaluateInfo);
162 bool BackgroundEvaluateInfoNotify(
FBEvaluateInfo* pBackgroundEvaluateInfo, kBackgroundEvaluationCallback pFunction,
void* pCustomData=NULL);
164 void ResetConnectorSetup();
204 FBModel* GetExtraBoneModelAt(
int pIndex);
217 void SetExtraBoneModelAt(
FBModel* pModel,
int pIndex);
226 void ExtractOffsets();
249 void GetParentRotationOffset(
FBRVector &pR,
int pIndex );
256 void SetParentRotationOffset(
FBRVector &pR,
int pIndex );
277 bool GetDoubleSolve();
281 bool GetBlendAuxiliaryWithEffector();
285 void SetBlendAuxiliaryWithEffector(
bool pBlendAux);
294 FBSDK_DLL int FBGetCharacterExternalSolverCount();
300 FBSDK_DLL const char* FBGetCharacterExternalSolverName(
int pIndex);
306 FBSDK_DLL int FBGetCharacterExternalSolverIndex(
const char* pName);
317 #ifdef FBSDKUseNamespace Used to work with character poses.
This class allows customization of the character manipulator behavior.
#define __FBClassDeclare(Name, Parent)
For internal use only.
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
virtual int GetExtraBoneCount()
Return number of extra Bone model (ex.
Contains definitions for object poses.
FBBodyPartId
Body part for character.
virtual FBBodyPartId GetExtraFKBodyPartAt(int pIndex)
Return The specified extra FK BodyPart (ex.
Contains definitions for devices, boxes and models.
int mEvaluationId
Last Evaluation Id.
virtual FBBodyPartId GetExtraBoneBodyPartAt(int pIndex)
Return The specified extra Bone BodyPart (ex.
virtual double GetCharacterSolverVersion()
Version of the solver. Needs to be overloaded in derived class.
Contains definitions for object poses.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Three dimensional scaling vector.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
#define FBSDKNamespace
FBSDKNamespace define.
FBPropertyComponent Source
Read Write Property: Source character when doing a character retarget.
Stores options for operations on poses.
class K_DLLIMPORT FBPropertyBaseComponent< FBComponent *> FBPropertyComponent
Property: FBPropertyBaseComponent(FBComponent*)
FBPropertyCharacter TargetCharacter
Read Write Property: The character being constrained.
virtual void ResetExtraProperties()
Support for resetting properties that are defined and specific to custom solver Override this functio...
Contains definitions for actors, characters, and marker sets In Development.
Base class for constraints.
virtual int GetExtraFKCount()
Return number of extra FK model (ex.
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.
virtual const char * GetExtraFKNameAt(int pIndex)
Return the specified extra FK Name (ex.
virtual const char * GetExtraBoneNameAt(int pIndex)
Return The specified extra Bone name (ex.
virtual void CharacterPasteState(FBCharacter *pFromCharacter, FBCharacterPose *pPose, FBCharacterPoseOptions &pCharacterPoseOptions)
Paste the state of a character on another one.
A character is the link between a motion source and a character model.
AnimationNodeNotify evaluation information.