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_ */