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