Further work on new ProxyLayer

This commit is contained in:
Robert Osfield
2007-08-29 16:29:05 +00:00
parent 2f895b839e
commit 9a9ffbe229
9 changed files with 317 additions and 10 deletions

View File

@@ -297,6 +297,30 @@ class OSGTERRAIN_EXPORT ProxyLayer : public Layer
META_Object(osgTerrain, ProxyLayer);
/** Return if this ProxyLayer is attached to valid file handle.*/
virtual bool isOpen() const { return false; }
/** Open a file.*/
void openFile(const std::string& fileName)
{
if (_filename!=fileName)
{
if (isOpen()) close();
_filename = fileName;
}
if (!isOpen()) open();
}
/** Open the any associated file handle.*/
virtual void open() {}
/** Open the any associated file handle.*/
virtual void close() {}
/** Extract an ImageLayer from the ProxyLayer.*/
virtual ImageLayer* extractImageLayer(unsigned int /*minX*/, unsigned int /*minY*/, unsigned int /*maxX*/, unsigned int /*maxY*/) { return 0; }
protected:

View File

@@ -0,0 +1,62 @@
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
*
* This library is open source and may be redistributed and/or modified under
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
* (at your option) any later version. The full license is in LICENSE file
* included with this distribution, and on the openscenegraph.org website.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* OpenSceneGraph Public License for more details.
*/
#ifndef OSGTERRAIN_TILESYSTEM
#define OSGTERRAIN_TILESYSTEM 1
#include <osgTerrain/Export>
#include <osg/Object>
#include <osg/observer_ptr>
namespace osgTerrain {
/** TileSystem provides the mechanism for computing the position in space of tiles.*/
class OSGTERRAIN_EXPORT TileSystem : public osg::Object
{
public:
TileSystem();
TileSystem(const TileSystem&,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
META_Object(osgTerrain, TileSystem);
protected:
virtual ~TileSystem();
};
class TileID : public osg::Object
{
public:
TileID();
TileID(const TileID&,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
META_Object(osgTerrain, TileID);
protected:
virtual ~TileID();
osg::observer_ptr<TileSystem> _tileSystem;
int _layer;
int _x;
int _y;
};
}
#endif