本文整理汇总了C++中BoxVolume::isEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ BoxVolume::isEmpty方法的具体用法?C++ BoxVolume::isEmpty怎么用?C++ BoxVolume::isEmpty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BoxVolume
的用法示例。
在下文中一共展示了BoxVolume::isEmpty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: intersect
OSG_BASE_DLLMAPPING
bool intersect(const BoxVolume &box1, const BoxVolume &box2)
{
bool retCode = false;
if(box1.isEmpty() == true || box2.isEmpty() == true)
{
retCode = false;
}
else if(box1.isInfinite() == true || box2.isInfinite() == true)
{
retCode = true;
}
else
{
retCode =
(box1.getMin()[0] <= box2.getMax()[0] &&
box1.getMax()[0] >= box2.getMin()[0] ) &&
(box1.getMin()[1] <= box2.getMax()[1] &&
box1.getMax()[1] >= box2.getMin()[1] ) &&
(box1.getMin()[2] <= box2.getMax()[2] &&
box1.getMax()[2] >= box2.getMin()[2] );
}
return retCode;
}
示例2: extend
OSG_BASE_DLLMAPPING
void extend(BoxVolume &srcVol, const CylinderVolume &vol)
{
Pnt3f min, max;
if((!srcVol.isValid () && !srcVol.isEmpty()) ||
srcVol.isInfinite() ||
srcVol.isStatic () )
{
return;
}
if(!vol.isValid())
return;
if(srcVol.isEmpty())
{
if(vol.isEmpty())
{
return;
}
else
{
vol .getBounds(min, max);
srcVol.setBounds(min, max);
return;
}
}
else if(vol.isEmpty())
{
return;
}
vol.getBounds(min, max);
srcVol.setBounds(osgMin(min.x(), srcVol.getMin().x()),
osgMin(min.y(), srcVol.getMin().y()),
osgMin(min.z(), srcVol.getMin().z()),
osgMax(max.x(), srcVol.getMax().x()),
osgMax(max.y(), srcVol.getMax().y()),
osgMax(max.z(), srcVol.getMax().z()));
if(vol.isInfinite())
srcVol.setInfinite(true);
return;
}