Moved osgTerrain::GeometryPool from osgTerrain::DisplacementMappingTechnique to the osgTerrain::Terrain

git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14703 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
Robert Osfield
2015-02-18 10:52:52 +00:00
parent e5d51da1b3
commit 5c023d1f76
4 changed files with 29 additions and 18 deletions

View File

@@ -11,8 +11,7 @@
* OpenSceneGraph Public License for more details.
*/
#include <osgTerrain/Layer>
#include <osgTerrain/TerrainTile>
#include <osgTerrain/Terrain>
#include <osgTerrain/DisplacementMappingTechnique>
@@ -25,14 +24,11 @@ using namespace osgTerrain;
DisplacementMappingTechnique::DisplacementMappingTechnique()
{
// OSG_NOTICE<<"DisplacementMappingTechnique::DisplacementMappingTechnique()"<<std::endl;
_geometryPool = new GeometryPool;
}
DisplacementMappingTechnique::DisplacementMappingTechnique(const DisplacementMappingTechnique& st,const osg::CopyOp& copyop):
osgTerrain::TerrainTechnique(st, copyop),
_geometryPool(st._geometryPool)
osgTerrain::TerrainTechnique(st, copyop)
{
// OSG_NOTICE<<"DisplacementMappingTechnique::DisplacementMappingTechnique(DisplacementMappingTechnique&, CopyOp&) "<<_geometryPool.get()<<std::endl;
}
DisplacementMappingTechnique::~DisplacementMappingTechnique()
@@ -42,10 +38,12 @@ DisplacementMappingTechnique::~DisplacementMappingTechnique()
void DisplacementMappingTechnique::init(int dirtyMask, bool assumeMultiThreaded)
{
if (!_terrainTile) return;
if (!_terrainTile->getTerrain()) return;
//OSG_NOTICE<<"DisplacementMappingTechnique::init("<<dirtyMask<<", "<<assumeMultiThreaded<<")"<<std::endl;
_transform = _geometryPool->getTileSubgraph(_terrainTile);
GeometryPool* geometryPool = _terrainTile->getTerrain()->getGeometryPool();
_transform = geometryPool->getTileSubgraph(_terrainTile);
// set tile as no longer dirty.
_terrainTile->setDirtyMask(0);

View File

@@ -28,6 +28,7 @@ Terrain::Terrain():
_equalizeBoundaries(false)
{
setNumChildrenRequiringUpdateTraversal(1);
_geometryPool = new GeometryPool;
}
Terrain::Terrain(const Terrain& ts, const osg::CopyOp& copyop):
@@ -36,6 +37,7 @@ Terrain::Terrain(const Terrain& ts, const osg::CopyOp& copyop):
_verticalScale(ts._verticalScale),
_blendingPolicy(ts._blendingPolicy),
_equalizeBoundaries(ts._equalizeBoundaries),
_geometryPool(ts._geometryPool),
_terrainTechnique(ts._terrainTechnique)
{
setNumChildrenRequiringUpdateTraversal(getNumChildrenRequiringUpdateTraversal()+1);