本文整理汇总了C++中Ray::GetNormal方法的典型用法代码示例。如果您正苦于以下问题:C++ Ray::GetNormal方法的具体用法?C++ Ray::GetNormal怎么用?C++ Ray::GetNormal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Ray
的用法示例。
在下文中一共展示了Ray::GetNormal方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Intersects
Point3DTestResult Intersects(const Plane& Surface, const Ray& Cast)
{
// Code in this function is based on the equivalent in Ogre
Real Denom = Surface.Normal.DotProduct( Cast.GetNormal() );// + Surface.Distance;
if( MathTools::Abs(Denom) < std::numeric_limits<Real>::epsilon() ) {
return Point3DTestResult( false, Vector3() );
}else{
Real Nom = Surface.Normal.DotProduct( Cast.GetOrigin() ) + Surface.Distance;
Real Distance = -( Nom / Denom );
return Point3DTestResult( true, Cast.GetOrigin() + ( Cast.GetNormal() * Distance) );
}
return Point3DTestResult( false, Vector3() );
}