1 #ifndef __FBCHARACTERSOLVER_H__
2 #define __FBCHARACTERSOLVER_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
153 void BackgroundEvaluateInfoEnd(
FBEvaluateInfo* pBackgroundEvaluateInfo);
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);
317 #ifdef FBSDKUseNamespace
This class allows customization of the character manipulator behavior.
FBPropertyCharacter TargetCharacter
Read Write Property: The character being constrained.
virtual const char * GetExtraFKNameAt(int pIndex)
Return the specified extra FK Name (ex.
#define __FBClassDeclare(Name, Parent)
For internal use only.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
virtual double GetCharacterSolverVersion()
Version of the solver. Needs to be overloaded in derived class.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
const char * FBGetCharacterExternalSolverName(int pIndex)
Get character external solver name.
Three dimensional scaling vector.
FBPropertyComponent Source
Read Write Property: Source character when doing a character retarget.
class FBVector3< double > FBVector3d
3D vector.
Contains definitions for object poses.
int mEvaluationId
Last Evaluation Id.
class FBPropertyBaseComponent< FBCharacter * > FBPropertyCharacter
virtual int GetExtraFKCount()
Return number of extra FK model (ex.
Contains definitions for devices, boxes and models.
#define IObject_Declare(IsPure)
Stores options for operations on poses.
virtual int GetExtraBoneCount()
Return number of extra Bone model (ex.
class FBPropertyBaseComponent< FBComponent * > FBPropertyComponent
Property: FBPropertyBaseComponent(FBComponent*)
virtual const char * GetExtraBoneNameAt(int pIndex)
Return The specified extra Bone name (ex.
FBCharacterSolver * FBInstanciateCharacterExternalSolver(int pIndex, const char *pSolverName=((void *) 0))
Instanciate the given external character solver.
Contains definitions for object poses.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
virtual FBBodyPartId GetExtraBoneBodyPartAt(int pIndex)
Return The specified extra Bone BodyPart (ex.
#define FBSDKNamespace
FBSDKNamespace define.
Base class for constraints.
int FBGetCharacterExternalSolverIndex(const char *pName)
Get character external solver index.
Contains definitions for actors, characters, and marker sets In Development.
Used to work with character poses.
A character is the link between a motion source and a character model.
virtual void CharacterPasteState(FBCharacter *pFromCharacter, FBCharacterPose *pPose, FBCharacterPoseOptions &pCharacterPoseOptions)
Paste the state of a character on another one.
AnimationNodeNotify evaluation information.
virtual FBBodyPartId GetExtraFKBodyPartAt(int pIndex)
Return The specified extra FK BodyPart (ex.
virtual void ResetExtraProperties()
Support for resetting properties that are defined and specific to custom solver Override this functio...
int FBGetCharacterExternalSolverCount()
Get character external solver count.
void(* kBackgroundEvaluationCallback)(const FBAnimationNode *pDst, const FBAnimationNode *pSrc, void *pCustomData)
Background Notification Function.
FBBodyPartId
Body part for character.