/* === S Y N F I G ========================================================= */
/*! \file star.cpp
-** \brief Template Header
+** \brief Implementation of the "Star" layer
**
** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007-2008 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
SYNFIG_LAYER_INIT(Star);
SYNFIG_LAYER_SET_NAME(Star,"star");
-SYNFIG_LAYER_SET_LOCAL_NAME(Star,_("Star"));
-SYNFIG_LAYER_SET_CATEGORY(Star,_("Geometry"));
+SYNFIG_LAYER_SET_LOCAL_NAME(Star,N_("Star"));
+SYNFIG_LAYER_SET_CATEGORY(Star,N_("Geometry"));
SYNFIG_LAYER_SET_VERSION(Star,"0.1");
SYNFIG_LAYER_SET_CVS_ID(Star,"$Id$");
radius1(1.0),
radius2(0.38),
points(5),
- angle(Angle::deg(90))
+ angle(Angle::deg(90)),
+ regular_polygon(false)
{
sync();
}
Angle dist1(dist_between_points*i+angle);
Angle dist2(dist_between_points*i+dist_between_points/2+angle);
vector_list.push_back(Point(Angle::cos(dist1).get()*radius1,Angle::sin(dist1).get()*radius1));
- vector_list.push_back(Point(Angle::cos(dist2).get()*radius2,Angle::sin(dist2).get()*radius2));
+ if (!regular_polygon)
+ vector_list.push_back(Point(Angle::cos(dist2).get()*radius2,Angle::sin(dist2).get()*radius2));
}
clear();
add_polygon(vector_list);
return true;
}
+ if(param=="regular_polygon" && value.same_type_as(regular_polygon))
+ {
+ value.put(®ular_polygon);
+ sync();
+ return true;
+ }
+
if(param=="vector_list")
return false;
EXPORT(radius2);
EXPORT(points);
EXPORT(angle);
+ EXPORT(regular_polygon);
EXPORT_NAME();
EXPORT_VERSION();
.set_local_name(_("Outer Radius"))
.set_description(_("The radius of the outer points in the star"))
.set_is_distance()
- .set_origin("offset")
+ .set_origin("origin")
);
ret.push_back(ParamDesc("radius2")
.set_local_name(_("Inner Radius"))
.set_description(_("The radius of the inner points in the star"))
.set_is_distance()
- .set_origin("offset")
+ .set_origin("origin")
);
ret.push_back(ParamDesc("angle")
.set_local_name(_("Angle"))
.set_description(_("The orientation of the star"))
- .set_origin("offset")
+ .set_origin("origin")
);
ret.push_back(ParamDesc("points")
.set_description(_("The number of points in the star"))
);
+ ret.push_back(ParamDesc("regular_polygon")
+ .set_local_name(_("Regular Polygon"))
+ .set_description(_("Whether to draw a star or a regular polygon"))
+ );
+
return ret;
}