David Robillard
ea5876b836
Remove dead code.
2014-11-25 02:11:44 -05:00
Paul Davis
a8bd6ecc4f
refactor Canvas so that all Items have children; add Container abstract base class; rename Group as "Layout" and retain only drawing semantics
2014-06-21 11:43:42 -04:00
Paul Davis
590882f3c8
change Canvas heirarchy and constructors
...
Items no longer need a parent group (they require a Canvas pointer instead), so all constructors have been rationalized
and have two variants, one with a parent and one with a canvas.
All Items now inherit from Fill and Outline, to banish diagonal inheritance and virtual base classes and all that.
There were zero changes to the Ardour GUI arising from these changes.
2014-06-12 14:53:44 -04:00
Robin Gareus
30f204b90e
Canvas: new x-fade drawing, two curve widget
2014-05-29 03:09:57 +02:00
Robin Gareus
99c953514b
implement Curve in/outside fill
2014-05-27 16:37:01 +02:00
Robin Gareus
791c668756
fix x-fade drawing
...
Catmull-Rom curve samples are not equally spaced on the x-axis.
Furthermore, Curve::map_value() is not needed, cairo line_to
already interpolates.
2014-05-26 17:02:21 +02:00
Paul Davis
58a30da03d
use a centripetal catmull-rom curve to smooth ArdourCanvas::Curve
...
See http://en.wikipedia.org/wiki/Centripetal_Catmull-Rom to understand the benefits of this.
2014-03-05 11:38:30 -05:00
Paul Davis
435c3ad47f
change implementation of ArdourCanvas::Curve to use GIMP-inspired ideas.
...
Presmooth with quadratic bezier, then interpolate when rendering. Not finished yet
2014-02-28 17:00:25 -05:00
Paul Davis
007e6bb15b
remove unneeded extra methods in ArdourCanvas::Curve
2014-02-27 09:22:36 -05:00
Paul Davis
218a4664be
add visibility/export control to libcanvas
2013-12-27 16:24:58 -05:00
Paul Davis
c4f0063a68
make PolyLine use distance_to_segment_squared(), and add separate (null, for now) method Curve::covers(Duple) because the math there needs to be different, maybe
2013-12-09 17:24:34 -05:00
Paul Davis
6473cc7cb4
drop use of bounding box to determine whether an item covers a point; add Item::covers(Duple const&)
...
Default implementation for Item still uses bounding box, but specializations for Arc (Circle), Polygon, Line and PolyLine have been added
2013-11-04 11:56:10 -05:00
Paul Davis
37dd7e952b
add headers to all canvas .cc and .h files
2013-04-15 22:10:18 -04:00
Paul Davis
84fb0a8dce
remove all XML related API from canvas. it may have been useful during development, but it is just a distraction - we will NEVER be saving or restoring canvas state via XML or any kind of serialized state
2013-04-15 21:57:08 -04:00
Paul Davis
7caf517b27
add (bezier) curves to canvas, use for automation lines; fix issue with rectangles missing their upper line segment; more cairo canvas fixes
2013-04-11 22:54:12 -04:00