X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fcurveset.h;h=a34976a4ebf3ae8ec6b5dec90856b090421ac8af;hb=d15c4522466bedfbe61620c401becae0931854f5;hp=963fd934c7e1c6d57235116a889e8c91ff6758e3;hpb=e3acc0b267b14fda5db3c7bbb2f218b993ef84b3;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/curveset.h b/synfig-core/trunk/src/synfig/curveset.h index 963fd93..a34976a 100644 --- a/synfig-core/trunk/src/synfig/curveset.h +++ b/synfig-core/trunk/src/synfig/curveset.h @@ -1,28 +1,29 @@ -/* === S I N F G =========================================================== */ +/* === S Y N F I G ========================================================= */ /*! \file curveset.h ** \brief Curve Set Header ** -** $Id: curveset.h,v 1.1.1.1 2005/01/04 01:23:14 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** 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_CURVESET_H -#define __SINFG_CURVESET_H +#ifndef __SYNFIG_CURVESET_H +#define __SYNFIG_CURVESET_H /* === H E A D E R S ======================================================= */ #include "blinepoint.h" @@ -33,32 +34,32 @@ /* === T Y P E D E F S ===================================================== */ /* === C L A S S E S & S T R U C T S ======================================= */ -namespace sinfg +namespace synfig { class BLinePoint; - + struct CurvePoint { Point p; Point l,r; - + CurvePoint () {} CurvePoint(const Point &pin, const Vector &left, const Vector &right); - + CurvePoint(const BLinePoint &bpoint); }; - -class CurveSet + +class CurveSet { bool invert; //winding order... - + void CleanUp(int curve = 0); public: - + typedef std::vector region; typedef std::vector set_type; - + set_type set; //specifies a region object (assumes looping) void SetClamp(int &i, int &si); @@ -67,7 +68,7 @@ public: CurveSet() { } - + //anything supporting iterator type operations template < typename Iterator > CurveSet(Iterator begin, Iterator end, bool invert = false) @@ -75,12 +76,12 @@ public: set.push_back(std::vector(begin,end)); CleanUp(invert); } - - CurveSet operator &(const CurveSet &rhs) const; //intersect - CurveSet operator |(const CurveSet &rhs) const; //union - CurveSet operator -(const CurveSet &rhs) const; //subtract - - + + CurveSet operator&(const CurveSet &rhs) const; //intersect + CurveSet operator|(const CurveSet &rhs) const; //union + CurveSet operator-(const CurveSet &rhs) const; //subtract + + //Point containment int intersect(const Point &p) const; };