openscenegraph
Terrain
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14#ifndef OSGTerrain
15#define OSGTerrain 1
16
19
22
23namespace osgTerrain {
24
28{
29 public:
30
32
35
37
38 virtual void traverse(osg::NodeVisitor& nv);
39
40 virtual osgTerrain::Terrain* asTerrain() { return this; }
41 virtual const osgTerrain::Terrain* asTerrain() const { return this; }
42
43
46 void setSampleRatio(float ratio);
47
49 float getSampleRatio() const { return _sampleRatio; }
50
51
53 void setVerticalScale(float scale);
54
56 float getVerticalScale() const { return _verticalScale; }
57
58
64
66 TerrainTile::BlendingPolicy getBlendingPolicy() const { return _blendingPolicy; }
67
72 void setEqualizeBoundaries(bool equalizeBoundaries);
73
75 bool getEqualizeBoundaries() const { return _equalizeBoundaries; }
76
77
79 void setGeometryPool(GeometryPool* gp) { _geometryPool = gp; }
80
82 GeometryPool* getGeometryPool() { return _geometryPool.get(); }
83
85 const GeometryPool* getGeometryPool() const { return _geometryPool.get(); }
86
87
88
90 TerrainTile* getTile(const TileID& tileID);
91
93 const TerrainTile* getTile(const TileID& tileID) const;
94
96 void setTerrainTechniquePrototype(TerrainTechnique* technique) { _terrainTechnique = technique; }
97
99 TerrainTechnique* getTerrainTechniquePrototype() { return _terrainTechnique.get(); }
100
102 const TerrainTechnique* getTerrainTechniquePrototype() const { return _terrainTechnique.get(); }
103
106
107 protected:
108
109 virtual ~Terrain();
110
111 friend class TerrainTile;
112
113 void dirtyRegisteredTiles(int dirtyMask = TerrainTile::ALL_DIRTY);
114
117
118 typedef std::map< TileID, TerrainTile* > TerrainTileMap;
119 typedef std::set< TerrainTile* > TerrainTileSet;
120
126
131
133};
134
135}
136
137#endif
Definition ReentrantMutex:24
Definition GeometryPool:104
Definition TerrainTechnique:53
Definition TerrainTile:68
BlendingPolicy
Definition TerrainTile:168
Definition Terrain:28
TerrainTechnique * getTerrainTechniquePrototype()
Definition Terrain:99
float _sampleRatio
Definition Terrain:121
float getSampleRatio() const
Definition Terrain:49
void setSampleRatio(float ratio)
OpenThreads::ReentrantMutex _mutex
Definition Terrain:127
bool _equalizeBoundaries
Definition Terrain:124
void registerTerrainTile(TerrainTile *tile)
osg::ref_ptr< TerrainTechnique > _terrainTechnique
Definition Terrain:132
bool getEqualizeBoundaries() const
Definition Terrain:75
float _verticalScale
Definition Terrain:122
TerrainTile::BlendingPolicy _blendingPolicy
Definition Terrain:123
TerrainTile * getTile(const TileID &tileID)
GeometryPool * getGeometryPool()
Definition Terrain:82
void setGeometryPool(GeometryPool *gp)
Definition Terrain:79
void setBlendingPolicy(TerrainTile::BlendingPolicy policy)
TerrainTileSet _updateTerrainTileSet
Definition Terrain:130
void dirtyRegisteredTiles(int dirtyMask=TerrainTile::ALL_DIRTY)
virtual void traverse(osg::NodeVisitor &nv)
const TerrainTechnique * getTerrainTechniquePrototype() const
Definition Terrain:102
void updateTerrainTileOnNextFrame(TerrainTile *terrainTile)
std::set< TerrainTile * > TerrainTileSet
Definition Terrain:119
META_Node(osgTerrain, Terrain)
void unregisterTerrainTile(TerrainTile *tile)
const GeometryPool * getGeometryPool() const
Definition Terrain:85
void setVerticalScale(float scale)
TerrainTileSet _terrainTileSet
Definition Terrain:128
std::map< TileID, TerrainTile * > TerrainTileMap
Definition Terrain:118
void setTerrainTechniquePrototype(TerrainTechnique *technique)
Definition Terrain:96
float getVerticalScale() const
Definition Terrain:56
Terrain(const Terrain &, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
virtual const osgTerrain::Terrain * asTerrain() const
Definition Terrain:41
virtual osgTerrain::Terrain * asTerrain()
Definition Terrain:40
TerrainTile::BlendingPolicy getBlendingPolicy() const
Definition Terrain:66
void setEqualizeBoundaries(bool equalizeBoundaries)
const TerrainTile * getTile(const TileID &tileID) const
osg::ref_ptr< GeometryPool > _geometryPool
Definition Terrain:125
TerrainTileMap _terrainTileMap
Definition Terrain:129
Definition TerrainTile:31
Definition CoordinateSystemNode:96
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Definition NodeVisitor:82
Definition ref_ptr:32
Definition Node:29
#define OSGTERRAIN_EXPORT
Definition osgTerrain/Export:39