00001 /** 00002 * @file CollisionPercept.cpp 00003 * 00004 * Implementation of class CollisionPercept. 00005 */ 00006 00007 #include "CollisionPercept.h" 00008 00009 CollisionPercept::CollisionPercept() 00010 { 00011 for (int i = 0; i < JointData::numOfJoint; i++) 00012 { 00013 state[i] = 0; 00014 } 00015 } 00016 00017 void CollisionPercept::reset() 00018 { 00019 for (int i = 0; i < JointData::numOfJoint; i++) 00020 { 00021 state[i] = 0; 00022 } 00023 } 00024 00025 00026 CollisionPercept::~CollisionPercept() 00027 { } 00028 00029 00030 /** Did collision occur at front left leg */ 00031 bool CollisionPercept::getCollisionFrontLeft() const 00032 { 00033 return ((state[JointData::legFL1] >= 1000) || 00034 (state[JointData::legFL2] >= 1000) || 00035 (state[JointData::legFL3] >= 1000)); 00036 } 00037 00038 /** Did collision occur at front right leg */ 00039 bool CollisionPercept::getCollisionFrontRight() const 00040 { 00041 return ((state[JointData::legFR1] >= 1000) || 00042 (state[JointData::legFR2] >= 1000) || 00043 (state[JointData::legFR3] >= 1000)); 00044 00045 } 00046 /** Did collision occur at hind left leg */ 00047 bool CollisionPercept::getCollisionHindLeft() const 00048 { 00049 return ((state[JointData::legHL1] >= 1000) || 00050 (state[JointData::legHL2] >= 1000) || 00051 (state[JointData::legHL3] >= 1000)); 00052 } 00053 00054 00055 /** Did collision occur at hind right leg */ 00056 bool CollisionPercept::getCollisionHindRight() const 00057 { 00058 return ((state[JointData::legHR1] >= 1000) || 00059 (state[JointData::legHR2] >= 1000) || 00060 (state[JointData::legHR3] >= 1000)); 00061 00062 } 00063 00064 00065 /** Did collision occur at head */ 00066 bool CollisionPercept::getCollisionHead() const 00067 { 00068 return ((state[JointData::neckTilt] >= 1000) || 00069 (state[JointData::headPan] >= 1000) || 00070 (state[JointData::headTilt] >= 1000)); 00071 } 00072 00073 00074 /** Did collision occur at any body part */ 00075 bool CollisionPercept::getCollisionAggregate() const 00076 { 00077 return (getCollisionFrontLeft()|| 00078 getCollisionFrontRight()|| 00079 getCollisionHindLeft()|| 00080 getCollisionHindRight()); 00081 } 00082 00083 00084 In& operator>>(In& stream, CollisionPercept& collisionPercept) 00085 { 00086 stream >> collisionPercept.frameNumber; 00087 stream.read(&collisionPercept, sizeof(collisionPercept)); 00088 return stream; 00089 } 00090 00091 Out& operator<<(Out& stream, const CollisionPercept& collisionPercept) 00092 { 00093 stream << collisionPercept.frameNumber; 00094 stream.write(&collisionPercept, sizeof(collisionPercept)); 00095 return stream; 00096 } 00097 00098 00099 /* 00100 * Change log : 00101 * 00102 * $Log: CollisionPercept.cpp,v $ 00103 * Revision 1.4 2004/06/23 15:33:08 goehring 00104 * no head info in collisionAggregate 00105 * 00106 * Revision 1.3 2004/06/23 11:02:26 goehring 00107 * Xabsl symbol collision-side added 00108 * 00109 * Revision 1.2 2004/05/27 17:13:38 jhoffman 00110 * - renaming: tilt1 -> neckTilt, pan -> headPan, tilt2 -> headTilt 00111 * - clipping included for setJoints 00112 * - removed some microrad/rad-bugs 00113 * - bodyPosture constructor and "=" operator fixed 00114 * 00115 * Revision 1.1.1.1 2004/05/22 17:25:44 cvsadm 00116 * created new repository GT2004_WM 00117 * 00118 * Revision 1.2 2003/11/14 19:02:25 goehring 00119 * frameNumber added 00120 * 00121 * Revision 1.1 2003/10/07 10:09:36 cvsadm 00122 * Created GT2004 (M.J.) 00123 * 00124 * Revision 1.1 2003/09/26 21:23:20 loetzsch 00125 * renamed class JointState to CollisionPercept 00126 * 00127 * Revision 1.1.1.1 2003/07/02 09:40:22 cvsadm 00128 * created new repository for the competitions in Padova from the 00129 * tamara CVS (Tuesday 2:00 pm) 00130 * 00131 * removed unused solutions 00132 * 00133 * Revision 1.5 2003/06/21 13:06:51 goehring 00134 * Debug Collisionsymbols 00135 * 00136 * Revision 1.4 2003/06/10 15:06:06 goehring 00137 * Xabsl symbol functions added 00138 * 00139 * Revision 1.3 2003/06/09 12:32:34 goehring 00140 * Added reset function 00141 * 00142 * Revision 1.2 2003/06/02 11:29:16 goehring 00143 * Review 00144 * 00145 * Revision 1.1 2003/04/25 19:49:28 goehring 00146 * Added CollisionPercept 00147 * 00148 */ 00149