| 256 | | } |
| 257 | | else |
| 258 | | { |
| 259 | | for(FileNames::iterator itr = fileNames.begin(); |
| 260 | | itr != fileNames.end(); |
| 261 | | ++itr) |
| 262 | | { |
| 263 | | // not an option so assume string is a filename. |
| 264 | | osg::ref_ptr<osg::Node> node = osgDB::readNodeFile( *itr ); |
| 265 | | if(node.valid()) |
| 266 | | { |
| 267 | | if (node->getName().empty()) node->setName( *itr ); |
| 268 | | |
| 269 | | node = sceneGraphProcessor->process(node.get()); |
| 270 | | |
| 271 | | models.push_back(node.get()); |
| 272 | | } |
| 273 | | } |
| 274 | | |
| 275 | | group->addChild(models[modelIndex++].get()); |
| 276 | | |
| 277 | | } |
| 278 | | |
| 279 | | viewer.realize(); |
| 280 | | |
| 281 | | double timeOfLastMerge = viewer.getFrameStamp()->getReferenceTime(); |
| 282 | | |
| 283 | | osg::ref_ptr<CustomCompileCompletedCallback> compileCompletedCallback; |
| 284 | | |
| 285 | | while(!viewer.done()) |
| 286 | | { |
| 287 | | viewer.frame(); |
| 288 | | |
| 289 | | double currentTime = viewer.getFrameStamp()->getReferenceTime(); |
| 290 | | |
| 291 | | if (readDatabasesInPagingThread) |
| 292 | | { |
| | 256 | osg::ref_ptr<osg::Group> group = new osg::Group; |
| | 257 | viewer.setSceneData(group); |
| | 258 | |
| | 259 | viewer.realize(); |
| | 260 | |
| | 261 | double timeOfLastMerge = viewer.getFrameStamp()->getReferenceTime(); |
| | 262 | |
| | 263 | while(!viewer.done()) |
| | 264 | { |
| | 265 | viewer.frame(); |
| | 266 | |
| | 267 | double currentTime = viewer.getFrameStamp()->getReferenceTime(); |
| | 268 | |
| 321 | | else |
| 322 | | { |
| | 297 | |
| | 298 | } |
| | 299 | else |
| | 300 | { |
| | 301 | // load the models directly and then just use the IncrementalCompileOperation to |
| | 302 | // compile the GL objects for us. |
| | 303 | typedef std::vector< osg::ref_ptr<osg::Node> > Models; |
| | 304 | Models models; |
| | 305 | unsigned int modelIndex = 0; |
| | 306 | |
| | 307 | for(FileNames::iterator itr = fileNames.begin(); |
| | 308 | itr != fileNames.end(); |
| | 309 | ++itr) |
| | 310 | { |
| | 311 | // not an option so assume string is a filename. |
| | 312 | osg::ref_ptr<osg::Node> node = osgDB::readNodeFile( *itr ); |
| | 313 | if(node.valid()) |
| | 314 | { |
| | 315 | if (node->getName().empty()) node->setName( *itr ); |
| | 316 | |
| | 317 | node = sceneGraphProcessor->process(node.get()); |
| | 318 | |
| | 319 | models.push_back(node.get()); |
| | 320 | } |
| | 321 | } |
| | 322 | |
| | 323 | osg::ref_ptr<osg::Group> group = new osg::Group; |
| | 324 | group->addChild(models[modelIndex++].get()); |
| | 325 | |
| | 326 | viewer.setSceneData(group); |
| | 327 | |
| | 328 | viewer.realize(); |
| | 329 | |
| | 330 | double timeOfLastMerge = viewer.getFrameStamp()->getReferenceTime(); |
| | 331 | |
| | 332 | osg::ref_ptr<CustomCompileCompletedCallback> compileCompletedCallback; |
| | 333 | |
| | 334 | while(!viewer.done()) |
| | 335 | { |
| | 336 | viewer.frame(); |
| | 337 | |
| | 338 | double currentTime = viewer.getFrameStamp()->getReferenceTime(); |
| | 339 | |