fbxsdk/scene/geometry/fbxlodgroup.h Source File

fbxlodgroup.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_SCENE_GEOMETRY_LOD_GROUP_H_
14 #define _FBXSDK_SCENE_GEOMETRY_LOD_GROUP_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
19 
20 #include <fbxsdk/fbxsdk_nsbegin.h>
21 
85 class FBXSDK_DLL FbxLODGroup : public FbxNodeAttribute
86 {
88 
89 public:
92 
98  enum EDisplayLevel
99  {
100  eUseLOD,
101  eShow,
102  eHide
103  };
104 
106  //
107  // Properties
108  //
110 
122  FbxPropertyT<FbxBool> ThresholdsUsedAsPercentage;
123 
140  FbxPropertyT<FbxBool> MinMaxDistance;
141 
149  FbxPropertyT<FbxDouble> MinDistance;
150 
158  FbxPropertyT<FbxDouble> MaxDistance;
159 
171  FbxPropertyT<FbxBool> WorldSpace;
173 
175  //
176  // Methods
177  //
179 
185  int GetNumThresholds() const;
186 
197  bool AddThreshold(const FbxDistance& pThreshValue);
198 
209  bool AddThreshold(FbxDouble pThreshValue);
210 
217  bool SetThreshold(int pEl, const FbxDistance& pThreshValue);
218 
225  bool SetThreshold(int pEl, FbxDouble pThreshValue);
226 
236  bool GetThreshold(int pEl, FbxDistance& pThreshValue) const;
237 
247  bool GetThreshold(int pEl, FbxDouble& pThreshValue) const;
248 
254  int GetNumDisplayLevels() const;
255 
274  bool AddDisplayLevel(FbxLODGroup::EDisplayLevel pValue);
275 
281  bool SetDisplayLevel(int pEl, FbxLODGroup::EDisplayLevel pValue);
282 
289  bool GetDisplayLevel(int pEl, FbxLODGroup::EDisplayLevel& pValue) const;
290 
291 /*****************************************************************************************************************************
292 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
293 *****************************************************************************************************************************/
294 #ifndef DOXYGEN_SHOULD_SKIP_THIS
295  virtual FbxObject& Copy(const FbxObject& pObject);
296 
297 protected:
298  virtual void Construct(const FbxObject* pFrom);
299  virtual void ConstructProperties(bool pForceSet);
300 
301 private:
302  int mNbThresholds;
303  FbxProperty mThresholds;
304 
305  bool RetrieveThreshold(int pEl, FbxDistance& pThreshValue) const;
306  bool StoreThreshold(int pEl, const FbxDistance& pThreshValue);
307 
308  int mNbDisplayLevels;
309  FbxProperty mDisplayLevels;
310 
311  bool DisplayLevel(int pEl, FbxLODGroup::EDisplayLevel pValue);
312 
313 public:
314  virtual FbxStringList GetTypeFlags() const;
315 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
316 };
317 
318 inline EFbxType FbxTypeOf(const FbxLODGroup::EDisplayLevel&){ return eFbxEnum; }
319 
320 #include <fbxsdk/fbxsdk_nsend.h>
321 
322 #endif /* _FBXSDK_SCENE_GEOMETRY_LOD_GROUP_H_ */
#define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject.
Definition: fbxobject.h:61
FBX SDK environment definition.
virtual FbxObject & Copy(const FbxObject &pObject)
Copy an object content into this object.
Array that stores pairs of FbxString and a pointer.
EType
Node attribute types.
double FbxDouble
Definition: fbxtypes.h:42
EFbxType
Type identifier constants.
The base class of most FBX objects.
Definition: fbxobject.h:157
EFbxType FbxTypeOf(const FbxChar &)
virtual void Construct(const FbxObject *pFrom)
Optional constructor override, automatically called by default constructor.
Enumeration.
Class to hold user properties.
Definition: fbxproperty.h:37
virtual FbxNodeAttribute::EType GetAttributeType() const
Return the type of node attribute.
#define FBXSDK_DLL
Definition: fbxarch.h:173
FBX SDK distance class.
This class is the base class to all types of node attributes.
virtual void ConstructProperties(bool pForceSet)
Optional property constructor override, automatically called by default constructor.