当前位置: 首页>>代码示例>>C++>>正文


C++ Bounds::Set方法代码示例

本文整理汇总了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;
开发者ID:grasmanek94,项目名称:darkreign2,代码行数:67,代码来源:terrain_render_vertexc.cpp


注:本文中的Bounds::Set方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。