43#include <kaydaradef.h>
48#define FBSDK_DLL K_DLLIMPORT
56#ifdef FBSDKUseNamespace
57namespace FBSDKNamespace {
126 void FBOpticalSegmentInitProperties();
143 virtual void Refresh();
182 virtual void Refresh();
271 void FBOpticalGapInitProperties();
288 virtual void RemoveAt(
int pIndex );
289 virtual void Refresh();
336 virtual bool ImportKey(
double pX,
double pY,
double pZ=0.0,
double pOcclusion=0.0 );
358 virtual bool ExportKey(
double *pX,
double *pY,
double *pZ=NULL,
double *pOcclusion=NULL );
388 void FBModelMarkerOpticalInitProperties();
428 virtual int Add(
const char* pName = NULL );
473 virtual int Add(
const char* pName = NULL );
544 void FBRigidBodyInitProperties();
561 virtual void Refresh ();
765 void SetData(
double pX,
double pY,
double pZ=0.0,
double pOcclusion=0.0);
806 virtual int Add(
const char *pName=NULL );
878#ifdef FBSDKUseNamespace
Template class to contain an array of items.
MotionBuilder SDK base class.
kDeviceIOs
Types of I/O for device.
Device Input and Output Notification information structure.
FBPropertyBool SupportOcclusion
Property: Does the device support occulsion?
virtual bool AnimationNodeNotify(FBAnimationNode *pAnimationNode, FBEvaluateInfo *pEvaluateInfo) override
Notification function for animation thread.
virtual void DeviceOpticalRecordFrame(FBTime &pTime, FBDeviceNotifyInfo &pDeviceNotifyInfo)
Record a frame of information from device.
virtual void FBDestroy() override
Open Reality destruction function.
FBPropertyDouble DampingTime
Property: Damping time for device.
virtual void RecordingDoneAnimation(FBAnimationNode *pAnimationNode) override
When recording, finish animation.
FBPropertyTime MarkerTimeStamp
Property: TimeStamp for marker.
FBPropertyDouble OpticalSamplingRate
Property: Resampling rate for optical device.
virtual void DeviceIONotify(kDeviceIOs pAction, FBDeviceNotifyInfo &pDeviceNotifyInfo) override
Real-Time engine thread: Device I/O.
void DeviceOpticalBeginSetup()
Begin device setup.
virtual bool FbxStore(FBFbxObject *pFbxObject, kFbxObjectStore pStoreWhat) override
Storage/Retrieval of information into the FBX file format.
FBPropertyListDeviceOpticalMarker Markers
List: Markers.
FBPropertyBool UseMarkerTimeStamp
Property: Use the individual marker timestamps?
FBPropertyBool ForceOpticalSamplingRate
Property: Force the use of the optical sampling rate?
virtual bool FBCreate() override
Open Reality Creation function.
FBPropertyBool SkipFrame
Property: Skip Record Frame
FBDeviceOptical(const char *pName, HIObject pObject=NULL)
Constructor.
void DeviceOpticalEndSetup()
End device setup.
virtual void RecordingInitAnimation(FBAnimationNode *pAnimationNode) override
When recording, initialize animation.
FBPropertyModel ModelOptical
Property: Optical model for manipulation.
FBPropertyBool AutoAntialiasing
Property: Is it auto-antialiasing?
virtual void DeviceOpticalEvalAllMarkers(FBDeviceNotifyInfo &pDeviceNotifyInfo)
Evaluate all optical markers for the device.
Layout for optical device.
FBPropertyVector3d Position
Property: Current position of marker.
FBPropertyDouble Occlusion
Property: Occulsion data for marker.
void SetData(double pX, double pY, double pZ=0.0, double pOcclusion=0.0)
Set data for optical marker.
FBPropertyModel Model
Property: Model marker access.
FBPropertyBool IsUsed
Property: Is marker used?
FBDeviceOpticalMarker(const char *pName)
Constructor.
AnimationNodeNotify evaluation information.
Optical model marker class.
FBPropertyAnimationNode Data
Property: Data.
FBModelMarkerOptical(const char *pName=NULL, FBModelOptical *pOptical=NULL, HIObject pObject=NULL)
Constructor.
virtual void InsertSegmentedData(FBAnimationNode *pTData, FBAnimationNode *pOData)
Insert segmented data.
virtual int ExportBegin()
Begin export of optical data.
FBPropertyBool Done
Property: Done?
virtual bool ExportKey(double *pX, double *pY, double *pZ=NULL, double *pOcclusion=NULL)
Export a key of optical data.
virtual int ImportBegin()
Begin import of optical data.
virtual FBRigidBody GetRigidBody()
Get the rigid body for the marker.
virtual bool ImportKey(double pX, double pY, double pZ=0.0, double pOcclusion=0.0)
Import a key of optical data.
FBPropertyModelOptical Optical
Property: Optical model.
virtual bool ExportEnd()
End exportation from optical model.
FBPropertyColor Color
Property: Marker color.
virtual bool ImportEnd()
End importation and clean up data.
virtual void SetModelOptical(FBModelOptical *pOptical)
Set the current optical model.
FBPropertyListOpticalGap Gaps
Property: Gaps.
FBPropertyListMarkerSegment Segments
Property: Marker segments.
Advanced optical model information.
FBPropertyBool ShowRigidQuality
Property: Show the rigid quality?
FBPropertyTake UsedTake
Property: Take used by optical model.
FBPropertyInsertSegmentMode InsertSegmentMode
Property: Insert segment mode.
FBPropertyControllerMode ControllerMode
Property: Controller mode.
FBPropertyDouble MaxMatchDistance
Property: Max matching distance.
FBModelOpticalAdvanced(FBModelOptical *pOptical)
Constructor.
virtual void AutomaticBuild()
Automatic build.
FBPropertyBool AutoPlayToNextSegment
Property: Automatic play to next segment ?
FBPropertyBool PlayToNextSegment
Property: Play to next segment ?
FBPropertyAnimationNode Quality
Property: Rigid body quality.
virtual void SkipSegment()
Skip segment.
virtual void CropSegmentsAnimation()
Crop segment animation.
virtual void AcceptAllSegments()
Accept all segments.
virtual void AcceptSegment()
Accept current segment.
FBPropertySegmentMode SegmentMode
Property: Segment mode.
FBPropertyBool Active
Property: Optical engine for model active?
FBPropertyGenerationMode GenerationMode
Property: Optical genration mode.
FBModelOptical(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyListRigidBody RigidBodies
List: Rigid bodies.
virtual bool ExportSetup()
Setup exportation from optical model.
FBPropertyDouble MarkerSize
Read Write Property: Size of markers.
FBPropertyListOpticalSegment Segments
List: Segments.
FBRigidBody CreateRigidBody(const char *pRigidBodyName, FBArrayTemplate< FBModelMarkerOptical * > pMarkers)
Create a new rigid body from the given optical markers.
FBPropertyTime SamplingStop
Read Write Property:Sampling stop time.
virtual bool ImportSetup()
Setup importation for optical model.
FBPropertyTime SamplingStart
Read Write Property: Sampling start time.
virtual void ClearSegments(bool pUnUsedOnly=true)
Clear the segments (by default only the unused).
FBPropertyListModelMarkerOptical Markers
List: Markers.
FBPropertyTime SamplingPeriod
Read Write Property:Sampling period.
FBPropertyAnimationNode Data
Property: Gap curve data.
virtual void InsertControlKey(FBTime &pTime)
Insert a control key for the gap.
FBPropertyTimeSpan TimeSpan
Property: Current timespan.
FBOpticalGap & operator=(const FBOpticalGap &pValue)
Overloaded = operator.
FBOpticalGap(const FBOpticalGap &pGap)
Constructor (copy).
FBOpticalGap(FBModelMarkerOptical *pMarker=NULL)
Constructor.
bool operator==(const FBOpticalGap &pValue) const
Overloaded == operator.
virtual bool IsValid()
Check if valid (if item exists).
FBPropertyGapMode Interpolation
Property: Gap mode.
FBPropertyAnimationNode Data
Property: Segment curve data.
FBPropertyTimeSpan TimeSpan
Property: Current segment timespan.
FBOpticalSegment(const FBOpticalSegment &pSegment)
Constructor.
virtual void Reset()
Reset the marker segment.
FBOpticalSegment(FBModelOptical *pOptical=NULL)
Constructor.
virtual void Cut(FBTime &pTime)
Cut the segment for the marker at a given time.
bool operator==(const FBOpticalSegment &pValue) const
Overloaded == operator.
FBPropertyBool Used
Property: Is segment used?
FBOpticalSegment & operator=(const FBOpticalSegment &pValue)
Overloaded = operator.
FBPropertyModelMarkerOptical Marker
Property: Optical marker.
FBPropertyTimeSpan OriginalTimeSpan
Property: Original timespan for segment.
virtual bool IsValid()
Check if valid (if item exists).
FBPropertyTimeSpan MarkerTimeSpan
Property: Marker/Segment timespan.
PropertyList: Concrete class for PropertyList of component
PropertyList: Device optical marker
virtual int Add(const char *pName=NULL)
Add a marker by name.
virtual void RemoveAt(int pIndex)
Remove a marker.
virtual FBDeviceOpticalMarker * operator[](int pIndex)
Get a marker.
virtual int GetCount()
Get the marker count.
PropertyList: Device optical marker
virtual void RemoveAt(int pIndex)
Remove property at pIndex.
virtual FBOpticalSegment operator[](int pIndex)
[] operator overload.
virtual int GetIndexAt(FBTime &pTime)
Get the segment index at a given time.
virtual int GetCount()
Get the number of properties in the list.
PropertyList: Device optical marker
virtual int Add(const char *pName=NULL)
Add a new optical marker to the list.
virtual void RemoveAt(int pIndex)
Remove property at pIndex.
virtual void Refresh()
Refresh marker list.
virtual int Add(FBModelMarkerOptical *pItem)
Add a new optical marker to the list.
virtual FBModelMarkerOptical * operator[](int pIndex)
[] operator overload.
virtual int GetCount()
Get the number of properties in the list.
PropertyList: ModelOptical.
FBModelOptical * operator[](int pIndex)
Get the ModelOptical at pIndex.
PropertyList: Device optical marker
virtual FBOpticalGap operator[](int pIndex)
[] operator overload.
virtual int GetCount()
Get the number of properties in the list.
PropertyList: Device optical marker
virtual void RemoveAt(int pIndex)
Remove property at pIndex.
virtual FBOpticalSegment operator[](int pIndex)
[] operator overload.
virtual int Add(FBAnimationNode *pData)
Add a segment to the optical model.
virtual int GetCount()
Get the number of properties in the list.
PropertyList: Device optical marker
virtual void RemoveAt(int pIndex)
Remove property at pIndex.
virtual FBRigidBody operator[](int pIndex)
[] operator overload.
virtual int Add(FBModelList &pList, const char *pName=NULL)
Add a new rigid body to the list.
virtual int GetCount()
Get the number of properties in the list.
PropertyList: Device optical marker
virtual int Add(const char *pName=NULL)
Add a new optical marker to the list.
virtual void RemoveAt(int pIndex)
Remove property at pIndex.
virtual void Refresh()
Refresh marker list.
virtual int Add(FBModelMarkerOptical *pItem)
Add a new optical marker to the list.
virtual FBModelMarkerOptical * operator[](int pIndex)
[] operator overload.
virtual int GetCount()
Get the number of properties in the list.
FBRigidBody & operator=(const FBRigidBody &pValue)
Overloaded = operator.
FBPropertyBool Done
Property: Done?
FBRigidBody(const FBRigidBody &pRigidBody)
Constructor.
FBPropertyAnimationNode QualityData
Property: Quality of rigid body.
FBPropertyListRigidBodyMarkers Markers
Property: List of markers composing the rigid body.
FBPropertyModel Model
Property: Rigid body model.
virtual void Snap()
Snap the rigid body.
bool operator==(const FBRigidBody &pValue) const
Overloaded == operator.
FBPropertyInt SmoothWidth
Property: Smoothing width.
FBPropertyRigidBodyMode Mode
Property: Rigid body mode.
virtual bool IsValid()
Check if valid (if item exists).
virtual void ComputeAnimation()
Compute the rigid body animation.
FBRigidBody(FBModelOptical *pOptical=NULL)
Constructor.
#define FB_DEFINE_ARRAY(DllTag, Type)
Define an array (template) for a component (discard the FB..).
class K_DLLIMPORT FBArrayTemplate< FBModel * > FBModelList
typedef class FBSDK_DLL FBArrayTemplate<FBModel*> FBModelList;
#define __FBClassDeclare(Name, Parent)
For internal use only.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
FBGenerationMode
Generation modes for optical model.
@ kFBGenerationFast
Fast re-generation.
@ kFBGenerationNone
No re-generation.
FBRigidBodyMode
Rigid body modes.
@ kFBRigidBodyFast
Fast rigid body mode.
@ kFBRigidBodyBest
Best rigid body mode.
FBGapMode
Gap interpolation modes.
@ kFBGapCurve
Cubic/curve interpolation.
@ kFBGapRigidBody
Use rigid body information.
@ kFBGapBezier
Bezier interpolation.
@ kFBGapSample
Sampled data.
@ kFBGapConstant
Constant interpolation.
@ kFBGapLinear
Linear interpolation.
FBSegmentMode
Segment modes.
@ kFBSegmentMarker
Use marker.
@ kFBSegmentRigidBody
Use rigid body.
FBControllerMode
Controller modes for optical model.
@ kFBControllerRigidBody
Rigid body controller.
@ kFBControllerSegment
Segment controller.
@ kFBControllerNone
No controller mode.
@ kFBControllerLabelling
Labelling controller.
FBInsertSegmentMode
Insert segment modes.
@ kFBInsertSegmentFromStart
Insert from start.
@ kFBInsertSegmentToEnd
Insert to end.
@ kFBInsertSegmentWhole
Insert whole.
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBase< FBVector3d, kFBPT_Vector3D > FBPropertyVector3d
FBPropertyVector3d type definition.
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_DEFINE_LIST(DllTag, Type)
Define a component list.
class K_DLLIMPORT FBPropertyBase< FBTime, kFBPT_Time > FBPropertyTime
Property: FBTime
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
class K_DLLIMPORT FBPropertyBase< FBTimeSpan, kFBPT_TimeSpan > FBPropertyTimeSpan
Property: FBTimeSpan
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
class K_DLLIMPORT FBPropertyBase< FBColor, kFBPT_ColorRGB > FBPropertyColor
FBPropertyColor type definition.
class K_DLLIMPORT FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
kFbxObjectStore
Description of the different store/retrieve passes of the FBX format.
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.