2014-01-31 08:23:00 +13:00
|
|
|
|
|
|
|
|
#ifndef PLANEMODEL_H
|
|
|
|
|
#define PLANEMODEL_H
|
|
|
|
|
|
2019-01-18 15:55:06 +01:00
|
|
|
#include "brush.hpp"
|
2019-01-18 17:04:17 +01:00
|
|
|
#include "model.hpp"
|
2014-01-31 08:23:00 +13:00
|
|
|
|
2019-01-18 17:04:17 +01:00
|
|
|
class PlaneModel : public Model {
|
|
|
|
|
public:
|
|
|
|
|
PlaneModel(int sub_divs);
|
|
|
|
|
PlaneModel(const PlaneModel& t);
|
2014-01-31 08:23:00 +13:00
|
|
|
~PlaneModel();
|
2019-01-18 17:04:17 +01:00
|
|
|
Entity* clone()
|
|
|
|
|
{
|
|
|
|
|
return new PlaneModel(*this);
|
|
|
|
|
}
|
2014-01-31 08:23:00 +13:00
|
|
|
|
|
|
|
|
//model interface
|
2019-01-18 17:04:17 +01:00
|
|
|
bool render(const RenderContext& rc);
|
2014-01-31 08:23:00 +13:00
|
|
|
|
|
|
|
|
//object interface
|
2019-01-18 17:04:17 +01:00
|
|
|
bool collide(const Line& line, float radius, Collision* curr_coll, const Transform& tf);
|
2014-01-31 08:23:00 +13:00
|
|
|
|
2019-01-18 17:04:17 +01:00
|
|
|
Plane getRenderPlane() const;
|
2014-01-31 08:23:00 +13:00
|
|
|
|
2019-01-18 17:04:17 +01:00
|
|
|
private:
|
2014-01-31 08:23:00 +13:00
|
|
|
struct Rep;
|
|
|
|
|
|
2019-01-18 17:04:17 +01:00
|
|
|
Rep* rep;
|
2014-01-31 08:23:00 +13:00
|
|
|
|
2019-01-18 17:04:17 +01:00
|
|
|
virtual PlaneModel* getPlaneModel()
|
|
|
|
|
{
|
|
|
|
|
return this;
|
|
|
|
|
}
|
2014-01-31 08:23:00 +13:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|