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


C++ hkvVec3::getDistanceToSquared方法代码示例

本文整理汇总了C++中hkvVec3::getDistanceToSquared方法的典型用法代码示例。如果您正苦于以下问题:C++ hkvVec3::getDistanceToSquared方法的具体用法?C++ hkvVec3::getDistanceToSquared怎么用?C++ hkvVec3::getDistanceToSquared使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在hkvVec3的用法示例。


在下文中一共展示了hkvVec3::getDistanceToSquared方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: GetDistanceToPlane

  /// \brief
  ///    Helper function to retrieve current distance to a given plane
  ///
  /// \param vCameraPos
  ///   Camera position to test the distance against
  /// \param fLODScaleSqr
  ///   Square of the LOD scaling factor
  /// \param fPlane
  ///   Reference plane distance, will be subtracted from final result
  ///
  /// \returns
  ///   Relative distance from object to given plane
  inline float GetDistanceToPlane(const hkvVec3& vCameraPos, float fLODScaleSqr=1.f, float fPlane=0.f) const
  {
    int iLODMode = m_iPerformTestFlags&VIS_PERFORM_LODTEST;
    float fDistSqr;
    switch (iLODMode)
    {
    case VIS_LOD_TEST_NONE:
      fDistSqr = 0.0f;
      break;
    case VIS_LOD_TEST_CLIPPOSITION:
      fDistSqr = vCameraPos.getDistanceToSquared(m_vClipReference);
      break;
    case VIS_LOD_TEST_CLIPPOSITION|VIS_LOD_TEST_APPLYLODSCALING:
      fDistSqr = vCameraPos.getDistanceToSquared(m_vClipReference)*fLODScaleSqr;
      break;
    case VIS_LOD_TEST_BOUNDINGBOX:
      fDistSqr = m_BoundingBox.getDistanceToSquared(vCameraPos);
      break;
    case VIS_LOD_TEST_BOUNDINGBOX|VIS_LOD_TEST_APPLYLODSCALING:
      fDistSqr = m_BoundingBox.getDistanceToSquared(vCameraPos)*fLODScaleSqr;
      break;
    default:
      VASSERT_MSG(false,"Invalid combination of LOD flags");
      return false;
    }

    return hkvMath::sqrt(fDistSqr) - fPlane;
  }
开发者ID:Alagong,项目名称:projectanarchy,代码行数:40,代码来源:VisApiVisibilityData.hpp

示例2: IsNearOrFarClipped

 /// \brief
 ///    Helper function for visibility loop implementations
 ///
 /// \param vCameraPos
 ///   Camera position to test LOD clipping
 /// \param fLODScaleSqr
 ///   Square of the LOD scaling factor
 ///
 /// \returns
 ///   true if the object is clipped either by near of far clip distance (if specified)
 inline bool IsNearOrFarClipped(const hkvVec3& vCameraPos, float fLODScaleSqr=1.f) const
 {
   // changes in this function have to be reflected in SPU version IsNearOrFarClipped
   int iLODMode = m_iPerformTestFlags&VIS_PERFORM_LODTEST;
   float fDistSqr;
   switch (iLODMode)
   {
   case VIS_LOD_TEST_NONE:
     return false;
   case VIS_LOD_TEST_CLIPPOSITION:
     fDistSqr = vCameraPos.getDistanceToSquared(m_vClipReference);
     break;
   case VIS_LOD_TEST_CLIPPOSITION|VIS_LOD_TEST_APPLYLODSCALING:
     fDistSqr = vCameraPos.getDistanceToSquared(m_vClipReference)*fLODScaleSqr;
     break;
   case VIS_LOD_TEST_BOUNDINGBOX:
     fDistSqr = m_BoundingBox.getDistanceToSquared(vCameraPos);
     break;
   case VIS_LOD_TEST_BOUNDINGBOX|VIS_LOD_TEST_APPLYLODSCALING:
     fDistSqr = m_BoundingBox.getDistanceToSquared(vCameraPos)*fLODScaleSqr;
     break;
   default:
     VASSERT_MSG(false,"Invalid combination of LOD flags");
     return false;
   }
   return ((m_fNearClipDistance>0.f) && (fDistSqr<(m_fNearClipDistance*m_fNearClipDistance))) 
       || ((m_fFarClipDistance>0.f) && (fDistSqr>=(m_fFarClipDistance*m_fFarClipDistance)));
 }
开发者ID:Alagong,项目名称:projectanarchy,代码行数:38,代码来源:VisApiVisibilityData.hpp


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