| 30 | #include "utils.h" |
| 31 | |
| 32 | TEST(mathVec3Test, test2) { |
| 33 | cc::Vec3 vec3(1, 2, 3); |
| 34 | // isZero |
| 35 | logLabel = "test whether vec3 is 0"; |
| 36 | ExpectEq(vec3.isZero(), false); |
| 37 | vec3.set(0, 0, 0); |
| 38 | ExpectEq(vec3.isZero(), true); |
| 39 | vec3.set(1, 1, 1); |
| 40 | vec3.setZero(); |
| 41 | ExpectEq(vec3.isZero(), true); |
| 42 | // isOne |
| 43 | logLabel = "test whether vec3 is 1"; |
| 44 | ExpectEq(vec3.isOne(), false); |
| 45 | vec3.set(1, 1, 1); |
| 46 | ExpectEq(vec3.isOne(), true); |
| 47 | vec3.set(1.1f, 1.0f, 1.0f); |
| 48 | ExpectEq(vec3.isOne(), false); |
| 49 | // angle |
| 50 | logLabel = "test the vec3 angle function"; |
| 51 | ExpectEq(IsEqualF(vec3.angle(cc::Vec3(2, 0, 0), cc::Vec3(-2, 0, 0)), M_PI), true); |
| 52 | ExpectEq(IsEqualF(vec3.angle(cc::Vec3(2, 0, 0), cc::Vec3(0, 2, 0)), M_PI * 0.5f), true); |
| 53 | ExpectEq(IsEqualF(vec3.angle(cc::Vec3(2, 0, 0), cc::Vec3(0, -2, 0)), M_PI * 0.5f), true); |
| 54 | // transformInverseRTS |
| 55 | logLabel = "test the vec3 transformInverseRTS function"; |
| 56 | cc::Vec3::transformInverseRTS(cc::Vec3(-2, 4, 7), cc::Quaternion(0, 0, sin(M_PI / 4), cos(M_PI / 4)), cc::Vec3(1, 2, 3), cc::Vec3(2, 3, 4), &vec3); |
| 57 | ExpectEq(vec3.approxEquals(cc::Vec3(1, 1, 1)), true); |
| 58 | // add |
| 59 | logLabel = "test the vec3 add function"; |
| 60 | vec3.set(3.9, 1.3, 0); |
| 61 | vec3.add(cc::Vec3(2.1f, 1.7f, 0)); |
| 62 | ExpectEq(vec3 == cc::Vec3(6, 3, 0), true); |
| 63 | cc::Vec3::add(cc::Vec3(6, 3, 0), cc::Vec3(2, 1, 0), &vec3); |
| 64 | ExpectEq(vec3 == cc::Vec3(8, 4, 0), true); |
| 65 | // clamp |
| 66 | logLabel = "test the vec3 clamp function"; |
| 67 | vec3.clamp(cc::Vec3(3, 1, 0), cc::Vec3(6, 2, 0)); |
| 68 | ExpectEq(vec3 == cc::Vec3(6, 2, 0), true); |
| 69 | cc::Vec3::clamp(cc::Vec3(6, 2, 0), cc::Vec3(7, 1, 0), cc::Vec3(11, 3, 0), &vec3); |
| 70 | ExpectEq(vec3 == cc::Vec3(7, 2, 0), true); |
| 71 | // cross |
| 72 | logLabel = "test the vec3 cross function"; |
| 73 | vec3.set(1, 2, 3); |
| 74 | vec3.cross(cc::Vec3(3, 2, 1)); |
| 75 | ExpectEq(vec3 == cc::Vec3(-4, 8, -4), true); |
| 76 | vec3.set(0, 0, 0); |
| 77 | cc::Vec3::cross(cc::Vec3(1, 2, 3), cc::Vec3(3, 2, 1), &vec3); |
| 78 | ExpectEq(vec3 == cc::Vec3(-4, 8, -4), true); |
| 79 | // multiply |
| 80 | logLabel = "test the vec3 multiply function"; |
| 81 | vec3.set(1, 3, 2); |
| 82 | vec3.multiply(cc::Vec3(4, 7, 9)); |
| 83 | ExpectEq(vec3 == cc::Vec3(4, 21, 18), true); |
| 84 | cc::Vec3::multiply(cc::Vec3(1, 3, 2), cc::Vec3(4, 7, 9), &vec3); |
| 85 | ExpectEq(vec3 == cc::Vec3(4, 21, 18), true); |
| 86 | // transformMat3 |
| 87 | logLabel = "test the vec3 transformMat3 function"; |
| 88 | cc::Mat3 matScale; |
| 89 | matScale.m[0] = 2; |
nothing calls this directly
no test coverage detected