//==== Copy XSec ====// void XSecSurf::CopyXSec( int index ) { XSec* xs = FindXSec( index ); if ( !xs ) { return; } XSec* saved_xs = FindXSec( m_SavedXSec ); //==== Create Saved XSec ====// if ( saved_xs && ( saved_xs->GetType() != xs->GetType() || saved_xs->GetXSecCurve()->GetType() != xs->GetXSecCurve()->GetType() ) ) { vector_remove_val( m_XSecPtrVec, saved_xs ); delete saved_xs; saved_xs = NULL; } //==== Saved XSec ====// if ( !saved_xs ) { saved_xs = CreateXSec( xs->GetXSecCurve()->GetType() ); } //==== Copy Data ====// if ( saved_xs ) { saved_xs->CopyFrom( xs ); m_SavedXSec = saved_xs->GetID(); } }