File indexing completed on 2026-04-09 07:49:21
0001
0002
0003
0004
0005
0006
0007
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 }