- Main Page
- Classes
- Files
- Directories
- Examples

- File List
- File Members

# fbxpatch.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_PATCH_H_
    00014 #define _FBXSDK_SCENE_GEOMETRY_PATCH_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #include <fbxsdk/scene/geometry/fbxgeometry.h>
    00019
    00020 #include <fbxsdk/fbxsdk_nsbegin.h>
    00021
    00022 class FbxManager;
    00023
    00028 class FBXSDK_DLL FbxPatch : public FbxGeometry
    00029 {
    00030     FBXSDK_OBJECT_DECLARE(FbxPatch,FbxGeometry);
    00031
    00032 public:
    00034     virtual FbxNodeAttribute::EType GetAttributeType() const;
    00035
    00037     void Reset();
    00038
    00043
    00047         void SetSurfaceMode(FbxGeometry::ESurfaceMode pMode);
    00048
    00052         inline FbxGeometry::ESurfaceMode GetSurfaceMode() const {return mSurfaceMode;}
    00053
    00061         enum EType
    00062         {
    00063             eBezier,
    00064             eBezierQuadric,
    00065             eCardinal,
    00066             eBSpline,
    00067             eLinear
    00068         };
    00069
    00076         void InitControlPoints(int pUCount, EType pUType, int pVCount, EType pVType);
    00077
    00081         inline int GetUCount() const {return mUCount;}
    00082
    00086         inline int GetVCount() const {return mVCount;}
    00087
    00091         inline EType GetPatchUType() const {return mUType;}
    00092
    00096         inline EType GetPatchVType () const {return mVType;}
    00097
    00103         void SetStep(int pUStep, int pVStep);
    00104
    00108         inline int GetUStep() const {return mUStep;}
    00109
    00113         inline int GetVStep() const {return mVStep;}
    00114
    00119         void SetClosed(bool pU, bool pV);
    00120
    00124         inline bool GetUClosed() const {return mUClosed;}
    00125
    00129         inline bool GetVClosed() const {return mVClosed;}
    00130
    00137         void SetUCapped(bool pUBottom, bool pUTop);
    00138
    00142         inline bool GetUCappedBottom() const {return mUCappedBottom;}
    00143
    00147         inline bool GetUCappedTop() const {return mUCappedTop;}
    00148
    00155         void SetVCapped(bool pVBottom, bool pVTop);
    00156
    00160         inline bool GetVCappedBottom() const {return mVCappedBottom;}
    00161
    00165         inline bool GetVCappedTop() const {return mVCappedTop;}
    00166
    00168
    00178         virtual bool ContentWriteTo(FbxStream& pStream) const;
    00179
    00185         virtual bool ContentReadFrom(const FbxStream& pStream);
    00187
    00189 //
    00190 //  WARNING!
    00191 //
    00192 //  Anything beyond these lines may not be documented accurately and is
    00193 //  subject to change without notice.
    00194 //
    00196 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00197
    00198 #ifdef _DEBUG
    00199     virtual int MemoryUsage() const;
    00200 #endif
    00201
    00202     virtual FbxObject& Copy(const FbxObject& pObject);
    00203
    00204 protected:
    00205     FbxPatch(FbxManager& pManager, char const* pName);
    00206
    00207     virtual void Destruct(bool pRecursive, bool pDependents);
    00208
    00209     EType mUType, mVType;
    00210     int mUCount, mVCount;
    00211     int mUStep, mVStep;
    00212     bool mUClosed, mVClosed;
    00213     bool mUCappedBottom, mUCappedTop;
    00214     bool mVCappedBottom, mVCappedTop;
    00215
    00216     FbxGeometry::ESurfaceMode mSurfaceMode;
    00217 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00218
    00219 };
    00220
    00221 #include <fbxsdk/fbxsdk_nsend.h>
    00222
    00223 #endif /* _FBXSDK_SCENE_GEOMETRY_PATCH_H_ */