Open Reality Reference Guide
|
|
1 #ifndef __FBCHARACTERSOLVER_H__
2 #define __FBCHARACTERSOLVER_H__
45 #include <kaydaradef.h>
50 #define FBSDK_DLL K_DLLIMPORT
55 #if !defined(K_NO_MANIPULATOR)
59 #include <fbsdk/fbcharacterpose.h>
62 #ifdef FBSDKUseNamespace
63 namespace FBSDKNamespace {
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(
override);
164 void ResetConnectorSetup();
294 FBSDK_DLL int FBGetCharacterExternalSolverCount();
300 FBSDK_DLL const char* FBGetCharacterExternalSolverName(
int pIndex);
306 FBSDK_DLL int FBGetCharacterExternalSolverIndex(
const char* pName);
317 #ifdef FBSDKUseNamespace
bool GetDoubleSolve()
Returns true when control rig has Double Solve property on.
virtual void CharacterPasteState(FBCharacter *pFromCharacter, FBCharacterPose *pPose, FBCharacterPoseOptions &pCharacterPoseOptions)
Paste the state of a character on another one.
class K_DLLIMPORT FBPropertyBaseComponent< FBComponent * > FBPropertyComponent
Property: FBPropertyBaseComponent(FBComponent*)
int mEvaluationId
Last Evaluation Id.
bool GetRigAlign()
Returns true when control rig has Rig Align property on.
FBBodyPartId
Body part for character.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
FBPropertyComponent Source
Read Write Property: Source character when doing a character retarget.
void GetTransformOffset(FBVector3d &pT, FBRVector &pR, FBSVector &pS, int pIndex)
Get the transform of the Given Extra Bone Index.
virtual int GetExtraBoneCount()
Return number of extra Bone model (ex.
Contains definitions for object poses.
virtual FBBodyPartId GetExtraBoneBodyPartAt(int pIndex)
Return The specified extra Bone BodyPart (ex.
Used to work with character poses.
void GetParentRotationOffset(FBRVector &pR, int pIndex)
Get the Parent Rotation Offset of the Given Extra Bone Index.
void SetExtraFKModelAt(FBModelMarker *pModel, int pIndex)
Set the specified extra FK model for a specified Extra FK Index (ex.
@ kFBCtrlSetPartNone
No part selected.
virtual double GetCharacterSolverVersion()
Version of the solver. Needs to be overloaded in derived class.
virtual int GetExtraFKCount()
Return number of extra FK model (ex.
A character is the link between a motion source and a character model.
virtual FBBodyPartId GetExtraFKBodyPartAt(int pIndex)
Return The specified extra FK BodyPart (ex.
This class allows customization of the character manipulator behavior.
#define __FBClassDeclare(Name, Parent)
For internal use only.
void BackgroundEvaluateInfoEnd(FBEvaluateInfo *pBackgroundEvaluateInfo)
Release background evaluation info - very important.
bool BackgroundEvaluateInfoNotify(FBEvaluateInfo *pBackgroundEvaluateInfo, kBackgroundEvaluationCallback pFunction, void *pCustomData=NULL)
Enable evaluation notification.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Stores options for operations on poses.
virtual void ResetExtraProperties()
Support for resetting properties that are defined and specific to custom solver Override this functio...
virtual const char * GetExtraFKNameAt(int pIndex)
Return the specified extra FK Name (ex.
bool GetBlendAuxiliaryWithEffector()
Returns true means consider blending auxiliary with effector when evaluate control rig.
void SetParentRotationOffset(FBRVector &pR, int pIndex)
Set the Parent Rotation Offset of the Given Extra Bone Index.
FBModelMarker * GetExtraFKModelAt(int pIndex)
Return the specified extra FK model (ex.
FBEvaluateInfo * BackgroundEvaluateInfoBegin(FBEvaluateInfo *pSourceEvaluateInfo, bool pEvaluateCandidates=false)
Start background evaluation.
void ExtractOffsets()
Extract Transforms Of Extra Bones for character stance pose information.
Base class for constraints.
Contains definitions for devices, boxes and models.
Three dimensional scaling vector.
void SetTransformOffset(FBVector3d &pT, FBRVector &pR, FBSVector &pS, int pIndex)
Set the transform of the Given Extra Bone Index.
FBPropertyCharacter TargetCharacter
Read Write Property: The character being constrained.
FBCharacterSolver(const char *pName, HIObject pObject=NULL)
Constructor.
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
FBEvaluateInfo * BackgroundEvaluateInfoRecursiveBegin(FBEvaluateInfo *pSourceEvaluateInfo, bool pForceUpdateLocals=false)
Start recursive background evaluation.
virtual const char * GetExtraBoneNameAt(int pIndex)
Return The specified extra Bone name (ex.
FBModel * GetExtraBoneModelAt(int pIndex)
Return The specified extra Bone model (ex.
AnimationNodeNotify evaluation information.
Contains definitions for actors, characters, and marker sets In Development.
void SetExtraBoneModelAt(FBModel *pModel, int pIndex)
Set the specified extra Bone model for a specified Extra Bone Index.
void SetBlendAuxiliaryWithEffector(bool pBlendAux)
Set true means consider blending auxiliary with effector when evaluate an control rig.
class K_DLLIMPORT FBVector3< double > FBVector3d
3D vector.