00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "ccylindercollider.h"
00023
00024 using namespace oxygen;
00025 using namespace boost;
00026 using namespace salt;
00027
00028 FUNCTION(CCylinderCollider,setParams)
00029 {
00030 float inRadius;
00031 float inLength;
00032
00033 if (
00034 (in.GetSize() != 2) ||
00035 (! in.GetValue(in[0],inRadius)) ||
00036 (! in.GetValue(in[1],inLength))
00037 )
00038 {
00039 return false;
00040 }
00041
00042 obj->SetParams(inRadius,inLength);
00043 return true;
00044 }
00045
00046 FUNCTION(CCylinderCollider,setRadius)
00047 {
00048 float inRadius;
00049
00050 if (
00051 (in.GetSize() != 1) ||
00052 (! in.GetValue(in[0],inRadius))
00053 )
00054 {
00055 return false;
00056 }
00057
00058 obj->SetRadius(inRadius);
00059 return true;
00060 }
00061
00062 FUNCTION(CCylinderCollider,setLength)
00063 {
00064 float inLength;
00065
00066 if (
00067 (in.GetSize() != 1) ||
00068 (! in.GetValue(in[0],inLength))
00069 )
00070 {
00071 return false;
00072 }
00073
00074 obj->SetLength(inLength);
00075 return true;
00076 }
00077
00078 FUNCTION(CCylinderCollider,getRadius)
00079 {
00080 return obj->GetRadius();
00081 }
00082
00083 FUNCTION(CCylinderCollider,getLength)
00084 {
00085 return obj->GetLength();
00086 }
00087
00088 FUNCTION(CCylinderCollider,getPointDepth)
00089 {
00090 Vector3f inPos;
00091
00092 if (
00093 (in.GetSize() == 0) ||
00094 (! in.GetValue(in.begin(), inPos))
00095 )
00096 {
00097 return 0;
00098 }
00099
00100 return obj->GetPointDepth(inPos);
00101 }
00102
00103 void CLASS(CCylinderCollider)::DefineClass()
00104 {
00105 DEFINE_BASECLASS(oxygen/Collider);
00106 DEFINE_FUNCTION(setParams);
00107 DEFINE_FUNCTION(setRadius);
00108 DEFINE_FUNCTION(setLength);
00109 DEFINE_FUNCTION(getRadius);
00110 DEFINE_FUNCTION(getLength);
00111 DEFINE_FUNCTION(getPointDepth);
00112 }