**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
void
TimePoint::absorb(const TimePoint& x)
{
if(get_guid()==x.get_guid())
return;
set_guid(get_guid()^x.get_guid());
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()==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)
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)
guid_=x;
refresh_node(this, oldguid);
on_guid_changed(oldguid);
guid_=x;
refresh_node(this, oldguid);
on_guid_changed(oldguid);