home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / share / k3d / scripts / create_square.py < prev    next >
Text File  |  2008-07-21  |  2KB  |  75 lines

  1. #python
  2.  
  3. import k3d
  4.  
  5. doc = Document
  6. doc.start_change_set()
  7. try:
  8.     frozen_mesh = doc.new_node("FrozenMesh")
  9.     frozen_mesh.name = "Square"
  10.  
  11.     mesh = k3d.dynamic_cast(frozen_mesh, "imesh_storage").reset_mesh()
  12.  
  13.     points = mesh.create_points()
  14.     point_selection = mesh.create_point_selection()
  15.     polyhedra = mesh.create_polyhedra()
  16.     first_faces = polyhedra.create_first_faces()
  17.     face_counts = polyhedra.create_face_counts()
  18.     types = polyhedra.create_types()
  19.     face_first_loops = polyhedra.create_face_first_loops()
  20.     face_loop_counts = polyhedra.create_face_loop_counts()
  21.     face_materials = polyhedra.create_face_materials()
  22.     face_selection = polyhedra.create_face_selection()
  23.     loop_first_edges = polyhedra.create_loop_first_edges()
  24.     edge_points = polyhedra.create_edge_points()
  25.     clockwise_edges = polyhedra.create_clockwise_edges()
  26.     edge_selection = polyhedra.create_edge_selection()
  27.     Cs = polyhedra.writable_face_varying_data().create_array("Cs", "k3d::color")
  28.  
  29.     positions = [(-5, 0, 5), (5, 0, 5), (5, 0, -5), (-5, 0, -5)]
  30.     for position in positions:
  31.         points.append(k3d.point3(position[0], position[1], position[2]))
  32.         point_selection.append(0.0)
  33.  
  34.     first_faces.append(len(face_first_loops))
  35.     face_counts.append(1)
  36.     types.append(k3d.polyhedron_type.polygons)
  37.     face_first_loops.append(len(loop_first_edges))
  38.     face_loop_counts.append(1)
  39.     face_materials.append(None)
  40.     face_selection.append(0.0)
  41.     loop_first_edges.append(len(edge_points))
  42.  
  43.     edge_points.append(0)
  44.     edge_points.append(1)
  45.     edge_points.append(2)
  46.     edge_points.append(3)
  47.  
  48.     clockwise_edges.append(1)
  49.     clockwise_edges.append(2)
  50.     clockwise_edges.append(3)
  51.     clockwise_edges.append(0)
  52.  
  53.     edge_selection.append(0.0)
  54.     edge_selection.append(0.0)
  55.     edge_selection.append(0.0)
  56.     edge_selection.append(0.0)
  57.  
  58.     Cs.append(k3d.color(1, 0, 0))
  59.     Cs.append(k3d.color(0, 1, 0))
  60.     Cs.append(k3d.color(0, 0, 1))
  61.     Cs.append(k3d.color(1, 1, 1))
  62.  
  63.     mesh_instance = doc.new_node("MeshInstance")
  64.     mesh_instance.name = "Square Instance"
  65.     mesh_instance.gl_painter = doc.get_node("GL Default Painter")
  66.     mesh_instance.ri_painter = doc.get_node("RenderMan Default Painter")
  67.     doc.set_dependency(mesh_instance.get_property("input_mesh"), frozen_mesh.get_property("output_mesh"))
  68.  
  69.     doc.finish_change_set("Create Square")
  70.  
  71. except:
  72.     doc.cancel_change_set()
  73.     raise
  74.  
  75.