00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "universaljoint.h"
00023
00024 using namespace boost;
00025 using namespace oxygen;
00026 using namespace salt;
00027
00028
00029 FUNCTION(UniversalJoint,setAnchor)
00030 {
00031 Vector3f inAnchor;
00032
00033 if (
00034 (in.GetSize() == 0) ||
00035 (! in.GetValue(in.begin(), inAnchor))
00036 )
00037 {
00038 return false;
00039 }
00040
00041 obj->SetAnchor(inAnchor);
00042 return true;
00043 }
00044
00045 FUNCTION(UniversalJoint,setAxis1)
00046 {
00047 Vector3f inAxis1;
00048
00049 if (
00050 (in.GetSize() == 0) ||
00051 (! in.GetValue(in.begin(), inAxis1))
00052 )
00053 {
00054 return false;
00055 }
00056
00057 obj->SetAxis1(inAxis1);
00058 return true;
00059 }
00060
00061 FUNCTION(UniversalJoint,setAxis2)
00062 {
00063 Vector3f inAxis2;
00064
00065 if (
00066 (in.GetSize() == 0) ||
00067 (! in.GetValue(in.begin(), inAxis2))
00068 )
00069 {
00070 return false;
00071 }
00072
00073 obj->SetAxis2(inAxis2);
00074 return true;
00075 }
00076
00077 FUNCTION(UniversalJoint,getAngle)
00078 {
00079 int inAxisIndex;
00080
00081 if (
00082 (in.GetSize() != 0) ||
00083 (! in.GetValue(in.begin(), inAxisIndex))
00084 )
00085 {
00086 return false;
00087 }
00088
00089 obj->GetAngle(static_cast<Joint::EAxisIndex>(inAxisIndex));
00090 return true;
00091 }
00092
00093 FUNCTION(UniversalJoint,getAngleRate)
00094 {
00095 int inAxisIndex;
00096
00097 if (
00098 (in.GetSize() != 0) ||
00099 (! in.GetValue(in.begin(), inAxisIndex))
00100 )
00101 {
00102 return false;
00103 }
00104
00105 obj->GetAngleRate(static_cast<Joint::EAxisIndex>(inAxisIndex));
00106 return true;
00107 }
00108
00109 void CLASS(UniversalJoint)::DefineClass()
00110 {
00111 DEFINE_BASECLASS(oxygen/Joint);
00112 DEFINE_FUNCTION(setAnchor);
00113 DEFINE_FUNCTION(setAxis1);
00114 DEFINE_FUNCTION(setAxis2);
00115 DEFINE_FUNCTION(getAngle);
00116 DEFINE_FUNCTION(getAngleRate);
00117 }