Added copyright lines for files I've edited this year.
[synfig.git] / synfig-core / trunk / src / synfig / node.cpp
index 912f232..083afe7 100644 (file)
@@ -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 <ext/hash_map>
-
 #ifdef USING_PCH
 #      include "pch.h"
 #else
 #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 <map>
 #endif
@@ -83,7 +81,7 @@ extern clock_t _clock();
 /* === G L O B A L S ======================================================= */
 
 #ifdef HASH_MAP_H
-typedef hash_map<GUID,Node*,GUIDHash> GlobalNodeMap;
+typedef HASH_MAP_CLASS<GUID,Node*,GUIDHash> GlobalNodeMap;
 #else
 typedef map<GUID,Node*> 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&>(guid_).make_unique();
                assert(guid_);
                assert(!global_node_map().count(guid_));
-               global_node_map()[guid_]=const_cast<Node*>(this);       
+               global_node_map()[guid_]=const_cast<Node*>(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;
 }