Beispiel #1
0
	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();
	}
Beispiel #2
0
//----------------------------------------------------------------------------
//
// Fixed Matrix 2 Implementation
//
//----------------------------------------------------------------------------
Matrix2x::Matrix2x (bool bZero)
{
    if (bZero)
    {
        MakeZero();
    }
    else
    {
        MakeIdentity();
    }
}
Beispiel #3
0
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();
}
Beispiel #5
0
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);
	
	}

}
Beispiel #6
0
TSparseMat::TSparseMat(Int nrows, Int ncols) : row(0)
{
	SetSize(nrows, ncols);
	MakeZero();	// Adds in sentinels.
}