本文整理汇总了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 );
}
示例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);
}