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