OpenSceneGraph 3.6.5
GeometryTechnique
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_GEOMETRYTECHNIQUE
15#define OSGTERRAIN_GEOMETRYTECHNIQUE 1
16
17#include <osg/MatrixTransform>
18#include <osg/Geode>
19#include <osg/Geometry>
20
22#include <osgTerrain/Locator>
23
24namespace osgTerrain {
25
27{
28 public:
29
31
34
36
37 virtual void init(int dirtyMask, bool assumeMultiThreaded);
38
40
41
42 virtual void update(osgUtil::UpdateVisitor* nv);
43
44 virtual void cull(osgUtil::CullVisitor* nv);
45
47 virtual void traverse(osg::NodeVisitor& nv);
48
49 virtual void cleanSceneGraph();
50
51 void setFilterBias(float filterBias);
52 float getFilterBias() const { return _filterBias; }
53
54 void setFilterWidth(float filterWidth);
55 float getFilterWidth() const { return _filterWidth; }
56
57 void setFilterMatrix(const osg::Matrix3& matrix);
59 const osg::Matrix3& getFilterMatrix() const { return _filterMatrix; }
60
67
68 void setFilterMatrixAs(FilterType filterType);
69
73 virtual void releaseGLObjects(osg::State* = 0) const;
74
75
76 protected:
77
79
92
93 virtual osg::Vec3d computeCenterModel(BufferData& buffer, Locator* masterLocator);
94
95 virtual void generateGeometry(BufferData& buffer, Locator* masterLocator, const osg::Vec3d& centerModel);
96
97 virtual void applyColorLayers(BufferData& buffer);
98
99 virtual void applyTransparency(BufferData& buffer);
100
101
102 OpenThreads::Mutex _writeBufferMutex;
105
112};
113
114}
115
116#endif
Matrix3Template< float > Matrix3
Definition Uniform:390
The osgTerrain library is a NodeKit that provides geospecifc terrain rendering support.
Definition Node:29
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Visitor for type safe operations on osg::Nodes.
Definition NodeVisitor:82
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
Base class for providing reference counted objects.
Definition Referenced:44
Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings,...
Definition State:80
General purpose double triple for use as vertices, vectors and normals.
Definition Vec3d:30
virtual void applyTransparency(BufferData &buffer)
float getFilterBias() const
Definition GeometryTechnique:52
osg::ref_ptr< osg::Uniform > _filterBiasUniform
Definition GeometryTechnique:107
osg::Matrix3 _filterMatrix
Definition GeometryTechnique:110
void setFilterWidth(float filterWidth)
virtual void releaseGLObjects(osg::State *=0) const
If State is non-zero, this function releases any associated OpenGL objects for the specified graphics...
virtual void applyColorLayers(BufferData &buffer)
float getFilterWidth() const
Definition GeometryTechnique:55
virtual void traverse(osg::NodeVisitor &nv)
Traverse the terain subgraph.
float _filterWidth
Definition GeometryTechnique:108
virtual osg::Vec3d computeCenterModel(BufferData &buffer, Locator *masterLocator)
osg::ref_ptr< BufferData > _currentBufferData
Definition GeometryTechnique:103
virtual void update(osgUtil::UpdateVisitor *nv)
META_Object(osgTerrain, GeometryTechnique)
GeometryTechnique(const GeometryTechnique &, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy.
const osg::Matrix3 & getFilterMatrix() const
Definition GeometryTechnique:59
virtual void generateGeometry(BufferData &buffer, Locator *masterLocator, const osg::Vec3d &centerModel)
void setFilterMatrixAs(FilterType filterType)
void setFilterMatrix(const osg::Matrix3 &matrix)
FilterType
Definition GeometryTechnique:62
@ SMOOTH
Definition GeometryTechnique:64
@ SHARPEN
Definition GeometryTechnique:65
@ GAUSSIAN
Definition GeometryTechnique:63
float _filterBias
Definition GeometryTechnique:106
virtual void cull(osgUtil::CullVisitor *nv)
osg::ref_ptr< osg::Uniform > _filterMatrixUniform
Definition GeometryTechnique:111
osg::ref_ptr< osg::Uniform > _filterWidthUniform
Definition GeometryTechnique:109
virtual void cleanSceneGraph()
Clean scene graph from any terrain technique specific nodes.
void setFilterBias(float filterBias)
OpenThreads::Mutex _writeBufferMutex
Definition GeometryTechnique:102
osg::Matrix3 & getFilterMatrix()
Definition GeometryTechnique:58
virtual void init(int dirtyMask, bool assumeMultiThreaded)
virtual Locator * computeMasterLocator()
osg::ref_ptr< BufferData > _newBufferData
Definition GeometryTechnique:104
Definition GeometryTechnique:81
osg::ref_ptr< osg::Geode > _geode
Definition GeometryTechnique:86
osg::ref_ptr< osg::MatrixTransform > _transform
Definition GeometryTechnique:85
osg::ref_ptr< osg::Geometry > _geometry
Definition GeometryTechnique:87
~BufferData()
Definition GeometryTechnique:90
BufferData()
Definition GeometryTechnique:83
Definition Locator:26
Basic NodeVisitor implementation for rendering a scene.
Definition CullVisitor:49
Basic UpdateVisitor implementation for animating a scene.
Definition UpdateVisitor:38
#define OSGTERRAIN_EXPORT
Definition Export:39

osg logo
Generated at Sun Jul 20 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.