def testBVH_IO(): data = r"""HIERARCHY ROOT root { OFFSET 0.0 0.0 0.0 CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation JOINT j1 { OFFSET 10.0 0.0 0.0 CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET 0.0 10.0 0.0 } } } MOTION Frames: 5 Frame Time: 0.1 0.0 0.0 0.0 0.0 0.0 0.0 90.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 80.0 0.0 5.0 0.0 2.0 0.0 0.0 0.0 0.0 70.0 0.0 10.0 0.0 3.0 0.0 0.0 0.0 0.0 60.0 0.0 15.0 0.0 4.0 0.0 0.0 0.0 0.0 50.0 0.0 20.0 """ testFile = tempfile.NamedTemporaryFile() exportFile = tempfile.NamedTemporaryFile() with testFile: testFile.write(data) testFile.flush() model = loadBVHFile(testFile.name) saveBVHFile(model, exportFile.name, 0.1) exportedModel = loadBVHFile(exportFile.name) assert len(list(model.points)) == len(list(exportedModel.points)) for orig, exported in zip(model.points, exportedModel.points): assert orig.name == exported.name assert_almost_equal(orig.positionOffset, exported.positionOffset) assert_almost_equal(orig.position(0), exported.position(0)) if orig.isJoint: assertQuaternionAlmostEqual(orig.rotation(0), exported.rotation(0))
def testBVH_IO(): data = r"""HIERARCHY ROOT root { OFFSET 0.0 0.0 0.0 CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation JOINT j1 { OFFSET 10.0 0.0 0.0 CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET 0.0 10.0 0.0 } } } MOTION Frames: 5 Frame Time: 0.1 0.0 0.0 0.0 0.0 0.0 0.0 90.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 80.0 0.0 5.0 0.0 2.0 0.0 0.0 0.0 0.0 70.0 0.0 10.0 0.0 3.0 0.0 0.0 0.0 0.0 60.0 0.0 15.0 0.0 4.0 0.0 0.0 0.0 0.0 50.0 0.0 20.0 """ testFile = tempfile.NamedTemporaryFile(mode='w+t', encoding='utf-8') exportFile = tempfile.NamedTemporaryFile(mode='w+t', encoding='utf-8') with testFile: testFile.write(data) testFile.flush() model = loadBVHFile(testFile.name) saveBVHFile(model, exportFile.name, 0.1) exportedModel = loadBVHFile(exportFile.name) assert len(list(model.points)) == len(list(exportedModel.points)) for orig, exported in zip(model.points, exportedModel.points): assert orig.name == exported.name assert_almost_equal(orig.positionOffset, exported.positionOffset) assert_almost_equal(orig.position(0), exported.position(0)) if orig.isJoint: assertQuaternionAlmostEqual(orig.rotation(0), exported.rotation(0))
def testBVHInput(): data = r"""HIERARCHY ROOT root { OFFSET 0.0 0.0 0.0 CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation JOINT j1 { OFFSET 10.0 0.0 0.0 CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET 0.0 10.0 0.0 } } } MOTION Frames: 1 Frame Time: 0.1 0.0 0.0 0.0 0.0 0.0 0.0 90.0 0.0 0.0 """ testFile = tempfile.NamedTemporaryFile(mode='w+t', encoding='utf-8') with testFile: testFile.write(data) testFile.flush() model = loadBVHFile(testFile.name) assert len(list(model.points)) == 3 assert model.name == 'root' assert len(model.channels) == 6 assert len(model.children) == 1 assert_almost_equal(model.position(0), vector(0, 0, 0)) assertQuaternionAlmostEqual(model.rotation(0), convertCGtoNED(Quaternion(1, 0, 0, 0))) j1 = model.getJoint('j1') assert j1.parent is model assert len(j1.channels) == 3 assert len(j1.children) == 1 assert_almost_equal(j1.positionOffset, vector(10, 0, 0)) assert_almost_equal(j1.position(0), convertCGtoNED(vector(10, 0, 0))) assertQuaternionAlmostEqual( j1.rotation(0), convertCGtoNED(Quaternion.fromEuler((90, 0, 0), order='zxy'))) j1end = model.getPoint('j1_end') assert j1end.parent is j1 assert len(j1end.channels) == 0 assert not j1end.isJoint assert_almost_equal(j1end.positionOffset, vector(0, 10, 0)) assert_almost_equal(j1end.position(0), vector(0, 0, 0))
def testBVHInput(): data = r"""HIERARCHY ROOT root { OFFSET 0.0 0.0 0.0 CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation JOINT j1 { OFFSET 10.0 0.0 0.0 CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET 0.0 10.0 0.0 } } } MOTION Frames: 1 Frame Time: 0.1 0.0 0.0 0.0 0.0 0.0 0.0 90.0 0.0 0.0 """ testFile = tempfile.NamedTemporaryFile() with testFile: testFile.write(data) testFile.flush() model = loadBVHFile(testFile.name) assert len(list(model.points)) == 3 assert model.name == 'root' assert len(model.channels) == 6 assert len(model.children) == 1 assert_almost_equal(model.position(0),vector(0,0,0)) assertQuaternionAlmostEqual(model.rotation(0), convertCGtoNED(Quaternion(1,0,0,0))) j1 = model.getJoint('j1') assert j1.parent is model assert len(j1.channels) == 3 assert len(j1.children) == 1 assert_almost_equal(j1.positionOffset, vector(10,0,0)) assert_almost_equal(j1.position(0), convertCGtoNED(vector(10,0,0))) assertQuaternionAlmostEqual(j1.rotation(0), convertCGtoNED(Quaternion.fromEuler((90, 0, 0), order='zxy'))) j1end = model.getPoint('j1_end') assert j1end.parent is j1 assert len(j1end.channels) == 0 assert not j1end.isJoint assert_almost_equal(j1end.positionOffset, vector(0,10,0)) assert_almost_equal(j1end.position(0), vector(0,0,0))
def runSyntaxTest(data): testFile = tempfile.NamedTemporaryFile(mode='w+t', encoding='utf-8') with testFile: testFile.write(data) testFile.flush() model = loadBVHFile(testFile.name)
def runSyntaxTest(data): testFile = tempfile.NamedTemporaryFile() with testFile: testFile.write(data) testFile.flush() model = loadBVHFile(testFile.name)