Back to home page

EIC code displayed by LXR

 
 

    


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

0001 /**
0002 CSGNameTest.cc
0003 ===============
0004 
0005 See also sysrap/SNameTest.cc
0006 
0007 **/
0008 
0009 #include "SSys.hh"
0010 #include "SSim.hh"
0011 #include "SName.h"
0012 
0013 #include "OPTICKS_LOG.hh"
0014 #include "scuda.h"
0015 #include "CSGFoundry.h"
0016 
0017 
0018 void test_getNumName( const SName* id )
0019 {
0020     LOG(info) << " id.getNumName " << id->getNumName() ;
0021 }
0022 
0023 void test_getName( const SName* id )
0024 {
0025     for(unsigned i=0 ; i < id->getNumName() ; i++)
0026     {
0027          const char* name = id->getName(i);
0028          LOG(info) << std::setw(4) << i << " : " << name ;
0029     }
0030 }
0031 
0032 
0033 
0034 void test_findIndex( const SName* id )
0035 {
0036     for(unsigned i=0 ; i < id->getNumName() ; i++)
0037     {
0038          const char* name = id->getName(i);
0039          unsigned count = 0 ;
0040          int idx = id->findIndex(name, count);
0041          char msg = idx == int(i) && count == 1 ? ' ' : '*' ;
0042          LOG(info)
0043              << " i " << std::setw(4) << i
0044              << " idx " << std::setw(4) << idx
0045              << " count " << std::setw(4) << count
0046              << " "
0047              << msg
0048              << " "
0049              << name
0050              ;
0051 
0052     }
0053 }
0054 
0055 
0056 void test_getAbbr( const SName* id )
0057 {
0058     for(unsigned i=0 ; i < id->getNumName() ; i++)
0059     {
0060          const char* name = id->getName(i);
0061          const char* abbr = id->getAbbr(i);
0062          LOG(info)
0063              << std::setw(4) << i
0064              << " "
0065              << std::setw(50) << abbr
0066              << " : "
0067              << std::setw(50) << name
0068              ;
0069 
0070     }
0071 }
0072 
0073 void test_parseArg( const SName* id, const char* arg )
0074 {
0075     unsigned count = 0 ;
0076     int idx = id->parseArg(arg, count);
0077     const char* name = idx > -1 ? id->getName(idx) : nullptr ;
0078     LOG(info)
0079        << std::setw(20) << arg
0080        << " : "
0081        << std::setw(4) << idx
0082        << " : "
0083        << std::setw(4) << count
0084        << " : "
0085        << name
0086        ;
0087 }
0088 
0089 void test_parseArg( const SName* id, int argc, char** argv )
0090 {
0091     std::vector<std::string> args = {"uni", "130", "sWat" } ;
0092     for(int i=0 ; i < int(args.size()) ; i++) test_parseArg(id, args[i].c_str()) ;
0093     for(int i=1 ; i < argc             ; i++) test_parseArg(id, argv[i]);
0094 }
0095 
0096 void test_parseMOI( const SName* id, const char* moi )
0097 {
0098     int midx, mord, iidx ;
0099     id->parseMOI(midx, mord, iidx, moi);
0100     const char* name = midx > -1 ? id->getName(midx) : nullptr ;
0101 
0102     LOG(info)
0103        << std::setw(20) << moi
0104        << " : "
0105        << std::setw(4) << midx
0106        << " : "
0107        << std::setw(4) << mord
0108        << " : "
0109        << std::setw(4) << iidx
0110        << " : "
0111        << name
0112        ;
0113 }
0114 
0115 void test_parseMOI( const SName* id, int argc, char** argv )
0116 {
0117     std::vector<std::string> args = {"uni", "130", "sWat" } ;
0118     for(int i=0 ; i < int(args.size()) ; i++) test_parseMOI(id, args[i].c_str()) ;
0119     for(int i=1 ; i < argc             ; i++) test_parseMOI(id, argv[i]);
0120 }
0121 
0122 void test_parseMOI_fd( const CSGFoundry* fd )
0123 {
0124     const char* moi = SSys::getenvvar("MOI", "sWorld:0:0");
0125     int midx, mord, iidx ;
0126     fd->parseMOI(midx, mord, iidx,  moi );
0127 
0128     LOG(info)
0129         << " MOI " << moi
0130         << " midx " << midx
0131         << " mord " << mord
0132         << " iidx " << iidx
0133         ;
0134 }
0135 
0136 
0137 int main(int argc, char** argv)
0138 {
0139     OPTICKS_LOG(argc, argv);
0140 
0141     SSim::Create();
0142     CSGFoundry* fd = CSGFoundry::Load();
0143     LOG(info) << "foundry " << fd->desc() ;
0144     fd->summary();
0145 
0146     const SName* id = fd->id ;
0147     LOG(info) << id->desc();
0148 
0149     LOG(info) << "[ descMeshPrim " ;
0150     LOG(info) << fd->descMeshPrim() ;
0151     LOG(info) << "] descMeshPrim " ;
0152 
0153     //test_getNumName(id);
0154     //test_getName(id);
0155     //test_findIndex(id);
0156     //test_getAbbr(id);
0157     //test_parseArg(id, argc, argv);
0158     //test_parseMOI(id, argc, argv);
0159     //test_parseMOI_fd(fd);
0160 
0161     return 0 ;
0162 }
0163 
0164 
0165