Open Reality Reference Guide
 
Loading...
Searching...
No Matches
fbcharacterextension.h
Go to the documentation of this file.
1#ifndef __FBCHARACTEREXTENSION_H__
2#define __FBCHARACTEREXTENSION_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
48 #define FBSDK_DLL K_DLLIMPORT
49#endif
50
51#include <fbsdk/fbkeyinggroup.h>
52#include <fbsdk/fbmodel.h>
53
54#ifdef FBSDKUseNamespace
55 namespace FBSDKNamespace {
56#endif
57
61
64{
69};
70FB_DEFINE_ENUM( FBSDK_DLL, PlotAllowed );
71
74{
78};
79FB_DEFINE_ENUM( FBSDK_DLL, SyncActivationAndVisibilityMode );
80
83{
89};
90FB_DEFINE_ENUM( FBSDK_DLL, CharacterExtensionStancePoseMode );
91
92FB_DEFINE_COMPONENT( FBSDK_DLL, CharacterExtension );
93FB_DEFINE_LIST( FBSDK_DLL, CharacterExtension );
95
98{
103FB_DEFINE_ENUM( FBSDK_DLL, CharacterExtensionRetargetMode );
104
105
109{
110 public:
116 virtual FBCharacterExtension* operator[]( int pIndex );
117};
118
119
120
122// FBGroup
124
128{
129 //--- Open Reality declaration.
131public:
132
133
134
135
140 FBCharacterExtension(const char* pName, HIObject pObject=NULL);
141
144 virtual void FBDelete() override;
145
150 FBPropertyPlotAllowed PlotAllowed;
151 FBPropertyModel ReferenceModel;
152 FBPropertyCharacterExtensionRetargetMode RetargetMode;
153 FBPropertySyncActivationAndVisibilityMode SyncActivationAndVisibilityMode;
154 FBPropertyCharacterExtensionStancePoseMode StancePoseMode;
155
156
160
164
169
170
175
180
181
186
191
192
197
203
204
210 void GetLabelNameWithExtensionObject( FBString& pLabelName, FBComponent* pObj, bool pReturnObjectNameIfNotFound = false );
211
217
218
223
228 void SetSourceExtension( FBCharacterExtension* pSourceExtension );
229
234
239 void SetSourceExtensionIndex( int pSrcExtIndex );
240
241
246
252
258
264 void SetRetargetSourceProperty( int pPropIndex, FBProperty* pSourceProp );
265
270 void RemoveRetargetSourceProperty( int pPropIndex );
271
272
277};
278
280
281#ifdef FBSDKUseNamespace
282 }
283#endif
284#endif /* this must be the last line of this file */
Objects Grouping class.
FBObjectPose * GetStancePose()
Return stance pose.
FBCharacterExtension * GetMirrorExtension()
Return the character extension determined by MirrorLabel.
void SetSourceExtensionIndex(int pSrcExtIndex)
Set the enum that indicate which extension is used as a source during retargeting,...
void RemoveObjectAndProperties(FBComponent *pObj)
Remove TR Properties from Object.
FBPropertyCharacterExtensionStancePoseMode StancePoseMode
Read Write Property: Character extension stance pose mode.
FBCharacter * GetCharacter()
Return the attached Character.
void GoToStancePose()
Reset object position to the stance.
virtual void FBDelete() override
Virtual FBDelete function.
void SetRetargetSourceProperty(int pPropIndex, FBProperty *pSourceProp)
Set the source property for retargeting.
void SetSourceExtension(FBCharacterExtension *pSourceExtension)
Set the character extension to drive this extension during retargeting.
void GetLabelNameWithExtensionObject(FBString &pLabelName, FBComponent *pObj, bool pReturnObjectNameIfNotFound=false)
Find the label name that was used to store object pose.
FBPropertyBool IncludePartInFullBody
Read Write Property: Include or not this extension when the Full Body mode is active.
int GetRetargetPropertyCount()
Return the total number of retarget properties.
FBPropertyString Label
Read Write Property: The logical name of the extension, use for mirroring.
FBPropertyPlotAllowed PlotAllowed
Read Write Property: Controls if objects in the set are transformable.
FBProperty * GetRetargetReferenceProperty(int pPropIndex)
Return the reference property of the given index.
FBPropertySyncActivationAndVisibilityMode SyncActivationAndVisibilityMode
Read Write Property: The "Sync Activation & Visibility" mode.
bool IsPropertyIncluded(FBProperty *pProp)
Return true if the property is in character extension.
FBPropertyBool IncludePartInBodyPart
Read Write Property: Include or not this extension when the Body Part mode is active.
void RemoveRetargetSourceProperty(int pPropIndex)
Remove the source property for retargeting.
FBComponent * GetExtensionObjectWithLabelName(const FBString &pLabelName)
Find stored object based on label name.
void AddObjectProperties(FBComponent *pObj)
Add TR Properties from Object.
void RetargetAnimation(FBEvaluateInfo *pEvalInfo)
RetargetAnimation.
FBProperty * GetRetargetSourceProperty(int pPropIndex)
Return the source property of the given index (the source property is the property that drives the re...
bool IsElementSelected()
Return true if one object in object dependency list is selected.
FBPropertyInt MirrorLabel
Read Write Property: Enum that indicate which extension is used as mirror, 0 is none,...
FBCharacterExtension * GetSourceExtension()
Return the character extension that is used to drive this extension during retargeting.
FBPropertyCharacterExtensionRetargetMode RetargetMode
Read Write Property: Character extension retarget mode.
void UpdateStancePose()
Update the stance pose to the current position of the character extension element.
int GetSourceExtensionIndex()
Return the enum that indicate which extension is used as a source during retargeting,...
FBCharacterExtension(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyModel ReferenceModel
Read Write Property: Controls the referential of the extension.
A character is the link between a motion source and a character model.
MotionBuilder SDK base class.
AnimationNodeNotify evaluation information.
KeyingGroup class.
FBObjectPose class.
Property: Base property class.
Character extension property list.
virtual FBCharacterExtension * operator[](int pIndex)
Get the CharacterExtension at pIndex.
PropertyList: Concrete class for PropertyList of component
Property class: const char * (String).
Basic string class.
Definition fbstring.h:67
FBCharacterExtensionRetargetMode
@ kFBRetargetModeManual
@ kFBRetargetModeAuto
@ kFBRetargetModeOff
FBSyncActivationAndVisibilityMode
@ kFBSyncMode_WithContolRig
@ kFBSyncMode_WithOthersThanControlRig
@ kFBSyncMode_None
FBCharacterExtensionStancePoseMode
@ kFBStancePose_Self_Or_Reference_Selected
@ kFBStancePose_Never
@ kFBStancePose_Selected
@ kFBStancePose_Reference_Selected
@ kFBStancePose_Always
@ kFBPlotAllowed_Both
@ kFBPlotAllowed_None
@ kFBPlotAllowed_Skeleton
@ kFBPlotAllowed_ControlRig
#define __FBClassDeclare(Name, Parent)
For internal use only.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
KeyingGroups interface for FBSDK.
Base class for Cameras.
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition fbtypes.h:62
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition fbtypes.h:68