/*! * @file physics_connection.h * Definition of The Physical Connection Class. * @todo */ #ifndef _PHYSICS_CONNECTION_H #define _PHYSICS_CONNECTION_H #include "base_object.h" // Forward Declaration class PhysicsInterface; class ParticleSystem; class Field; //! An enumerator for different ConnectionTypes typedef enum PCON_Type { PCON_PhysIPhysI = 1, PCON_PhysIField = 2 }; // Forward Declaration //! A class that Handles Physical Connection between different subjects class PhysicsConnection : public BaseObject { ObjectListDeclaration(PhysicsConnection); public: PhysicsConnection(PhysicsInterface* subject, Field* field); // PhysicsConnection(PhysicsInterface* partnerOne, PhysicsInterface* partnerTwo); PhysicsConnection(const TiXmlElement* root); virtual ~PhysicsConnection(); void setSubject(const std::string& subjectName); void setField(const std::string& fieldName); void apply() const; private: PCON_Type type; //!< What kind of connection this is. PhysicsInterface* subject; //!< The main Subject of this Connection. PhysicsInterface* partner2; //!< The second partner of this Connection. Field* field; //!< The field to connect either subject of ParticleSystem to. }; #endif /* _PHYSICS_CONNECTION_H */