def test_units_1d(): data = numpy.zeros(1, dtype=Mesh.dtype) data['vectors'][0] = numpy.array([[0, 0, 0], [1, 0, 0], [2, 0, 0]]) mesh = Mesh(data, remove_empty_areas=False) mesh.update_units() assert mesh.areas == 0 utils.array_equals(mesh.normals, [0, 0, 0]) utils.array_equals(mesh.units, [0, 0, 0]) utils.array_equals(mesh.get_unit_normals(), [0, 0, 0])
def test_units_3d(): data = numpy.zeros(1, dtype=Mesh.dtype) data['vectors'][0] = numpy.array([[0, 0, 0], [1, 0, 0], [0, 1, 1.]]) mesh = Mesh(data, remove_empty_areas=False) mesh.update_units() assert (mesh.areas - 2**.5) < 0.0001 assert numpy.allclose(mesh.normals, [0.0, -1.0, 1.0]) assert numpy.allclose(mesh.units[0], [0.0, -0.70710677, 0.70710677]) assert numpy.allclose(numpy.linalg.norm(mesh.units, axis=-1), 1) assert numpy.allclose(mesh.get_unit_normals(), [0.0, -0.70710677, 0.70710677])
def test_units_2d(): data = numpy.zeros(2, dtype=Mesh.dtype) data['vectors'][0] = numpy.array([[0, 0, 0], [1, 0, 0], [0, 1, 0]]) data['vectors'][1] = numpy.array([[1, 0, 0], [0, 1, 0], [1, 1, 0]]) mesh = Mesh(data, remove_empty_areas=False) mesh.update_units() assert numpy.allclose(mesh.areas, [0.5, 0.5]) assert numpy.allclose(mesh.normals, [[0.0, 0.0, 1.0], [0.0, 0.0, -1.0]]) assert numpy.allclose(mesh.units, [[0, 0, 1], [0, 0, -1]]) assert numpy.allclose(mesh.get_unit_normals(), [[0.0, 0.0, 1.0], [0.0, 0.0, -1.0]])