00001 /*************************************************************************** 00002 SimAtom.h - description 00003 ------------------- 00004 begin : mer jun 25 2003 00005 copyright : (C) 2003 by Yann Le Guyadec, Michel DUBOIS 00006 email : Yann.Le-Guyadec@univ-ubs.fr, Michel.Dubois@univ-ubs.fr 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef SIMATOM_H 00019 #define SIMATOM_H 00020 00021 #include "SimLeg.h" 00022 #include "RigidBody.h" 00023 #include "RigidBodyEntity.h" 00024 #include "HingeJoint.h" 00025 #include "AMotorJoint.h" 00026 #include "Matrix22.h" 00027 #include "Vector2.h" 00028 #include "Vector3.h" 00029 #include "SphereGeometry.h" 00030 #include "RigidBodyCollider.h" 00031 #include "CappedCylinderGeometry.h" 00032 #include "Atom.h" 00033 //#include "Graph.h" 00034 00035 class SimLeg; 00040 class SimAtom : public RigidBodyEntity { 00041 friend class SimLeg; 00042 private : 00043 unsigned int ID; 00044 SimLeg * legs[6]; 00045 RigidBodyCollider * kernelCollider; 00046 public: 00047 SimAtom(); 00048 virtual ~SimAtom(); 00049 unsigned int getSimLegCount() const; 00050 SimLeg * getSimLeg(unsigned int SimLegID) const; 00051 RigidBody * getKernel() const; 00052 void SimAtom::handleEvent (Event* event); 00053 unsigned int getID() const; 00054 void setID(unsigned int anAtomID); 00055 virtual void print(); 00056 Vector3 getPosition(); 00057 00058 00059 }; 00060 00061 #endif