本文整理汇总了C++中Mat4::mulrightby方法的典型用法代码示例。如果您正苦于以下问题:C++ Mat4::mulrightby方法的具体用法?C++ Mat4::mulrightby怎么用?C++ Mat4::mulrightby使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mat4
的用法示例。
在下文中一共展示了Mat4::mulrightby方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: glOrtho
void glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near_val, GLdouble far_val)
{
Mat4 O;
O.loadIdentity();
O.M[0][0] = 2.0 / (right - left);
O.M[1][1] = 2.0 / (top - bottom);
O.M[0][3] = -(right + left) / (right - left);
O.M[1][3] = -(top + bottom) / (top - bottom);
if (dxcompat_zrange01){
O.M[2][2] = 1.0 /(far_val - near_val);
O.M[2][3] = -near_val / (far_val - near_val);
}
else {
O.M[2][2] = 2.0 / (far_val - near_val); // -2.0 used in OpenGL documentation but can't be right!
O.M[2][3] = -(far_val + near_val) / (far_val - near_val);
}
if (g_modelview)
modelmat.mulrightby(O);
else
projectionmat.mulrightby(O);
}
示例2: glScalef
void glScalef(GLfloat x,GLfloat y, GLfloat z)
{
Mat4 S;
S.loadIdentity();
S.M[0][0]=x;
S.M[1][1]=y;
if (g_modelview)
modelmat.mulrightby(S);
else
projectionmat.mulrightby(S);
}
示例3: glTranslatef
void glTranslatef(GLfloat x,GLfloat y, GLfloat z)
{
Mat4 T;
T.loadIdentity();
T.M[0][3]=x;
T.M[1][3]=y;
T.M[2][3]=z;
if (g_modelview)
modelmat.mulrightby(T);
else
projectionmat.mulrightby(T);
}
示例4: glRotatef
void glRotatef(GLfloat angle,GLfloat x,GLfloat y, GLfloat z)
{
Mat4 R;
const float pi=3.141592654;
float ca=cos(angle*pi/180);
float sa=sin(angle*pi/180);
R.loadIdentity();
R.M[0][0]=ca; R.M[0][1]=-sa;
R.M[1][0]=sa; R.M[1][1]= ca;
if (g_modelview)
modelmat.mulrightby(R);
else
projectionmat.mulrightby(R);
}