/* === S Y N F I G ========================================================= */ /*! \file timegather.cpp ** \brief Time Gather File ** ** $Id$ ** ** \legal ** Copyright (c) 2004 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 ** published by the Free Software Foundation; either version 2 of ** the License, or (at your option) any later version. ** ** 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 */ /* ========================================================================= */ /* === H E A D E R S ======================================================= */ #ifdef USING_PCH # include "pch.h" #else #ifdef HAVE_CONFIG_H # include #endif #include "timegather.h" #include "value_desc.h" #include #include "general.h" #endif /* === U S I N G =========================================================== */ using namespace std; using namespace etl; using namespace synfig; using namespace synfigapp; /* === M A C R O S ========================================================= */ /* === G L O B A L S ======================================================= */ /* === P R O C E D U R E S ================================================= */ /* === M E T H O D S ======================================================= */ /* === E N T R Y P O I N T ================================================= */ //! Definitions for build a list of accurate valuenode references void synfigapp::timepoints_ref::insert(synfig::ValueNode_Animated::Handle v, synfig::Waypoint w, synfig::Real time_dilation) { ValueBaseTimeInfo vt; vt.val = v; vt.time_dilation = time_dilation; waytracker::iterator i = waypointbiglist.find(vt); if(i != waypointbiglist.end()) { i->waypoints.insert(w); }else { vt.waypoints.insert(w); waypointbiglist.insert(vt); } } void synfigapp::timepoints_ref::insert(synfigapp::ValueDesc v, synfig::Activepoint a, synfig::Real time_dilation) { ActiveTimeInfo vt; vt.val = v; vt.time_dilation = time_dilation; acttracker::iterator i = actpointbiglist.find(vt); if(i != actpointbiglist.end()) { i->activepoints.insert(a); /*{ //if it fails... synfig::info("!!!!For some reason it wasn't able to insert the activepoint in the list (%s,%.4lg)", a.state?"true":"false", (double)a.time); }*/ }else { vt.activepoints.insert(a); actpointbiglist.insert(vt); //synfig::info("Insert new activept list for valdesc"); } } //recursion functions void synfigapp::recurse_canvas(synfig::Canvas::Handle h, const std::set