fbxsdk/scene/geometry/fbxpatch.h Source File
 
 
 
fbxsdk/scene/geometry/fbxpatch.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_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 
00026 class FBXSDK_DLL FbxPatch : public FbxGeometry
00027 {
00028     FBXSDK_OBJECT_DECLARE(FbxPatch,FbxGeometry);
00029 
00030 public:
00032     virtual FbxNodeAttribute::EType GetAttributeType() const;
00033 
00035     void Reset();
00036 
00041 
00045         void SetSurfaceMode(FbxGeometry::ESurfaceMode pMode);
00046 
00050         inline FbxGeometry::ESurfaceMode GetSurfaceMode() const {return mSurfaceMode;}
00051 
00059         enum EType
00060         {
00061             eBezier,
00062             eBezierQuadric,
00063             eCardinal,
00064             eBSpline,
00065             eLinear
00066         };
00067 
00074         void InitControlPoints(int pUCount, EType pUType, int pVCount, EType pVType);
00075 
00079         inline int GetUCount() const {return mUCount;}
00080 
00084         inline int GetVCount() const {return mVCount;}
00085 
00089         inline EType GetPatchUType() const {return mUType;}
00090 
00094         inline EType GetPatchVType () const {return mVType;}
00095 
00101         void SetStep(int pUStep, int pVStep);
00102 
00106         inline int GetUStep() const {return mUStep;}
00107 
00111         inline int GetVStep() const {return mVStep;}
00112 
00117         void SetClosed(bool pU, bool pV);
00118 
00122         inline bool GetUClosed() const {return mUClosed;}
00123 
00127         inline bool GetVClosed() const {return mVClosed;}
00128 
00135         void SetUCapped(bool pUBottom, bool pUTop);
00136 
00140         inline bool GetUCappedBottom() const {return mUCappedBottom;}
00141 
00145         inline bool GetUCappedTop() const {return mUCappedTop;}
00146 
00153         void SetVCapped(bool pVBottom, bool pVTop);
00154 
00158         inline bool GetVCappedBottom() const {return mVCappedBottom;}
00159 
00163         inline bool GetVCappedTop() const {return mVCappedTop;}
00164 
00166 
00176         virtual bool ContentWriteTo(FbxStream& pStream) const;
00177 
00183         virtual bool ContentReadFrom(const FbxStream& pStream);
00185 
00186 /*****************************************************************************************************************************
00187 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00188 *****************************************************************************************************************************/
00189 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00190     virtual FbxObject& Copy(const FbxObject& pObject);
00191 
00192 protected:
00193         virtual void Construct(const FbxPatch* pFrom);
00194     virtual void Destruct(bool pRecursive);
00195 
00196     EType mUType, mVType;
00197     int mUCount, mVCount;
00198     int mUStep, mVStep;
00199     bool mUClosed, mVClosed;
00200     bool mUCappedBottom, mUCappedTop;
00201     bool mVCappedBottom, mVCappedTop;
00202 
00203     FbxGeometry::ESurfaceMode mSurfaceMode;
00204 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00205 };
00206 
00207 #include <fbxsdk/fbxsdk_nsend.h>
00208 
00209 #endif /* _FBXSDK_SCENE_GEOMETRY_PATCH_H_ */