本文整理汇总了C++中Bounds::Set方法的典型用法代码示例。如果您正苦于以下问题:C++ Bounds::Set方法的具体用法?C++ Bounds::Set怎么用?C++ Bounds::Set使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bounds
的用法示例。
在下文中一共展示了Bounds::Set方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RenderClusterOffMapV
//.........这里部分代码省略.........
zy[i] = heightField.cellList[ txc].height;
ymin = Min<F32>( ymin, zy[i]);
ymax = Max<F32>( ymax, zy[i]);
}
dz = (F32) -zc * (F32) heightField.meterPerCell;
dzz = - (F32) heightField.meterPerCell;
corners |= 2;
}
else if (zc >= (S32) heightField.cellHeight)
{
for (U32 i = 0; i < 5; i++, xcc++)
{
S32 txc = xcc < 0 ? 0 : xcc > (S32) heightField.cellWidth ? heightField.cellWidth : xcc;
zy[i] = heightField.cellList[ heightField.cellHeight * heightField.cellPitch + txc].height;
ymin = Min<F32>( ymin, zy[i]);
ymax = Max<F32>( ymax, zy[i]);
}
dz = F32(zc - heightField.cellHeight) * (F32) heightField.meterPerCell;
dzz = (F32) heightField.meterPerCell;
corners |= 2;
}
// DyDx = (dy12 * dz02 - dy02 * dz12) * dx;
// DyDz = (dy12 * dx02 - dy02 * dx12) * -dx;
Vector offset( (xend + xs) * .5f, (ymin + ymax) * .5f, (zend + zs) * .5f);
Bounds bounds;
bounds.Set( (F32) fabs( xend - xs), ymax - ymin, (F32) fabs( zend - zs));
U32 clipFlags = Vid::CurCamera().BoundsTestBox( offset, bounds);
if (clipFlags == clipOUTSIDE)
{
// cluster is completely outside the view frustrum
return;
}
Vid::SetBucketFlags( RS_BLEND_DEF | DP_DONOTLIGHT | renderFlags | ((clipFlags & clipALL) ? 0 : DP_DONOTCLIP) );
Vid::SetTranBucketZMax( Vid::sortTERRAIN0 + 1);
Vid::SetBucketMaterial( Vid::defMaterial);
Vid::SetBucketTexture( NULL, FALSE);
F32 dxy[5], dzy[5];
U32 iz = 0;
for (; iz < 5; iz++)
{
dxy[iz] = (offMapHeight - xy[iz]) / 1000;
dzy[iz] = (offMapHeight - zy[iz]) / 1000;
}
VertexC * vertmem;
U16 * indexmem;
if (!Vid::LockIndexedPrimitiveMem( (void **)&vertmem, 25, &indexmem, 96))
{
LOG_WARN( ("Terrain::RenderCluster: can't lock bucket!") );
return;
}
VertexC * v = vertmem;
iz = 0;