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_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 00020 #include <fbxsdk/fbxsdk_nsbegin.h> 00021 00022 class FbxShape; 00023 class FbxBlendShape; 00024 00037 class FBXSDK_DLL FbxBlendShapeChannel : public FbxSubDeformer 00038 { 00039 FBXSDK_OBJECT_DECLARE(FbxBlendShapeChannel, FbxSubDeformer); 00040 00041 public: 00049 FbxPropertyT<FbxDouble> DeformPercent; 00050 00055 bool SetBlendShapeDeformer(FbxBlendShape* pBlendShape); 00056 00060 FbxBlendShape* GetBlendShapeDeformer(); 00061 00067 bool AddTargetShape(FbxShape* pShape, double pFullDeformPercent = 100); 00068 00073 FbxShape* RemoveTargetShape(FbxShape* pShape); 00074 00078 int GetTargetShapeCount() const; 00079 00084 FbxShape* GetTargetShape(int pIndex); 00085 00090 const FbxShape* GetTargetShape(int pIndex) const; 00091 00096 int GetTargetShapeIndex( FbxShape* pShape); 00097 00102 double* GetTargetShapeFullWeights(); 00103 00108 void SetFullWeightsCount(int pCount); 00109 00117 EType GetSubDeformerType() const {return eBlendShapeChannel; }; 00118 00125 void Reset(); 00126 00127 00128 /***************************************************************************************************************************** 00129 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! ** 00130 *****************************************************************************************************************************/ 00131 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00132 virtual FbxObject& Copy(const FbxObject& pObject); 00133 00134 protected: 00135 virtual void Construct(const FbxBlendShapeChannel* pFrom); 00136 virtual void ConstructProperties(bool pForceSet); 00137 00138 virtual FbxStringList GetTypeFlags() const; 00139 00140 //The full weights array of each shapes on this blend shape channel 00141 FbxArray<double> mShapeFullWeightArray; 00142 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/ 00143 }; 00144 00145 #include <fbxsdk/fbxsdk_nsend.h> 00146 00147 #endif /* _FBXSDK_SCENE_GEOMETRY_BLEND_SHAPE_CHANNEL_H_ */