bool PrimitiveIntersector::enter(const osg::Node& node) { if (reachedLimit()) return false; osg::BoundingSphere bs = node.getBound(); if (bs.valid()) { bs.radius() += (_thickness - _start).length(); } return !node.isCullingActive() || intersects(bs); }
bool PosterIntersector::enter( const osg::Node& node ) { if ( !node.isCullingActive() ) return true; if ( _polytope.contains(node.getBound()) ) { if ( node.getCullCallback() ) { const osg::ClusterCullingCallback* cccb = dynamic_cast<const osg::ClusterCullingCallback*>( node.getCullCallback() ); if ( cccb && cccb->cull(_intersectionVisitor, 0, NULL) ) return false; } return true; } return false; }
bool ProxyCullVisitor::isCulledByProxyFrustum(osg::Node& node) { return node.isCullingActive() && !_proxyFrustum.contains(node.getBound()); }
bool PolytopeIntersector::enter(const osg::Node& node) { if (reachedLimit()) return false; return !node.isCullingActive() || _polytope.contains( node.getBound() ); }
bool LineSegmentIntersector::enter(const osg::Node& node) { return !node.isCullingActive() || intersects( node.getBound() ); }