OpenSceneGraph 3.6.5
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
51
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
70 mutable OpenThreads::Mutex _mutex;
73
75};
76
77}
78
79#endif
The osgVolume library is a NodeKit that extends the core scene graph to support volume rendering.
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
General group node which maintains a list of children.
Definition Group:29
Visitor for type safe operations on osg::Nodes.
Definition NodeVisitor:82
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
std::map< TileID, VolumeTile * > VolumeTileMap
Definition Volume:67
void unregisterVolumeTile(VolumeTile *tile)
VolumeTile * getVolumeTile(const TileID &tileID)
Get the VolumeTile for a given VolumeTileID.
VolumeTileSet _volumeTileSet
Definition Volume:71
void dirtyRegisteredVolumeTiles()
OpenThreads::Mutex _mutex
Definition Volume:70
const VolumeTechnique * getVolumeTechniquePrototype() const
Get the const VolumeTechnique prototype.
Definition Volume:53
osg::ref_ptr< VolumeTechnique > _volumeTechnique
Definition Volume:74
virtual void traverse(osg::NodeVisitor &nv)
Traverse downwards : calls children's accept method with NodeVisitor.
void registerVolumeTile(VolumeTile *tile)
VolumeTechnique * getVolumeTechniquePrototype()
Get the VolumeTechnique prototype.
Definition Volume:50
std::set< VolumeTile * > VolumeTileSet
Definition Volume:68
friend class VolumeTile
Definition Volume:60
void setVolumeTechniquePrototype(VolumeTechnique *volumeTechnique)
Set the VolumeTechnique prototype that nested VolumeTile should clone if they haven't already been as...
Definition Volume:47
VolumeTileMap _volumeTileMap
Definition Volume:72
META_Node(osgVolume, Volume)
const VolumeTile * getVolumeTile(const TileID &tileID) const
Get the const VolumeTile for a given VolumeTileID.
Volume(const Volume &, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy.
Definition VolumeTechnique:46
Definition VolumeTile:30
#define OSGVOLUME_EXPORT
Definition Export:39

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