本文整理汇总了C++中osg::ref_ptr::getOccluder方法的典型用法代码示例。如果您正苦于以下问题:C++ ref_ptr::getOccluder方法的具体用法?C++ ref_ptr::getOccluder怎么用?C++ ref_ptr::getOccluder使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osg::ref_ptr
的用法示例。
在下文中一共展示了ref_ptr::getOccluder方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: endOccluder
void OccluderEventHandler::endOccluder()
{
if (_convexPlanarOccluder.valid())
{
if (_convexPlanarOccluder->getOccluder().getVertexList().size()>=3)
{
osg::OccluderNode* occluderNode = new osg::OccluderNode;
occluderNode->setOccluder(_convexPlanarOccluder.get());
if (!_occluders.valid())
{
_occluders = new osg::Group;
if (rootNode()) rootNode()->addChild(_occluders.get());
}
_occluders->addChild(occluderNode);
std::cout<<"created occluder"<<std::endl;
}
else
{
std::cout<<"Occluder requires at least 3 points to create occluder."<<std::endl;
}
}
else
{
std::cout<<"No occluder points to create occluder with."<<std::endl;
}
// reset current occluder.
_convexPlanarOccluder = NULL;
}
示例2: addPoint
void OccluderEventHandler::addPoint(const osg::Vec3& pos)
{
std::cout<<"add point "<<pos<<std::endl;
if (!_convexPlanarOccluder.valid()) _convexPlanarOccluder = new osg::ConvexPlanarOccluder;
osg::ConvexPlanarPolygon& occluder = _convexPlanarOccluder->getOccluder();
occluder.add(pos);
//
// osg::BoundingSphere bs = rootNode()->getBound();
//
// osg::ShapeDrawable* sd = new osg::ShapeDrawable(new osg::Sphere(pos,bs.radius()*0.001f));
// osg::Geode* geode = new osg::Geode;
// geode->addDrawable(sd);
//
// rootNode()->addChild(geode);
//
}