diff options
Diffstat (limited to 'libs/canvas/circle.cc')
-rw-r--r-- | libs/canvas/circle.cc | 65 |
1 files changed, 2 insertions, 63 deletions
diff --git a/libs/canvas/circle.cc b/libs/canvas/circle.cc index 3a3d6e8e7e..15a1679f74 100644 --- a/libs/canvas/circle.cc +++ b/libs/canvas/circle.cc @@ -16,75 +16,14 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include <algorithm> -#include <cairomm/context.h> -#include "pbd/compose.h" #include "canvas/circle.h" -#include "canvas/types.h" -#include "canvas/debug.h" -#include "canvas/utils.h" -#include "canvas/canvas.h" -using namespace std; using namespace ArdourCanvas; Circle::Circle (Group* parent) : Item (parent) - , Outline (parent) - , Fill (parent) - , _radius (0.0) + , Arc (parent) { - -} - -void -Circle::compute_bounding_box () const -{ - Rect bbox; - - bbox.x0 = _center.x - _radius; - bbox.y0 = _center.y - _radius; - bbox.x1 = _center.x + _radius; - bbox.y1 = _center.y + _radius; - - bbox = bbox.expand (0.5 + (_outline_width / 2)); - - _bounding_box = bbox; - _bounding_box_dirty = false; -} - -void -Circle::render (Rect const & /*area*/, Cairo::RefPtr<Cairo::Context> context) const -{ - if (_radius <= 0.0) { - return; - } - context->arc (_center.x, _center.y, _radius, 0.0, 2.0 * M_PI); - setup_fill_context (context); - context->fill_preserve (); - setup_outline_context (context); - context->stroke (); + set_arc (360.0); } -void -Circle::set_center (Duple const & c) -{ - begin_change (); - - _center = c; - - _bounding_box_dirty = true; - end_change (); -} - -void -Circle::set_radius (Coord r) -{ - begin_change (); - - _radius = r; - - _bounding_box_dirty = true; - end_change (); -} - |