Changeset 7317
- Timestamp:
- 08/29/07 18:29:05
- Files:
-
- OpenSceneGraph/trunk/include/osgTerrain/Layer (modified) (1 diff)
- OpenSceneGraph/trunk/include/osgTerrain/TileSystem (added)
- OpenSceneGraph/trunk/src/osgPlugins/gdal/DataSetLayer.cpp (modified) (3 diffs)
- OpenSceneGraph/trunk/src/osgPlugins/gdal/DataSetLayer.h (modified) (1 diff)
- OpenSceneGraph/trunk/src/osgPlugins/gdal/ReaderWriterGDAL.cpp (modified) (1 diff)
- OpenSceneGraph/trunk/src/osgTerrain/CMakeLists.txt (modified) (2 diffs)
- OpenSceneGraph/trunk/src/osgTerrain/TileSystem.cpp (added)
- OpenSceneGraph/trunk/src/osgWrappers/osgTerrain/Layer.cpp (modified) (1 diff)
- OpenSceneGraph/trunk/src/osgWrappers/osgTerrain/TileSystem.cpp (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
OpenSceneGraph/trunk/include/osgTerrain/Layer
r7316 r7317 298 298 META_Object(osgTerrain, ProxyLayer); 299 299 300 /** Return if this ProxyLayer is attached to valid file handle.*/ 301 virtual bool isOpen() const { return false; } 302 303 /** Open a file.*/ 304 void openFile(const std::string& fileName) 305 { 306 if (_filename!=fileName) 307 { 308 if (isOpen()) close(); 309 310 _filename = fileName; 311 } 312 313 if (!isOpen()) open(); 314 } 315 316 /** Open the any associated file handle.*/ 317 virtual void open() {} 318 319 /** Open the any associated file handle.*/ 320 virtual void close() {} 321 322 /** Extract an ImageLayer from the ProxyLayer.*/ 323 virtual ImageLayer* extractImageLayer(unsigned int /*minX*/, unsigned int /*minY*/, unsigned int /*maxX*/, unsigned int /*maxY*/) { return 0; } 300 324 301 325 protected: OpenSceneGraph/trunk/src/osgPlugins/gdal/DataSetLayer.cpp
r7314 r7317 14 14 #include "DataSetLayer.h" 15 15 16 #include <osg/Notify> 17 16 18 using namespace GDALPlugin; 17 19 18 DataSetLayer::DataSetLayer() 20 DataSetLayer::DataSetLayer(): 21 _dataset(0) 19 22 { 20 _dataset = 0;21 23 } 22 24 23 DataSetLayer::DataSetLayer(const std::string& fileName) 25 DataSetLayer::DataSetLayer(const std::string& fileName): 26 _dataset(0) 24 27 { 25 setFileName(fileName); 26 _dataset = (GDALDataset*)GDALOpen(fileName.c_str(),GA_ReadOnly); 28 openFile(fileName); 27 29 } 28 30 … … 30 32 ProxyLayer(dataSetLayer) 31 33 { 32 _dataset = (GDALDataset*)GDALOpen(getFileName().c_str(),GA_ReadOnly);34 if (dataSetLayer._dataset) open(); 33 35 } 34 36 35 37 DataSetLayer::~DataSetLayer() 36 38 { 37 if (_dataset) delete _dataset; 39 close(); 40 } 41 42 void DataSetLayer::open() 43 { 44 if (_dataset) return; 45 46 if (getFileName().empty()) return; 47 48 _dataset = static_cast<GDALDataset*>(GDALOpen(getFileName().c_str(),GA_ReadOnly)); 49 50 setUpLocator(); 51 } 52 53 void DataSetLayer::close() 54 { 55 if (_dataset) 56 { 57 GDALClose(static_cast<GDALDatasetH>(_dataset)); 58 59 _dataset = 0; 60 } 38 61 } 39 62 … … 48 71 } 49 72 73 osgTerrain::ImageLayer* DataSetLayer::extractImageLayer(unsigned int minX, unsigned int minY, unsigned int maxX, unsigned int maxY) 74 { 75 if (!_dataset || maxX<minX || maxY<minY) return 0; 76 77 osg::notify(osg::NOTICE)<<"DataSetLayer::extractImageLayer("<<minX<<", "<<minY<<", "<<maxX<<", "<<maxY<<") not yet implemented"<<std::endl; 78 79 return 0; 80 } 81 82 void DataSetLayer::setUpLocator() 83 { 84 osg::notify(osg::NOTICE)<<"DataSetLayer::setUpLocator()"<<std::endl; 85 } OpenSceneGraph/trunk/src/osgPlugins/gdal/DataSetLayer.h
r7314 r7317 34 34 META_Object(GDALPlugin, DataSetLayer); 35 35 36 bool valid() const { return _dataset!=0; } 37 36 virtual bool isOpen() const { return _dataset!=0; } 37 38 virtual void open(); 39 40 virtual void close(); 41 38 42 virtual unsigned int getNumColumns() const; 43 39 44 virtual unsigned int getNumRows() const; 45 46 virtual osgTerrain::ImageLayer* extractImageLayer(unsigned int minX, unsigned int minY, unsigned int maxX, unsigned int maxY); 40 47 41 48 protected: 42 49 43 50 virtual ~DataSetLayer(); 51 52 void setUpLocator(); 44 53 45 54 GDALDataset* _dataset; OpenSceneGraph/trunk/src/osgPlugins/gdal/ReaderWriterGDAL.cpp
r7316 r7317 55 55 osg::ref_ptr<GDALPlugin::DataSetLayer> dataset = new GDALPlugin::DataSetLayer(fileName); 56 56 57 if (dataset-> valid()) return dataset.release();57 if (dataset->isOpen()) return dataset.release(); 58 58 59 59 return ReadResult::FILE_NOT_HANDLED; OpenSceneGraph/trunk/src/osgTerrain/CMakeLists.txt
r7202 r7317 13 13 ${HEADER_PATH}/Terrain 14 14 ${HEADER_PATH}/TerrainTechnique 15 ${HEADER_PATH}/TileSystem 15 16 ${HEADER_PATH}/GeometryTechnique 16 17 ${HEADER_PATH}/ValidDataOperator … … 26 27 Terrain.cpp 27 28 TerrainTechnique.cpp 29 TileSystem.cpp 28 30 GeometryTechnique.cpp 29 31 Version.cpp OpenSceneGraph/trunk/src/osgWrappers/osgTerrain/Layer.cpp
r7316 r7317 593 593 "return the name of the object's class type. ", 594 594 "Must be defined by derived classes. "); 595 I_Method0(bool, isOpen, 596 Properties::VIRTUAL, 597 __bool__isOpen, 598 "Return if this ProxyLayer is attached to valid file handle. ", 599 ""); 600 I_Method1(void, openFile, IN, const std::string &, fileName, 601 Properties::NON_VIRTUAL, 602 __void__openFile__C5_std_string_R1, 603 "Open a file. ", 604 ""); 605 I_Method0(void, open, 606 Properties::VIRTUAL, 607 __void__open, 608 "Open the any associated file handle. ", 609 ""); 610 I_Method0(void, close, 611 Properties::VIRTUAL, 612 __void__close, 613 "Open the any associated file handle. ", 614 ""); 615 I_Method4(osgTerrain::ImageLayer *, extractImageLayer, IN, unsigned, int, IN, unsigned, int, IN, unsigned, int, IN, unsigned, int, 616 Properties::VIRTUAL, 617 __ImageLayer_P1__extractImageLayer__unsigned__unsigned__unsigned__unsigned, 618 "Extract an ImageLayer from the ProxyLayer. ", 619 ""); 595 620 END_REFLECTOR 596 621
