summaryrefslogtreecommitdiffstats
path: root/src/sp-ellipse.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-ellipse.h')
-rw-r--r--src/sp-ellipse.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/sp-ellipse.h b/src/sp-ellipse.h
new file mode 100644
index 000000000..a1f79e6f5
--- /dev/null
+++ b/src/sp-ellipse.h
@@ -0,0 +1,105 @@
+#ifndef __SP_ELLIPSE_H__
+#define __SP_ELLIPSE_H__
+
+/*
+ * SVG <ellipse> and related implementations
+ *
+ * Authors:
+ * Lauris Kaplinski <lauris@kaplinski.com>
+ * Mitsuru Oka
+ *
+ * Copyright (C) 1999-2002 Lauris Kaplinski
+ * Copyright (C) 2000-2001 Ximian, Inc.
+ *
+ * Released under GNU GPL, read the file 'COPYING' for more information
+ */
+
+#include "svg/svg-length.h"
+#include "sp-shape.h"
+
+/* Common parent class */
+
+#define SP_TYPE_GENERICELLIPSE (sp_genericellipse_get_type ())
+#define SP_GENERICELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_GENERICELLIPSE, SPGenericEllipse))
+#define SP_GENERICELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_GENERICELLIPSE, SPGenericEllipseClass))
+#define SP_IS_GENERICELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_GENERICELLIPSE))
+#define SP_IS_GENERICELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_GENERICELLIPSE))
+
+class SPGenericEllipse;
+class SPGenericEllipseClass;
+
+struct SPGenericEllipse : public SPShape {
+ SVGLength cx;
+ SVGLength cy;
+ SVGLength rx;
+ SVGLength ry;
+
+ unsigned int closed : 1;
+ double start, end;
+};
+
+struct SPGenericEllipseClass {
+ SPShapeClass parent_class;
+};
+
+GType sp_genericellipse_get_type (void);
+
+/* This is technically priate by we need this in object edit (Lauris) */
+void sp_genericellipse_normalize (SPGenericEllipse *ellipse);
+
+/* SVG <ellipse> element */
+
+#define SP_TYPE_ELLIPSE (sp_ellipse_get_type ())
+#define SP_ELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_ELLIPSE, SPEllipse))
+#define SP_ELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_ELLIPSE, SPEllipseClass))
+#define SP_IS_ELLIPSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_ELLIPSE))
+#define SP_IS_ELLIPSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_ELLIPSE))
+
+struct SPEllipse : public SPGenericEllipse {
+};
+
+struct SPEllipseClass {
+ SPGenericEllipseClass parent_class;
+};
+
+GType sp_ellipse_get_type (void);
+
+void sp_ellipse_position_set (SPEllipse * ellipse, gdouble x, gdouble y, gdouble rx, gdouble ry);
+
+/* SVG <circle> element */
+
+#define SP_TYPE_CIRCLE (sp_circle_get_type ())
+#define SP_CIRCLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_CIRCLE, SPCircle))
+#define SP_CIRCLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_CIRCLE, SPCircleClass))
+#define SP_IS_CIRCLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_CIRCLE))
+#define SP_IS_CIRCLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_CIRCLE))
+
+struct SPCircle : public SPGenericEllipse {
+};
+
+struct SPCircleClass {
+ SPGenericEllipseClass parent_class;
+};
+
+GType sp_circle_get_type (void);
+
+/* <path sodipodi:type="arc"> element */
+
+#define SP_TYPE_ARC (sp_arc_get_type ())
+#define SP_ARC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_ARC, SPArc))
+#define SP_ARC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_ARC, SPArcClass))
+#define SP_IS_ARC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_ARC))
+#define SP_IS_ARC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_ARC))
+
+struct SPArc : public SPGenericEllipse {
+};
+
+struct SPArcClass {
+ SPGenericEllipseClass parent_class;
+};
+
+GType sp_arc_get_type (void);
+void sp_arc_position_set (SPArc * arc, gdouble x, gdouble y, gdouble rx, gdouble ry);
+NR::Point sp_arc_get_xy (SPArc *ge, gdouble arg);
+
+#endif