fbxmarker.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
00009  
00010 ****************************************************************************************/
00011 
00013 #ifndef _FBXSDK_SCENE_GEOMETRY_MARKER_H_
00014 #define _FBXSDK_SCENE_GEOMETRY_MARKER_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/geometry/fbxnodeattribute.h>
00019 #include <fbxsdk/core/math/fbxvector4.h>
00020 
00021 #include <fbxsdk/fbxsdk_nsbegin.h>
00022 
00023 class FbxManager;
00024 
00029 class FBXSDK_DLL FbxMarker : public FbxNodeAttribute
00030 {
00031     FBXSDK_OBJECT_DECLARE(FbxMarker,FbxNodeAttribute);
00032 
00033 public:
00035     virtual FbxNodeAttribute::EType GetAttributeType() const;
00036 
00038     void Reset();
00039 
00046     enum EType
00047     {
00048         eStandard, 
00049         eOptical, 
00050         eEffectorFK,
00051         eEffectorIK
00052     };
00053 
00057     void SetType(EType pType);
00058 
00062     EType GetType() const;
00063 
00077     enum ELook
00078     { 
00079         eCube, 
00080         eHardCross, 
00081         eLightCross, 
00082         eSphere,
00083         eCapsule,
00084         eBox,
00085         eBone,
00086         eCircle,
00087         eSquare,
00088         eStick,
00089         eNone
00090     };
00091     
00101 
00106     double GetDefaultOcclusion() const;
00107 
00112     void SetDefaultOcclusion(double pOcclusion);
00113 
00118     double GetDefaultIKReachTranslation() const;
00119 
00124     void SetDefaultIKReachTranslation(double pIKReachTranslation);
00125 
00130     double GetDefaultIKReachRotation() const;
00131 
00136     void SetDefaultIKReachRotation(double pIKReachRotation);
00137 
00139 
00144 
00150     FbxColor& GetDefaultColor(FbxColor& pColor) const;
00151 
00156     void SetDefaultColor(FbxColor& pColor);
00157 
00159 
00163     static const char*          sLook;
00164     static const char*            sDrawLink;
00165     static const char*          sSize;
00166     static const char*          sShowLabel;
00167     static const char*          sIKPivot;
00168 
00172     static const ELook          sDefaultLook;
00173     static const FbxBool        sDefaultDrawLink;
00174     static const FbxDouble      sDefaultSize;
00175     static const FbxBool        sDefaultShowLabel;
00176     static const FbxDouble3     sDefaultIKPivot;
00177 
00179     //
00180     // Properties
00181     //
00183     
00191     FbxPropertyT<ELook> Look;
00192     
00200     FbxPropertyT<FbxBool> DrawLink;
00201     
00209     FbxPropertyT<FbxDouble> Size;
00210     
00218     FbxPropertyT<FbxBool> ShowLabel;
00219     
00227     FbxPropertyT<FbxDouble3> IKPivot;
00228 
00229     // Dynamic properties
00230 
00235     FbxProperty* GetOcclusion();
00236 
00241     FbxProperty* GetIKReachTranslation();
00246     FbxProperty* GetIKReachRotation();
00247 
00249 //
00250 //  WARNING!
00251 //
00252 //  Anything beyond these lines may not be documented accurately and is 
00253 //  subject to change without notice.
00254 //
00256 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00257 
00258     virtual FbxObject& Copy(const FbxObject& pObject);
00259 
00260 protected:
00261     FbxMarker(FbxManager& pManager, char const* pName);
00262 
00263     virtual void Construct(const FbxMarker* pFrom);
00264     virtual bool ConstructProperties(bool pForceSet);
00265 
00266     void Reset( bool pResetProperties );
00267 
00272     virtual const char* GetTypeName() const;
00273     virtual FbxStringList GetTypeFlags() const;
00274 
00275     EType mType;
00276 
00277     FbxProperty dynProp; // temporary placeholder for either
00278     // the Occlusion, IKReachTranslation or IKReachRotation 
00279     // properties. Its address is returned in the GetOcclusion(),
00280     // GetIKReachTranslation() and GetIKReachRotation() if the property
00281     // is valid
00282 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00283 };
00284 
00285 inline EFbxType FbxTypeOf(const FbxMarker::ELook&){ return eFbxEnum; }
00286 
00287 #include <fbxsdk/fbxsdk_nsend.h>
00288 
00289 #endif /* _FBXSDK_SCENE_GEOMETRY_MARKER_H_ */