/*! \file layer_shape.h
** \brief Template Header
**
-** $Id: layer_shape.h,v 1.2 2005/01/24 03:08:18 darco Exp $
+** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
+** Copyright (c) 2007 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
/* === C L A S S E S & S T R U C T S ======================================= */
namespace synfig {
-
+
/*! \class Layer_Shape
-** \beief writeme */
+** \brief writeme */
class Layer_Shape : public Layer_Composite, public Layer_NoDeform
{
SYNFIG_LAYER_MODULE_EXT
-
+
+ enum WindingStyle
+ {
+ WINDING_NON_ZERO=0, //!< less than -1 --> 1; -1 --> 1; 0 --> 0; 1 --> 1; greater than 1 --> 1
+ WINDING_EVEN_ODD=1, //!< add or subtract multiples of 2 to get into range -1:1, then as above
+
+ WINDING_END=2 //!< \internal
+ };
+
private:
-
+
//internal cacheing
struct Intersector;
Intersector *edge_table;
-
+
//exported data
Color color;
-
+
Point offset;
bool invert;
bool antialias;
-
+
int blurtype;
Real feather;
-
+ WindingStyle winding_style;
+
std::vector< char > bytestream;
-
+
//for use in creating the bytestream
int lastbyteop;
int lastoppos;
virtual bool set_param(const String & param, const synfig::ValueBase &value);
virtual ValueBase get_param(const String & param)const;
-
+
virtual Vocab get_param_vocab()const;
virtual Color get_color(Context context, const Point &pos)const;