Changeset 387 for trunk/VUT/GtpVisibilityPreprocessor/src/Preprocessor.cpp
- Timestamp:
- 11/07/05 23:17:14 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/VUT/GtpVisibilityPreprocessor/src/Preprocessor.cpp
r372 r387 92 92 } 93 93 94 int 95 SplitFilenames(const string str, 96 vector<string> &filenames) 97 { 98 int pos = 0; 99 100 while(1) { 101 int npos = str.find(';', pos); 102 103 if (npos < 0 || npos - pos < 1) 104 break; 105 filenames.push_back(string(str, pos, npos - pos)); 106 pos = npos + 1; 107 } 108 109 filenames.push_back(string(str, pos, str.size() - pos)); 110 return filenames.size(); 111 } 112 94 113 bool 95 114 Preprocessor::LoadScene(const string filename) … … 101 120 102 121 Parser *parser; 103 104 if (strstr(filename.c_str(), ".x3d")) 105 parser = new X3dParser; 106 else 107 parser = new UnigraphicsParser; 108 109 bool result = parser->ParseFile(filename, &mSceneGraph->mRoot); 110 111 112 113 delete parser; 114 115 if (result) 122 vector<string> filenames; 123 int files = SplitFilenames(filename, filenames); 124 cout<<files<<endl; 125 bool result = false; 126 if (files == 1) { 127 128 if (strstr(filename.c_str(), ".x3d")) 129 parser = new X3dParser; 130 else 131 parser = new UnigraphicsParser; 132 133 cout<<filename<<endl; 134 result = parser->ParseFile(filename, &mSceneGraph->mRoot); 135 136 delete parser; 137 138 } else { 139 // root for different files 140 mSceneGraph->mRoot = new SceneGraphNode; 141 for (int i= 0; i < filenames.size(); i++) { 142 if (strstr(filenames[i].c_str(), ".x3d")) 143 parser = new X3dParser; 144 else 145 parser = new UnigraphicsParser; 146 147 SceneGraphNode *node; 148 if (parser->ParseFile(filenames[i], &node)) { 149 mSceneGraph->mRoot->mChildren.push_back(node); 150 // at least one file parsed 151 result = true; 152 } 153 delete parser; 154 } 155 } 156 157 158 if (result) { 116 159 mSceneGraph->AssignObjectIds(); 160 int intersectables, faces; 161 mSceneGraph->GetStatistics(intersectables, faces); 162 cout<<filename<<" parsed successfully."<<endl; 163 cout<<"#NUM_OBJECTS (Total numner of objects)\n"<<intersectables<<endl; 164 cout<<"#NUM_FACES (Total numner of faces)\n"<<faces<<endl; 165 } 166 117 167 118 168 return result;
Note: See TracChangeset
for help on using the changeset viewer.