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_linear_curve.py < prev    next >
Encoding:
Python Source  |  2008-07-21  |  1.9 KB  |  65 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 = "Linear Curve"
  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.     Cs = mesh.writable_vertex_data().create_array("Cs", "k3d::color")
  16.     width = mesh.writable_vertex_data().create_array("width", "k3d::double_t")
  17.     groups = mesh.create_linear_curve_groups()
  18.     first_curves = groups.create_first_curves()
  19.     curve_counts = groups.create_curve_counts()
  20.     periodic_curves = groups.create_periodic_curves()
  21.     materials = groups.create_materials()
  22.     curve_first_points = groups.create_curve_first_points()
  23.     curve_point_counts = groups.create_curve_point_counts()
  24.     curve_selection = groups.create_curve_selection()
  25.     curve_points = groups.create_curve_points()
  26.  
  27.     positions = [k3d.point3(-5, 0, -5), k3d.point3(5, 0, -5), k3d.point3(-5, 0, 5), k3d.point3(5, 0, 5)]
  28.     colors = [k3d.color(1, 0, 0), k3d.color(0, 1, 0), k3d.color(0, 0, 1), k3d.color(1, 1, 1)]
  29.     widths = [0.1, 0.8, 0.8, 0.1]
  30.  
  31.     for position in positions:
  32.         points.append(position)
  33.         point_selection.append(0.0)
  34.  
  35.     for color in colors:
  36.         Cs.append(color)
  37.  
  38.     for w in widths:
  39.         width.append(w)
  40.  
  41.     first_curves.append(len(curve_first_points))
  42.     curve_counts.append(1)
  43.     periodic_curves.append(False)
  44.     materials.append(None)
  45.     
  46.     curve_first_points.append(len(curve_points))
  47.     curve_point_counts.append(len(positions))
  48.     curve_selection.append(0.0)
  49.  
  50.     for i in range(len(positions)):
  51.         curve_points.append(i)
  52.  
  53.     mesh_instance = doc.new_node("MeshInstance")
  54.     mesh_instance.name = "Linear Curve Instance"
  55.     mesh_instance.gl_painter = doc.get_node("GL Default Painter")
  56.     mesh_instance.ri_painter = doc.get_node("RenderMan Default Painter")
  57.     doc.set_dependency(mesh_instance.get_property("input_mesh"), frozen_mesh.get_property("output_mesh"))
  58.  
  59.     doc.finish_change_set("Create Linear Curve")
  60.  
  61. except:
  62.     doc.cancel_change_set()
  63.     raise
  64.  
  65.