k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh1", "Input Mesh 1", "") k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh2", "Input Mesh 2", "") transform_selection = k3d.geometry.selection.create(0) k3d.geometry.point_selection.create(transform_selection, 1) transform.mesh_selection = transform_selection transform.y = 3 selection = k3d.geometry.selection.create(0) point_selection = k3d.geometry.point_selection.create(selection) k3d.geometry.point_selection.append(point_selection, 0, 8, 0) k3d.geometry.point_selection.append(point_selection, 0, 1, 1) k3d.geometry.point_selection.append(point_selection, 4, 5, 1) modifier.mesh_selection = selection k3d.property.connect(document, curve2.get_property("output_mesh"), transform.get_property("input_mesh")) k3d.property.connect(document, curve1.get_property("output_mesh"), merge_mesh.get_property("input_mesh1")) k3d.property.connect(document, transform.get_property("output_mesh"), merge_mesh.get_property("input_mesh2")) k3d.property.connect(document, merge_mesh.get_property("output_mesh"), modifier.get_property("input_mesh")) testing.require_valid_mesh(document, modifier.get_property("output_mesh")) testing.require_similar_mesh(document, modifier.get_property("output_mesh"), "mesh.modifier.NurbsConnectCurves", 1)
#python import testing setup = testing.setup_mesh_reader_test("3DSMeshReader", "mesh.source.3DSMeshReader.test.3ds") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.3DSMeshReader.test", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyGrid", "ScalePoints") setup.source.rows = 1 setup.source.columns = 1 mesh_selection = k3d.geometry.selection.create(0.0) setup.modifier.mesh_selection = mesh_selection setup.modifier.x = 2 testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.selection.none", 1)
#python import k3d import testing script_path = k3d.share_path() / k3d.filesystem.generic_path("scripts/MeshSourceScript/bezier_triangle_patches.py") script_file = file(str(script_path), "r") setup = testing.setup_mesh_source_test("MeshSourceScript") setup.source.script = script_file.read() testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.MeshSourceScript.bezier_triangle_patches", 2)
#python import k3d import testing script_path = k3d.share_path() / k3d.filesystem.generic_path("scripts/MeshSourceScript/simple_polyhedron.py") script_file = file(str(script_path), "r") setup = testing.setup_mesh_source_test("MeshSourceScript") setup.source.script = script_file.read() testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.MeshSourceScript.simple_polyhedron", 2)
curve1 = k3d.plugin.create("NurbsCircle", document) curve2 = k3d.plugin.create("NurbsCircle", document) transform = k3d.plugin.create("TranslatePoints", document) merge_mesh = k3d.plugin.create("MergeMesh", document) modifier = k3d.plugin.create("NurbsMergeCurveKnotVectors", document) curve2.thetamax = math.radians(180) curve2.u_segments = 6 k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh1", "Input Mesh 1", "") k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh2", "Input Mesh 2", "") transform_selection = k3d.geometry.selection.create(0) k3d.geometry.point_selection.create(transform_selection, 1) transform.mesh_selection = transform_selection transform.z = 3 selection = k3d.geometry.selection.create(0) curve_selection = k3d.geometry.primitive_selection.create(selection, k3d.selection.type.CURVE) k3d.geometry.primitive_selection.append(curve_selection, 0, 10000, 1) modifier.mesh_selection = selection k3d.property.connect(document, curve2.get_property("output_mesh"), transform.get_property("input_mesh")) k3d.property.connect(document, curve1.get_property("output_mesh"), merge_mesh.get_property("input_mesh1")) k3d.property.connect(document, transform.get_property("output_mesh"), merge_mesh.get_property("input_mesh2")) k3d.property.connect(document, merge_mesh.get_property("output_mesh"), modifier.get_property("input_mesh")) testing.require_valid_mesh(document, modifier.get_property("output_mesh")) testing.require_similar_mesh(document, modifier.get_property("output_mesh"), "mesh.modifier.NurbsMergeCurveKnotVectors", 2, ["Darwin-i386"])
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyGrid", "SetColor") setup.modifier.mesh_selection = k3d.geometry.selection.create(1) testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.SetColor", 1)
#python import k3d import testing script_path = k3d.share_path() / k3d.filesystem.generic_path( "scripts/MeshSourceScript/hyperboloids.py") script_file = file(str(script_path), "r") setup = testing.setup_mesh_source_test("MeshSourceScript") setup.source.script = script_file.read() testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.MeshSourceScript.hyperboloids", 2)
#python import testing setup = testing.setup_mesh_source_test("UniformPolyhedron") setup.source.type = "small_stellated_dodecahedron" setup.source.size = 5 testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "source.UniformPolyhedron", 1)
document = k3d.new_document() small_cylinder = k3d.plugin.create("PolyCylinder", document) small_cylinder.radius = 2.0 small_cylinder.zmax = 7.5 small_cylinder.zmin = -7.5 small_cylinder.u_segments = 8 big_cylinder = k3d.plugin.create("PolyCylinder", document) big_cylinder.u_segments = 8 torus = k3d.plugin.create("PolyTorus", document) torus.u_segments = 8 torus.v_segments = 4 first_boolean = k3d.plugin.create("CARVEBoolean", document) first_boolean.type = "difference" k3d.property.create(first_boolean, "k3d::mesh*", "input_1", "Input 1", "") k3d.property.create(first_boolean, "k3d::mesh*", "input_2", "Input 2", "") second_boolean = k3d.plugin.create("CARVEBoolean", document) second_boolean.type = "reverse_difference" k3d.property.create(second_boolean, "k3d::mesh*", "input_1", "Input 1", "") k3d.property.create(second_boolean, "k3d::mesh*", "input_2", "Input 2", "") k3d.property.connect(document, big_cylinder.get_property("output_mesh"), first_boolean.get_property("input_1")) k3d.property.connect(document, small_cylinder.get_property("output_mesh"), first_boolean.get_property("input_2")) k3d.property.connect(document, torus.get_property("output_mesh"), second_boolean.get_property("input_1")) k3d.property.connect(document, first_boolean.get_property("output_mesh"), second_boolean.get_property("input_2")) testing.require_valid_mesh(document, second_boolean.get_property("output_mesh")) testing.require_similar_mesh(document, second_boolean.get_property("output_mesh"), "mesh.modifier.CARVEBoolean.cylinders", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyGrid", "CatmullClark") testing.add_point_attributes_test(setup, True, False, False) setup.source.u_segments = 4 setup.source.v_segments = 2 setup.source.bottom = False setup.modifier.mesh_selection = k3d.geometry.selection.create(1) testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) #testing.require_valid_point_attributes(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.CatmullClark", 2)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("NurbsCircle","NurbsEditCurveKnotVector") selection = k3d.geometry.selection.create(0) curve_selection = k3d.geometry.primitive_selection.create(selection, k3d.selection.type.CURVE) k3d.geometry.primitive_selection.append(curve_selection, 0, 10000, 1) setup.modifier.mesh_selection = selection setup.modifier.knot_vector = [0, 0, 0, 0.1, 0.2, 0.25, 0.3, 0.3, 0.8, 0.8, 1, 1, 1] testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.NurbsEditKnotVector", 1, ["Darwin-i386"])
#python import k3d import testing setup = testing.setup_mesh_modifier_test2("PolyTorus", "TriangulateFaces", "PGPRemesh") setup.modifier1.mesh_selection = k3d.select_all() setup.modifier2.use_smooth = False setup.modifier2.steps = 0 setup.modifier2.omega = 5 setup.modifier2.div = 17 setup.modifier2.triangulate = True testing.require_valid_mesh(setup.document, setup.modifier2.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier2.get_property("output_mesh"), "mesh.modifier.PGPRemesh.high", 1)
#python import testing setup = testing.setup_mesh_source_test("PolyDisk") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.PolyDisk", 1, ["Darwin-i386"])
#python import testing setup = testing.setup_mesh_source_test("PolyCushion") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.PolyCushion", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyCylinder", "TaperPoints") selection = k3d.geometry.selection.create(0) selection.points = k3d.geometry.point_selection.create(selection, 1) setup.modifier.mesh_selection = selection setup.modifier.taper_factor = 1 testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.TaperPoints", 4, ["Darwin-i386"])
#python import k3d import testing document = k3d.new_document() small_cylinder = k3d.plugin.create("PLYMeshReader", document) small_cylinder.file = k3d.filesystem.generic_path(testing.source_path() + "/meshes/mesh.modifier.CARVEBoolean.input.b.ply") small_cylinder.center = False small_cylinder.scale_to_size = False big_cylinder = k3d.plugin.create("PLYMeshReader", document) big_cylinder.file = k3d.filesystem.generic_path(testing.source_path() + "/meshes/mesh.modifier.CARVEBoolean.input.a.ply") big_cylinder.center = False big_cylinder.scale_to_size = False carve_boolean = k3d.plugin.create("CARVEBoolean", document) carve_boolean.type = "difference" k3d.property.create(carve_boolean, "k3d::mesh*", "input_1", "Input 1", "") k3d.property.create(carve_boolean, "k3d::mesh*", "input_2", "Input 2", "") k3d.property.connect(document, big_cylinder.get_property("output_mesh"), carve_boolean.get_property("input_1")) k3d.property.connect(document, small_cylinder.get_property("output_mesh"), carve_boolean.get_property("input_2")) testing.require_valid_mesh(document, carve_boolean.get_property("output_mesh")) testing.require_similar_mesh(document, carve_boolean.get_property("output_mesh"), "mesh.modifier.CARVEBoolean.ply", 10)
#python import k3d import testing document = k3d.new_document() source1 = k3d.plugin.create("PolyCube", document) source2 = k3d.plugin.create("PolyCube", document) merge = k3d.plugin.create("MergeMesh", document) k3d.property.create(merge, "k3d::mesh*", "input_mesh1", "Input Mesh 1", "") k3d.property.create(merge, "k3d::mesh*", "input_mesh2", "Input Mesh 2", "") k3d.property.connect(document, source1.get_property("output_mesh"), merge.get_property("input_mesh1")) k3d.property.connect(document, source1.get_property("output_mesh"), merge.get_property("input_mesh2")) weld = k3d.plugin.create("WeldPoints", document) weld.distance = 0.5 k3d.property.connect(document, merge.get_property("output_mesh"), weld.get_property("input_mesh")) testing.require_valid_mesh(document, weld.get_property("output_mesh")) testing.require_similar_mesh(document, weld.get_property("output_mesh"), "mesh.modifier.WeldPoints", 1)
#python import testing setup = testing.setup_mesh_source_test("NurbsCylinder") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.NurbsCylinder", 2, ["Darwin-i386"])
#python import k3d import testing setup = testing.setup_mesh_modifier_test2("PolyCube", "MeshArray2D", "MergePolyhedra") setup.modifier1.layout = k3d.plugin.create("TranslateArray2D", setup.document) testing.require_valid_mesh(setup.document, setup.modifier2.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier2.get_property("output_mesh"), "mesh.modifier.MergePolyhedra", 1)
#python import k3d import testing setup = testing.setup_mesh_writer_test(["PolyCube", "TriangulateFaces", "STLMeshWriter"], "STLMeshReader", "mesh.sink.STLMeshWriter.magics.stl") setup.modifier.mesh_selection = k3d.geometry.selection.create(1) setup.writer.file_type = "magics" testing.require_valid_mesh(setup.document, setup.reader.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.reader.get_property("output_mesh"), "mesh.sink.STLMeshWriter.magics", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyGrid", "GrowSelection") selection = k3d.geometry.selection.create(0) point_selection = k3d.geometry.point_selection.create(selection) k3d.geometry.point_selection.append(point_selection, 15, 16, 1) k3d.geometry.point_selection.append(point_selection, 18, 19, 1) edge_selection = k3d.geometry.primitive_selection.create(selection, k3d.selection.type.EDGE) k3d.geometry.primitive_selection.append(edge_selection, 17, 18, 1) k3d.geometry.primitive_selection.append(edge_selection, 55, 56, 1) face_selection = k3d.geometry.primitive_selection.create(selection, k3d.selection.type.FACE) k3d.geometry.primitive_selection.append(face_selection, 12, 13, 1) setup.modifier.mesh_selection = selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.selection.GrowSelection", 2)
#python import testing setup = testing.setup_mesh_source_test("SurfacePlot") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.SurfacePlot", 8192)
#python import k3d import testing document = k3d.new_document() grid = k3d.plugin.create("PolyGrid", document) scale = k3d.plugin.create("ScalePoints", document) select = k3d.plugin.create("SelectDegenerateFaces", document) selection = k3d.geometry.selection.create(0) point_selection = k3d.geometry.point_selection.create(selection) k3d.geometry.point_selection.append(point_selection, 0, 10000, 0.) k3d.geometry.point_selection.append(point_selection, 0, 12, 1.) scale.mesh_selection = selection scale.x = 0. k3d.property.connect(document, grid.get_property("output_mesh"), scale.get_property("input_mesh")) k3d.property.connect(document, scale.get_property("output_mesh"), select.get_property("input_mesh")) testing.require_valid_mesh(document, select.get_property("output_mesh")) testing.require_similar_mesh(document, select.get_property("output_mesh"), "mesh.selection.SelectDegenerateFaces", 1)
#python import k3d import testing import benchmarking document = k3d.new_document() sphere = k3d.plugin.create("PolySphere", document) torus = k3d.plugin.create("PolyTorus", document) cgal_boolean = k3d.plugin.create("CGALBoolean", document) k3d.property.create(cgal_boolean, "k3d::mesh*", "input_1", "Input 1", "") k3d.property.create(cgal_boolean, "k3d::mesh*", "input_2", "Input 2", "") k3d.property.connect(document, sphere.get_property("output_mesh"), cgal_boolean.get_property("input_1")) k3d.property.connect(document, torus.get_property("output_mesh"), cgal_boolean.get_property("input_2")) profiler = k3d.plugin.create("PipelineProfiler", document) testing.require_valid_mesh(document, cgal_boolean.get_property("output_mesh")) testing.require_similar_mesh(document, cgal_boolean.get_property("output_mesh"), "mesh.modifier.CGALBoolean.benchmark", 1) benchmarking.print_profiler_records(profiler.records) print """<DartMeasurement name="Total Boolean Time" type="numeric/float">""" + str( benchmarking.total_profiler_time( profiler.records)) + """</DartMeasurement>"""
#python import testing setup = testing.setup_mesh_source_test("CUDAPolyGrid") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.PolyGrid", 1)
#python import testing setup = testing.setup_mesh_source_test("BlobbySegment") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.BlobbySegment", 2)
#python import k3d import testing document = k3d.new_document() source = k3d.plugin.create("PolyTorus", document) triangles = k3d.plugin.create("TriangulateFaces", document) triangles.mesh_selection = k3d.select_all() k3d.property.connect(document, source.get_property("output_mesh"), triangles.get_property("input_mesh")) modifier = k3d.plugin.create("PGPRemesh", document) modifier.use_smooth = False modifier.steps = 0 modifier.omega = 1 modifier.div = 2 modifier.triangulate = True k3d.property.connect(document, triangles.get_property("output_mesh"), modifier.get_property("input_mesh")) #print "source output: " + repr(source.output_mesh) #print "triangles output: " + repr(triangles.output_mesh) #print "modifier output: " + repr(modifier.output_mesh) testing.require_valid_mesh(document, modifier.get_property("output_mesh")) testing.require_similar_mesh(document, modifier.get_property("output_mesh"), "mesh.modifier.PGPRemesh", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyCube", "BevelFaces") selection = k3d.geometry.selection.create(0) selection.faces = [(4, 5, 1)] setup.modifier.mesh_selection = selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.BevelFaces", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test2("PolyCube", "TranslatePoints", "CenterPoints") selection = k3d.geometry.selection.create(0) selection.points = k3d.geometry.point_selection.create(selection, 1) setup.modifier1.mesh_selection = selection setup.modifier1.x = 1.0 setup.modifier1.y = 2.0 setup.modifier1.z = 3.0 setup.modifier2.mesh_selection = selection setup.modifier2.center_x = True setup.modifier2.center_y = True setup.modifier2.center_z = True testing.require_valid_mesh(setup.document, setup.modifier2.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier2.get_property("output_mesh"), "mesh.modifier.CenterPoints", 1)
#python import testing setup = testing.setup_mesh_source_test("QuadricSphere") testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.QuadricSphere", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolySphere", "DeformationExpression") selection = k3d.geometry.selection.create(0) selection.points = k3d.geometry.point_selection.create(selection, 1) setup.modifier.mesh_selection = selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.DeformationExpression", 32, ["Darwin-i386"])
polyhedron = k3d.polyhedron.create(mesh) polyhedron.shell_types().append(k3d.polyhedron.shell_type.POLYGONS) polyhedron.face_shells().append(0) polyhedron.face_first_loops().append(0) polyhedron.face_loop_counts().append(1) polyhedron.face_materials().append(None) polyhedron.face_selections().append(0.0) polyhedron.loop_first_edges().append(0) polyhedron.clockwise_edges().assign([1, 2, 3, 0]) polyhedron.edge_selections().assign([0, 0, 0, 0]) polyhedron.vertex_points().assign([0, 1, 2, 3]) polyhedron.vertex_selections().assign([0, 0, 0, 0]) Cs = polyhedron.vertex_attributes().create("Cs", "k3d::color") Cs.assign([ k3d.color(1, 0, 0), k3d.color(0, 1, 0), k3d.color(0, 0, 1), k3d.color(1, 1, 1) ]) mesh_selection = k3d.geometry.selection.create(1) setup.modifier.mesh_selection = mesh_selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh( setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.TriangulateFaces.self_intersection", 0)
k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh1", "Input Mesh 1", "") k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh2", "Input Mesh 2", "") rotate.mesh_selection = k3d.geometry.selection.create(1) translate.mesh_selection = k3d.geometry.selection.create(1) rotate.x = 0.5 * pi translate.x = 5 modifier.mesh_selection = k3d.geometry.selection.create(1) modifier.align_normal = False path.thetamax = 0.6 * pi to_sweep.radius = 1. k3d.property.connect(document, to_sweep.get_property("output_mesh"), rotate.get_property("input_mesh")) k3d.property.connect(document, rotate.get_property("output_mesh"), translate.get_property("input_mesh")) k3d.property.connect(document, path.get_property("output_mesh"), merge_mesh.get_property("input_mesh1")) k3d.property.connect(document, translate.get_property("output_mesh"), merge_mesh.get_property("input_mesh2")) k3d.property.connect(document, merge_mesh.get_property("output_mesh"), modifier.get_property("input_mesh")) testing.require_valid_mesh(document, modifier.get_property("output_mesh")) testing.require_similar_mesh(document, modifier.get_property("output_mesh"), "mesh.modifier.NurbsSweepSurface", 20)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyCube", "ConnectVertices") selection = k3d.selection.set() point_selection = k3d.geometry.point_selection.create(selection) k3d.geometry.point_selection.append(point_selection, 0, 1, 1) k3d.geometry.point_selection.append(point_selection, 2, 3, 1) setup.modifier.mesh_selection = selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.ConnectVertices", 1)
k3d.property.create(modifier, "k3d::mesh*", "input_mesh3", "Input Mesh 3", "") k3d.property.create(modifier, "k3d::mesh*", "input_mesh4", "Input Mesh 4", "") k3d.property.create(modifier, "k3d::mesh*", "input_mesh5", "Input Mesh 5", "") k3d.property.create(modifier, "k3d::mesh*", "input_mesh6", "Input Mesh 6", "") k3d.property.create(modifier, "k3d::mesh*", "input_mesh7", "Input Mesh 7", "") k3d.property.create(modifier, "k3d::mesh*", "input_mesh8", "Input Mesh 8", "") k3d.property.create(modifier, "k3d::mesh*", "input_mesh9", "Input Mesh 9", "") k3d.property.connect(document, source1.get_property("output_mesh"), modifier.get_property("input_mesh1")) k3d.property.connect(document, source2.get_property("output_mesh"), modifier.get_property("input_mesh2")) k3d.property.connect(document, source3.get_property("output_mesh"), modifier.get_property("input_mesh3")) k3d.property.connect(document, source4.get_property("output_mesh"), modifier.get_property("input_mesh4")) k3d.property.connect(document, source5.get_property("output_mesh"), modifier.get_property("input_mesh5")) k3d.property.connect(document, source6.get_property("output_mesh"), modifier.get_property("input_mesh6")) k3d.property.connect(document, source7.get_property("output_mesh"), modifier.get_property("input_mesh7")) k3d.property.connect(document, source8.get_property("output_mesh"), modifier.get_property("input_mesh8")) k3d.property.connect(document, source9.get_property("output_mesh"), modifier.get_property("input_mesh9")) testing.require_valid_mesh(document, modifier.get_property("output_mesh")) testing.require_similar_mesh(document, modifier.get_property("output_mesh"), "mesh.modifier.MergeMesh", 32, ["Darwin-i386"])
#python import testing import k3d setup = testing.setup_mesh_modifier_test("NurbsCircle", "NurbsCurveInsertKnot") setup.modifier.u_value = 0.1 selection = k3d.geometry.selection.create(0) curve_selection = k3d.geometry.primitive_selection.create(selection, k3d.selection.type.CURVE) k3d.geometry.primitive_selection.append(curve_selection, 0, 10000, 1) setup.modifier.mesh_selection = selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.NurbsCurveInsertKnot", 2, ["Darwin-i386"])
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyCube", "PolyToBilinear") testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.PolyToBilinear", 1)
#Create a polycube k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").panel("NGUIToolbarPanel").filler(0).panel(0).filler(0).filler(0).page_tab_list(0).page_tab("Create").filler(0).filler(0).push_button(0).click() # Switch to point selection mode k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").panel("NGUIToolbarPanel").filler("vbox").panel("content").filler("vbox").filler("toolbox").filler("main_toolbar").filler("row1").toggle_button("Select Nodes").click() k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").panel("NGUIToolbarPanel").filler("vbox").panel("content").filler("vbox").filler("toolbox").filler("main_toolbar").filler("row1").toggle_button("Select Points").click() doc = k3d.documents()[0] cube_instance = k3d.node.lookup_one(doc, "PolyCube Instance") # set the selection on the PolyCube instance selection = k3d.geometry.selection.create(0) point_selection = k3d.geometry.point_selection.create(selection) k3d.geometry.point_selection.append(point_selection, 0, 4, 1) cube_instance.mesh_selection = selection # Switch to move tool k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").panel("NGUIToolbarPanel").filler("vbox").panel("content").filler("vbox").filler("toolbox").filler("main_toolbar").filler("row0").toggle_button("selection_tool").click() k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").panel("NGUIToolbarPanel").filler("vbox").panel("content").filler("vbox").filler("toolbox").filler("main_toolbar").filler("row0").toggle_button("move_tool").click() # Activate the move tool properties and change the parameters k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").split_pane("bottom").split_pane("top").split_pane("left").split_pane("bottom").panel("NGUINodePropertiesPanel").filler("vbox").filler("decorations").combo_box("panel_type").menu(0).menu_item("NGUIToolPropertiesPanel").click() k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").split_pane("bottom").split_pane("top").split_pane("left").split_pane("bottom").panel("NGUIToolPropertiesPanel").filler("vbox").panel("content").filler(0).filler("vbox").scroll_pane(0).viewport(0).filler("move_tool").panel("Builtin Properties").panel(0).panel("move_control").panel(2).push_button("up").click() k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").split_pane("bottom").split_pane("top").split_pane("left").split_pane("bottom").panel("NGUIToolPropertiesPanel").filler("vbox").panel("content").filler(0).filler("vbox").scroll_pane(0).viewport(0).filler("move_tool").panel("Builtin Properties").panel(0).panel("move_control").panel(2).push_button("up").click() k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").split_pane("bottom").split_pane("top").split_pane("left").split_pane("bottom").panel("NGUIToolPropertiesPanel").filler("vbox").panel("content").filler(0).filler("vbox").scroll_pane(0).viewport(0).filler("move_tool").panel("Builtin Properties").panel(0).panel("move_control").panel(2).push_button("up").click() k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").split_pane("bottom").split_pane("top").split_pane("left").split_pane("bottom").panel("NGUIToolPropertiesPanel").filler("vbox").panel("content").filler(0).filler("vbox").scroll_pane(0).viewport(0).filler("move_tool").panel("Builtin Properties").panel(0).panel("move_control").panel(2).push_button("up").click() k3d.atk.root().frame("Untitled Document 1").filler("vbox").panel("main").split_pane("main").split_pane("bottom").split_pane("top").split_pane("left").split_pane("bottom").panel("NGUIToolPropertiesPanel").filler("vbox").panel("content").filler(0).filler("vbox").scroll_pane(0).viewport(0).filler("move_tool").panel("Builtin Properties").panel(0).panel("move_control").panel(2).push_button("up").click() tweakpoints = k3d.node.lookup_one(doc, "Move PolyCube Instance components") testing.require_similar_mesh(doc, tweakpoints.get_property("output_mesh"), "ngui.tools.move", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyCube", "TriangulateFaces") mesh_selection = k3d.geometry.selection.create(1) setup.modifier.mesh_selection = mesh_selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.TriangulateFaces.PolyCube", 0)
#python import k3d import testing import benchmarking document = k3d.new_document() sphere = k3d.plugin.create("PolySphere", document) torus = k3d.plugin.create("PolyTorus", document) carve_boolean = k3d.plugin.create("CARVEBoolean", document) k3d.property.create(carve_boolean, "k3d::mesh*", "input_1", "Input 1", "") k3d.property.create(carve_boolean, "k3d::mesh*", "input_2", "Input 2", "") k3d.property.connect(document, sphere.get_property("output_mesh"), carve_boolean.get_property("input_1")) k3d.property.connect(document, torus.get_property("output_mesh"), carve_boolean.get_property("input_2")) profiler = k3d.plugin.create("PipelineProfiler", document) testing.require_valid_mesh(document, carve_boolean.get_property("output_mesh")) testing.require_similar_mesh(document, carve_boolean.get_property("output_mesh"), "mesh.modifier.CARVEBoolean.benchmark", 1) benchmarking.print_profiler_records(profiler.records) print """<DartMeasurement name="Total Boolean Time" type="numeric/float">""" + str(benchmarking.total_profiler_time(profiler.records)) + """</DartMeasurement>"""
# load a mesh that has multiple polyhedra, triangles, quads, n-sided polygons and holes. (i.e. a mesh from hell) setup.source.file = k3d.filesystem.generic_path(testing.source_path() + "/meshes/polyhedron.hole.k3d") setup.source.center = False setup.source.scale_to_size = False # select some faces, distributed along polyhedra selection = k3d.geometry.selection.create(0) face_selection = k3d.geometry.primitive_selection.create( selection, k3d.selection.type.FACE) k3d.geometry.primitive_selection.append(face_selection, 0, 6, 0) k3d.geometry.primitive_selection.append(face_selection, 6, 7, 1) k3d.geometry.primitive_selection.append(face_selection, 7, 8, 0) k3d.geometry.primitive_selection.append(face_selection, 8, 9, 1) k3d.geometry.primitive_selection.append(face_selection, 9, 13, 0) k3d.geometry.primitive_selection.append(face_selection, 13, 15, 1) k3d.geometry.primitive_selection.append(face_selection, 15, 16, 0) k3d.geometry.primitive_selection.append(face_selection, 16, 17, 1) k3d.geometry.primitive_selection.append(face_selection, 17, 19, 0) k3d.geometry.primitive_selection.append(face_selection, 19, 20, 1) k3d.geometry.primitive_selection.append(face_selection, 20, 23, 0) setup.modifier.mesh_selection = selection setup.modifier.subdivision_type = "midpoints" testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.SubdivideFaces.Midpoints", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("NurbsCurve","NurbsSplitCurve") testing.add_point_attributes_test(setup, True, True, True) selection = k3d.geometry.selection.create(0) curve_selection = k3d.geometry.primitive_selection.create(selection, k3d.selection.type.CURVE) k3d.geometry.primitive_selection.append(curve_selection, 0, 10000, 1) setup.modifier.mesh_selection = selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) #testing.require_valid_point_attributes(setup.document, setup.modifier.output_mesh) #testing.require_valid_vertex_attributes(setup.document, setup.modifier.output_mesh) #testing.require_valid_parameter_attributes(setup.document, setup.modifier.output_mesh) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.NurbsSplitCurve", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyCube", "MeshArray2D") setup.modifier.layout = k3d.plugin.create("TranslateArray2D", setup.document) testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.MeshArray2D", 1)
import testing import k3d document = k3d.new_document() patch = k3d.plugin.create("NurbsGrid", document) curve = k3d.plugin.create("NurbsCircle", document) merge_mesh = k3d.plugin.create("MergeMesh", document) modifier = k3d.plugin.create("NurbsAddTrimCurve", document) extract_trim = k3d.plugin.create("NurbsExtractTrimCurves", document) k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh1", "Input Mesh 1", "") k3d.property.create(merge_mesh, "k3d::mesh*", "input_mesh2", "Input Mesh 2", "") modifier.mesh_selection = k3d.geometry.selection.create(1) modifier.offset_u = 0.5 modifier.offset_v = 0.5 modifier.delete_curve = True extract_trim.mesh_selection = k3d.geometry.selection.create(1) k3d.property.connect(document, patch.get_property("output_mesh"), merge_mesh.get_property("input_mesh1")) k3d.property.connect(document, curve.get_property("output_mesh"), merge_mesh.get_property("input_mesh2")) k3d.property.connect(document, merge_mesh.get_property("output_mesh"), modifier.get_property("input_mesh")) k3d.property.connect(document, modifier.get_property("output_mesh"), extract_trim.get_property("input_mesh")) testing.require_valid_mesh(document, extract_trim.get_property("output_mesh")) testing.require_similar_mesh(document, extract_trim.get_property("output_mesh"), "mesh.modifier.NurbsExtractTrimCurves", 10)
#python import k3d import testing setup = testing.setup_mesh_writer_test( ["PolyCube", "TriangulateFaces", "STLMeshWriter"], "STLMeshReader", "mesh.sink.STLMeshWriter.stl") setup.modifier.mesh_selection = k3d.geometry.selection.create(1) testing.require_valid_mesh(setup.document, setup.reader.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.reader.get_property("output_mesh"), "mesh.sink.STLMeshWriter", 1)
#python import k3d import testing script_path = k3d.share_path() / k3d.filesystem.generic_path("scripts/MeshSourceScript/paraboloids.py") script_file = file(str(script_path), "r") setup = testing.setup_mesh_source_test("MeshSourceScript") setup.source.script = script_file.read() testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.MeshSourceScript.paraboloids", 2)
# python import testing import k3d setup = testing.setup_mesh_modifier_test("NurbsDisk", "NurbsExtrudePatch") setup.modifier.mesh_selection = k3d.geometry.selection.create(1) testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh( setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.NurbsExtrudePatch", 2, ["Darwin-i386"] )
#python import k3d import testing document = k3d.new_document() source1 = k3d.plugin.create("BlobbyEllipsoid", document) source1.color = k3d.color(1, 0, 0) modifier = k3d.plugin.create("BlobbyNegate", document) k3d.property.connect(document, source1.get_property("output_mesh"), modifier.get_property("input_mesh")) testing.require_valid_mesh(document, modifier.get_property("output_mesh")) testing.require_similar_mesh(document, modifier.get_property("output_mesh"), "mesh.modifier.BlobbyNegate", 5)
#python import testing setup = testing.setup_mesh_source_test("Newell") setup.source.type = "teaspoon" testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.Newell.teaspoon", 1)
#python import k3d import testing setup = testing.setup_mesh_modifier_test("PolyGrid", "CollapseFaces") selection = k3d.selection.set() primitive_selection = k3d.geometry.primitive_selection.create(selection, k3d.selection.type.FACE) k3d.geometry.primitive_selection.append(primitive_selection, 0, 1, 1) k3d.geometry.primitive_selection.append(primitive_selection, 13, 14, 1) k3d.geometry.primitive_selection.append(primitive_selection, 17, 18, 1) k3d.geometry.primitive_selection.append(primitive_selection, 19, 20, 1) k3d.geometry.primitive_selection.append(primitive_selection, 23, 24, 1) setup.modifier.mesh_selection = selection testing.require_valid_mesh(setup.document, setup.modifier.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.modifier.get_property("output_mesh"), "mesh.modifier.CollapseFaces", 2)
#python import testing setup = testing.setup_mesh_source_test("Newell") setup.source.type = "teapot" testing.require_valid_mesh(setup.document, setup.source.get_property("output_mesh")) testing.require_similar_mesh(setup.document, setup.source.get_property("output_mesh"), "mesh.source.Newell.teapot", 1)