Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:21

0001 /**
0002 SceneLoadTest.cc
0003 ==================
0004 
0005 ::
0006 
0007     ~/o/sysrap/tests/SSceneLoadTest.sh
0008 
0009 **/
0010 
0011 #include "ssys.h"
0012 #include "SScene.h"
0013 
0014 
0015 struct SSceneLoadTest
0016 {
0017     static int Load_();
0018     static int desc();
0019     static int descDetail();
0020     static int findSubMesh();
0021     static int Main();
0022 };
0023 
0024 inline int SSceneLoadTest::Main()
0025 {
0026     const char* TEST = ssys::getenvvar("TEST", "Load_");
0027     bool ALL = strcmp(TEST, "ALL") == 0 ;
0028     int rc = 0 ;
0029     if(ALL||0==strcmp(TEST,"Load_")) rc += Load_();
0030     if(ALL||0==strcmp(TEST,"desc"))  rc += desc();
0031     if(ALL||0==strcmp(TEST,"descDetail"))  rc += descDetail();
0032     if(ALL||0==strcmp(TEST,"findSubMesh"))  rc += findSubMesh();
0033     return rc ;
0034 }
0035 
0036 inline int SSceneLoadTest::Load_()
0037 {
0038     SScene* a = SScene::Load_() ;
0039     if( a == nullptr ) return 0 ;
0040 
0041     const SBitSet* elv = SGeoConfig::ELV(a->id);
0042     SScene* b = a->copy(elv);
0043 
0044     int mismatch = SScene::Compare(a, b) ;
0045     if( mismatch > 0 ) std::cout
0046         << "[A:\n"
0047         << a->desc()
0048         << "]A\n"
0049         << "[B:\n"
0050         << b->desc()
0051         << "]B:\n"
0052         << "[AB:\n"
0053         << SScene::DescCompare(a,b)
0054         << "]AB:\n"
0055         ;
0056 
0057     std::cout << "SceneLoadTest.main mismatch " << mismatch << "\n" ;
0058 
0059     return mismatch ;
0060 }
0061 
0062 inline int SSceneLoadTest::desc()
0063 {
0064     SScene* a = SScene::Load() ;
0065     if(!a) return 1 ;
0066     std::cout << a->desc();
0067     return 0 ;
0068 }
0069 
0070 inline int SSceneLoadTest::descDetail()
0071 {
0072     SScene* a = SScene::Load() ;
0073     if(!a) return 1 ;
0074     std::cout << a->descDetail();
0075     return 0 ;
0076 }
0077 
0078 inline int SSceneLoadTest::findSubMesh()
0079 {
0080     SScene* a = SScene::Load() ;
0081     if(!a) return 1 ;
0082 
0083     int LVID = ssys::getenvint("LVID", 0);
0084     std::vector<const SMesh*> subs ;
0085 
0086     std::cout
0087        << "[SSceneLoadTest::findSubMesh"
0088        << " LVID " << LVID
0089        << "\n"
0090        ;
0091 
0092 
0093     a->findSubMesh(subs, LVID);
0094 
0095     std::cout
0096        << "]SSceneLoadTest::findSubMesh"
0097        << " LVID " << LVID
0098        << " subs.size " << subs.size()
0099        << "\n"
0100        << "[SScene::descSubMesh\n"
0101        << a->descSubMesh(subs)
0102        << "]SScene::descSubMesh\n"
0103        ;
0104 
0105     return 0 ;
0106 }
0107 
0108 
0109 int main()
0110 {
0111     return SSceneLoadTest::Main() ;
0112 }