示例#1
0
void RectangularMatrixTest::constructFromDiagonal() {
    Vector3 diagonal(-1.0f, 5.0f, 11.0f);

    Matrix3x4 expectedA(Vector4(-1.0f, 0.0f,  0.0f, 0.0f),
                        Vector4( 0.0f, 5.0f,  0.0f, 0.0f),
                        Vector4( 0.0f, 0.0f, 11.0f, 0.0f));
    CORRADE_COMPARE(Matrix3x4::fromDiagonal(diagonal), expectedA);

    Matrix4x3 expectedB(Vector3(-1.0f, 0.0f,  0.0f),
                        Vector3( 0.0f, 5.0f,  0.0f),
                        Vector3( 0.0f, 0.0f, 11.0f),
                        Vector3( 0.0f, 0.0f,  0.0f));
    CORRADE_COMPARE(Matrix4x3::fromDiagonal(diagonal), expectedB);
}
示例#2
0
void Vector3fTest::testScaling()
{
	Vector3f inputA(-3.3f, 2.2f, 8.8f);
	float inputFactor = 5.64f;
	
	Vector3f expectedA(-18.612f, 12.408f, 49.632f);
	float delta = 0.000005f;
	
	Vector3f actualA = inputA * inputFactor;
	
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.x, actualA.x, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.y, actualA.y, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.z, actualA.z, delta);
	
	inputA *= inputFactor;
	
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.x, inputA.x, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.y, inputA.y, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedA.z, inputA.z, delta);
	
	Vector3f inputB(-3.3f, 2.2f, 8.8f);
	
	Vector3f expectedB(-0.585106382978723f, 0.390070921985816f, 1.56028368794326f);
	
	Vector3f actualB = inputB / inputFactor;
	
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.x, actualB.x, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.y, actualB.y, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.z, actualB.z, delta);
	
	inputB /= inputFactor;
	
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.x, inputB.x, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.y, inputB.y, delta);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(expectedB.z, inputB.z, delta);
}