Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /**
0002 CSGFoundry_getCenterExtent_Test.cc
0003 ====================================
0004 
0005 ::
0006 
0007     MOI=solidXJfixture:10 CSGFoundry_getCenterExtent_Test
0008     MOI=solidXJfixture:9,solidXJfixture:10,solidXJfixture:20,solidXJfixture:30,solidXJfixture:40,88:50 CSGFoundry_getCenterExtent_Test
0009     ## MOI can be comma delimited
0010 
0011     MOI=88:0 CSGFoundry_getCenterExtent_Test
0012     ## can use mesh index or letters at start of the mesh name 
0013 
0014 
0015     MOI=Hama:0:1000       CSGFoundry_getCenterExtent_Test
0016     MOI=H:0:1000          CSGFoundry_getCenterExtent_Test
0017     MOI=H:0:0,H:0:1       CSGFoundry_getCenterExtent_Test
0018 
0019 See also CSGTargetTest.cc
0020 
0021 **/
0022 
0023 #include <csignal>
0024 #include "SSys.hh"
0025 #include "SStr.hh"
0026 #include "SSim.hh"
0027 #include "CSGFoundry.h"
0028 
0029 #include "OPTICKS_LOG.hh"
0030 
0031 int main(int argc, char** argv)
0032 {
0033     OPTICKS_LOG(argc, argv); 
0034 
0035     SSim::Create(); 
0036     CSGFoundry* fd = CSGFoundry::Load(); 
0037 
0038     LOG(info) 
0039         << "foundry " << fd->desc() 
0040         ; 
0041     fd->summary(); 
0042 
0043     const char* MOI = SSys::getenvvar("MOI", "sWorld:0:0"); 
0044     std::vector<std::string> vmoi ; 
0045     SStr::Split(MOI, ',',  vmoi );  
0046     LOG(info) << " MOI " << MOI << " vmoi.size " << vmoi.size() ; 
0047 
0048     qat4 q ; 
0049     q.init(); 
0050 
0051     for(unsigned i=0 ; i < vmoi.size() ; i++)
0052     {   
0053         const char* moi = vmoi[i].c_str() ; 
0054 
0055         int midx, mord, iidx ; 
0056         fd->parseMOI(midx, mord, iidx,  moi ); 
0057 
0058         float4 gce = make_float4( 0.f, 0.f, 0.f, 0.f ); 
0059         int rc = fd->getCenterExtent(gce, midx, mord, iidx, &q) ;
0060         assert( rc == 0 ); 
0061         if(rc!=0) std::raise(SIGINT); 
0062 
0063         std::cout
0064             << " MOI " << moi 
0065             << " midx " << midx 
0066             << " mord " << mord 
0067             << " iidx " << iidx
0068             << " gce " << gce 
0069             << std::endl 
0070             << " q " << q 
0071             << std::endl 
0072             ; 
0073 
0074     }
0075     return 0 ; 
0076 }
0077 
0078 
0079 
0080