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_CONSTRAINT_AIM_H_ 00014 #define _FBXSDK_SCENE_CONSTRAINT_AIM_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/scene/constraint/fbxconstraint.h> 00019 #include <fbxsdk/scene/fbxgroupname.h> 00020 #include <fbxsdk/core/math/fbxvector4.h> 00021 00022 #include <fbxsdk/core/base/fbxerror.h> 00023 00024 #include <fbxsdk/fbxsdk_nsbegin.h> 00025 00026 class FbxManager; 00027 00032 class FBXSDK_DLL FbxConstraintAim : public FbxConstraint 00033 { 00034 FBXSDK_OBJECT_DECLARE(FbxConstraintAim,FbxConstraint); 00035 00036 public: 00039 enum EWorldUp 00040 { 00041 eAimAtSceneUp, 00042 eAimAtObjectUp, 00043 eAimAtObjectRotationUp, 00044 eAimAtVector, 00045 eAimAtNone, 00046 eAimAtCount 00047 }; 00048 00057 FbxPropertyT<FbxDouble3> RotationOffset; 00058 00061 FbxPropertyT<FbxReference> AimAtObjects; 00062 00065 FbxPropertyT<FbxReference> ConstrainedObject; 00066 00069 FbxPropertyT<FbxEnum> WorldUpType; 00070 00073 FbxPropertyT<FbxReference> WorldUpObject; 00074 00079 FbxPropertyT<FbxDouble3> WorldUpVector; 00080 00085 FbxPropertyT<FbxDouble3> UpVector; 00086 00091 FbxPropertyT<FbxDouble3> AimVector; 00092 00097 FbxPropertyT<FbxBool> AffectX; 00098 00103 FbxPropertyT<FbxBool> AffectY; 00104 00109 FbxPropertyT<FbxBool> AffectZ; 00111 00116 void AddConstraintSource(FbxObject* pObject, double pWeight = 100); 00117 00121 int GetConstraintSourceCount() const; 00122 00127 FbxObject* GetConstraintSource(int pIndex) const; 00128 00132 void SetConstrainedObject(FbxObject* pObject); 00133 00137 FbxObject* GetConstrainedObject() const; 00138 00142 void SetWorldUpObject(FbxObject* pObject); 00143 00147 FbxObject* GetWorldUpObject() const; 00148 00149 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00150 protected: 00151 FbxConstraintAim(FbxManager& pManager, char const* pName); 00152 00153 virtual bool ConstructProperties(bool pForceSet); 00154 00155 virtual EType GetConstraintType() const; 00156 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS 00157 }; 00158 00159 inline EFbxType FbxTypeOf(const FbxConstraintAim::EWorldUp&){ return eFbxEnum; } 00160 00161 #include <fbxsdk/fbxsdk_nsend.h> 00162 00163 #endif /* _FBXSDK_SCENE_CONSTRAINT_AIM_H_ */