/*! \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-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
/* === 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 ======================================= */
{
}
+#ifdef _DEBUG
+ const char *c_str()const;
+#endif
+
const GUID& get_guid()const { return guid; }
const Time& get_time()const { return time; }
Interpolation get_before()const { return before; }
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()<rhs.get_time(); }
//! \writeme
GUID guid_;
- //! cached time values for all the childrens
+ //! cached time values for all the children
mutable time_set times;
//! \writeme
return etl::handle<T>::cast_dynamic(synfig::find_node(guid));
}
+#ifdef _DEBUG
+template <typename T>
+synfig::String set_string(T start, T end)
+{
+ synfig::String ret("[");
+ bool started = false;
+
+ while (start != end)
+ {
+ if (started) ret += ", ";
+ else started = true;
+
+ ret += synfig::String((*start).c_str());
+ start++;
+ }
+
+ return ret + "]";
+}
+
+template <typename T>
+synfig::String set_string(T set)
+{
+ return set_string(set.begin(), set.end());
+}
+#endif // _DEBUG
+
typedef etl::handle<Node> NodeHandle;
}; // END of namespace synfig