DisplacementMappingTechnique
Go to the documentation of this file.
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2014 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_DISPLACEMENTMAPPINGTECHNIQUE
#define OSGTERRAIN_DISPLACEMENTMAPPINGTECHNIQUE
#include <OpenThreads/Mutex>
#include <osg/MatrixTransform>
#include <osg/Program>
#include <osgTerrain/GeometryTechnique>
namespace osgTerrain
{
class OSGTERRAIN_EXPORT DisplacementMappingTechnique : public osgTerrain::TerrainTechnique
{
public:
DisplacementMappingTechnique();
DisplacementMappingTechnique(const DisplacementMappingTechnique&,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
META_Object(osgTerrain, DisplacementMappingTechnique);
virtual void init(int dirtyMask, bool assumeMultiThreaded);
virtual void update(osgUtil::UpdateVisitor* uv);
virtual void cull(osgUtil::CullVisitor* cv);
virtual void traverse(osg::NodeVisitor& nv);
virtual void cleanSceneGraph();
virtual void releaseGLObjects(osg::State* state) const;
protected:
virtual ~DisplacementMappingTechnique();
mutable OpenThreads::Mutex _traversalMutex;
mutable OpenThreads::Mutex _transformMutex;
osg::ref_ptr<osg::MatrixTransform> _transform;
OpenThreads::Atomic _currentTraversalCount;
};
}
#endif
GeometryTechnique
MatrixTransform
Mutex
OpenThreads::Atomic
This class provides an atomic increment and decrement operation.
Definition Atomic:48
OpenThreads::Mutex
This class provides an object-oriented thread mutex interface.
Definition Mutex:31
osgTerrain::DisplacementMappingTechnique::init
virtual void init(int dirtyMask, bool assumeMultiThreaded)
osgTerrain::DisplacementMappingTechnique::_transformMutex
OpenThreads::Mutex _transformMutex
Definition DisplacementMappingTechnique:48
osgTerrain::DisplacementMappingTechnique::update
virtual void update(osgUtil::UpdateVisitor *uv)
osgTerrain::DisplacementMappingTechnique::_currentTraversalCount
OpenThreads::Atomic _currentTraversalCount
Definition DisplacementMappingTechnique:51
osgTerrain::DisplacementMappingTechnique::cleanSceneGraph
virtual void cleanSceneGraph()
osgTerrain::DisplacementMappingTechnique::META_Object
META_Object(osgTerrain, DisplacementMappingTechnique)
osgTerrain::DisplacementMappingTechnique::_transform
osg::ref_ptr< osg::MatrixTransform > _transform
Definition DisplacementMappingTechnique:49
osgTerrain::DisplacementMappingTechnique::_traversalMutex
OpenThreads::Mutex _traversalMutex
Definition DisplacementMappingTechnique:46
osgTerrain::DisplacementMappingTechnique::DisplacementMappingTechnique
DisplacementMappingTechnique(const DisplacementMappingTechnique &, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
osgTerrain::DisplacementMappingTechnique::traverse
virtual void traverse(osg::NodeVisitor &nv)
osgTerrain::DisplacementMappingTechnique::~DisplacementMappingTechnique
virtual ~DisplacementMappingTechnique()
osgTerrain::DisplacementMappingTechnique::DisplacementMappingTechnique
DisplacementMappingTechnique()
osgTerrain::DisplacementMappingTechnique::releaseGLObjects
virtual void releaseGLObjects(osg::State *state) const
osgTerrain::DisplacementMappingTechnique::cull
virtual void cull(osgUtil::CullVisitor *cv)
osgTerrain::TerrainTechnique
Definition TerrainTechnique:53
osgUtil::CullVisitor
Definition CullVisitor:49
osgUtil::UpdateVisitor
Definition UpdateVisitor:38
osg::CopyOp
Definition CopyOp:41
osg::CopyOp::SHALLOW_COPY
@ SHALLOW_COPY
Definition CopyOp:47
osg::NodeVisitor
Definition NodeVisitor:82
osg::State
Definition State:80
osg::ref_ptr
Definition ref_ptr:32
osgTerrain
Definition Node:29
OSGTERRAIN_EXPORT
#define OSGTERRAIN_EXPORT
Definition osgTerrain/Export:39
Program