#include <OSGFrustumVolume.h>
Inheritance diagram for osg::FrustumVolume:

Public Types | |
Plane Selection | |
| typedef UInt8 | PlaneSet |
| enum | { P_NONE = 0, P_NEAR = 1, P_FAR = 2, P_LEFT = 4, P_RIGHT = 8, P_TOP = 16, P_BOTTOM = 32, P_ALL = P_NEAR | P_FAR | P_LEFT | P_RIGHT | P_TOP | P_BOTTOM } |
Public Member Functions | |
| bool | operator== (const Volume &other) const |
| bool | operator!= (const Volume &other) const |
State | |
| *void | setValid (const bool value=true) |
| bool | isValid (void) const |
| void | setEmpty (const bool value=true) |
| bool | isEmpty (void) const |
| void | setStatic (const bool value=true) |
| bool | isStatic (void) const |
| void | setInfinite (const bool value=true) |
| bool | isInfinite (void) const |
| bool | isUntouchable (void) const |
| UInt16 | getState (void) const |
| void | setState (UInt16 state) |
Get Values | |
| Pnt3f | getMin (void) const |
| Pnt3f | getMax (void) const |
Constructors | |
| * | FrustumVolume (void) |
| FrustumVolume (const Plane &pnear, const Plane &pfar, const Plane &left, const Plane &right, const Plane &top, const Plane &bottom) | |
| FrustumVolume (const FrustumVolume &obj) | |
Destructors | |
| * | ~FrustumVolume (void) |
Get | |
| *const Plane & | getNear (void) const |
| const Plane & | getFar (void) const |
| const Plane & | getLeft (void) const |
| const Plane & | getRight (void) const |
| const Plane & | getTop (void) const |
| const Plane & | getBottom (void) const |
| const Plane * | getPlanes (void) const |
| virtual void | getCenter (Pnt3f ¢er) const |
| virtual Real32 | getScalarVolume (void) const |
| virtual void | getBounds (Pnt3f &minPnt, Pnt3f &maxPnt) const |
| NOT IMPLEMENTED. | |
Get | |
| *void | setPlanes (const Plane &pnear, const Plane &pfar, const Plane &left, const Plane &right, const Plane &top, const Plane &bottom) |
| void | setPlanes (const Pnt3f &nlt, const Pnt3f &nlb, const Pnt3f &nrt, const Pnt3f &nrb, const Pnt3f &flt, const Pnt3f &flb, const Pnt3f &frt, const Pnt3f &frb) |
| void | setPlanes (const Matrix &matrix) |
Extending | |
| *virtual void | extendBy (const Pnt3f &pt) |
| NOT IMPLEMENTED. | |
| virtual void | extendBy (const Volume &volume) |
| extend the volume to enclose the given one. | |
| void | extendBy (const FrustumVolume &bb) |
| extend the volume to enclose the given frustum. | |
Intersection | |
| *virtual bool | intersect (const Pnt3f &point) const |
| virtual bool | intersect (const Line &line) const |
| virtual bool | intersect (const Line &line, Real32 &minDist, Real32 &maxDist) const |
| virtual bool | intersect (const Volume &volume) const |
| bool | intersect (const FrustumVolume &bb) const |
| virtual bool | isOnSurface (const Pnt3f &point) const |
| NOT IMPLEMENTED. | |
Transformation | |
| *virtual void | transform (const Matrix &m) |
Assignment | |
| *const FrustumVolume & | operator= (const FrustumVolume &b1) |
Output | |
| *virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
State | |
| *void | setValid (const bool value=true) |
| bool | isValid (void) const |
| void | setEmpty (const bool value=true) |
| bool | isEmpty (void) const |
| void | setStatic (const bool value=true) |
| bool | isStatic (void) const |
| void | setInfinite (const bool value=true) |
| bool | isInfinite (void) const |
| bool | isUntouchable (void) const |
| UInt16 | getState (void) const |
| void | setState (UInt16 state) |
Get Values | |
| Pnt3f | getMin (void) const |
| Pnt3f | getMax (void) const |
Protected Attributes | |
| UInt16 | _state |
Private Attributes | |
| Plane | _planeVec [6] |
Definition at line 54 of file OSGFrustumVolume.h.
|
|
Definition at line 74 of file OSGFrustumVolume.h. |
|
|
Definition at line 64 of file OSGFrustumVolume.h. 00064 { P_NONE = 0, 00065 P_NEAR = 1, 00066 P_FAR = 2, 00067 P_LEFT = 4, 00068 P_RIGHT = 8, 00069 P_TOP = 16, 00070 P_BOTTOM = 32, 00071 P_ALL = P_NEAR | P_FAR | P_LEFT | P_RIGHT | P_TOP | P_BOTTOM 00072 };
|
|
|
Default constructor - leaves box empty Definition at line 56 of file OSGFrustumVolume.inl. 00056 : 00057 Volume() 00058 { 00059 }
|
|
||||||||||||||||||||||||||||
|
Constructor given bounds Definition at line 65 of file OSGFrustumVolume.inl. References _planeVec. 00067 : 00068 Volume() 00069 { 00070 _planeVec[0] = pnear; 00071 _planeVec[1] = pfar; 00072 _planeVec[2] = left; 00073 _planeVec[3] = right; 00074 _planeVec[4] = top; 00075 _planeVec[5] = bottom; 00076 }
|
|
|
Copy Constructor Definition at line 82 of file OSGFrustumVolume.inl. References _planeVec. 00082 : 00083 Volume(obj) 00084 { 00085 _planeVec[0] = obj._planeVec[0]; 00086 _planeVec[1] = obj._planeVec[1]; 00087 _planeVec[2] = obj._planeVec[2]; 00088 _planeVec[3] = obj._planeVec[3]; 00089 _planeVec[4] = obj._planeVec[4]; 00090 _planeVec[5] = obj._planeVec[5]; 00091 }
|
|
|
Destructor Definition at line 97 of file OSGFrustumVolume.inl.
|
|
|
Returns the near plane Definition at line 107 of file OSGFrustumVolume.inl. References _planeVec. Referenced by osg::drawVolume(). 00108 { 00109 return _planeVec[0]; 00110 }
|
|
|
Returns the far plane Definition at line 116 of file OSGFrustumVolume.inl. References _planeVec. Referenced by osg::drawVolume(). 00117 { 00118 return _planeVec[1]; 00119 }
|
|
|
Returns the left plane Definition at line 125 of file OSGFrustumVolume.inl. References _planeVec. Referenced by osg::drawVolume(). 00126 { 00127 return _planeVec[2]; 00128 }
|
|
|
Returns the right plane Definition at line 134 of file OSGFrustumVolume.inl. References _planeVec. Referenced by osg::drawVolume(). 00135 { 00136 return _planeVec[3]; 00137 }
|
|
|
Returns the top plane Definition at line 143 of file OSGFrustumVolume.inl. References _planeVec. Referenced by osg::drawVolume(). 00144 { 00145 return _planeVec[4]; 00146 }
|
|
|
Returns the bottom plane Definition at line 152 of file OSGFrustumVolume.inl. References _planeVec. Referenced by osg::drawVolume(). 00153 { 00154 return _planeVec[5]; 00155 }
|
|
|
get method Definition at line 162 of file OSGFrustumVolume.inl. References _planeVec. Referenced by osg::Line::intersect(), osg::intersect(), and osg::operator==(). 00163 { 00164 return _planeVec; 00165 }
|
|
|
Returns the near plane Implements osg::Volume. Definition at line 75 of file OSGFrustumVolume.cpp. References _planeVec, osg::Plane::intersect(), osg::Plane::intersectInfinite(), and osg::PointInterface< ValueTypeT, StorageInterfaceT >::subZero(). 00076 { 00077 Pnt3f vertices[8]; 00078 Line lines [4]; 00079 00080 _planeVec[5].intersect(_planeVec[3],lines[3]); 00081 _planeVec[3].intersect(_planeVec[4],lines[2]); 00082 _planeVec[4].intersect(_planeVec[2],lines[0]); 00083 _planeVec[2].intersect(_planeVec[5],lines[1]); 00084 00085 for(Int32 i = 0; i < 4; i++) 00086 { 00087 _planeVec[0].intersectInfinite(lines[i],vertices[ i]); 00088 _planeVec[1].intersectInfinite(lines[i],vertices[4 + i]); 00089 } 00090 00091 center = Pnt3f(0.f, 0.f ,0.f); 00092 00093 for(Int32 i = 0; i < 8; i++) 00094 { 00095 center = center + vertices[i].subZero(); 00096 } 00097 00098 center /= 8.f; 00099 }
|
|
|
Returns the near plane Implements osg::Volume. Definition at line 102 of file OSGFrustumVolume.cpp. References _planeVec, osg::VectorInterface< ValueTypeT, StorageInterfaceT >::cross(), osg::VectorInterface< ValueTypeT, StorageInterfaceT >::dot(), osg::Plane::getDistanceFromOrigin(), osg::Plane::getNormal(), osg::Plane::intersect(), osg::Plane::intersectInfinite(), osg::osgabs(), and osg::PointInterface< ValueTypeT, StorageInterfaceT >::subZero(). 00103 { 00104 const Int32 faces[6][4] = 00105 { 00106 {0,1,3,2}, 00107 {4,5,7,6}, 00108 {0,4,5,1}, 00109 {2,6,7,3}, 00110 {2,6,4,0}, 00111 {1,5,7,3} 00112 }; 00113 00114 Pnt3f vertices[8]; 00115 Line lines [4]; 00116 00117 _planeVec[5].intersect(_planeVec[3], lines[3]); 00118 _planeVec[3].intersect(_planeVec[4], lines[2]); 00119 _planeVec[4].intersect(_planeVec[2], lines[0]); 00120 _planeVec[2].intersect(_planeVec[5], lines[1]); 00121 00122 for(Int32 i = 0; i < 4; i++) 00123 { 00124 _planeVec[0].intersectInfinite(lines[i], vertices[ i]); 00125 _planeVec[1].intersectInfinite(lines[i], vertices[4 + i]); 00126 } 00127 00128 00129 Pnt3f center = Pnt3f(0.f, 0.f, 0.f); 00130 00131 for(Int32 i = 0; i < 8; i++) 00132 { 00133 center = center + vertices[i].subZero(); 00134 } 00135 00136 center /= 8.f; 00137 00138 Real32 volume = .0f; 00139 00140 for(Int32 i = 0; i < 6; i++) 00141 { 00142 Real32 height; 00143 Real32 area; 00144 00145 height = 00146 _planeVec[i].getNormal().dot(center) - 00147 _planeVec[i].getDistanceFromOrigin(); 00148 00149 Vec3f main_diag = vertices[faces[i][0]] - vertices[faces[i][2]]; 00150 Vec3f sec_diag = vertices[faces[i][1]] - vertices[faces[i][3]]; 00151 00152 area = osgabs((main_diag.cross(sec_diag)).length() / 2.f); 00153 00154 volume += osgabs((height*area)) / 3.f; 00155 } 00156 00157 return volume; 00158 }
|
|
||||||||||||
|
Implements osg::Volume. Definition at line 166 of file OSGFrustumVolume.cpp.
|
|
||||||||||||||||||||||||||||
|
Definition at line 173 of file OSGFrustumVolume.cpp. References _planeVec. Referenced by osg::Camera::getFrustum(). 00176 { 00177 _planeVec[0] = pnear; 00178 _planeVec[1] = pfar; 00179 _planeVec[2] = left; 00180 _planeVec[3] = right; 00181 _planeVec[4] = top; 00182 _planeVec[5] = bottom; 00183 }
|
|
||||||||||||||||||||||||||||||||||||
|
Definition at line 186 of file OSGFrustumVolume.cpp. References _planeVec. 00190 { 00191 00192 Plane pnear (nlb,nlt,nrb); 00193 Plane pfar (frb,frt,flb); 00194 Plane pleft (flb,flt,nlb); 00195 Plane pright (nrb,nrt,frb); 00196 Plane ptop (frt,nrt,flt); 00197 Plane pbottom(nlb,nrb,flb); 00198 00199 00200 _planeVec[0] = pnear; 00201 _planeVec[1] = pfar; 00202 _planeVec[2] = pleft; 00203 _planeVec[3] = pright; 00204 _planeVec[4] = ptop; 00205 _planeVec[5] = pbottom; 00206 00207 }
|
|
|
Definition at line 210 of file OSGFrustumVolume.cpp. References _planeVec, osg::osgsqrt(), and osg::Plane::set(). 00211 { 00212 Vec4f planeEquation[6]; 00213 Real32 vectorLength; 00214 Vec3f normal; 00215 00216 planeEquation[0][0] = objectClipMat[0][3] - objectClipMat[0][0]; 00217 planeEquation[0][1] = objectClipMat[1][3] - objectClipMat[1][0]; 00218 planeEquation[0][2] = objectClipMat[2][3] - objectClipMat[2][0]; 00219 planeEquation[0][3] = objectClipMat[3][3] - objectClipMat[3][0]; 00220 00221 planeEquation[1][0] = objectClipMat[0][3] + objectClipMat[0][0]; 00222 planeEquation[1][1] = objectClipMat[1][3] + objectClipMat[1][0]; 00223 planeEquation[1][2] = objectClipMat[2][3] + objectClipMat[2][0]; 00224 planeEquation[1][3] = objectClipMat[3][3] + objectClipMat[3][0]; 00225 00226 planeEquation[2][0] = objectClipMat[0][3] + objectClipMat[0][1]; 00227 planeEquation[2][1] = objectClipMat[1][3] + objectClipMat[1][1]; 00228 planeEquation[2][2] = objectClipMat[2][3] + objectClipMat[2][1]; 00229 planeEquation[2][3] = objectClipMat[3][3] + objectClipMat[3][1]; 00230 00231 planeEquation[3][0] = objectClipMat[0][3] - objectClipMat[0][1]; 00232 planeEquation[3][1] = objectClipMat[1][3] - objectClipMat[1][1]; 00233 planeEquation[3][2] = objectClipMat[2][3] - objectClipMat[2][1]; 00234 planeEquation[3][3] = objectClipMat[3][3] - objectClipMat[3][1]; 00235 00236 planeEquation[4][0] = objectClipMat[0][3] + objectClipMat[0][2]; 00237 planeEquation[4][1] = objectClipMat[1][3] + objectClipMat[1][2]; 00238 planeEquation[4][2] = objectClipMat[2][3] + objectClipMat[2][2]; 00239 planeEquation[4][3] = objectClipMat[3][3] + objectClipMat[3][2]; 00240 00241 planeEquation[5][0] = objectClipMat[0][3] - objectClipMat[0][2]; 00242 planeEquation[5][1] = objectClipMat[1][3] - objectClipMat[1][2]; 00243 planeEquation[5][2] = objectClipMat[2][3] - objectClipMat[2][2]; 00244 planeEquation[5][3] = objectClipMat[3][3] - objectClipMat[3][2]; 00245 00246 for(Int32 i = 0; i < 6; i++) 00247 { 00248 vectorLength = 00249 osgsqrt(planeEquation[i][0] * planeEquation[i][0] + 00250 planeEquation[i][1] * planeEquation[i][1] + 00251 planeEquation[i][2] * planeEquation[i][2]); 00252 00253 planeEquation[i][0] /= vectorLength; 00254 planeEquation[i][1] /= vectorLength; 00255 planeEquation[i][2] /= vectorLength; 00256 planeEquation[i][3] /= -vectorLength; 00257 } 00258 00259 // right 00260 _planeVec[3].set(planeEquation[0]); 00261 00262 // left 00263 _planeVec[2].set(planeEquation[1]); 00264 00265 // bottom 00266 _planeVec[5].set(planeEquation[2]); 00267 00268 // top 00269 _planeVec[4].set(planeEquation[3]); 00270 00271 // near 00272 _planeVec[0].set(planeEquation[4]); 00273 00274 // far 00275 _planeVec[1].set(planeEquation[5]); 00276 }
|
|
|
Implements osg::Volume. Definition at line 287 of file OSGFrustumVolume.cpp.
|
|
|
Implements osg::Volume. Definition at line 295 of file OSGFrustumVolume.cpp. References osg::extend(). 00296 { 00297 OSG::extend(*this, volume); 00298 }
|
|
|
Definition at line 174 of file OSGFrustumVolume.inl. References osg::extend(). 00175 { 00176 OSG::extend(*this, volume); 00177 }
|
|
|
Implements osg::Volume. Definition at line 303 of file OSGFrustumVolume.cpp. References _planeVec, osg::Plane::getDistanceFromOrigin(), osg::Plane::getNormal(), osg::VecStorage3< ValueTypeT >::x(), osg::VecStorage3< ValueTypeT >::y(), and osg::VecStorage3< ValueTypeT >::z(). Referenced by osg::RenderAction::isVisible(), and osg::DrawAction::isVisible(). 00304 { 00305 bool retCode = true; 00306 00307 for(Int32 i = 0; i < 6; i++) 00308 { 00309 if((_planeVec[i].getNormal().x() * point.x() + 00310 _planeVec[i].getNormal().y() * point.y() + 00311 _planeVec[i].getNormal().z() * point.z() + 00312 _planeVec[i].getDistanceFromOrigin() ) < 0.f) 00313 { 00314 retCode = false; 00315 break; 00316 } 00317 } 00318 00319 return retCode; 00320 }
|
|
|
Implements osg::Volume. Definition at line 323 of file OSGFrustumVolume.cpp. References osg::Line::intersect(). 00324 { 00325 return line.intersect(*this); 00326 }
|
|
||||||||||||||||
|
Implements osg::Volume. Definition at line 329 of file OSGFrustumVolume.cpp. References osg::Line::intersect(). 00332 { 00333 return line.intersect(*this, minDist, maxDist); 00334 }
|
|
|
Implements osg::Volume. Definition at line 337 of file OSGFrustumVolume.cpp. References osg::intersect(). 00338 { 00339 return OSG::intersect(*this, volume); 00340 }
|
|
|
Definition at line 182 of file OSGFrustumVolume.inl. References osg::intersect(). 00183 { 00184 return OSG::intersect(*this, volume); 00185 }
|
|
|
Implements osg::Volume. Definition at line 347 of file OSGFrustumVolume.cpp. References FWARNING. 00348 { 00349 FWARNING(("FrustumVolume::isOnSurface: NYI!\n")); 00350 return false; 00351 }
|
|
|
Implements osg::Volume. Definition at line 353 of file OSGFrustumVolume.cpp. References _planeVec, and osg::Plane::transform(). Referenced by osg::RenderAction::pushVisibility(). 00354 { 00355 _planeVec[0].transform(m); 00356 _planeVec[1].transform(m); 00357 _planeVec[2].transform(m); 00358 _planeVec[3].transform(m); 00359 _planeVec[4].transform(m); 00360 _planeVec[5].transform(m); 00361 }
|
|
|
Definition at line 363 of file OSGFrustumVolume.cpp. References _planeVec, and osg::Volume::_state. 00364 { 00365 for(Int32 i = 0; i < 5; i++) 00366 { 00367 _planeVec[i] = b1._planeVec[i]; 00368 } 00369 00370 _state = b1._state; 00371 00372 return *this; 00373 }
|
|
||||||||||||
|
Implements osg::Volume. Definition at line 375 of file OSGFrustumVolume.cpp. References _planeVec, osg::Plane::getDistanceFromOrigin(), osg::Plane::getNormal(), and PLOG. 00377 { 00378 #if 1 00379 fprintf(stderr,"Frustum:(%f %f %f:%f)(%f %f %f:%f)(%f %f %f:%f)" 00380 "(%f %f %f:%f)(%f %f %f:%f)(%f %f %f:%f)\n", 00381 _planeVec[0].getNormal()[0], 00382 _planeVec[0].getNormal()[1], 00383 _planeVec[0].getNormal()[2], 00384 _planeVec[0].getDistanceFromOrigin(), 00385 _planeVec[1].getNormal()[0], 00386 _planeVec[1].getNormal()[1], 00387 _planeVec[1].getNormal()[2], 00388 _planeVec[1].getDistanceFromOrigin(), 00389 _planeVec[2].getNormal()[0], 00390 _planeVec[2].getNormal()[1], 00391 _planeVec[2].getNormal()[2], 00392 _planeVec[2].getDistanceFromOrigin(), 00393 _planeVec[3].getNormal()[0], 00394 _planeVec[3].getNormal()[1], 00395 _planeVec[3].getNormal()[2], 00396 _planeVec[3].getDistanceFromOrigin(), 00397 _planeVec[4].getNormal()[0], 00398 _planeVec[4].getNormal()[1], 00399 _planeVec[4].getNormal()[2], 00400 _planeVec[4].getDistanceFromOrigin(), 00401 _planeVec[5].getNormal()[0], 00402 _planeVec[5].getNormal()[1], 00403 _planeVec[5].getNormal()[2], 00404 _planeVec[5].getDistanceFromOrigin() ); 00405 00406 00407 #else 00408 PLOG << "Frustum(" 00409 << _planeVec[0].getNormal() << ":" 00410 << _planeVec[0].getDistanceFromOrigin() << "|" 00411 << _planeVec[1].getNormal() << ":" 00412 << _planeVec[1].getDistanceFromOrigin() << "|" 00413 << _planeVec[2].getNormal() << ":" 00414 << _planeVec[2].getDistanceFromOrigin() << "|" 00415 << _planeVec[3].getNormal() << ":" 00416 << _planeVec[3].getDistanceFromOrigin() << "|" 00417 << _planeVec[4].getNormal() << ":" 00418 << _planeVec[4].getDistanceFromOrigin() << "|" 00419 << _planeVec[5].getNormal() << ":" 00420 << _planeVec[5].getDistanceFromOrigin() << "|" 00421 << ")"; 00422 #endif 00423 }
|
|
|
set the volume to be valid Definition at line 82 of file OSGVolume.inl. References osg::Volume::_state, osg::Volume::isStatic(), and osg::Volume::OSGVALID. Referenced by osg::Surface::adjustVolume(), osg::Slices::adjustVolume(), osg::ProxyGroup::adjustVolume(), osg::Particles::adjustVolume(), osg::Geometry::adjustVolume(), osg::DVRVolume::adjustVolume(), osg::Node::invalidateVolume(), osg::BoxVolume::setBounds(), and osg::BoxVolume::setBoundsByCenterAndSize(). 00083 { 00084 if(!isStatic()) 00085 { 00086 if(value == true) 00087 _state |= OSGVALID; 00088 else 00089 _state &= ~OSGVALID; 00090 } 00091 }
|
|
|
Checks if the volume is valid Definition at line 96 of file OSGVolume.inl. References osg::Volume::_state, and osg::Volume::OSGVALID. Referenced by osg::Group::intersect(), osg::Geometry::intersect(), osg::DVRVolume::intersect(), and osg::Node::invalidateVolume().
|
|
|
set the volume to contain nothing Definition at line 104 of file OSGVolume.inl. References osg::Volume::_state, osg::Volume::OSGEMPTY, osg::Volume::OSGINFINITE, and osg::Volume::OSGVALID. Referenced by osg::Surface::adjustVolume(), osg::Slices::adjustVolume(), osg::ProxyGroup::adjustVolume(), osg::Particles::adjustVolume(), osg::Geometry::adjustVolume(), osg::DVRVolume::adjustVolume(), osg::BoxVolume::BoxVolume(), osg::CylinderVolume::CylinderVolume(), osg::ParticleBSPTree::doBuild(), osg::SphereVolume::extendBy(), osg::BoxVolume::extendBy(), osg::BoxVolume::setBounds(), osg::BoxVolume::setBoundsByCenterAndSize(), osg::SphereVolume::setValue(), osg::SphereVolume::SphereVolume(), and osg::Node::updateVolume(). 00105 { 00106 if(value == true) 00107 { 00108 _state |= OSGEMPTY; 00109 _state |= OSGVALID; 00110 _state &= ~OSGINFINITE; 00111 } 00112 else 00113 { 00114 _state &= ~OSGEMPTY; 00115 } 00116 }
|
|
|
Checks if the volume is empty Definition at line 121 of file OSGVolume.inl. References osg::Volume::_state, and osg::Volume::OSGEMPTY. Referenced by osg::SphereVolume::extendBy(), osg::BoxVolume::extendBy(), osg::BoxVolume::getCenter(), osg::SphereVolume::getScalarVolume(), osg::CylinderVolume::getScalarVolume(), osg::BoxVolume::getScalarVolume(), osg::BoxVolume::intersect(), and osg::BoxVolume::transform().
|
|
|
set the volume to be static Definition at line 63 of file OSGVolume.inl. References osg::Volume::_state, and osg::Volume::OSGSTATIC. 00064 { 00065 if(value == true) 00066 _state |= OSGSTATIC; 00067 else 00068 _state &= ~OSGSTATIC; 00069 }
|
|
|
Checks if the volume is static Definition at line 74 of file OSGVolume.inl. References osg::Volume::_state, and osg::Volume::OSGSTATIC. Referenced by osg::Node::invalidateVolume(), and osg::Volume::setValid().
|