diff --git a/include/osgTerrain/Layer b/include/osgTerrain/Layer index 92ea84b66..ad308111d 100644 --- a/include/osgTerrain/Layer +++ b/include/osgTerrain/Layer @@ -429,9 +429,9 @@ class OSGTERRAIN_EXPORT CompositeLayer : public Layer std::string getCompoundName(unsigned int i) const; - void setLayer(unsigned int i, Layer* layer) { _layers[i].layer = layer; } - Layer* getLayer(unsigned int i) { return _layers[i].layer.get(); } - const Layer* getLayer(unsigned int i) const { return _layers[i].layer.get(); } + void setLayer(unsigned int i, Layer* layer) { if (i>=_layers.size()) _layers.resize(i+1); _layers[i].layer = layer; } + Layer* getLayer(unsigned int i) { return i<_layers.size() ? _layers[i].layer.get() : 0; } + const Layer* getLayer(unsigned int i) const { return i<_layers.size() ? _layers[i].layer.get() : 0; } void addLayer(const std::string& compoundname); void addLayer(const std::string& setname, const std::string& filename); diff --git a/src/osgTerrain/Layer.cpp b/src/osgTerrain/Layer.cpp index 3da10ba95..14f9acda3 100644 --- a/src/osgTerrain/Layer.cpp +++ b/src/osgTerrain/Layer.cpp @@ -643,6 +643,6 @@ SwitchLayer::SwitchLayer(): SwitchLayer::SwitchLayer(const SwitchLayer& switchLayer,const osg::CopyOp& copyop): CompositeLayer(switchLayer,copyop), - _activeLayer(-1) + _activeLayer(switchLayer._activeLayer) { } diff --git a/src/osgTerrain/TerrainTile.cpp b/src/osgTerrain/TerrainTile.cpp index bf273d78c..6a9bed43e 100644 --- a/src/osgTerrain/TerrainTile.cpp +++ b/src/osgTerrain/TerrainTile.cpp @@ -220,6 +220,7 @@ osg::BoundingSphere TerrainTile::computeBound() const return bs; } + ///////////////////////////////////////////////////////////////////////////////// // // WhiteListTileLoadedCallback @@ -227,7 +228,7 @@ osg::BoundingSphere TerrainTile::computeBound() const WhiteListTileLoadedCallback::WhiteListTileLoadedCallback() { _minumumNumberOfLayers = 0; - _replaceSwitchLayer = true; + _replaceSwitchLayer = false; _allowAll = false; }