home *** CD-ROM | disk | FTP | other *** search
/ Hackers Magazine 57 / CdHackersMagazineNr57.iso / Software / Multimedia / k3d-setup-0.7.11.0.exe / share / k3d / scripts / MeshSourceScript / nurbs_curves.py < prev    next >
Encoding:
Text File  |  2008-04-22  |  2.0 KB  |  62 lines

  1. #python
  2.  
  3. import k3d
  4. k3d.check_node_environment(locals(), "MeshSourceScript")
  5.  
  6. # Perform required one-time setup to store geometric points in the mesh ...
  7. points = Output.create_points()
  8. point_selection = Output.create_point_selection()
  9.  
  10. # Perform required one-time setup to store NURBS curves in the mesh ...
  11. nurbs_curve_groups = Output.create_nurbs_curve_groups()
  12. first_curves = nurbs_curve_groups.create_first_curves()
  13. curve_counts = nurbs_curve_groups.create_curve_counts()
  14. curve_first_points = nurbs_curve_groups.create_curve_first_points()
  15. curve_point_counts = nurbs_curve_groups.create_curve_point_counts()
  16. curve_orders = nurbs_curve_groups.create_curve_orders()
  17. curve_first_knots = nurbs_curve_groups.create_curve_first_knots()
  18. curve_materials = nurbs_curve_groups.create_materials()
  19. curve_selection = nurbs_curve_groups.create_curve_selection()
  20. curve_points = nurbs_curve_groups.create_curve_points()
  21. curve_point_weights = nurbs_curve_groups.create_curve_point_weights()
  22. curve_knots = nurbs_curve_groups.create_curve_knots()
  23.  
  24. # Create two curve groups ...
  25. for i in range(2):
  26.     first_curves.append(len(curve_first_points))
  27.     curve_counts.append(3)
  28.     curve_materials.append(None)
  29.  
  30.     # Create three curves in each group ...
  31.     for j in range(3):
  32.         curve_first_points.append(len(curve_points))
  33.         curve_point_counts.append(4)
  34.         curve_orders.append(3)
  35.         curve_first_knots.append(len(curve_knots))
  36.         curve_selection.append(0)
  37.  
  38.         curve_points.append(len(points) + 0)
  39.         curve_points.append(len(points) + 1)
  40.         curve_points.append(len(points) + 2)
  41.         curve_points.append(len(points) + 3)
  42.         
  43.         curve_point_weights.append(1)
  44.         curve_point_weights.append(0.5)
  45.         curve_point_weights.append(1)
  46.         curve_point_weights.append(1)
  47.         
  48.         curve_knots.append(1)
  49.         curve_knots.append(1)
  50.         curve_knots.append(1)
  51.         curve_knots.append(2)
  52.         curve_knots.append(3)
  53.         curve_knots.append(3)
  54.         curve_knots.append(3)
  55.  
  56.         positions = [(-5, -5, 0), (5, -5, 0), (5, 5, 0), (-5, 5, 0)]
  57.  
  58.         for position in positions:
  59.             points.append(k3d.point3(position[0] + (j * 10), position[1], position[2] + (i * -10)))
  60.             point_selection.append(0.0)
  61.  
  62.