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


C++ Matrix44f::transformPointAffine方法代码示例

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


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

示例1: calcBoundingBox

AxisAlignedBox3f TriMesh::calcBoundingBox( const Matrix44f &transform ) const
{
	if( mVertices.empty() )
		return AxisAlignedBox3f( Vec3f::zero(), Vec3f::zero() );

	Vec3f min( transform.transformPointAffine( mVertices[0] ) );
	Vec3f max( min );
	for( size_t i = 0; i < mVertices.size(); ++i ) {
		Vec3f v = transform.transformPointAffine( mVertices[i] );

		if( v.x < min.x )
			min.x = v.x;
		else if( v.x > max.x )
			max.x = v.x;
		if( v.y < min.y )
			min.y = v.y;
		else if( v.y > max.y )
			max.y = v.y;
		if( v.z < min.z )
			min.z = v.z;
		else if( v.z > max.z )
			max.z = v.z;
	}

	return AxisAlignedBox3f( min, max );
}
开发者ID:AaronMeyers,项目名称:Cinder,代码行数:26,代码来源:TriMesh.cpp

示例2:

AxisAlignedBox3f AxisAlignedBox3f::transformed( const Matrix44f &transform ) const
{
	Vec3f verts[8];

	for(size_t i=0;i<8;i++) 
		verts[i] = transform.transformPointAffine(mVerts[i]);

	Vec3f min = verts[0];
	Vec3f max = verts[0];
	
	for(size_t i=1;i<8;i++) {
		if(verts[i].x < min.x) min.x = verts[i].x;
		if(verts[i].y < min.y) min.y = verts[i].y;
		if(verts[i].z < min.z) min.z = verts[i].z;

		if(verts[i].x > max.x) max.x = verts[i].x;
		if(verts[i].y > max.y) max.y = verts[i].y;
		if(verts[i].z > max.z) max.z = verts[i].z;
	}

	return AxisAlignedBox3f(min, max);
}
开发者ID:AKS2346,项目名称:Cinder,代码行数:22,代码来源:AxisAlignedBox.cpp


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