Author: Carlos Lopez <[email protected]>
Date: Mon Jul 18 21:35:48 2011 +0200
Add homogeneous parameter to Advanced Outline Layer. It is not functional yet.
---
.../src/modules/mod_geometry/advanced_outline.cpp | 60 ++++++++++++++++++--
.../src/modules/mod_geometry/advanced_outline.h | 2 +
2 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
index b3193b3..3ccec0e 100644
--- a/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
+++ b/synfig-core/src/modules/mod_geometry/advanced_outline.cpp
@@ -490,6 +490,7 @@ Advanced_Outline::set_param(const String & param, const
ValueBase &value)
wplist_=value;
return true;
}
+ IMPORT_AS(homogeneous_, "homogeneous");
if(param=="vector_list")
return false;
return Layer_Polygon::set_param(param,value);
@@ -520,6 +521,7 @@ Advanced_Outline::get_param(const String& param)const
EXPORT_AS(end_tip_,"end_tip");
EXPORT_AS(width_, "width");
EXPORT_AS(wplist_, "wplist");
+ EXPORT_AS(homogeneous_,"homogeneous");
EXPORT_NAME();
EXPORT_VERSION();
if(param=="vector_list")
@@ -584,6 +586,10 @@ Advanced_Outline::get_param_vocab()const
.set_origin("origin")
.set_description(_("List of width Points that defines the
variable width"))
);
+ ret.push_back(ParamDesc("homogeneous")
+ .set_local_name(_("Homogeneous"))
+ .set_description(_("When checked the position is bline length
based"))
+ );
return ret;
}
@@ -596,23 +602,38 @@ Advanced_Outline::connect_dynamic_param(const String&
param, etl::loose_handle<V
if(!connect_bline_to_wplist(x))
synfig::warning("Advanced Outline: WPList doesn't
accept new bline");
}
+ if(param=="homogeneous")
+ {
+ if(!connect_homogeneous_to_wplist(x))
+ synfig::warning("Advanced Outline: WPList doesn't
accept new homogeneous");
+ }
if(param=="wplist")
{
if(Layer::connect_dynamic_param(param, x))
{
DynamicParamList::const_iterator
iter(dynamic_param_list().find("bline"));
if(iter==dynamic_param_list().end())
- {
- synfig::warning("BLine doesn't exist
yet!!");
- return false;
- }
+ {
+ synfig::warning("BLine doesn't exist yet!!");
+ return false;
+ }
else if(!connect_bline_to_wplist(iter->second))
{
synfig::warning("Advanced Outline: WPList
doesn't accept new bline");
return false;
}
- else
- return true;
+ iter=dynamic_param_list().find("homogeneous");
+ if(iter==dynamic_param_list().end())
+ {
+ synfig::warning("Homogenous doesn't exist
yet!!");
+ return false;
+ }
+ else if(!connect_homogeneous_to_wplist(iter->second))
+ {
+ synfig::warning("Advanced Outline: WPList
doesn't accept new homogeneous");
+ return false;
+ }
+ return true;
}
else
return false;
@@ -653,6 +674,33 @@
Advanced_Outline::connect_bline_to_wplist(etl::loose_handle<ValueNode> x)
return true;
}
+bool
+Advanced_Outline::connect_homogeneous_to_wplist(etl::loose_handle<ValueNode> x)
+{
+ if(x->get_type() != ValueBase::TYPE_BOOL)
+ {
+ synfig::info("Not a bool");
+ return false;
+ }
+ ValueNode::LooseHandle vnode;
+ DynamicParamList::const_iterator
iter(dynamic_param_list().find("wplist"));
+ if(iter==dynamic_param_list().end())
+ {
+ synfig::warning("WPList doesn't exist yet");
+ return false;
+ }
+ ValueNode_WPList::Handle
wplist(ValueNode_WPList::Handle::cast_dynamic(iter->second));
+ if(!wplist)
+ {
+ synfig::info("WPList is not ready: NULL");
+ return false;
+ }
+ if(!wplist->link_count())
+
synfig::warning("Advanced_Outline::connect_homogeneous_to_wplist:
WPList::link_count()=0");
+ wplist->set_homogeneous(ValueNode::Handle(x));
+ return true;
+}
+
Real
Advanced_Outline::bline_to_bezier(Real bline_pos, Real origin, Real
bezier_size)
diff --git a/synfig-core/src/modules/mod_geometry/advanced_outline.h
b/synfig-core/src/modules/mod_geometry/advanced_outline.h
index d4702f3..d634774 100644
--- a/synfig-core/src/modules/mod_geometry/advanced_outline.h
+++ b/synfig-core/src/modules/mod_geometry/advanced_outline.h
@@ -58,6 +58,7 @@ private:
synfig::Real width_;
synfig::Real expand_;
Real smoothness_;
+ bool homogeneous_;
public:
enum CuspType
@@ -81,6 +82,7 @@ public:
private:
bool connect_bline_to_wplist(etl::loose_handle<ValueNode> x);
+ bool connect_homogeneous_to_wplist(etl::loose_handle<ValueNode> x);
Real bline_to_bezier(Real bline_pos, Real origin, Real bezier_size);
Real bezier_to_bline(Real bezier_pos, Real origin, Real bezier_size);
void add_tip(std::vector<Point> &side_a, std::vector<Point> &side_b,
const Point vertex, const Vector tangent, const WidthPoint wp);
------------------------------------------------------------------------------
10 Tips for Better Web Security
Learn 10 ways to better secure your business today. Topics covered include:
Web security, SSL, hacker attacks & Denial of Service (DoS), private keys,
security Microsoft Exchange, secure Instant Messaging, and much more.
http://www.accelacomm.com/jaw/sfnl/114/51426210/
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl