/* === S Y N F I G ========================================================= */ /*! \file star.cpp ** \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 ** 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 =========================================================== ** ** ========================================================================= */ /* === H E A D E R S ======================================================= */ #ifdef USING_PCH # include "pch.h" #else #ifdef HAVE_CONFIG_H # include #endif #include "star.h" #include #include #include #include #include #include #include #include #include #include #include #include #endif using namespace etl; /* === M A C R O S ========================================================= */ #define SAMPLES 75 /* === G L O B A L S ======================================================= */ SYNFIG_LAYER_INIT(Star); SYNFIG_LAYER_SET_NAME(Star,"star"); 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$"); /* === P R O C E D U R E S ================================================= */ /* === M E T H O D S ======================================================= */ /* === E N T R Y P O I N T ================================================= */ Star::Star(): radius1(1.0), radius2(0.38), points(5), angle(Angle::deg(90)), regular_polygon(false) { sync(); Layer::Vocab voc(get_param_vocab()); Layer::fill_static(voc); } void Star::sync() { Angle dist_between_points(Angle::rot(1)/float(points)); std::vector vector_list; int i; for(i=0;i