本文整理汇总了C++中mat3::data方法的典型用法代码示例。如果您正苦于以下问题:C++ mat3::data方法的具体用法?C++ mat3::data怎么用?C++ mat3::data使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mat3
的用法示例。
在下文中一共展示了mat3::data方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setUniform
void Program::setUniform(int nLoc, uint32_t type, const mat3& value, bool forced)
{
if (nLoc == -1) return;
(void)type;
assert(type == GL_FLOAT_MAT3);
assert(loaded());
if (forced || ((_mat3Cache.count(nLoc) == 0) || (_mat3Cache[nLoc] != value)))
{
_mat3Cache[nLoc] = value;
glUniformMatrix3fv(nLoc, 1, 0, value.data());
}
checkOpenGLError("setUniform - mat3");
}
示例2: setUniform
void Program::setUniform(int nLoc, uint32_t type, const mat3& value, bool forced)
{
#if !defined(ET_CONSOLE_APPLICATION)
if (nLoc == -1) return;
(void)type;
ET_ASSERT(type == GL_FLOAT_MAT3);
ET_ASSERT(apiHandleValid());
if (forced || ((_mat3Cache.count(nLoc) == 0) || (_mat3Cache[nLoc] != value)))
{
_mat3Cache[nLoc] = value;
glUniformMatrix3fv(nLoc, 1, 0, value.data());
checkOpenGLError("glUniformMatrix3fv");
}
#endif
}
示例3: eulerFromMatrix
vec3 eulerFromMatrix ( const mat3& m )
{
const float * data = m.data ();
vec3 angle;
float c;
angle.x = -asinf ( data [2] );
c = cosf ( angle.x );
if ( fabsf ( c ) > EPS )
{
angle.y = atan2f ( data [5] / c, data [8] / c ); // m12, m22
angle.z = atan2f ( data [1] / c, data [0] / c );
}
else
{
angle.y = 0.0f;
angle.z = atan2f ( data [3], data [4] );
}
return angle;
}