class Object
{
+public:
+ sigc::signal<void> signal_moved;
+
protected:
Layout &layout;
Vector position;
Angle rotation;
+ Angle tilt;
Object(Layout &l): layout(l) { }
public:
Layout &get_layout() const { return layout; }
virtual void set_position(const Vector &) = 0;
virtual void set_rotation(const Angle &) = 0;
+ virtual void set_tilt(const Angle &) = 0;
const Vector &get_position() const { return position; }
const Angle &get_rotation() const { return rotation; }
+ const Angle &get_tilt() const { return tilt; }
virtual Object *get_parent() const { return 0; }
virtual unsigned get_n_snap_nodes() const { return 0; }
virtual bool break_link(unsigned) { return false; }
virtual void break_links();
- virtual bool collide_ray(const Vector &, const Vector &) const = 0;
+ virtual bool collide_ray(const Ray &) const;
+ virtual BoundingBox get_bounding_box() const;
};
} // namespace R2C2