void m3math_test_object_t::test<5>() { LLMatrix3 llmat_obj1; LLMatrix3 llmat_obj2; LLMatrix3 llmat_obj3; LLVector3 llvec1(1, 3, 5); LLVector3 llvec2(3, 6, 1); LLVector3 llvec3(4, 6, 9); LLVector3 llvec4(1, 1, 5); LLVector3 llvec5(3, 6, 8); LLVector3 llvec6(8, 6, 2); LLVector3 llvec7(0, 0, 0); LLVector3 llvec8(0, 0, 0); LLVector3 llvec9(0, 0, 0); llmat_obj1.setRows(llvec1, llvec2, llvec3); llmat_obj2.setRows(llvec4, llvec5, llvec6); llmat_obj3.setRows(llvec7, llvec8, llvec9); llmat_obj3 = llmat_obj1 * llmat_obj2; ensure("LLMatrix3::operator*(const LLMatrix3 &a, const LLMatrix3 &b) failed", 50 == llmat_obj3.mMatrix[0][0] && 49 == llmat_obj3.mMatrix[0][1] && 39 == llmat_obj3.mMatrix[0][2] && 29 == llmat_obj3.mMatrix[1][0] && 45 == llmat_obj3.mMatrix[1][1] && 65 == llmat_obj3.mMatrix[1][2] && 94 == llmat_obj3.mMatrix[2][0] && 94 == llmat_obj3.mMatrix[2][1] && 86 == llmat_obj3.mMatrix[2][2]); }
void m3math_test_object_t::test<11>() { LLMatrix3 llmat_obj1; LLVector3 llvec1(1, 2, 3); LLVector3 llvec2(3, 2, 1); LLVector3 llvec3(2, 2, 2); llmat_obj1.setRows(llvec1, llvec2, llvec3); ensure("LLMatrix3::determinant failed ", 0.0f == llmat_obj1.determinant()); }
void partdata_test_object_t::test<1>() { LLPartData llpdata,llpdata1; U8 pkbuf[128]; llpdata.setFlags(LLPartData::LL_PART_INTERP_COLOR_MASK | LLPartData::LL_PART_INTERP_SCALE_MASK | LLPartData::LL_PART_BOUNCE_MASK | LLPartData::LL_PART_WIND_MASK | LLPartData::LL_PART_FOLLOW_SRC_MASK | LLPartData::LL_PART_FOLLOW_VELOCITY_MASK | LLPartData::LL_PART_TARGET_POS_MASK | LLPartData::LL_PART_TARGET_LINEAR_MASK | LLPartData::LL_PART_EMISSIVE_MASK | LLPartData::LL_PART_BEAM_MASK | LLPartData::LL_PART_DEAD_MASK); llpdata.setMaxAge(29.3f); LLVector3 llvec1(1.0f, .5f, .25f); llpdata.setStartColor(llvec1); llpdata.setStartAlpha(.7f); LLVector3 llvec2(.2f, .3f, 1.0f); llpdata.setEndColor(llvec2); llpdata.setEndAlpha(1.0f); llpdata.setStartScale(3.23f, 4.0f); llpdata.setEndScale(2.4678f, 1.0f); LLDataPackerBinaryBuffer dp((U8*)pkbuf, 128); llpdata.pack(dp); S32 cur_size = dp.getCurrentSize(); LLDataPackerBinaryBuffer dp1((U8*)pkbuf, cur_size); llpdata1.unpack(dp1); ensure("1.mFlags values are different after unpacking", llpdata1.mFlags == llpdata.mFlags); ensure_approximately_equals("2.mMaxAge values are different after unpacking", llpdata1.mMaxAge, llpdata.mMaxAge, 8); ensure_approximately_equals("3.mStartColor[0] values are different after unpacking", llpdata1.mStartColor.mV[0], llpdata.mStartColor.mV[0], 8); ensure_approximately_equals("4.mStartColor[1] values are different after unpacking", llpdata1.mStartColor.mV[1], llpdata.mStartColor.mV[1], 8); ensure_approximately_equals("5.mStartColor[2] values are different after unpacking", llpdata1.mStartColor.mV[2], llpdata.mStartColor.mV[2], 8); ensure_approximately_equals("6.mStartColor[3] values are different after unpacking", llpdata1.mStartColor.mV[3], llpdata.mStartColor.mV[3], 8); ensure_approximately_equals("7.mEndColor[0] values are different after unpacking", llpdata1.mEndColor.mV[0], llpdata.mEndColor.mV[0], 8); ensure_approximately_equals("8.mEndColor[1] values are different after unpacking", llpdata1.mEndColor.mV[1], llpdata.mEndColor.mV[1], 8); ensure_approximately_equals("9.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[2], llpdata.mEndColor.mV[2], 8); ensure_approximately_equals("10.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[3], llpdata.mEndColor.mV[3], 8); ensure_approximately_equals("11.mStartScale[0] values are different after unpacking", llpdata1.mStartScale.mV[0], llpdata.mStartScale.mV[0], 5); ensure_approximately_equals("12.mStartScale[1] values are different after unpacking", llpdata1.mStartScale.mV[1], llpdata.mStartScale.mV[1], 5); ensure_approximately_equals("13.mEndScale[0] values are different after unpacking", llpdata1.mEndScale.mV[0], llpdata.mEndScale.mV[0], 5); ensure_approximately_equals("14.mEndScale[1] values are different after unpacking", llpdata1.mEndScale.mV[1], llpdata.mEndScale.mV[1], 5); }
void m3math_test_object_t::test<8>() { LLMatrix3 llmat_obj1; LLMatrix3 llmat_obj2; LLVector3 llvec1(1, 3, 5); LLVector3 llvec2(3, 6, 1); LLVector3 llvec3(4, 6, 9); llmat_obj1.setRows(llvec1, llvec2, llvec3); llmat_obj2.setRows(llvec1, llvec2, llvec3); ensure("LLMatrix3::operator==(const LLMatrix3 &a, const LLMatrix3 &b) failed", llmat_obj1 == llmat_obj2); llmat_obj2.setRows(llvec2, llvec2, llvec3); ensure("LLMatrix3::operator!=(const LLMatrix3 &a, const LLMatrix3 &b) failed", llmat_obj1 != llmat_obj2); }
void m3math_test_object_t::test<7>() { LLMatrix3 llmat_obj1; LLVector3d llvec3d1; LLVector3d llvec3d2(0, 3, 4); LLVector3 llvec1(1, 3, 5); LLVector3 llvec2(3, 2, 1); LLVector3 llvec3(4, 6, 0); llmat_obj1.setRows(llvec1, llvec2, llvec3); llvec3d1 = llvec3d2 * llmat_obj1; LLVector3d expected_result(25, 30, 3); ensure("LLMatrix3::operator*(const LLVector3 &a, const LLMatrix3 &b) failed", llvec3d1 == expected_result); }
void partdata_test_object_t::test<2>() { LLPartData llpdata,llpdata1; llpdata.setFlags(LLPartData::LL_PART_INTERP_COLOR_MASK | LLPartData::LL_PART_INTERP_SCALE_MASK | LLPartData::LL_PART_BOUNCE_MASK | LLPartData::LL_PART_WIND_MASK | LLPartData::LL_PART_FOLLOW_SRC_MASK | LLPartData::LL_PART_FOLLOW_VELOCITY_MASK | LLPartData::LL_PART_TARGET_POS_MASK | LLPartData::LL_PART_TARGET_LINEAR_MASK | LLPartData::LL_PART_EMISSIVE_MASK | LLPartData::LL_PART_BEAM_MASK | LLPartData::LL_PART_DEAD_MASK); llpdata.setMaxAge(29.3f); LLVector3 llvec1(1.0f, .5f, .25f); llpdata.setStartColor(llvec1); llpdata.setStartAlpha(.7f); LLVector3 llvec2(.2f, .3f, 1.0f); llpdata.setEndColor(llvec2); llpdata.setEndAlpha(1.0f); llpdata.setStartScale(3.23f, 4.0f); llpdata.setEndScale(2.4678f, 1.0f); LLSD llsd = llpdata.asLLSD(); llpdata1.fromLLSD(llsd); ensure("1.mFlags values are different after unpacking", llpdata1.mFlags == llpdata.mFlags); ensure_approximately_equals("2.mMaxAge values are different after unpacking", llpdata1.mMaxAge, llpdata.mMaxAge, 8); ensure_approximately_equals("3.mStartColor[0] values are different after unpacking", llpdata1.mStartColor.mV[0], llpdata.mStartColor.mV[0], 8); ensure_approximately_equals("4.mStartColor[1] values are different after unpacking", llpdata1.mStartColor.mV[1], llpdata.mStartColor.mV[1], 8); ensure_approximately_equals("5.mStartColor[2] values are different after unpacking", llpdata1.mStartColor.mV[2], llpdata.mStartColor.mV[2], 8); ensure_approximately_equals("6.mStartColor[3] values are different after unpacking", llpdata1.mStartColor.mV[3], llpdata.mStartColor.mV[3], 8); ensure_approximately_equals("7.mEndColor[0] values are different after unpacking", llpdata1.mEndColor.mV[0], llpdata.mEndColor.mV[0], 8); ensure_approximately_equals("8.mEndColor[1] values are different after unpacking", llpdata1.mEndColor.mV[1], llpdata.mEndColor.mV[1], 8); ensure_approximately_equals("9.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[2], llpdata.mEndColor.mV[2], 8); ensure_approximately_equals("10.mEndColor[2] values are different after unpacking", llpdata1.mEndColor.mV[3], llpdata.mEndColor.mV[3], 8); ensure_approximately_equals("11.mStartScale[0] values are different after unpacking", llpdata1.mStartScale.mV[0], llpdata.mStartScale.mV[0], 5); ensure_approximately_equals("12.mStartScale[1] values are different after unpacking", llpdata1.mStartScale.mV[1], llpdata.mStartScale.mV[1], 5); ensure_approximately_equals("13.mEndScale[0] values are different after unpacking", llpdata1.mEndScale.mV[0], llpdata.mEndScale.mV[0], 5); ensure_approximately_equals("14.mEndScale[1] values are different after unpacking", llpdata1.mEndScale.mV[1], llpdata.mEndScale.mV[1], 5); }
void m3math_test_object_t::test<6>() { LLMatrix3 llmat_obj1; LLVector3 llvec(1, 3, 5); LLVector3 res_vec(0, 0, 0); LLVector3 llvec1(1, 3, 5); LLVector3 llvec2(3, 6, 1); LLVector3 llvec3(4, 6, 9); llmat_obj1.setRows(llvec1, llvec2, llvec3); res_vec = llvec * llmat_obj1; LLVector3 expected_result(30, 51, 53); ensure("LLMatrix3::operator*(const LLVector3 &a, const LLMatrix3 &b) failed", res_vec == expected_result); }
void m3math_test_object_t::test<10>() { LLMatrix3 llmat_obj; LLVector3 llvec1(1, 2, 3); LLVector3 llvec2(3, 2, 1); LLVector3 llvec3(2, 2, 2); llmat_obj.setRows(llvec1, llvec2, llvec3); llmat_obj.transpose(); LLVector3 resllvec1(1, 3, 2); LLVector3 resllvec2(2, 2, 2); LLVector3 resllvec3(3, 1, 2); LLMatrix3 expectedllmat_obj; expectedllmat_obj.setRows(resllvec1, resllvec2, resllvec3); ensure("LLMatrix3::transpose failed ", llmat_obj == expectedllmat_obj); }
void m3math_test_object_t::test<13>() { LLMatrix3 llmat_obj; LLVector3 llvec1(3, 2, 1); LLVector3 llvec2(6, 2, 1); LLVector3 llvec3(3, 6, 8); llmat_obj.setRows(llvec1, llvec2, llvec3); llmat_obj.adjointTranspose(); ensure("LLMatrix3::adjointTranspose failed ", 10 == llmat_obj.mMatrix[0][0] && -45 == llmat_obj.mMatrix[1][0] && 30 == llmat_obj.mMatrix[2][0] && -10 == llmat_obj.mMatrix[0][1] && 21 == llmat_obj.mMatrix[1][1] && -12 == llmat_obj.mMatrix[2][1] && 0 == llmat_obj.mMatrix[0][2] && 3 == llmat_obj.mMatrix[1][2] && -6 == llmat_obj.mMatrix[2][2]); }
void m3math_test_object_t::test<12>() { LLMatrix3 llmat_obj; LLVector3 llvec1(1, 4, 3); LLVector3 llvec2(1, 2, 0); LLVector3 llvec3(2, 4, 2); llmat_obj.setRows(llvec1, llvec2, llvec3); llmat_obj.orthogonalize(); ensure("LLMatrix3::orthogonalize failed ", is_approx_equal(0.19611613f, llmat_obj.mMatrix[0][0]) && is_approx_equal(0.78446454f, llmat_obj.mMatrix[0][1]) && is_approx_equal(0.58834839f, llmat_obj.mMatrix[0][2]) && is_approx_equal(0.47628206f, llmat_obj.mMatrix[1][0]) && is_approx_equal(0.44826555f, llmat_obj.mMatrix[1][1]) && is_approx_equal(-0.75644791f, llmat_obj.mMatrix[1][2]) && is_approx_equal(-0.85714287f, llmat_obj.mMatrix[2][0]) && is_approx_equal(0.42857143f, llmat_obj.mMatrix[2][1]) && is_approx_equal(-0.28571427f, llmat_obj.mMatrix[2][2])); }
void m3math_test_object_t::test<12>() { LLMatrix3 llmat_obj; LLVector3 llvec1(1, 0, 0); LLVector3 llvec2(1, 2, 0); LLVector3 llvec3(2, 4, 2); llmat_obj.setRows(llvec1, llvec2, llvec3); llmat_obj.orthogonalize(); ensure("LLMatrix3::orthogonalize failed ", is_approx_equal(1.0f, llmat_obj.mMatrix[0][0]) && is_approx_equal(0.0f, llmat_obj.mMatrix[0][1]) && is_approx_equal(0.0f, llmat_obj.mMatrix[0][2]) && is_approx_equal(0.0f, llmat_obj.mMatrix[1][0]) && is_approx_equal(1.0f, llmat_obj.mMatrix[1][1]) && is_approx_equal(0.0f, llmat_obj.mMatrix[1][2]) && is_approx_equal(0.0f, llmat_obj.mMatrix[2][0]) && is_approx_equal(0.0f, llmat_obj.mMatrix[2][1]) && is_approx_equal(1.0f, llmat_obj.mMatrix[2][2])); }