本文整理汇总了C++中OBB::RandomPointInside方法的典型用法代码示例。如果您正苦于以下问题:C++ OBB::RandomPointInside方法的具体用法?C++ OBB::RandomPointInside怎么用?C++ OBB::RandomPointInside使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OBB
的用法示例。
在下文中一共展示了OBB::RandomPointInside方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RandomPointInside
float3 Capsule::RandomPointInside(LCG &rng) const
{
assume(IsFinite());
OBB obb = MinimalEnclosingOBB();
for(int i = 0; i < 1000; ++i)
{
float3 pt = obb.RandomPointInside(rng);
if (Contains(pt))
return pt;
}
assume(false && "Warning: Capsule::RandomPointInside ran out of iterations to perform!");
return Center(); // Just return some point that is known to be inside.
}
示例2: UniformRandomPointInside
float3 Frustum::UniformRandomPointInside(LCG &rng) const
{
if (type == OrthographicFrustum)
return FastRandomPointInside(rng);
else
{
OBB o = MinimalEnclosingOBB();
for(int numTries = 0; numTries < 1000; ++numTries)
{
float3 pt = o.RandomPointInside(rng);
if (Contains(pt))
return pt;
}
LOGW("Rejection sampling failed in Frustum::UniformRandomPointInside! Producing a non-uniformly distributed point inside the frustum!");
return FastRandomPointInside(rng);
}
}