Пример #1
0
//==== 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();
    }
}