X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fnode.h;h=ccdaaadcc35eb908b533955e755b44d30c5c120f;hb=606a53ecae1c2993a50f9af49f65864d7bcab656;hp=b24c7e32f5627a35985cc761eba3802e4d275f0f;hpb=28f28705612902c15cd0702cc891fba35bf2d2df;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/node.h b/synfig-core/trunk/src/synfig/node.h index b24c7e3..ccdaaad 100644 --- a/synfig-core/trunk/src/synfig/node.h +++ b/synfig-core/trunk/src/synfig/node.h @@ -2,19 +2,20 @@ /*! \file node.h ** \brief Template Header ** -** $Id: node.h,v 1.3 2005/01/10 07:40:26 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 */ /* ========================================================================= */ @@ -36,6 +37,11 @@ /* === M A C R O S ========================================================= */ +// When a PasteCanvas layer has a non-zero 'time offset' parameter, should +// the waypoints shown for the canvas be adjusted? This currently only +// partially works - see the TODO at the end of layer_pastecanvas.cpp +#define ADJUST_WAYPOINTS_FOR_TIME_OFFSET + /* === T Y P E D E F S ===================================================== */ /* === C L A S S E S & S T R U C T S ======================================= */ @@ -66,13 +72,16 @@ public: void set_time(const Time& x) { time=x; } void set_before(Interpolation x) { before=x; } void set_after(Interpolation x) { after=x; } - + void absorb(const TimePoint& x); }; // END of class TimePoint inline TimePoint operator+(TimePoint lhs,const Time& rhs) { lhs.set_time(lhs.get_time()+rhs); return lhs; } +inline TimePoint operator-(TimePoint lhs,const Time& rhs) + { lhs.set_time(lhs.get_time()-rhs); return lhs; } + inline bool operator<(const TimePoint& lhs,const TimePoint& rhs) { return lhs.get_time() signal_changed_; //! GUID Changed /*! \note The second parameter is the *OLD* guid! */ - sigc::signal signal_guid_changed_; + sigc::signal signal_guid_changed_; //! Deleted - sigc::signal signal_deleted_; + sigc::signal signal_deleted_; /* -- ** -- S I G N A L I N T E R F A C E ------------------------------------- @@ -185,7 +194,7 @@ public: /* -- ** -- M E M B E R F U N C T I O N S ------------------------------------- */ - + public: void changed(); @@ -197,21 +206,21 @@ public: void set_guid(const GUID& x); int get_time_last_changed()const; - + void add_child(Node*x); void remove_child(Node*x); int parent_count()const; - + const time_set &get_times() const; RWLock& get_rw_lock()const { return rw_lock_; } - + protected: - + void begin_delete(); - + /* -- ** -- V I R T U A L F U N C T I O N S ----------------------------------- */ @@ -221,12 +230,12 @@ protected: virtual void on_guid_changed(GUID guid); - /*! Function to be overloaded that fills + /*! Function to be overloaded that fills */ virtual void get_times_vfunc(time_set &set) const = 0; -}; +}; -synfig::Node* synfig::find_node(const synfig::GUID& guid); +synfig::Node* find_node(const synfig::GUID& guid); template etl::handle guid_cast(const synfig::GUID& guid)