Author: Carlos Lopez <[email protected]>
Date: Sat Aug 13 21:05:25 2011 +0200
To keep back compatibility, don't use homogeneous interpolation when
homogeneous is off and loading old "0.1" layer version.
---
.../src/modules/mod_geometry/advanced_outline.cpp | 27 +++++++++++++------
.../src/modules/mod_geometry/advanced_outline.h | 2 +
2 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
index bcd9147..dc41268 100644
--- a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
+++ b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
@@ -66,7 +66,7 @@ SYNFIG_LAYER_INIT(Advanced_Outline);
SYNFIG_LAYER_SET_NAME(Advanced_Outline,"advanced_outline");
SYNFIG_LAYER_SET_LOCAL_NAME(Advanced_Outline,N_("Advanced Outline"));
SYNFIG_LAYER_SET_CATEGORY(Advanced_Outline,N_("Geometry"));
-SYNFIG_LAYER_SET_VERSION(Advanced_Outline,"0.1");
+SYNFIG_LAYER_SET_VERSION(Advanced_Outline,"0.2");
SYNFIG_LAYER_SET_CVS_ID(Advanced_Outline,"$Id$");
/* === P R O C E D U R E S ================================================= */
Point line_intersection( const Point& p1, const Vector& t1, const Point& p2,
const Vector& t2 );
@@ -82,6 +82,7 @@ Advanced_Outline::Advanced_Outline()
dash_offset_=0.0;
homogeneous_=false;
dash_enabled_=false;
+ old_version=false;
clear();
vector<BLinePoint> bline_point_list;
@@ -248,7 +249,7 @@ Advanced_Outline::sync()
{
WidthPoint i(wpback);
WidthPoint n(wpfront);
- if(!homogeneous)
+ if(!homogeneous && !old_version)
{
i.set_position(std_to_hom(bline, i.get_position(), wplist_.get_loop(),
blineloop));
n.set_position(std_to_hom(bline, n.get_position(), wplist_.get_loop(),
blineloop));
@@ -261,7 +262,7 @@ Advanced_Outline::sync()
{
WidthPoint i(wpback);
WidthPoint n(wpfront);
- if(!homogeneous)
+ if(!homogeneous && !old_version)
{
i.set_position(std_to_hom(bline, i.get_position(), wplist_.get_loop(),
blineloop));
n.set_position(std_to_hom(bline, n.get_position(), wplist_.get_loop(),
blineloop));
@@ -552,7 +553,7 @@ Advanced_Outline::sync()
WidthPoint i(*cwiter);
WidthPoint n(*cwnext);
Real p(ipos);
- if(!homogeneous)
+ if(!homogeneous && !old_version)
{
i.set_position(std_to_hom(bline, i.get_position(), wplist_.get_loop(),
blineloop));
n.set_position(std_to_hom(bline, n.get_position(), wplist_.get_loop(),
blineloop));
@@ -584,7 +585,7 @@ Advanced_Outline::sync()
WidthPoint i(*cwiter);
WidthPoint n(*cwnext);
Real p(ipos);
- if(!homogeneous)
+ if(!homogeneous &&
!old_version)
{
i.set_position(std_to_hom(bline, i.get_position(), wplist_.get_loop(),
blineloop));
n.set_position(std_to_hom(bline, n.get_position(), wplist_.get_loop(),
blineloop));
@@ -677,7 +678,7 @@ Advanced_Outline::sync()
WidthPoint i(*cwiter);
WidthPoint n(*cwnext);
Real p(ipos);
- if(!homogeneous)
+ if(!homogeneous && !old_version)
{
i.set_position(std_to_hom(bline, i.get_position(), wplist_.get_loop(),
blineloop));
n.set_position(std_to_hom(bline, n.get_position(), wplist_.get_loop(),
blineloop));
@@ -715,7 +716,7 @@ Advanced_Outline::sync()
WidthPoint i(*cwiter);
WidthPoint n(*cwnext);
Real p(ipos);
- if(!homogeneous)
+ if(!homogeneous &&
!old_version)
{
i.set_position(std_to_hom(bline, i.get_position(), wplist_.get_loop(),
blineloop));
n.set_position(std_to_hom(bline, n.get_position(), wplist_.get_loop(),
blineloop));
@@ -746,7 +747,7 @@ Advanced_Outline::sync()
WidthPoint i(*cwiter);
WidthPoint n(*cwnext);
Real po(ipos);
- if(!homogeneous)
+ if(!homogeneous && !old_version)
{
i.set_position(std_to_hom(bline, i.get_position(), wplist_.get_loop(),
blineloop));
n.set_position(std_to_hom(bline, n.get_position(), wplist_.get_loop(),
blineloop));
@@ -775,7 +776,7 @@ Advanced_Outline::sync()
WidthPoint i(*cwiter);
WidthPoint n(*cwnext);
Real po(ipos);
- if(!homogeneous)
+ if(!homogeneous && !old_version)
{
i.set_position(std_to_hom(bline,
i.get_position(), wplist_.get_loop(), blineloop));
n.set_position(std_to_hom(bline,
n.get_position(), wplist_.get_loop(), blineloop));
@@ -859,6 +860,14 @@ Advanced_Outline::set_time(Context context, Time time,
Vector pos)const
context.set_time(time,pos);
}
+bool
+Advanced_Outline::set_version(const synfig::String &ver)
+{
+ if (ver=="0.1")
+ old_version = true;
+ return true;
+}
+
ValueBase
Advanced_Outline::get_param(const String& param)const
{
diff --git a/synfig-core/src/modules/mod_geometry/advanced_outline.h
b/synfig-core/src/modules/mod_geometry/advanced_outline.h
index e63ff6e..d3626e8 100644
--- a/synfig-core/src/modules/mod_geometry/advanced_outline.h
+++ b/synfig-core/src/modules/mod_geometry/advanced_outline.h
@@ -62,6 +62,7 @@ private:
bool homogeneous_;
Real dash_offset_;
bool dash_enabled_;
+ bool old_version;
public:
enum CuspType
@@ -79,6 +80,7 @@ public:
virtual Vocab get_param_vocab()const;
virtual void set_time(Context context, Time time)const;
virtual void set_time(Context context, Time time, Vector pos)const;
+ virtual bool set_version(const synfig::String &ver);
//! Connects the parameter to another Value Node. Implementation for
this layer
virtual bool connect_dynamic_param(const String& param,
etl::loose_handle<ValueNode> x );
------------------------------------------------------------------------------
FREE DOWNLOAD - uberSVN with Social Coding for Subversion.
Subversion made easy with a complete admin console. Easy
to use, easy to manage, easy to install, easy to extend.
Get a Free download of the new open ALM Subversion platform now.
http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl