From Antonoine Hue, a small modification to the osgTerrain::DataSet

to be able to pass an already opened GDAL Dataset to the
osgTerrain::DataSet::Source
This commit is contained in:
Robert Osfield
2005-12-07 15:26:45 +00:00
parent a72c697622
commit 73cc97f0e1
2 changed files with 13 additions and 5 deletions

View File

@@ -193,7 +193,8 @@ class OSGTERRAIN_EXPORT DataSet : public osg::Referenced
_geoTransformPolicy(PREFER_FILE_SETTINGS),
_minLevel(0),
_maxLevel(MAXIMUM_NUMBER_OF_LEVELS),
_layer(0)
_layer(0),
_gdalDataSet(0)
{}
Source(Type type, const std::string& filename):
@@ -205,7 +206,8 @@ class OSGTERRAIN_EXPORT DataSet : public osg::Referenced
_geoTransformPolicy(PREFER_FILE_SETTINGS),
_minLevel(0),
_maxLevel(MAXIMUM_NUMBER_OF_LEVELS),
_layer(0)
_layer(0),
_gdalDataSet(0)
{}
void setSortValue(double s) { _sortValue = s; }
@@ -222,6 +224,9 @@ class OSGTERRAIN_EXPORT DataSet : public osg::Referenced
void setTemporaryFile(bool temporaryFile) { _temporaryFile = temporaryFile; }
bool getTemporaryFile() const { return _temporaryFile; }
void setGdalDataSet(GDALDataset* gdalDataSet) { _gdalDataSet = gdalDataSet; }
GDALDataset* getGdalDataSet() const { return _gdalDataSet; }
void setCoordinateSystemPolicy(ParameterPolicy policy) { _coordinateSystemPolicy = policy; }
ParameterPolicy getCoordinateSystemPolicy() const { return _coordinateSystemPolicy; }
@@ -333,8 +338,9 @@ class OSGTERRAIN_EXPORT DataSet : public osg::Referenced
osg::ref_ptr<SourceData> _sourceData;
ResolutionList _requiredResolutions;
};
GDALDataset* _gdalDataSet;
};
enum CompositeType
{

View File

@@ -227,7 +227,9 @@ DataSet::SourceData* DataSet::SourceData::readData(Source* source)
case(Source::IMAGE):
case(Source::HEIGHT_FIELD):
{
GDALDataset* gdalDataSet = (GDALDataset*)GDALOpen(source->getFileName().c_str(),GA_ReadOnly);
GDALDataset* gdalDataSet = source->getGdalDataSet();
if(!gdalDataSet)
gdalDataSet = (GDALDataset*)GDALOpen(source->getFileName().c_str(),GA_ReadOnly);
if (gdalDataSet)
{
SourceData* data = new SourceData(source);