/*! \file physics_connection.h \brief Definition of The Physical Connection Class. */ #ifndef _PHYSICS_CONNECTION_H #define _PHYSICS_CONNECTION_H //! An enumerator for different ConnectionTypes typedef enum PCON_Type { PCON_IPhysIPhys = 0, PCON_IPhysField = 1, PCON_ParticlesField = 2 }; // Forward Declaration class Field; class IPhysics; class ParticleSystem; //! A class that Handles Physical Connection between subjects class PhysicsConnection { public: PhysicsConnection(IPhysics* partnerOne, IPhysics* partnerTwo); PhysicsConnection(IPhysics* subject, Field* field); PhysicsConnection(ParticleSystem* particleSystem, Field* field); virtual ~PhysicsConnection(); void apply(void) const; private: PCON_Type type; //!< What kind of connection this is. IPhysics* subject; //!< The main Subject of this Connection. IPhysics* partner2; //!< The second partner of this Connection. ParticleSystem* particleSystem; //!< A ParticleSystem in this Connection Field* field; //!< The field to connect either subject of ParticleSystem to. }; #endif /* _PHYSICS_CONNECTION_H */