Changeset 935
- Timestamp:
- 09/06/08 11:21:57
- Files:
-
- trunk/include/vpb/DataSet (modified) (1 diff)
- trunk/src/vpb/DataSet.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/include/vpb/DataSet
r934 r935 176 176 177 177 // helper functions for handling optional archive 178 void _writeNodeFile( constosg::Node& node,const std::string& filename);179 void _writeImageFile( constosg::Image& image,const std::string& filename);180 void _writeNodeFileAndImages( constosg::Node& node,const std::string& filename);178 void _writeNodeFile(osg::Node& node,const std::string& filename); 179 void _writeImageFile(osg::Image& image,const std::string& filename); 180 void _writeNodeFileAndImages(osg::Node& node,const std::string& filename); 181 181 182 182 void setState(osg::State* state) { _state = state; } trunk/src/vpb/DataSet.cpp
r934 r935 1449 1449 } 1450 1450 1451 void DataSet::_writeNodeFile( constosg::Node& node,const std::string& filename)1451 void DataSet::_writeNodeFile(osg::Node& node,const std::string& filename) 1452 1452 { 1453 1453 if (getDisableWrites()) return; … … 1475 1475 } 1476 1476 1477 void DataSet::_writeImageFile( constosg::Image& image,const std::string& filename)1477 void DataSet::_writeImageFile(osg::Image& image,const std::string& filename) 1478 1478 { 1479 1479 if (getDisableWrites()) return; 1480 1481 //image.setFileName(filename.c_str()); 1480 1482 1481 1483 if (_archive.valid()) _archive->writeImage(image,filename); … … 1503 1505 public: 1504 1506 1505 WriteImageFilesVisitor(vpb::DataSet* dataSet ):1507 WriteImageFilesVisitor(vpb::DataSet* dataSet, const std::string& directory): 1506 1508 osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN), 1507 _dataSet(dataSet) {} 1508 1509 vpb::DataSet* _dataSet; 1509 _dataSet(dataSet), 1510 _directory(directory) 1511 { 1512 if (!_directory.empty()) 1513 { 1514 char lastCharacter = _directory[_directory.size()-1]; 1515 if (lastCharacter != '/' && lastCharacter != '\\') 1516 { 1517 _directory.push_back('/'); 1518 } 1519 } 1520 } 1521 1522 vpb::DataSet* _dataSet; 1523 std::string _directory; 1510 1524 1511 1525 virtual void apply(osg::Node& node) … … 1540 1554 if (image) 1541 1555 { 1542 osg::notify(osg::NOTICE)<<"Writing out image layer "<<image->getFileName()<< std::endl;1543 _dataSet->_writeImageFile(*image, (_dataSet->getDirectory()+image->getFileName()).c_str());1556 osg::notify(osg::NOTICE)<<"Writing out image layer "<<image->getFileName()<<" _directory="<<_directory<<std::endl; 1557 _dataSet->_writeImageFile(*image,_directory+image->getFileName()); 1544 1558 } 1545 1559 return; … … 1606 1620 if (image) 1607 1621 { 1608 _dataSet->_writeImageFile(*image, (_dataSet->getDirectory()+image->getFileName()).c_str());1622 _dataSet->_writeImageFile(*image,_directory+image->getFileName()); 1609 1623 } 1610 1624 } … … 1612 1626 }; 1613 1627 1614 void DataSet::_writeNodeFileAndImages( constosg::Node& node,const std::string& filename)1628 void DataSet::_writeNodeFileAndImages(osg::Node& node,const std::string& filename) 1615 1629 { 1616 1630 if (getDisableWrites()) return; 1617 1631 1632 log(osg::NOTICE,"_writeNodeFile(%s)",filename.c_str()); 1633 1618 1634 if (getDestinationTileExtension()==".osg") 1619 1635 { 1620 WriteImageFilesVisitor wifv(this );1636 WriteImageFilesVisitor wifv(this, osgDB::getFilePath(filename)); 1621 1637 const_cast<osg::Node&>(node).accept(wifv); 1622 1638 } 1623 1639 1624 1640 _writeNodeFile(node,filename); 1641 1625 1642 } 1626 1643
