X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Flayer_shape.h;h=1b20d522b8e622be6bf3e1aebaba0a70089333fe;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=f88a89401339b52bb8b07da2d11ceef5c9a99756;hpb=e3acc0b267b14fda5db3c7bbb2f218b993ef84b3;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/layer_shape.h b/synfig-core/trunk/src/synfig/layer_shape.h index f88a894..1b20d52 100644 --- a/synfig-core/trunk/src/synfig/layer_shape.h +++ b/synfig-core/trunk/src/synfig/layer_shape.h @@ -1,28 +1,30 @@ -/* === S I N F G =========================================================== */ +/* === S Y N F I G ========================================================= */ /*! \file layer_shape.h -** \brief Template Header +** \brief Header file for implementation of the "Shape" layer ** -** $Id: layer_shape.h,v 1.2 2005/01/24 03:08:18 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007-2008 Chris Moore ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned 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. ** -** 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 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 */ /* ========================================================================= */ /* === S T A R T =========================================================== */ -#ifndef __SINFG_LAYER_SHAPE_H -#define __SINFG_LAYER_SHAPE_H +#ifndef __SYNFIG_LAYER_SHAPE_H +#define __SYNFIG_LAYER_SHAPE_H /* === H E A D E R S ======================================================= */ @@ -39,32 +41,41 @@ /* === C L A S S E S & S T R U C T S ======================================= */ -namespace sinfg { - +namespace synfig { + /*! \class Layer_Shape -** \beief writeme */ +** \brief writeme */ class Layer_Shape : public Layer_Composite, public Layer_NoDeform { - SINFG_LAYER_MODULE_EXT - + 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 + + //internal caching struct Intersector; Intersector *edge_table; - + //exported data Color color; - - Point offset; + + Point origin; 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; @@ -92,14 +103,14 @@ public: void close(); void endpath(); - virtual bool set_param(const String & param, const sinfg::ValueBase &value); + 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; virtual bool accelerated_render(Context context,Surface *surface,int quality, const RendDesc &renddesc, ProgressCallback *cb)const; - virtual sinfg::Layer::Handle hit_check(sinfg::Context context, const sinfg::Point &point)const; + virtual synfig::Layer::Handle hit_check(synfig::Context context, const synfig::Point &point)const; virtual Rect get_bounding_rect()const; private: @@ -111,7 +122,7 @@ private: virtual bool render_shape(etl::surface *surface,int quality,const RendDesc &renddesc, ProgressCallback *cb)const; }; // END of Layer_Shape -}; // END of namespace sinfg +}; // END of namespace synfig /* === E N D =============================================================== */ #endif