X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fnode.cpp;h=083afe74d37145d3a8da692c39bc3feb08c05265;hb=756c0d29ac1742f231e6615f9a577e574e35a4af;hp=912f232b08984ef37145ae67ec037efea93de258;hpb=e8a065f2385c219c511b57dac52786120bfa097d;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/node.cpp b/synfig-core/trunk/src/synfig/node.cpp index 912f232..083afe7 100644 --- a/synfig-core/trunk/src/synfig/node.cpp +++ b/synfig-core/trunk/src/synfig/node.cpp @@ -2,10 +2,11 @@ /*! \file node.cpp ** \brief Template File ** -** $Id: node.cpp,v 1.5 2005/01/07 03:29:12 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley +** Copyright (c) 2007, 2008 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 @@ -22,8 +23,6 @@ /* === H E A D E R S ======================================================= */ -#define HASH_MAP_H - #ifdef USING_PCH # include "pch.h" #else @@ -32,11 +31,10 @@ #endif #include "node.h" -#include "proto/nodebase.h" +#include "nodebase.h" #ifdef HASH_MAP_H #include HASH_MAP_H -using namespace __gnu_cxx; #else #include #endif @@ -83,7 +81,7 @@ extern clock_t _clock(); /* === G L O B A L S ======================================================= */ #ifdef HASH_MAP_H -typedef hash_map GlobalNodeMap; +typedef HASH_MAP_CLASS GlobalNodeMap; #else typedef map GlobalNodeMap; #endif @@ -118,22 +116,30 @@ refresh_node(synfig::Node* node, GUID old_guid) /* === M E T H O D S ======================================================= */ +#ifdef _DEBUG +const char * +TimePoint::c_str()const +{ + return get_time().get_string().c_str(); +} +#endif + void TimePoint::absorb(const TimePoint& x) { if(get_guid()==x.get_guid()) return; set_guid(get_guid()^x.get_guid()); - + if(get_after()==INTERPOLATION_NIL) set_after(x.get_after()); if(get_before()==INTERPOLATION_NIL) set_before(x.get_before()); - + if(get_after()!=x.get_after() && x.get_after()!=INTERPOLATION_NIL) set_after(INTERPOLATION_UNDEFINED); if(get_before()!=x.get_before() && x.get_before()!=INTERPOLATION_NIL) - set_before(INTERPOLATION_UNDEFINED); + set_before(INTERPOLATION_UNDEFINED); } TimePointSet::iterator @@ -165,13 +171,14 @@ TimePointSet::insert(const TimePoint& x) Node::Node(): guid_(0), bchanged(true), + time_last_changed_(__sys_clock()), deleting_(false) { #ifndef BE_FRUGAL_WITH_GUIDS guid_.make_unique(); assert(guid_); assert(!global_node_map().count(guid_)); - global_node_map()[guid_]=this; + global_node_map()[guid_]=this; #endif } @@ -205,10 +212,10 @@ Node::get_guid()const const_cast(guid_).make_unique(); assert(guid_); assert(!global_node_map().count(guid_)); - global_node_map()[guid_]=const_cast(this); + global_node_map()[guid_]=const_cast(this); } #endif - + return guid_; } @@ -223,7 +230,7 @@ Node::set_guid(const GUID& x) { guid_=x; assert(!global_node_map().count(guid_)); - global_node_map()[guid_]=this; + global_node_map()[guid_]=this; } else #endif @@ -269,7 +276,7 @@ Node::get_times() const get_times_vfunc(times); bchanged = false; } - + //set the output set... return times; }