-/*! ========================================================================
-** Sinfg
-** Template File
-** $Id: region.cpp,v 1.1.1.1 2005/01/04 01:23:10 darco Exp $
+/* === S Y N F I G ========================================================= */
+/*! \file region.cpp
+** \brief Template Header
**
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** $Id$
**
-** This software and associated documentation
-** are CONFIDENTIAL and PROPRIETARY property of
-** the above-mentioned copyright holder.
+** \legal
+** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 Chris Moore
**
-** You may not copy, print, publish, or in any
-** other way distribute this software without
-** a prior written agreement with
-** the copyright holder.
+** This package is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 2 of
+** the License, or (at your option) any later version.
+**
+** This package is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
+** \endlegal
**
** === N O T E S ===========================================================
**
#include <ETL/bezier>
#include <ETL/hermite>
-#include <sinfg/string.h>
-#include <sinfg/time.h>
-#include <sinfg/context.h>
-#include <sinfg/paramdesc.h>
-#include <sinfg/renddesc.h>
-#include <sinfg/surface.h>
-#include <sinfg/value.h>
-#include <sinfg/valuenode.h>
-#include <sinfg/segment.h>
-#include <sinfg/valuenode_bline.h>
+#include <synfig/string.h>
+#include <synfig/time.h>
+#include <synfig/context.h>
+#include <synfig/paramdesc.h>
+#include <synfig/renddesc.h>
+#include <synfig/surface.h>
+#include <synfig/value.h>
+#include <synfig/valuenode.h>
+#include <synfig/segment.h>
+#include <synfig/valuenode_bline.h>
#endif
/* === G L O B A L S ======================================================= */
-SINFG_LAYER_INIT(Region);
-SINFG_LAYER_SET_NAME(Region,"region");
-SINFG_LAYER_SET_LOCAL_NAME(Region,_("Region"));
-SINFG_LAYER_SET_CATEGORY(Region,_("Geometry"));
-SINFG_LAYER_SET_VERSION(Region,"0.1");
-SINFG_LAYER_SET_CVS_ID(Region,"$Id: region.cpp,v 1.1.1.1 2005/01/04 01:23:10 darco Exp $");
+SYNFIG_LAYER_INIT(Region);
+SYNFIG_LAYER_SET_NAME(Region,"region");
+SYNFIG_LAYER_SET_LOCAL_NAME(Region,_("Region"));
+SYNFIG_LAYER_SET_CATEGORY(Region,_("Geometry"));
+SYNFIG_LAYER_SET_VERSION(Region,"0.1");
+SYNFIG_LAYER_SET_CVS_ID(Region,"$Id$");
/* === P R O C E D U R E S ================================================= */
bline_point_list.push_back(BLinePoint());
bline_point_list.push_back(BLinePoint());
bline_point_list.push_back(BLinePoint());
- bline_point_list[0].set_vertex(Point(0,1));
- bline_point_list[1].set_vertex(Point(0,-1));
+ bline_point_list[0].set_vertex(Point(0,1));
+ bline_point_list[1].set_vertex(Point(0,-1));
bline_point_list[2].set_vertex(Point(1,0));
- bline_point_list[0].set_tangent(bline_point_list[1].get_vertex()-bline_point_list[2].get_vertex()*0.5f);
- bline_point_list[1].set_tangent(bline_point_list[2].get_vertex()-bline_point_list[0].get_vertex()*0.5f);
- bline_point_list[2].set_tangent(bline_point_list[0].get_vertex()-bline_point_list[1].get_vertex()*0.5f);
- bline_point_list[0].set_width(1.0f);
- bline_point_list[1].set_width(1.0f);
- bline_point_list[2].set_width(1.0f);
+ bline_point_list[0].set_tangent(bline_point_list[1].get_vertex()-bline_point_list[2].get_vertex()*0.5f);
+ bline_point_list[1].set_tangent(bline_point_list[2].get_vertex()-bline_point_list[0].get_vertex()*0.5f);
+ bline_point_list[2].set_tangent(bline_point_list[0].get_vertex()-bline_point_list[1].get_vertex()*0.5f);
+ bline_point_list[0].set_width(1.0f);
+ bline_point_list[1].set_width(1.0f);
+ bline_point_list[2].set_width(1.0f);
bline=bline_point_list;
}
}
else
{
- sinfg::warning("Region: incorrect type on bline, layer disabled");
+ synfig::warning("Region: incorrect type on bline, layer disabled");
clear();
return;
}
if(segment_list.empty())
{
- sinfg::warning("Region: segment_list is empty, layer disabled");
+ synfig::warning("Region: segment_list is empty, layer disabled");
clear();
return;
}
-
+
bool looped = bline.get_loop();
Vector::value_type n;
vector<Segment>::const_iterator iter=segment_list.begin();
//Vector last = iter->p1;
-
+
//make sure the shape has a clean slate for writing
//clear();
-
+
//and start off at the first point
//move_to(last[0],last[1]);
-
+
for(;iter!=segment_list.end();++iter)
{
//connect them with a line if they aren't already joined
{
line_to(iter->p1[0],iter->p1[1]);
}
-
+
//curve to the next end point
curve_to(iter->p1[0] + iter->t1[0]/3.0,iter->p1[1] + iter->t1[1]/3.0,
iter->p2[0] - iter->t2[0]/3.0,iter->p2[1] - iter->t2[1]/3.0,
iter->p2[0],iter->p2[1]);
-
+
last = iter->p2;*/
-
+
if(iter->t1.is_equal_to(Vector(0,0)) && iter->t2.is_equal_to(Vector(0,0)))
{
vector_list.push_back(iter->p2);
vector_list.push_back(curve(n));
}
}
-
- //add a single point onto the end so it actually fits the shape, so we can be awesome...
+
+ //add the starting point onto the end so it actually fits the shape, so we can be extra awesome...
if(!looped)
- {
- vector_list.push_back(curve.p2());
- }
+ vector_list.push_back(segment_list[0].p1);
clear();
add_polygon(vector_list);
-
+
/*close();
endpath();*/
}
{
connect_dynamic_param("bline",dynamic_param_list().find("segment_list")->second);
disconnect_dynamic_param("segment_list");
- sinfg::warning("Region::set_param(): Updated valuenode connection to use the new \"bline\" parameter.");
+ synfig::warning("Region::set_param(): Updated valuenode connection to use the new \"bline\" parameter.");
}
else
- sinfg::warning("Region::set_param(): The parameter \"segment_list\" is deprecated. Use \"bline\" instead.");
+ synfig::warning("Region::set_param(): The parameter \"segment_list\" is deprecated. Use \"bline\" instead.");
}
-
+
if( (param=="segment_list" || param=="bline") && value.get_type()==ValueBase::TYPE_LIST)
{
//if(value.get_contained_type()!=ValueBase::TYPE_BLINEPOINT)
// return false;
-
+
bline=value;
return true;