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
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 }