00001
00004 #ifndef _FBXSDK_CONSTRAINT_PARENT_H_
00005 #define _FBXSDK_CONSTRAINT_PARENT_H_
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include <kaydaradef.h>
00043 #ifndef KFBX_DLL
00044 #define KFBX_DLL K_DLLIMPORT
00045 #endif
00046
00047 #include <kaydara.h>
00048
00049 #include <kfbxplugins/kfbxconstraint.h>
00050 #include <kfbxplugins/kfbxgroupname.h>
00051
00052 #include <klib/kerror.h>
00053
00054 #include <fbxfilesdk_nsbegin.h>
00055
00056 class KFbxSdkManager;
00057
00058
00063 class KFBX_DLL KFbxConstraintParent : public KFbxConstraint
00064 {
00065 KFBXOBJECT_DECLARE(KFbxConstraintParent,KFbxConstraint);
00066
00071 KFbxTypedProperty<fbxBool1> Lock;
00072 KFbxTypedProperty<fbxBool1> Active;
00073
00074 KFbxTypedProperty<fbxBool1> AffectTranslationX;
00075 KFbxTypedProperty<fbxBool1> AffectTranslationY;
00076 KFbxTypedProperty<fbxBool1> AffectTranslationZ;
00077
00078 KFbxTypedProperty<fbxBool1> AffectRotationX;
00079 KFbxTypedProperty<fbxBool1> AffectRotationY;
00080 KFbxTypedProperty<fbxBool1> AffectRotationZ;
00081
00082 KFbxTypedProperty<fbxBool1> AffectScalingX;
00083 KFbxTypedProperty<fbxBool1> AffectScalingY;
00084 KFbxTypedProperty<fbxBool1> AffectScalingZ;
00085
00086 KFbxTypedProperty<fbxDouble1> Weight;
00087
00088 KFbxTypedProperty<fbxReference> ConstraintSources;
00089 KFbxTypedProperty<fbxReference> ConstrainedObject;
00091 public:
00095 void SetLock(bool pLock);
00096
00100 bool GetLock();
00101
00105 void SetActive(bool pActive);
00106
00110 bool GetActive();
00111
00115 void SetAffectTranslationX(bool pAffect);
00116
00120 bool GetAffectTranslationX();
00121
00125 void SetAffectTranslationY(bool pAffect);
00126
00130 bool GetAffectTranslationY();
00131
00135 void SetAffectTranslationZ(bool pAffect);
00136
00140 bool GetAffectTranslationZ();
00141
00145 void SetAffectRotationX(bool pAffect);
00146
00150 bool GetAffectRotationX();
00151
00155 void SetAffectRotationY(bool pAffect);
00156
00160 bool GetAffectRotationY();
00161
00165 void SetAffectRotationZ(bool pAffect);
00166
00170 bool GetAffectRotationZ();
00171
00176 void SetTranslationOffset(KFbxObject* pObject, KFbxVector4 pTranslation);
00177
00182 KFbxVector4 GetTranslationOffset(KFbxObject* pObject);
00183
00188 virtual void SetRotationOffset(KFbxObject* pObject, KFbxVector4 pRotation);
00189
00194 KFbxVector4 GetRotationOffset(KFbxObject* pObject);
00195
00199 void SetWeight(double pWeight);
00200
00204 double GetSourceWeight(KFbxObject* pObject);
00205
00210 void AddConstraintSource(KFbxObject* pObject, double pWeight = 100);
00211
00215 int GetConstraintSourceCount();
00216
00221 KFbxObject* GetConstraintSource(int pIndex);
00222
00226 void SetConstrainedObject(KFbxObject* pObject);
00227
00231 KFbxObject* GetConstrainedObject();
00232
00233 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00234
00235
00236 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00237
00238 protected:
00239
00240 KFbxConstraintParent(KFbxSdkManager& pManager, char const* pName);
00241 ~KFbxConstraintParent();
00242
00243 virtual bool ConstructProperties( bool pForceSet );
00244 virtual void Destruct(bool pRecursive, bool pDependents);
00245
00246 virtual EConstraintType GetConstraintType();
00247 virtual KString GetTypeName() const;
00248
00249 friend class KFbxWriterFbx6;
00250 friend class KFbxReaderFbx;
00251
00252 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00253 };
00254
00255 #include <fbxfilesdk_nsend.h>
00256
00257 #endif // _FBXSDK_CONSTRAINT_PARENT_H_
00258
00259