Author: Carlos Lopez <[email protected]>
Date: Mon Aug 8 14:18:16 2011 +0200
Rewrite DashItem class as independent class and not inherited from WidthPoint
since it doesn't offer any advantage
---
synfig-core/src/synfig/dashitem.cpp | 62 ++++++++++++++++++++++++-----------
synfig-core/src/synfig/dashitem.h | 23 +++++++++++--
synfig-core/src/synfig/value.h | 2 +-
3 files changed, 63 insertions(+), 24 deletions(-)
diff --git a/synfig-core/src/synfig/dashitem.cpp
b/synfig-core/src/synfig/dashitem.cpp
index 8a163f2..a0aca8b 100644
--- a/synfig-core/src/synfig/dashitem.cpp
+++ b/synfig-core/src/synfig/dashitem.cpp
@@ -47,48 +47,72 @@ using namespace synfig;
/* === M E T H O D S ======================================================= */
-DashItem::DashItem()
+DashItem::DashItem():
+offset_(0.1),
+length_(0.1)
{
- set_offset(0.1);
- set_length(0.1);
- set_side_type_before(TYPE_FLAT);
- set_side_type_after(TYPE_FLAT);
+ side_type_[0] = side_type_[1] = TYPE_FLAT;
}
-DashItem::DashItem(const DashItem &ref) :
-WidthPoint::WidthPoint(ref.get_offset(), ref.get_length(),
ref.get_side_type_before(), ref.get_side_type_after())
-{
-}
-DashItem::DashItem(Real offset, Real length, int sidebefore, int sideafter)
+DashItem::DashItem(Real offset, Real length, int sidebefore, int sideafter):
+ offset_(offset),
+ length_(length)
{
- set_offset(offset);
- set_width(length);
- set_side_type_before(sidebefore);
- set_side_type_after(sideafter);
+ side_type_[0]=sidebefore;
+ side_type_[1]=sideafter;
}
-
void
DashItem::set_length(Real x)
{
- set_width(x);
+ length_=x;
}
const Real&
DashItem::get_length()const
{
- return get_width();
+ return length_;
}
void
DashItem::set_offset(Real x)
{
- set_position(x);
+ offset_=x;
}
const Real&
DashItem::get_offset()const
{
- return get_position();
+ return offset_;
+}
+
+int
+DashItem::get_side_type_before()const
+{
+ return side_type_[0];
+}
+
+void
+DashItem::set_side_type_before(int sidebefore)
+{
+ side_type_[0]=sidebefore;
+}
+
+int
+DashItem::get_side_type_after()const
+{
+ return side_type_[1];
+}
+
+void
+DashItem::set_side_type_after(int sideafter)
+{
+ side_type_[1]=sideafter;
+}
+
+int
+DashItem::get_side_type(int i)const
+{
+ return i>0? side_type_[1]: side_type_[0];
}
diff --git a/synfig-core/src/synfig/dashitem.h
b/synfig-core/src/synfig/dashitem.h
index bfc6475..08eacf2 100644
--- a/synfig-core/src/synfig/dashitem.h
+++ b/synfig-core/src/synfig/dashitem.h
@@ -28,7 +28,8 @@
/* === H E A D E R S ======================================================= */
-#include "widthpoint.h"
+#include "uniqueid.h"
+#include "real.h"
/* === M A C R O S ========================================================= */
@@ -38,12 +39,21 @@
namespace synfig {
-class DashItem : public WidthPoint
+class DashItem : public UniqueID
{
+private:
+ Real offset_;
+ Real length_;
+ int side_type_[2]; // Before [0] and After[1] side types
public:
-
+ enum SideType
+ {
+ TYPE_ROUNDED =0,
+ TYPE_SQUARED =1,
+ TYPE_PEAK =2,
+ TYPE_FLAT =3
+ };
DashItem();
- DashItem(const DashItem &ref);
DashItem(Real position, Real length, int sidebefore=TYPE_FLAT,
int sideafter=TYPE_FLAT);
@@ -51,6 +61,11 @@ public:
void set_length(Real x);
const Real& get_offset()const;
void set_offset(Real x);
+ int get_side_type_before()const;
+ void set_side_type_before(int sidebefore);
+ int get_side_type_after()const;
+ void set_side_type_after(int sideafter);
+ int get_side_type(int i)const;
}; // END of class DashItem
}; // END of namespace synfig
diff --git a/synfig-core/src/synfig/value.h b/synfig-core/src/synfig/value.h
index e9f612b..77a3290 100644
--- a/synfig-core/src/synfig/value.h
+++ b/synfig-core/src/synfig/value.h
@@ -99,7 +99,7 @@ public:
TYPE_SEGMENT, //!< Segment Point and Vector
TYPE_BLINEPOINT, //!< BLinePoint Origin (Point)
2xTangents (Vector) Width (Real), Origin (Real) Split Tangent (Boolean)
TYPE_WIDTHPOINT, //!< WidthPoint Position (Real), Width
(Real), 2xSide Type (int enum)
- TYPE_DASHITEM, //!< DashItem Offset (Real distance),
Length (Real distance), 2xSide Type (int enum), inherited from WidthPoint
+ TYPE_DASHITEM, //!< DashItem Offset (Real distance),
Length (Real distance), 2xSide Type (int enum)
// All types after this point require construction/destruction
------------------------------------------------------------------------------
BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts.
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos & much more. Register early & save!
http://p.sf.net/sfu/rim-blackberry-1
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl