fbxblendshapechannel.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_BLEND_SHAPE_CHANNEL_H_
00014 #define _FBXSDK_SCENE_GEOMETRY_BLEND_SHAPE_CHANNEL_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/geometry/fbxsubdeformer.h>
00019 #include <fbxsdk/scene/fbxgroupname.h>
00020 #include <fbxsdk/core/math/fbxmatrix.h>
00021 
00022 #include <fbxsdk/core/base/fbxerror.h>
00023 
00024 #include <fbxsdk/fbxsdk_nsbegin.h>
00025 
00026 class FbxManager;
00027 class FbxBlendShape;
00028 class FbxShape;
00029 
00042 class FBXSDK_DLL FbxBlendShapeChannel : public FbxSubDeformer
00043 {
00044     FBXSDK_OBJECT_DECLARE(FbxBlendShapeChannel,FbxSubDeformer);
00045 
00046 public:
00054     FbxPropertyT<FbxDouble>        DeformPercent;
00055 
00060     bool SetBlendShapeDeformer(FbxBlendShape* pBlendShape);
00061 
00065     FbxBlendShape* GetBlendShapeDeformer();
00066 
00072     bool AddTargetShape(FbxShape* pShape, double pFullDeformPercent = 100);
00073 
00078     FbxShape* RemoveTargetShape(FbxShape* pShape);
00079 
00083     int GetTargetShapeCount() const;
00084 
00089     FbxShape* GetTargetShape(int pIndex);
00090 
00095     FbxShape const* GetTargetShape(int pIndex) const;
00096 
00101     int GetTargetShapeIndex( FbxShape* pShape);
00102 
00107     double* GetTargetShapeFullWeights();
00108 
00112     void SetFullWeightsCount(int pCount);
00113 
00121     EType GetSubDeformerType() const {return eBlendShapeChannel; };
00122 
00129     void Reset();
00130 
00131 
00133 //
00134 //  WARNING!
00135 //
00136 //  Anything beyond these lines may not be documented accurately and is
00137 //  subject to change without notice.
00138 //
00140 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00141 
00142     virtual FbxObject& Copy(const FbxObject& pObject);
00143 
00144 protected:
00145     FbxBlendShapeChannel(FbxManager& pManager, char const* pName);
00146 
00147     virtual void Construct(const FbxBlendShapeChannel* pFrom);
00148     virtual bool ConstructProperties( bool pForceSet );
00149 
00150     virtual FbxStringList GetTypeFlags() const;
00151 
00152 
00153 protected:
00154     // The full weights array of each shapes on this blend shape channel
00155     FbxArray<double> mShapeFullWeightArray;
00156 
00157     // Properties
00158 
00159     friend class FbxScene;
00160 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00161 };
00162 
00163 #include <fbxsdk/fbxsdk_nsend.h>
00164 
00165 #endif /* _FBXSDK_SCENE_GEOMETRY_BLEND_SHAPE_CHANNEL_H_ */