void Matrix44::FromAxisAngle( const Vector3& axis, float angle ) { MakeZero(); //from ogre float radian = Angle_To_Radian(angle); float fCos = std::cos(radian); float fSin = std::sin(radian); float fOneMinusCos = 1.0f-fCos; float fX2 = axis.x*axis.x; float fY2 = axis.y*axis.y; float fZ2 = axis.z*axis.z; float fXYM = axis.x*axis.y*fOneMinusCos; float fXZM = axis.x*axis.z*fOneMinusCos; float fYZM = axis.y*axis.z*fOneMinusCos; float fXSin = axis.x*fSin; float fYSin = axis.y*fSin; float fZSin = axis.z*fSin; m_arr[0][0] = fX2*fOneMinusCos+fCos; m_arr[1][0] = fXYM-fZSin; m_arr[2][0] = fXZM+fYSin; m_arr[0][1] = fXYM+fZSin; m_arr[1][1] = fY2*fOneMinusCos+fCos; m_arr[2][1] = fYZM-fXSin; m_arr[0][2] = fXZM-fYSin; m_arr[1][2] = fYZM+fXSin; m_arr[2][2] = fZ2*fOneMinusCos+fCos; ClearTranslation(); }
//---------------------------------------------------------------------------- // // Fixed Matrix 2 Implementation // //---------------------------------------------------------------------------- Matrix2x::Matrix2x (bool bZero) { if (bZero) { MakeZero(); } else { MakeIdentity(); } }
void avtMatrix::MakePerspectiveProjection(double near_plane, double far_plane, double fov, double aspect) { double c, s, Q; c = cos(fov*0.5); s = sin(fov*0.5); Q = s/(1.0 - near_plane/far_plane); MakeZero(); m[0][0] = c/aspect; m[1][1] = c; m[2][2] = Q; m[2][3] = -Q*near_plane; m[3][2] = s; }
CVertex::CVertex() { MakeZero(); }
void WorldDrawer2d::DrawScore(float r1, float g1, float a1,float r2,float g2,float a2){ MakeX(1.0f,1.0f,1.0f,x1,x2,1); if(scor.x == 0 && !ok01){ if(ok31){ cs1->objectRemove(t1); cs1->objectRemove(t2); cs1->objectRemove(t3); } if(ok11){ cs1->objectRemove(u1); } if(ok21){ cs1->objectRemove(d1); cs1->objectRemove(d2); } ok01=true; MakeZero(r1,g1,a1,&z11,&z21,&z31,&z41,1); }else if(scor.x == 1 && !ok11){ ok11 = true; ok01 = false; cs1->objectRemove(z11); cs1->objectRemove(z21); cs1->objectRemove(z31); cs1->objectRemove(z41); MakeUnu(r1,g1,a1,&u1,1); }else if(scor.x == 2 && ! ok21){ ok21 = true; ok11 = false; cs1->objectRemove(u1); MakeDoi(r1,g1,a1,&d1,&d2,1); }else if(scor.x == 3 ){ ok31 = true; ok21 = false; cs1->objectRemove(d1); cs1->objectRemove(d2); MakeTrei(r1,g1,a1,&t1,&t2,&t3,1); } if(scor.y == 0 && !ok02){ if(ok32 == true){ cs1->objectRemove(t11); cs1->objectRemove(t12); cs1->objectRemove(t13); } if(ok12){ cs1->objectRemove(u2); } if(ok22){ cs1->objectRemove(d11); cs1->objectRemove(d12); } ok02 = true; MakeZero(r2,g2,a2,&z12,&z22,&z32,&z42,-1); }else if(scor.y == 1 && !ok12){ ok12 = true; ok02 = false; cs1->objectRemove(z12); cs1->objectRemove(z22); cs1->objectRemove(z32); cs1->objectRemove(z42); MakeUnu(r2,g2,a2,&u2,-1); }else if(scor.y == 2 && !ok22){ ok22 = true; ok12 = false; cs1->objectRemove(u2); MakeDoi(r2,g2,a2,&d11,&d12,-1); }else if(scor.y == 3){ ok22 = false; ok32 = true; cs1->objectRemove(d11); cs1->objectRemove(d12); MakeTrei(r2,g2,a2,&t11,&t12,&t13,-1); } }
TSparseMat::TSparseMat(Int nrows, Int ncols) : row(0) { SetSize(nrows, ncols); MakeZero(); // Adds in sentinels. }