fbxlodgroup.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_LOD_GROUP_H_
00014 #define _FBXSDK_SCENE_GEOMETRY_LOD_GROUP_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/geometry/fbxnodeattribute.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00022 class FbxManager;
00023 
00056 class FBXSDK_DLL FbxLODGroup : public FbxNodeAttribute
00057 {
00058     FBXSDK_OBJECT_DECLARE(FbxLODGroup,FbxNodeAttribute);
00059 
00060 public:
00062     virtual FbxNodeAttribute::EType GetAttributeType() const;
00063 
00069     enum EDisplayLevel
00070     {
00071         eUseLOD,
00072         eShow,
00073         eHide
00074     };
00075 
00077     //
00078     // Properties
00079     //
00081 
00092     FbxPropertyT<FbxBool>       MinMaxDistance;
00093 
00101     FbxPropertyT<FbxDouble>     MinDistance;
00102 
00110     FbxPropertyT<FbxDouble>     MaxDistance;
00111 
00123     FbxPropertyT<FbxBool>       WorldSpace;
00124 
00125 
00127     //
00128     // Methods
00129     //
00131 
00136     int GetNumThresholds() const;
00137 
00147     bool AddThreshold(FbxDistance pThreshValue);
00148 
00154     bool SetThreshold(int pEl, FbxDistance pThreshValue);
00155 
00162     bool GetThreshold(int pEl, FbxDistance& pThreshValue) const;
00163 
00164 
00169     int GetNumDisplayLevels() const;
00170 
00186     bool AddDisplayLevel(FbxLODGroup::EDisplayLevel pValue);
00187 
00193     bool SetDisplayLevel(int pEl, FbxLODGroup::EDisplayLevel pValue);
00194 
00201     bool GetDisplayLevel(int pEl, FbxLODGroup::EDisplayLevel& pValue) const;
00202     
00204 //
00205 //  WARNING!
00206 //
00207 //  Anything beyond these lines may not be documented accurately and is
00208 //  subject to change without notice.
00209 //
00211 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00212     virtual FbxObject& Copy(const FbxObject& pObject);
00213 
00214 protected:
00215     FbxLODGroup(FbxManager& pManager, char const* pName);
00216     virtual bool ConstructProperties(bool pForceSet);
00217 
00218 private:
00219     int mNbThresholds;
00220     FbxProperty mThresholds;    
00221     bool Threshold(int pEl, FbxDistance pThreshValue, bool pCreateNew);
00222 
00223     int mNbDisplayLevels;
00224     FbxProperty mDisplayLevels;
00225     bool DisplayLevel(int pEl, FbxLODGroup::EDisplayLevel pValue, bool pCreateNew);
00226 
00227 public:
00228     virtual FbxStringList GetTypeFlags() const;
00229 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00230 };
00231 
00232 inline EFbxType FbxTypeOf(const FbxLODGroup::EDisplayLevel&){ return eFbxEnum; }
00233 
00234 #include <fbxsdk/fbxsdk_nsend.h>
00235 
00236 #endif /* _FBXSDK_SCENE_GEOMETRY_LOD_GROUP_H_ */