fbxsdk/scene/geometry/fbxlodgroup.h Source File
 
 
 
fbxsdk/scene/geometry/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_ */