Example #1
0
  void Vector4D::operator*=(const Matrix4x4& _multipliedMat4)
  {
    Vector4D tempVec(*this);

    Vector4D matRow1(_multipliedMat4.GetRow(0));
    Vector4D matRow2(_multipliedMat4.GetRow(1));
    Vector4D matRow3(_multipliedMat4.GetRow(2));
    Vector4D matRow4(_multipliedMat4.GetRow(3));

    m_x = StaticFunctions::Dot(matRow1, tempVec);
    m_y = StaticFunctions::Dot(matRow2, tempVec);
    m_z = StaticFunctions::Dot(matRow3, tempVec);
    m_w = StaticFunctions::Dot(matRow4, tempVec);
  }
Example #2
0
  Vector4D Vector4D::operator*(const Matrix4x4& _multipliedMat4) const
  {
    Vector4D result;
    Vector4D matRow1(_multipliedMat4.GetRow(0));
    Vector4D matRow2(_multipliedMat4.GetRow(1));
    Vector4D matRow3(_multipliedMat4.GetRow(2));
    Vector4D matRow4(_multipliedMat4.GetRow(3));

    result.m_x = StaticFunctions::Dot(matRow1, (*this));
    result.m_y = StaticFunctions::Dot(matRow2, (*this));
    result.m_z = StaticFunctions::Dot(matRow3, (*this));
    result.m_w = StaticFunctions::Dot(matRow4, (*this));

    return result;
  }
Example #3
0
void IceMaths::NormalizePRSMatrix(Matrix4x4& dest, Point& scale, const Matrix4x4& src)
{
	Point row;
	dest = src;
	for( int i=0;i<3;i++)
	{
		src.GetRow(i,row);

		// computes scales

		scale[i] = row.Magnitude();

		row /= scale[i];

		dest.SetRow(i,row);
	}
}