diff options
Diffstat (limited to 'source/tests/bl_mesh_validate.py')
-rw-r--r-- | source/tests/bl_mesh_validate.py | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/source/tests/bl_mesh_validate.py b/source/tests/bl_mesh_validate.py deleted file mode 100644 index ac5be7d08d7..00000000000 --- a/source/tests/bl_mesh_validate.py +++ /dev/null @@ -1,161 +0,0 @@ -# ##### BEGIN GPL LICENSE BLOCK ##### -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# -# ##### END GPL LICENSE BLOCK ##### - -# <pep8 compliant> - -# Simple script to check mash validate code. -# XXX Should be extended with many more "wrong cases"! - -import bpy - -import sys -import random - - -MESHES = { - "test1": ( - ( - ( # Verts - (-1.0, -1.0, 0.0), - (-1.0, 0.0, 0.0), - (-1.0, 1.0, 0.0), - (0.0, -1.0, 0.0), - (0.0, 0.0, 0.0), - (0.0, 1.0, 0.0), - (1.0, -1.0, 0.0), - (1.0, 0.0, 0.0), - (1.5, 0.5, 0.0), - (1.0, 1.0, 0.0), - ), - ( # Edges - ), - ( # Loops - 0, 1, 4, 3, - 3, 4, 6, - 1, 2, 5, 4, - 3, 4, 6, - 4, 7, 6, - 4, 5, 9, 4, 8, 7, - ), - ( # Polygons - (0, 4), - (4, 3), - (7, 4), - (11, 3), - (14, 3), - (16, 6), - ), - ), - ), -} - - -BUILTINS = ( - "primitive_plane_add", - "primitive_cube_add", - "primitive_circle_add", - "primitive_uv_sphere_add", - "primitive_ico_sphere_add", - "primitive_cylinder_add", - "primitive_cone_add", - "primitive_grid_add", - "primitive_monkey_add", - "primitive_torus_add", - ) -BUILTINS_NBR = 4 -BUILTINS_NBRCHANGES = 5 - - -def test_meshes(): - for m in MESHES["test1"]: - bpy.ops.object.add(type="MESH") - data = bpy.context.active_object.data - - # Vertices. - data.vertices.add(len(m[0])) - for idx, v in enumerate(m[0]): - data.vertices[idx].co = v - # Edges. - data.edges.add(len(m[1])) - for idx, e in enumerate(m[1]): - data.edges[idx].vertices = e - # Loops. - data.loops.add(len(m[2])) - for idx, v in enumerate(m[2]): - data.loops[idx].vertex_index = v - # Polygons. - data.polygons.add(len(m[3])) - for idx, l in enumerate(m[3]): - data.polygons[idx].loop_start = l[0] - data.polygons[idx].loop_total = l[1] - - while data.validate(verbose=True): - pass - - -def test_builtins(): - for x, func in enumerate(BUILTINS): - for y in range(BUILTINS_NBR): - getattr(bpy.ops.mesh, func)(location=(x * 2.5, y * 2.5, 0)) - data = bpy.context.active_object.data - try: - for n in range(BUILTINS_NBRCHANGES): - rnd = random.randint(1, 3) - if rnd == 1: - # Make fun with some edge. - e = random.randrange(0, len(data.edges)) - data.edges[e].vertices[random.randint(0, 1)] = \ - random.randrange(0, len(data.vertices) * 2) - elif rnd == 2: - # Make fun with some loop. - l = random.randrange(0, len(data.loops)) - if random.randint(0, 1): - data.loops[l].vertex_index = \ - random.randrange(0, len(data.vertices) * 2) - else: - data.loops[l].edge_index = \ - random.randrange(0, len(data.edges) * 2) - elif rnd == 3: - # Make fun with some polygons. - p = random.randrange(0, len(data.polygons)) - if random.randint(0, 1): - data.polygons[p].loop_start = \ - random.randrange(0, len(data.loops)) - else: - data.polygons[p].loop_total = \ - random.randrange(0, 10) - except: - pass - - while data.validate(verbose=True): - pass - - -def main(): - test_builtins() - test_meshes() - - -if __name__ == "__main__": - # So a python error exits(1) - try: - main() - except: - import traceback - traceback.print_exc() - sys.exit(1) |