fbxlodgroup.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 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 
00054 class FBXSDK_DLL FbxLODGroup : public FbxNodeAttribute
00055 {
00056     FBXSDK_OBJECT_DECLARE(FbxLODGroup, FbxNodeAttribute);
00057 
00058 public:
00060     virtual FbxNodeAttribute::EType GetAttributeType() const;
00061 
00067     enum EDisplayLevel
00068     {
00069         eUseLOD,
00070         eShow,
00071         eHide
00072     };
00073 
00075     //
00076     // Properties
00077     //
00079 
00090     FbxPropertyT<FbxBool>       MinMaxDistance;
00091 
00099     FbxPropertyT<FbxDouble>     MinDistance;
00100 
00108     FbxPropertyT<FbxDouble>     MaxDistance;
00109 
00121     FbxPropertyT<FbxBool>       WorldSpace;
00122 
00123 
00125     //
00126     // Methods
00127     //
00129 
00134     int GetNumThresholds() const;
00135 
00145     bool AddThreshold(FbxDistance pThreshValue);
00146 
00152     bool SetThreshold(int pEl, FbxDistance pThreshValue);
00153 
00160     bool GetThreshold(int pEl, FbxDistance& pThreshValue) const;
00161 
00162 
00167     int GetNumDisplayLevels() const;
00168 
00184     bool AddDisplayLevel(FbxLODGroup::EDisplayLevel pValue);
00185 
00191     bool SetDisplayLevel(int pEl, FbxLODGroup::EDisplayLevel pValue);
00192 
00199     bool GetDisplayLevel(int pEl, FbxLODGroup::EDisplayLevel& pValue) const;
00200     
00201 /*****************************************************************************************************************************
00202 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00203 *****************************************************************************************************************************/
00204 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00205     virtual FbxObject& Copy(const FbxObject& pObject);
00206 
00207 protected:
00208     virtual void Construct(const FbxLODGroup* pFrom);
00209     virtual void ConstructProperties(bool pForceSet);
00210 
00211 private:
00212     int mNbThresholds;
00213     FbxProperty mThresholds;    
00214     bool Threshold(int pEl, FbxDistance pThreshValue, bool pCreateNew);
00215 
00216     int mNbDisplayLevels;
00217     FbxProperty mDisplayLevels;
00218     bool DisplayLevel(int pEl, FbxLODGroup::EDisplayLevel pValue, bool pCreateNew);
00219 
00220 public:
00221     virtual FbxStringList GetTypeFlags() const;
00222 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00223 };
00224 
00225 inline EFbxType FbxTypeOf(const FbxLODGroup::EDisplayLevel&){ return eFbxEnum; }
00226 
00227 #include <fbxsdk/fbxsdk_nsend.h>
00228 
00229 #endif /* _FBXSDK_SCENE_GEOMETRY_LOD_GROUP_H_ */