/* ** Negation */ GfMatrix3d operator -(const GfMatrix3d& m) { return GfMatrix3d(-m._mtx[0][0], -m._mtx[0][1], -m._mtx[0][2], -m._mtx[1][0], -m._mtx[1][1], -m._mtx[1][2], -m._mtx[2][0], -m._mtx[2][1], -m._mtx[2][2]); }
int main(int argc, char *argv[]) { // GfVec2f { float vals[] = { 1.0f, 2.0f }; GfVec2f v(vals); TF_AXIOM(v == GfVec2f(1,2)); float const *f = v.GetArray(); TF_AXIOM(f[0] == 1 and f[1] == 2); } // GfVec2i { int vals[] = { 1, 2 }; GfVec2i v(vals); TF_AXIOM(v == GfVec2i(1,2)); int const *i = v.GetArray(); TF_AXIOM(i[0] == 1 and i[1] == 2); v.Set(0, 1); TF_AXIOM(v == GfVec2i(0,1)); } // GfVec3i { int vals[] = { 1, 2, 3 }; GfVec3i v(vals); TF_AXIOM(v == GfVec3i(1,2,3)); int const *i = v.GetArray(); TF_AXIOM(i[0] == 1 and i[1] == 2 and i[2] == 3); v.Set(0, 1, 2); TF_AXIOM(v == GfVec3i(0,1,2)); } // GfVec4i { int vals[] = { 1, 2, 3, 4 }; GfVec4i v(vals); TF_AXIOM(v == GfVec4i(1,2,3,4)); int const *i = v.GetArray(); TF_AXIOM(i[0] == 1 and i[1] == 2 and i[2] == 3 and i[3] == 4); v.Set(0, 1, 2, 3); TF_AXIOM(v == GfVec4i(0,1,2,3)); } // GfVec3f { float vals[] = { 1.0f, 2.0f, 3.0f }; GfVec3f v(vals); TF_AXIOM(v == GfVec3f(1,2,3)); float const *f = v.GetArray(); TF_AXIOM(f[0] == 1 and f[1] == 2 and f[2] == 3); } // GfVec4f { float vals[] = { 1.0f, 2.0f, 3.0f, 4.0f }; GfVec4f v(vals); TF_AXIOM(v == GfVec4f(1,2,3,4)); float const *f = v.GetArray(); TF_AXIOM(f[0] == 1 and f[1] == 2 and f[2] == 3 and f[3] == 4); } // GfSize2, GfSize3 { size_t vals[] = {1, 2, 3}; TF_AXIOM(GfSize2(vals) == GfSize2(1,2)); TF_AXIOM(GfSize3(vals) == GfSize3(1,2,3)); } // GfMatrix2d { double vals[2][2] = {{1, 0}, {0, 1}}; TF_AXIOM(GfMatrix2d(vals) == GfMatrix2d(1)); GfMatrix2d m(vals); double const *d = m.GetArray(); TF_AXIOM(d[0] == 1 and d[1] == 0 and d[2] == 0 and d[3] == 1); } // GfMatrix2f { float vals[2][2] = {{1, 0}, {0, 1}}; TF_AXIOM(GfMatrix2f(vals) == GfMatrix2f(1)); GfMatrix2f m(vals); float const *f = m.GetArray(); TF_AXIOM(f[0] == 1 and f[1] == 0 and f[2] == 0 and f[3] == 1); } // GfMatrix3d { double vals[3][3] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}; TF_AXIOM(GfMatrix3d(vals) == GfMatrix3d(1)); GfMatrix3d m(vals); double const *d = m.GetArray(); TF_AXIOM(d[0] == 1 and d[1] == 0 and d[2] == 0 and d[3] == 0 and d[4] == 1 and d[5] == 0 and d[6] == 0 and d[7] == 0 and d[8] == 1); } // GfMatrix4d { double vals[4][4] = {{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}}; TF_AXIOM(GfMatrix4d(vals) == GfMatrix4d(1)); GfMatrix4d m(vals); double const *d = m.GetArray(); TF_AXIOM(d[ 0] == 1 and d[ 1] == 0 and d[ 2] == 0 and d[ 3] == 0 and d[ 4] == 0 and d[ 5] == 1 and d[ 6] == 0 and d[ 7] == 0 and d[ 8] == 0 and d[ 9] == 0 and d[10] == 1 and d[11] == 0 and d[12] == 0 and d[13] == 0 and d[14] == 0 and d[15] == 1); } // half { float halfPosInf = half::posInf(); TF_AXIOM(not std::isfinite(halfPosInf)); TF_AXIOM(std::isinf(halfPosInf)); float halfNegInf = half::negInf(); TF_AXIOM(not std::isfinite(halfNegInf)); TF_AXIOM(std::isinf(halfNegInf)); float halfqNan = half::qNan(); TF_AXIOM(std::isnan(halfqNan)); float halfsNan = half::sNan(); TF_AXIOM(std::isnan(halfsNan)); } return 0; }