openscenegraph
Volume
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2009 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 OSGVOLUME
15#define OSGVOLUME 1
16
17#include <osg/Group>
19
20#include <osgVolume/VolumeTile>
21
22namespace osgVolume {
23
27{
28 public:
29
31
34
36
37 virtual void traverse(osg::NodeVisitor& nv);
38
41
43 const VolumeTile* getVolumeTile(const TileID& tileID) const;
44
45
47 void setVolumeTechniquePrototype(VolumeTechnique* volumeTechnique) { _volumeTechnique = volumeTechnique; }
48
50 VolumeTechnique* getVolumeTechniquePrototype() { return _volumeTechnique.get(); }
51
53 const VolumeTechnique* getVolumeTechniquePrototype() const { return _volumeTechnique.get(); }
54
55
56 protected:
57
58 virtual ~Volume();
59
60 friend class VolumeTile;
61
63
66
67 typedef std::map< TileID, VolumeTile* > VolumeTileMap;
68 typedef std::set< VolumeTile* > VolumeTileSet;
69
73
75};
76
77}
78
79#endif
This class provides an object-oriented thread mutex interface.
Definition Mutex:31
Definition VolumeTile:30
Definition VolumeTechnique:46
Definition VolumeTile:70
Definition Volume:27
std::map< TileID, VolumeTile * > VolumeTileMap
Definition Volume:67
void unregisterVolumeTile(VolumeTile *tile)
VolumeTile * getVolumeTile(const TileID &tileID)
VolumeTileSet _volumeTileSet
Definition Volume:71
void dirtyRegisteredVolumeTiles()
OpenThreads::Mutex _mutex
Definition Volume:70
const VolumeTechnique * getVolumeTechniquePrototype() const
Definition Volume:53
osg::ref_ptr< VolumeTechnique > _volumeTechnique
Definition Volume:74
virtual void traverse(osg::NodeVisitor &nv)
void registerVolumeTile(VolumeTile *tile)
VolumeTechnique * getVolumeTechniquePrototype()
Definition Volume:50
std::set< VolumeTile * > VolumeTileSet
Definition Volume:68
void setVolumeTechniquePrototype(VolumeTechnique *volumeTechnique)
Definition Volume:47
VolumeTileMap _volumeTileMap
Definition Volume:72
META_Node(osgVolume, Volume)
const VolumeTile * getVolumeTile(const TileID &tileID) const
Volume(const Volume &, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Definition Group:29
Definition NodeVisitor:82
Definition ref_ptr:32
#define OSGVOLUME_EXPORT
Definition osgVolume/Export:39