X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Ftimepointcollect.cpp;h=abbfc76c17b38f98c63cbf76e23969ce1c7c89ac;hb=24168ac9a1e41031ddd3dea2f394db72e10b6ae0;hp=9300a8a375197c5d38465f85ff842ab914fa631c;hpb=e3acc0b267b14fda5db3c7bbb2f218b993ef84b3;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/timepointcollect.cpp b/synfig-core/trunk/src/synfig/timepointcollect.cpp index 9300a8a..abbfc76 100644 --- a/synfig-core/trunk/src/synfig/timepointcollect.cpp +++ b/synfig-core/trunk/src/synfig/timepointcollect.cpp @@ -1,20 +1,21 @@ -/* === S I N F G =========================================================== */ -/*! \file template.cpp +/* === S Y N F I G ========================================================= */ +/*! \file timepointcollect.cpp ** \brief Template File ** -** $Id: timepointcollect.cpp,v 1.1.1.1 2005/01/04 01:23:15 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 */ /* ========================================================================= */ @@ -30,6 +31,7 @@ #include "timepointcollect.h" #include "valuenode_animated.h" +#include "layer_pastecanvas.h" #include "layer.h" #include "canvas.h" #include "value.h" @@ -40,7 +42,7 @@ using namespace std; using namespace etl; -using namespace sinfg; +using namespace synfig; /* === M A C R O S ========================================================= */ @@ -52,8 +54,8 @@ using namespace sinfg; //! \writeme int -sinfg::waypoint_collect(set >& waypoint_set,const Time& time, const etl::handle& node) -{ +synfig::waypoint_collect(set >& waypoint_set,const Time& time, const etl::handle& node) +{ const TimePointSet& timepoint_set(node->get_times()); // Check to see if there is anything in here at the given time @@ -89,7 +91,13 @@ sinfg::waypoint_collect(set >& waypoint_set,const ValueBase canvas_value(layer->get_param("canvas")); if(canvas_value.get_type()==ValueBase::TYPE_CANVAS) { - ret+=waypoint_collect(waypoint_set,time,Canvas::Handle(canvas_value.get(Canvas::Handle()))); + etl::handle p = etl::handle::cast_dynamic(layer); + if (p) + ret+=waypoint_collect(waypoint_set, time + p->get_time_offset(), + Canvas::Handle(canvas_value.get(Canvas::Handle()))); + else + ret+=waypoint_collect(waypoint_set, time, + Canvas::Handle(canvas_value.get(Canvas::Handle()))); } return ret; } @@ -113,7 +121,7 @@ sinfg::waypoint_collect(set >& waypoint_set,const { try{ Waypoint waypoint=*value_node_animated->find(time); - + // If it is already in the waypoint set, then // don't bother adding it again if(waypoint_set.find(waypoint)!=waypoint_set.end()) @@ -133,7 +141,7 @@ sinfg::waypoint_collect(set >& waypoint_set,const //! \writeme int -sinfg::activepoint_collect(set >& activepoint_set,const Time& time, const etl::handle& node) +synfig::activepoint_collect(set >& /*activepoint_set*/,const Time& time, const etl::handle& node) { const TimePointSet& timepoint_set(node->get_times());