Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

Representations/Perception/CollisionPercept.cpp

Go to the documentation of this file.
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 

Generated on Thu Sep 23 19:57:36 2004 for GT2004 by doxygen 1.3.6