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


C++ Box3f::getMin方法代码示例

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


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

示例1: intersect

bool Line::intersect( float angle, const Box3f& box ) const
{
	if (box.isEmpty())		return false;

	const Vec3f	&max = box.getMax(), &min = box.getMin();
	float		fuzz = 0.0;
	int			i;

	if (angle < 0.0)
	{
		fuzz = - angle;
	}
	else 
	{
		// Find the farthest point on the bounding box (where the pick
		// cone will be largest).  The amount of fuzz at this point will
		// be the minimum we can use.  Expand the box by that amount and
		// do an intersection.
		double tanA = tan(angle);
		for(i = 0; i < 8; i++) 
		{
			Vec3f point(i & 01 ? min[0] : max[0],
				  i & 02 ? min[1] : max[1],
				  i & 04 ? min[2] : max[2]);
			// how far is point from line origin??
			Vec3f	diff(point - getPosition());
			double	thisFuzz = sqrt(diff.dot(diff)) * tanA;

			if (thisFuzz > fuzz)
				fuzz = float(thisFuzz);
		}
	}

	Box3f fuzzBox = box;

	fuzzBox.extendBy(Vec3f(min[0] - fuzz, min[1] - fuzz, min[2] - fuzz));
	fuzzBox.extendBy(Vec3f(max[0] + fuzz, max[1] + fuzz, max[2] + fuzz));

	Vec3f scratch1, scratch2;
	return intersect(fuzzBox, scratch1, scratch2);
}
开发者ID:npapier,项目名称:vgsdk,代码行数:41,代码来源:Line.cpp

示例2: circumscribe

void Sphere::circumscribe( const Box3f& box )
{
	m_center = 0.5f * (box.getMin() + box.getMax());
	m_radius = (box.getMax() - m_center).getLength();
}
开发者ID:npapier,项目名称:vgsdk,代码行数:5,代码来源:Sphere.cpp

示例3:

bool Box3f::operator ==( const Box3f& b2 ) const
{
	return ( (getMin() == b2.getMin()) && (getMax() == b2.getMax()) );
}
开发者ID:npapier,项目名称:vgsdk,代码行数:4,代码来源:Box.cpp


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