Open Reality Reference Guide
fbcharactermanipulator.h
Go to the documentation of this file.
1 #ifndef __FBCHARACTERMANIPULATOR_H__
2 #define __FBCHARACTERMANIPULATOR_H__
3 /**************************************************************************
4  Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5  All Rights Reserved.
6 
7  The coded instructions, statements, computer programs, and/or related
8  material (collectively the "Data") in these files contain unpublished
9  information proprietary to Autodesk, Inc. and/or its licensors, which is
10  protected by Canada and United States of America federal copyright law
11  and by international treaties.
12 
13  The Data may not be disclosed or distributed to third parties, in whole
14  or in part, without the prior written consent of Autodesk, Inc.
15  ("Autodesk").
16 
17  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20  ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21  OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22  PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23  WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24  FREE.
25 
26  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28  EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29  DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30  OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31  DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32  LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33  LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34  DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35  BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36 
37 **************************************************************************/
38 
43 #include <kaydaradef.h>
44 #ifndef FBSDK_DLL
45 
48  #define FBSDK_DLL K_DLLIMPORT
49 #endif
50 
51 #include <fbsdk/fbcomponent.h>
52 #include <fbsdk/fbcore.h>
53 #include <fbsdk/fbcharacter.h>
54 
55 #ifdef FBSDKUseNamespace
56  namespace FBSDKNamespace {
57 #endif
58 
60 // Return value for manipulation functions
64 {
68 };
69 
72 {
76 };
77 
80 {
83 };
84 
87 {
94 };
95 
98 {
102 };
103 
106 {
113 };
114 
117 {
122 };
123 
126 {
131 };
132 
133 FB_DEFINE_COMPONENT( FBSDK_DLL, CharacterManipulator );
134 FB_DEFINE_COMPONENT( FBSDK_DLL, CharacterManipulatorCtrlSet );
135 
137 // FBCharacterManipulator
139 
163 
166 {
168 public:
173  FBCharacterManipulator(const char* pName, HIObject pObject=NULL);
174 
180  virtual FBManipulationGetResult TranslationIsEditable( bool &pEditable, FBReferencialType pRefType ) = 0;
181 
182  // Manipulation Get/Set
190  virtual FBManipulationSetResult TranslationSet( FBTVector &pT, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat ) = 0;
198 
199  // Manipulation
207  virtual void TranslationStopManipulation () = 0;
208 
209 
210  //Rotation
216  virtual FBManipulationGetResult RotationIsEditable( bool &pEditable, FBReferencialType pRefType ) = 0;
217 
218  /* Matrix Get/Set */
226  virtual FBManipulationSetResult RotationSet( FBMatrix &pRM, FBReferencialType pRefType, FBSetType pSetType, bool pOnlyRoot = false ) = 0;
233 
234  /* Manipulation */
242  virtual void RotationStopManipulation () = 0;
243 
244  //Scaling
249  virtual FBManipulationGetResult ScalingIsEditable( bool &pEditable ) = 0;
250 
251  /* Manipulation Get/Set*/
259  virtual FBManipulationSetResult ScalingSet( FBSVector &pS, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat ) = 0;
266 
267  /* Manipulation */
275  virtual void ScalingStopManipulation () = 0;
276 
281 
286 
291 };
292 
298 #define FBCharacterManipulatorCtrlSetDeclare( ClassName, Parent ) \
299  FBClassDeclare( ClassName, Parent ); \
300  public: \
301  ClassName(const char* pName):Parent(pName) { FBClassInit; } \
302  private:
303 
307 #define FBCharacterManipulatorCtrlSetImplementation( ThisComponent ) \
308  FBClassImplementation( ThisComponent )
309 
311 // FBCharacterManipulatorCtrlSet
314 
317 {
319 public:
324  FBCharacterManipulatorCtrlSet(const char* pName, HIObject pObject=NULL);
325 
330 
335  virtual void AllocateState(FBCharacter* pCharacter);
336 
340  virtual void DeallocateState();
341 
345  bool IsFullBody();
346 
351 
355  bool IsBodyPart();
356 
361 
366 
370  bool IsIKPivotUse();
371 
374  virtual void SyncCharacter(FBEvaluateInfo *pEvalInfo);
375 
380 
385 
390 
395 
400 
406 
412 
419 
424  float GetEffectorReachTValue(int pEffectorId);
429  void SetEffectorReachTValue(int pEffectorId, float pValue);
430 
435  float GetEffectorPullValue(int pEffectorId);
440  void SetEffectorPullValue(int pEffectorId, float pValue);
441 
446  void TranslationSetGlobal(FBTVector pVector, int pEffectorId);
451  void TranslationSetLocal(FBTVector pVector, int pEffectorId);
452 
453  //For the following function, please see the description in the parent class.
454  //Translation
455  virtual FBManipulationGetResult TranslationIsEditable( bool &pEditable, FBReferencialType pRefType ) override;
456  // Manipulation Get/Set
457  virtual FBManipulationSetResult TranslationSet( FBTVector &pT, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat ) override;
459  // Manipulation
460  virtual FBManipulationStartResult TranslationStartManipulation( FBReferencialType pRefType, const FBTime* pTime = NULL ) override;
461  void TranslationStopManipulation () override;
462 
463  //Rotation
464  virtual FBManipulationGetResult RotationIsEditable( bool &pEditable, FBReferencialType pRefType ) override;
465  /* Matrix Get/Set */
466  virtual FBManipulationSetResult RotationSet( FBMatrix &pRM, FBReferencialType pRefType, FBSetType pSetType, bool pOnlyRoot = false ) override;
467  virtual FBManipulationGetResult RotationGet( FBMatrix &pRM, FBReferencialType pRefType ) override;
468  /* Manipulation */
470  virtual void RotationStopManipulation () override;
471 
472  //Scaling
473  virtual FBManipulationGetResult ScalingIsEditable( bool &pEditable ) override;
474  /* Manipulation Get/Set*/
476  virtual FBManipulationSetResult ScalingSet( FBSVector &pS, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat ) override;
477  /* Manipulation */
479  virtual void ScalingStopManipulation () override;
480 };
481 
482 #ifdef FBSDKUseNamespace
483  }
484 #endif
485 #endif
FBManipPivotObjectScaling
@ FBManipPivotObjectScaling
Consider the scaling of the pivot.
Definition: fbcharactermanipulator.h:120
FBCharacterManipulatorCtrlSet::GetEffectorSet
FBEffectorSetID GetEffectorSet()
Find the index of the currently manipulated effector set.
FBCharacterManipulatorCtrlSet::IsDescendantPulling
bool IsDescendantPulling(FBEffectorId pEffectorId)
Determine if one of the effector's child has a IK Pull value bigger than 0.5 on the current manipulat...
FBCharacterManipulatorCtrlSet::FBCharacterManipulatorCtrlSet
FBCharacterManipulatorCtrlSet(const char *pName, HIObject pObject=NULL)
Constructor.
FBRefTypeSumLayers
@ FBRefTypeSumLayers
Global additive rotation.
Definition: fbcharactermanipulator.h:92
FBCharacterManipulatorCtrlSet::GetEffectorPullValue
float GetEffectorPullValue(int pEffectorId)
Get the pull (IK Pull since MotionBuilder 2013) value for a specified effector on the current manipul...
kFBManipulationOKNoUndo
@ kFBManipulationOKNoUndo
This value means that the manipulation will be done, but the manipulation will not be undoable.
Definition: fbcharactermanipulator.h:66
FBRefTypeParent
@ FBRefTypeParent
Parenting mode.
Definition: fbcharactermanipulator.h:93
kFBManipulationGetFail
@ kFBManipulationGetFail
Return this value to prevent other manipulator to handle the request.
Definition: fbcharactermanipulator.h:75
FBCharacterManipulatorCtrlSet::ScalingSet
virtual FBManipulationSetResult ScalingSet(FBSVector &pS, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat) override
Set the value of the scale to the manipulated model.
FBManip_EditorScaling
@ FBManip_EditorScaling
Scaling Manipulation Mode.
Definition: fbcharactermanipulator.h:130
FBCharacterManipulatorCtrlSet::GetDescendantEffector
FBEffectorId GetDescendantEffector(FBEffectorId pEffectorId, int pIndex)
Return the child effector for the provided effector.
FBReferencialType
FBReferencialType
Specify the referential when a manipulation function is called.
Definition: fbcharactermanipulator.h:87
FBCharacterManipulatorCtrlSet::TranslationIsEditable
virtual FBManipulationGetResult TranslationIsEditable(bool &pEditable, FBReferencialType pRefType) override
Returned value will indicate if a translation manipulation can be done.
FBCharacterManipulatorCtrlSet::IsFullBodyNoPull
bool IsFullBodyNoPull()
Determine if the character is in Full Body - No Pull keying mode.
FBSetWhatY
@ FBSetWhatY
Set only the Y component of the value.
Definition: fbcharactermanipulator.h:109
FBCharacterManipulatorCtrlSet::TranslationSetLocal
void TranslationSetLocal(FBTVector pVector, int pEffectorId)
Set the translation for the specified effector on the current manipulated character in local coordina...
FBManipPivot
FBManipPivot
Specify how the pivot should be interpreted.
Definition: fbcharactermanipulator.h:117
FBCharacterManipulatorCtrlSet::TranslationStartManipulation
virtual FBManipulationStartResult TranslationStartManipulation(FBReferencialType pRefType, const FBTime *pTime=NULL) override
Called to determine if the manipulation can be done.
FBCharacterManipulator::RotationStartManipulation
virtual FBManipulationStartResult RotationStartManipulation(FBReferencialType pRefType)=0
Called to determine if the manipulation can be done.
FBCharacterManipulatorCtrlSet::SetEffectorReachTValue
void SetEffectorReachTValue(int pEffectorId, float pValue)
Set the reach T (IK Blend T since MotionBuilder 2013) value for a specified effector on the current m...
__FB_FORWARD
__FB_FORWARD(FBCharacterManipulator)
Used to translate, rotate or scale a character.
FBCharacterManipulatorCtrlSet::RotationIsEditable
virtual FBManipulationGetResult RotationIsEditable(bool &pEditable, FBReferencialType pRefType) override
Returned value will indicate if a rotation manipulation can be done.
FBCharacterManipulatorCtrlSet
Constraint class.
Definition: fbcharactermanipulator.h:317
FBSetTypeCumulative
@ FBSetTypeCumulative
Add the provided value to the original value.
Definition: fbcharactermanipulator.h:101
FBSetWhatXYZ
@ FBSetWhatXYZ
Set the XYZ components of the value.
Definition: fbcharactermanipulator.h:111
FBCharacterManipulator::TranslationStartManipulation
virtual FBManipulationStartResult TranslationStartManipulation(FBReferencialType pRefType, const FBTime *pTime=NULL)=0
Called to determine if the manipulation can be done.
FBSDK_DLL
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbcharactermanipulator.h:48
FBSetWhatX
@ FBSetWhatX
Set only the X component of the value.
Definition: fbcharactermanipulator.h:108
FBManipPivotObjectTranslation
@ FBManipPivotObjectTranslation
Consider the translation of the pivot.
Definition: fbcharactermanipulator.h:118
FBSetTypeNone
@ FBSetTypeNone
Do nothing with the value.
Definition: fbcharactermanipulator.h:99
FBSetWhatZ
@ FBSetWhatZ
Set only the Z component of the value.
Definition: fbcharactermanipulator.h:110
FBRefTypeNone
@ FBRefTypeNone
No type specified.
Definition: fbcharactermanipulator.h:88
FBVector4< double >
kFBManipulationOK
@ kFBManipulationOK
This is the default value to return, means that you will handle the manipulation.
Definition: fbcharactermanipulator.h:65
FBTime
Time data structure.
Definition: fbtime.h:88
kFBManipulationSetContinue
@ kFBManipulationSetContinue
Return this value when you don't want handle the request, another manipulator will try to handle it.
Definition: fbcharactermanipulator.h:81
FBCharacterManipulator::IsReleasePinPressed
bool IsReleasePinPressed()
Call this to know if the Button Release is on when manipulating.
FBRefTypeGlobal
@ FBRefTypeGlobal
Referential is in global coordinate.
Definition: fbcharactermanipulator.h:89
FBCharacterManipulator::TranslationGet
virtual FBManipulationGetResult TranslationGet(FBTVector &pT, FBReferencialType pRefType, FBManipPivot pPivot=FBManipPivotObjectTranslation)=0
Get the translation manipulator position.
FBCharacterManipulator::TranslationIsEditable
virtual FBManipulationGetResult TranslationIsEditable(bool &pEditable, FBReferencialType pRefType)=0
Returned value will indicate if a translation manipulation can be done.
FBManipPivotObjectRotation
@ FBManipPivotObjectRotation
Consider the rotation of the pivot.
Definition: fbcharactermanipulator.h:119
FBCharacterManipulatorCtrlSet::GetManipulatedEffectorIdForTranslation
FBEffectorId GetManipulatedEffectorIdForTranslation()
Find the index of the currently manipulated effector For Translation.
FBCharacterManipulatorCtrlSet::ScalingStartManipulation
virtual FBManipulationStartResult ScalingStartManipulation(FBReferencialType pRefType) override
Called to determine if the manipulation can be done.
FBCharacterManipulator::ScalingIsEditable
virtual FBManipulationGetResult ScalingIsEditable(bool &pEditable)=0
Returned value will indicate if a scaling manipulation can be done.
FBCharacterManipulatorCtrlSet::AllocateState
virtual void AllocateState(FBCharacter *pCharacter)
Override this method to allocate the necessary state requires when manipulating a character.
FBCharacterManipulatorCtrlSet::TranslationGet
virtual FBManipulationGetResult TranslationGet(FBTVector &pT, FBReferencialType pRefType, FBManipPivot pPivot=FBManipPivotObjectTranslation) override
Get the translation manipulator position.
kFBManipulationRefuse
@ kFBManipulationRefuse
Manipulation will be skipped.
Definition: fbcharactermanipulator.h:67
FBCharacter
A character is the link between a motion source and a character model.
Definition: fbcharacter.h:1388
FBSetWhatNone
@ FBSetWhatNone
Do nothing with the value.
Definition: fbcharactermanipulator.h:107
FBManip_EditorTranslation
@ FBManip_EditorTranslation
Translation Manipulation Mode.
Definition: fbcharactermanipulator.h:128
FBCharacterManipulator::RotationIsEditable
virtual FBManipulationGetResult RotationIsEditable(bool &pEditable, FBReferencialType pRefType)=0
Returned value will indicate if a rotation manipulation can be done.
FBCharacterManipulator::TranslationSet
virtual FBManipulationSetResult TranslationSet(FBTVector &pT, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat)=0
Set the value of the translation to the manipulated model.
FBCharacterManipulatorCtrlSet::GetManipulatedEffectorIdForRotation
FBEffectorId GetManipulatedEffectorIdForRotation()
Find the index of the currently manipulated effector for Rotation Only.
FBCharacterManipulatorCtrlSet::RotationStopManipulation
virtual void RotationStopManipulation() override
Called when the manipulation is finished.
FBCharacterManipulator::GetManipulatedNode
FBModel * GetManipulatedNode()
return the manipulated Model
__FBClassDeclare
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
FBCharacterManipulatorCtrlSet::IsFullBody
bool IsFullBody()
Determine if the character is in Full Body keying mode.
FBRefTypeLocal
@ FBRefTypeLocal
Referential is in local coordinate.
Definition: fbcharactermanipulator.h:90
FBCharacterManipulator::ScalingStopManipulation
virtual void ScalingStopManipulation()=0
Called when the manipulation is finished.
FBCharacterManipulatorCtrlSet::IsIKPivotUse
bool IsIKPivotUse()
Determine if IK pivot are used when manipualting a character.
FBCharacterManipulatorCtrlSet::SyncCharacter
virtual void SyncCharacter(FBEvaluateInfo *pEvalInfo)
Synchronize the character after doing a manipulation using this function.
FBManipulationSetResult
FBManipulationSetResult
Manipulation Set Result.
Definition: fbcharactermanipulator.h:80
FBCharacterManipulatorCtrlSet::RotationStartManipulation
virtual FBManipulationStartResult RotationStartManipulation(FBReferencialType pRefType) override
Called to determine if the manipulation can be done.
FBCharacterManipulatorCtrlSet::GetCharacter
FBCharacter * GetCharacter()
Returns the character being manipulated.
FBManipMode
FBManipMode
Manipulator Mode.
Definition: fbcharactermanipulator.h:126
FBCharacterManipulatorCtrlSet::SetEffectorPullValue
void SetEffectorPullValue(int pEffectorId, float pValue)
Set the pull (IK Pull since MotionBuilder 2013) value for a specified effector on the current manipul...
FBCharacterManipulatorCtrlSet::ScalingIsEditable
virtual FBManipulationGetResult ScalingIsEditable(bool &pEditable) override
Returned value will indicate if a scaling manipulation can be done.
FBSetWhat
FBSetWhat
Specify what part of the provided value should be used.
Definition: fbcharactermanipulator.h:106
FBCharacterManipulatorCtrlSet::IsReachOverride
bool IsReachOverride()
Determine if the reach override option is enable for the manipulated character.
FBCharacterManipulator::ScalingSet
virtual FBManipulationSetResult ScalingSet(FBSVector &pS, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat)=0
Set the value of the scale to the manipulated model.
FBCharacterManipulator::GetManipulatorMode
FBManipMode GetManipulatorMode()
return the manipulator Mode
FBCharacterManipulator::RotationSet
virtual FBManipulationSetResult RotationSet(FBMatrix &pRM, FBReferencialType pRefType, FBSetType pSetType, bool pOnlyRoot=false)=0
Set the value of the translation to the manipulated model.
FBMatrix
Four x Four (double) Matrix.
Definition: fbtypes.h:290
FBCharacterManipulatorCtrlSet::GetEffectorReachTValue
float GetEffectorReachTValue(int pEffectorId)
Get the reach T (IK Blend T since MotionBuilder 2013) value for a specified effector on the current m...
FBCharacterManipulator::TranslationStopManipulation
virtual void TranslationStopManipulation()=0
Called when the manipulation is finished.
FBCharacterManipulatorCtrlSet::TranslationSet
virtual FBManipulationSetResult TranslationSet(FBTVector &pT, FBReferencialType pRefType, FBSetType pSetType, FBSetWhat pSetWhat) override
Set the value of the translation to the manipulated model.
kFBManipulationSetFail
@ kFBManipulationSetFail
Return this value when you have set the value.
Definition: fbcharactermanipulator.h:82
FBEffectorId
FBEffectorId
All effector nodes.
Definition: fbcharacter.h:364
FBCharacterManipulatorCtrlSet::TranslationSetGlobal
void TranslationSetGlobal(FBTVector pVector, int pEffectorId)
Set the translation for the specified effector on the current manipulated character in global coordin...
fbcomponent.h
Basic class definitions.
FBBodyNodeId
FBBodyNodeId
All body nodes.
Definition: fbcharacter.h:125
FBManip_EditorOther
@ FBManip_EditorOther
Unknown Manipulation Mode.
Definition: fbcharactermanipulator.h:127
FBCharacterManipulatorCtrlSet::GetManipulatedBodyNode
FBBodyNodeId GetManipulatedBodyNode()
Find the index of the currently manipulated effector set.
FBSetType
FBSetType
Specify what to do with the provided value.
Definition: fbcharactermanipulator.h:98
FBManipPivotObjectUnknown
@ FBManipPivotObjectUnknown
Don't consider the pivot.
Definition: fbcharactermanipulator.h:121
FBSetWhatAll
@ FBSetWhatAll
Set all components of the value.
Definition: fbcharactermanipulator.h:112
FBManipulationGetResult
FBManipulationGetResult
Manipulation Get Result.
Definition: fbcharactermanipulator.h:72
FBManip_EditorRotation
@ FBManip_EditorRotation
Rotation Manipulation Mode.
Definition: fbcharactermanipulator.h:129
fbcore.h
Contains definitions for devices, boxes and models.
FBCharacterManipulatorCtrlSet::GetDescendantEffectorCount
int GetDescendantEffectorCount(FBEffectorId pEffectorId)
Return the child effector count of the provided effector based on the skeleton hierarchy.
FBCharacterManipulatorCtrlSet::TranslationStopManipulation
void TranslationStopManipulation() override
Called when the manipulation is finished.
FBCharacterManipulator::RotationStopManipulation
virtual void RotationStopManipulation()=0
Called when the manipulation is finished.
FBCharacterManipulator::FBCharacterManipulator
FBCharacterManipulator(const char *pName, HIObject pObject=NULL)
Constructor.
FBSVector
Three dimensional scaling vector.
Definition: fbtypes.h:566
FBCharacterManipulatorCtrlSet::ScalingStopManipulation
virtual void ScalingStopManipulation() override
Called when the manipulation is finished.
FBCharacterManipulatorCtrlSet::ScalingGet
virtual FBManipulationGetResult ScalingGet(FBSVector &pS, FBReferencialType pRefType) override
Get the scale manipulator position.
FBSetTypeExact
@ FBSetTypeExact
Set the value directly.
Definition: fbcharactermanipulator.h:100
FB_DEFINE_COMPONENT
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
FBCharacterManipulator
Character Manipulator class.
Definition: fbcharactermanipulator.h:166
FBCharacterManipulatorCtrlSet::GetManipulatedEffectorId
FBEffectorId GetManipulatedEffectorId()
Find the index of the currently manipulated effector for Translation or Rotation depending of Mode.
kFBManipulationGetContinue
@ kFBManipulationGetContinue
Return this value when you cannot provided the requested value, another manipulator will try to provi...
Definition: fbcharactermanipulator.h:74
FBCharacterManipulatorCtrlSet::RotationGet
virtual FBManipulationGetResult RotationGet(FBMatrix &pRM, FBReferencialType pRefType) override
Get the rotation manipulator position.
FBCharacterManipulator::ScalingStartManipulation
virtual FBManipulationStartResult ScalingStartManipulation(FBReferencialType pRefType)=0
Called to determine if the manipulation can be done.
FBEvaluateInfo
AnimationNodeNotify evaluation information.
Definition: fbevaluateinfo.h:79
FBCharacterManipulatorCtrlSet::DeallocateState
virtual void DeallocateState()
Override this method to deallocate the state allocate in the AllocateState() function.
FBCharacterManipulatorCtrlSet::IsStiffnessOverride
bool IsStiffnessOverride()
Determine if the stiffness override option is enable for the manipulated character.
FBModel
Model class.
Definition: fbmodel.h:274
FBComponent
MotionBuilder SDK base class.
Definition: fbcomponent.h:651
FBCharacterManipulatorCtrlSet::IsBodyPart
bool IsBodyPart()
Determine if the character is in Body Part keying mode.
FBManipulationStartResult
FBManipulationStartResult
Manipulation Start Result.
Definition: fbcharactermanipulator.h:64
FBRefTypeLayer
@ FBRefTypeLayer
Local additive rotation.
Definition: fbcharactermanipulator.h:91
FBCharacterManipulatorCtrlSet::RotationSet
virtual FBManipulationSetResult RotationSet(FBMatrix &pRM, FBReferencialType pRefType, FBSetType pSetType, bool pOnlyRoot=false) override
Set the value of the translation to the manipulated model.
fbcharacter.h
Contains definitions for actors, characters, and marker sets In Development.
FBEffectorSetID
FBEffectorSetID
Effector ID identifier.
Definition: fbcharacter.h:416
FBCharacterManipulator::RotationGet
virtual FBManipulationGetResult RotationGet(FBMatrix &pRM, FBReferencialType pRefType)=0
Get the rotation manipulator position.
FBCharacterManipulator::ScalingGet
virtual FBManipulationGetResult ScalingGet(FBSVector &pS, FBReferencialType pRefType)=0
Get the scale manipulator position.
kFBManipulationGetDone
@ kFBManipulationGetDone
Return this value when you can provided the requested value.
Definition: fbcharactermanipulator.h:73