00001 00007 #ifndef POINTMASS3D_BOX_H 00008 #define POINTMASS3D_BOX_H 00009 00010 namespace argos { 00011 class CPointMass3DEngine; 00012 class CPointMass3DBoxModel; 00013 class CQuadRotorEntity; 00014 } 00015 00016 #include <argos3/plugins/simulator/physics_engines/pointmass3d/pointmass3d_model.h> 00017 #include <argos3/plugins/simulator/entities/quadrotor_entity.h> 00018 #include <argos3/plugins/simulator/entities/box_entity.h> 00019 00020 namespace argos { 00021 00022 class CPointMass3DBoxModel : public CPointMass3DModel { 00023 00024 public: 00025 00026 CPointMass3DBoxModel(CPointMass3DEngine& c_engine, 00027 CBoxEntity& c_box); 00028 virtual ~CPointMass3DBoxModel() {} 00029 00030 virtual void UpdateFromEntityStatus() {} 00031 virtual void Step() {} 00032 virtual void UpdateEntityStatus() {} 00033 00034 virtual void CalculateBoundingBox(); 00035 00036 virtual bool CheckIntersectionWithRay(Real& f_t_on_ray, 00037 const CRay3& c_ray) const; 00038 00039 private: 00040 00041 CBoxEntity& m_cBoxEntity; 00042 }; 00043 00044 } 00045 00046 #endif