#include "geometry.h"
#include "objecttype.h"
+#include "snap.h"
namespace R2C2 {
const Vector &get_position() const { return position; }
float get_rotation() const { return rotation; }
virtual Object *get_parent() const { return 0; }
+
+ virtual unsigned get_n_snap_nodes() const { return 0; }
+ virtual Snap get_snap_node(unsigned) const;
+ virtual bool snap(Snap &, float, SnapType = SNAP_DEFAULT) const;
+ virtual bool snap_to(const Object &, float, SnapType = SNAP_DEFAULT);
+protected:
+ virtual SnapType get_default_snap_type_to(const Object &) const { return NO_SNAP; }
+
+public:
virtual bool collide_ray(const Vector &, const Vector &) const = 0;
};