Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:48:52

0001 #include "OPTICKS_LOG.hh"
0002 #include "ssys.h"
0003 #include "SBitSet.h"
0004 
0005 #include "SSim.hh"
0006 #include "CSGFoundry.h"
0007 #include "CSGMaker.h"
0008 #include "CSGCopy.h"
0009 
0010 int main(int argc, char** argv)
0011 {
0012     OPTICKS_LOG(argc, argv); 
0013 
0014     char mode = argc > 1 ? argv[1][0] : 'K' ; 
0015 
0016     LOG(info) << " mode [" << mode << "]" ; 
0017 
0018     SSim::Create(); 
0019 
0020     // CAUTION : MOST OF THIS IS DONE BY CSGFoundry::Load
0021 
0022     CSGFoundry* src = mode == 'D' ? CSGMaker::MakeDemo() : CSGFoundry::Load_() ; 
0023     LOG_IF(fatal , src == nullptr ) << " NO GEOMETRY " ; 
0024     if(src == nullptr) return 1 ; 
0025 
0026     const SBitSet* elv = SBitSet::Create( src->getNumMeshName(), "ELV", "t" ); 
0027 
0028     LOG(info) 
0029         << "env->desc()"
0030         << std::endl 
0031         << elv->desc() 
0032         << std::endl 
0033         << "src->descELV(elv)"
0034         << std::endl 
0035         << src->descELV(elv)
0036         << std::endl 
0037         ; 
0038 
0039     CSGFoundry* dst = CSGCopy::Select(src, elv ); 
0040 
0041     int cf = CSGFoundry::Compare(src, dst); 
0042 
0043     if(ssys::hasenv_("AFOLD")) src->save("$AFOLD"); 
0044     if(ssys::hasenv_("BFOLD")) dst->save("$BFOLD"); 
0045 
0046     LOG(info) 
0047         << " src " << src 
0048         << " dst " << dst   
0049         << " cf " << cf 
0050         ;  
0051 
0052     if( elv == nullptr || elv->all() )
0053     {
0054         LOG_IF(fatal, cf != 0 ) 
0055             << " UNEXPECTED DIFFERENCE " 
0056             << " DEBUG WITH :" 
0057             << std::endl 
0058             << " ~/opticks/CSG/tests/CSGCopyTest.sh ana "
0059             ;  
0060 
0061         assert( cf == 0 ); 
0062     }
0063 
0064     LOG(info) << " src.cfbase " << src->cfbase << " elv.spec " << elv->spec ; 
0065     if(src->cfbase && elv->spec)
0066     {
0067         LOG(info) << " src.cfbase " << src->cfbase << " elv.spec " << elv->spec ; 
0068     }
0069 
0070     return 0 ;  
0071 }