00001 // Elastoid.h: interface for the Elastoid class. 00002 // 00004 00005 #if !defined(AFX_ELASTOID_H__DCB64B95_CC6D_4280_9E1F_242450B50FAF__INCLUDED_) 00006 #define AFX_ELASTOID_H__DCB64B95_CC6D_4280_9E1F_242450B50FAF__INCLUDED_ 00007 00008 #include "ElasticLink.h" 00009 00010 class Elastoid : public PhysicalObject { 00011 public: 00012 Elastoid(); 00013 virtual ~Elastoid(); 00014 00015 PhysicalObjectPVector objects; 00016 ElasticLinkVector links; 00017 00018 void addObject(PhysicalObject* object){ 00019 objects.push_back(object); 00020 } 00021 00022 virtual void registerPrimitives(Simulator* simulator); 00023 00024 00025 virtual void computeDerivativesWithoutContacts(ContactSolver* contactSolver); 00026 virtual void computeDerivatives(GlobalContactInfoVector* globalContacts); 00027 virtual void integrate(const Integrator &integrator); 00028 00029 virtual bool detectContacts(PhysicalObject* object, GlobalContactInfoVector* contacts); 00030 virtual void detectInternalContacts(GlobalContactInfoVector* globalContacts); 00031 virtual void deleteContacts(); 00032 virtual bool detectMouseContact(const Vector2& rMouse, Vector2& p, PhysicalObject*& object); 00033 00034 virtual void draw(GUI* gui); 00035 00036 00037 }; 00038 00039 #endif // !defined(AFX_ELASTOID_H__DCB64B95_CC6D_4280_9E1F_242450B50FAF__INCLUDED_)
Thyrix homepage Users' guide
(C) Arxia 2004-2005