本文整理汇总了C++中mat3::column方法的典型用法代码示例。如果您正苦于以下问题:C++ mat3::column方法的具体用法?C++ mat3::column怎么用?C++ mat3::column使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mat3
的用法示例。
在下文中一共展示了mat3::column方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: removeMatrixScale
vec3 et::removeMatrixScale(mat3& mat)
{
vec3 c0 = mat.column(0);
vec3 c1 = mat.column(1);
vec3 c2 = mat.column(2);
float lengths[3] = { c0.length(), c1.length(), c2.length() };
ET_ASSERT(lengths[0] > 0.0f);
ET_ASSERT(lengths[1] > 0.0f);
ET_ASSERT(lengths[2] > 0.0f);
if (mat.determinant() < 0.0f)
{
float minValues[3] =
{
etMin(c0.x, etMin(c0.y, c0.z)),
etMin(c1.x, etMin(c1.y, c1.z)),
etMin(c2.x, etMin(c2.y, c2.z))
};
auto offset = std::min_element(minValues, minValues + 3) - minValues;
lengths[offset] = -lengths[offset];
}
for (size_t i = 0; i < 3; ++i)
{
mat[0][i] /= lengths[i];
mat[1][i] /= lengths[i];
mat[2][i] /= lengths[i];
}
return vec3(lengths[0], lengths[1], lengths[2]);
}