+ Point SnapPointToGrid(Point);
+ Point SnapPointToAngle(Point);
+ void RenderObjects(Painter *, std::vector<void *> &, int, bool ignoreLayer = false);
+ void AddHoveredToSelection(void);
+ void GetSelection(std::vector<void *> &);
+ void GetHovered(std::vector<void *> &);
+ void ToolHandler(int, Point);
+ void ToolDraw(Painter *);
+ void LineHandler(int, Point);
+ void CircleHandler(int, Point);
+ void ArcHandler(int, Point);
+ void RotateHandler(int, Point);
+ void MirrorHandler(int, Point);
+ Rect GetObjectExtents(Object *);
+ void CheckObjectBounds(void);
+ bool HitTestObjects(Point);
+ bool HitTest(Object *, Point);
+ bool HandleObjectClicked(void);
+ void HandleObjectMovement(Point);