kfbxmarker.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002 
00003    Copyright (C) 2010 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 
00015 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXMARKER_H
00016 #define FBXFILESDK_KFBXPLUGINS_KFBXMARKER_H
00017 
00018 
00019 #include <fbxfilesdk/fbxfilesdk_def.h>
00020 
00021 #include <fbxfilesdk/kfbxplugins/kfbxnodeattribute.h>
00022 #include <fbxfilesdk/kfbxplugins/kfbxcolor.h>
00023 #include <fbxfilesdk/kfbxmath/kfbxvector4.h>
00024 
00025 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00026 
00027 class KFbxSdkManager;
00028 
00033 class KFBX_DLL KFbxMarker : public KFbxNodeAttribute
00034 {
00035     KFBXOBJECT_DECLARE(KFbxMarker,KFbxNodeAttribute);
00036 
00037 public:
00039     virtual EAttributeType GetAttributeType() const;
00040 
00042     void Reset();
00043 
00050     typedef enum { 
00051         eSTANDARD, 
00052         eOPTICAL, 
00053         eFK_EFFECTOR,
00054         eIK_EFFECTOR
00055     } EType;
00056 
00060     void SetType(EType pType);
00061 
00065     EType GetType() const;
00066 
00080     typedef enum { 
00081         eCUBE, 
00082         eHARD_CROSS, 
00083         eLIGHT_CROSS, 
00084         eSPHERE,
00085         eCAPSULE,
00086         eBOX,
00087         eBONE,
00088         eCIRCLE,
00089         eSQUARE,
00090         eSTICK,
00091         eNONE
00092     } ELook;
00093     
00103 
00108     double GetDefaultOcclusion() const;
00109 
00114     void SetDefaultOcclusion(double pOcclusion);
00115 
00120     double GetDefaultIKReachTranslation() const;
00121 
00126     void SetDefaultIKReachTranslation(double pIKReachTranslation);
00127 
00132     double GetDefaultIKReachRotation() const;
00133 
00138     void SetDefaultIKReachRotation(double pIKReachRotation);
00139 
00141 
00146 
00152     KFbxColor& GetDefaultColor(KFbxColor& pColor) const;
00153 
00158     void SetDefaultColor(KFbxColor& pColor);
00159 
00161 
00165     static const char*          sLook;
00166     static const char*            sDrawLink;
00167     static const char*          sSize;
00168     static const char*          sShowLabel;
00169     static const char*          sIKPivot;
00170 
00174     static const ELook          sDefaultLook;
00175     static const fbxBool1        sDefaultDrawLink;
00176     static const fbxDouble1     sDefaultSize;
00177     static const fbxBool1       sDefaultShowLabel;
00178     static const fbxDouble3     sDefaultIKPivot;
00179 
00181     //
00182     // Properties
00183     //
00185     
00193     KFbxTypedProperty<ELook> Look;
00194     
00202     KFbxTypedProperty<fbxBool1> DrawLink;
00203     
00211     KFbxTypedProperty<fbxDouble1> Size;
00212     
00220     KFbxTypedProperty<fbxBool1> ShowLabel;
00221     
00229     KFbxTypedProperty<fbxDouble3> IKPivot;
00230 
00231     // Dynamic properties
00232 
00237     KFbxProperty* GetOcclusion();
00238 
00243     KFbxProperty* GetIKReachTranslation();
00248     KFbxProperty* GetIKReachRotation();
00249 
00251 //
00252 //  WARNING!
00253 //
00254 //  Anything beyond these lines may not be documented accurately and is 
00255 //  subject to change without notice.
00256 //
00258 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00259 
00260     virtual KFbxObject& Copy(const KFbxObject& pObject);
00261 
00262 protected:
00263     KFbxMarker(KFbxSdkManager& pManager, char const* pName);
00264 
00265     virtual void Construct(const KFbxMarker* pFrom);
00266     virtual bool ConstructProperties(bool pForceSet);
00267 
00268     void Reset( bool pResetProperties );
00269 
00274     virtual const char* GetTypeName() const;
00275     virtual KStringList GetTypeFlags() const;
00276 
00277     EType mType;
00278 
00279     KFbxProperty dynProp; // temporary placeholder for either
00280     // the Occlusion, IKReachTranslation or IKReachRotation 
00281     // properties. Its address is returned in the GetOcclusion(),
00282     // GetIKReachTranslation() and GetIKReachRotation() if the property
00283     // is valid
00284 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00285 };
00286 
00287 typedef KFbxMarker* HKFbxMarker;
00288 
00289 inline EFbxType FbxTypeOf( KFbxMarker::ELook const &pItem )         { return eENUM; }
00290 
00291 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00292 
00293 #endif // FBXFILESDK_KFBXPLUGINS_KFBXMARKER_H
00294