/tutorial/vision/opengl/cube.e

http://github.com/tybor/Liberty · Specman e · 53 lines · 40 code · 13 blank · 0 comment · 0 complexity · e18b459310e6cb40bd7688e0bb8a835b MD5 · raw file

  1. class CUBE
  2. inherit
  3. GL_OBJECT
  4. creation
  5. make_at_origin, make_with_position
  6. feature{ANY}
  7. build is
  8. do
  9. create vertices.make(8)
  10. vertices.put(create {VERTEX}.make_with_color_object(-1, 1, 1, full_red), 0)
  11. vertices.put(create {VERTEX}.make_with_color_object(-1, -1, 1, full_red), 1)
  12. vertices.put(create {VERTEX}.make_with_color_object(1, -1, 1, full_green), 2)
  13. vertices.put(create {VERTEX}.make_with_color_object(1, 1, 1, full_green), 3)
  14. vertices.put(create {VERTEX}.make_with_color_object(1, 1, -1, full_blue), 4)
  15. vertices.put(create {VERTEX}.make_with_color_object(-1, 1, -1, full_blue), 5)
  16. vertices.put(create {VERTEX}.make_with_color_object(-1, -1, -1, full_magenta), 6)
  17. vertices.put(create {VERTEX}.make_with_color_object(1, -1, -1, full_magenta), 7)
  18. facets.add_last(create {FACET}.make(vertices.item(0), vertices.item(1), vertices.item(3)))
  19. facets.add_last(create {FACET}.make(vertices.item(1), vertices.item(2), vertices.item(3)))
  20. facets.add_last(create {FACET}.make(vertices.item(3), vertices.item(2), vertices.item(4)))
  21. facets.add_last(create {FACET}.make(vertices.item(2), vertices.item(7), vertices.item(4)))
  22. facets.add_last(create {FACET}.make(vertices.item(5), vertices.item(6), vertices.item(0)))
  23. facets.add_last(create {FACET}.make(vertices.item(6), vertices.item(1), vertices.item(0)))
  24. facets.add_last(create {FACET}.make(vertices.item(5), vertices.item(0), vertices.item(4)))
  25. facets.add_last(create {FACET}.make(vertices.item(0), vertices.item(3), vertices.item(4)))
  26. facets.add_last(create {FACET}.make(vertices.item(1), vertices.item(6), vertices.item(2)))
  27. facets.add_last(create {FACET}.make(vertices.item(6), vertices.item(7), vertices.item(2)))
  28. facets.add_last(create {FACET}.make(vertices.item(4), vertices.item(7), vertices.item(5)))
  29. facets.add_last(create {FACET}.make(vertices.item(7), vertices.item(6), vertices.item(5)))
  30. set_scale(1.5, 0.5, 0.75)
  31. end
  32. turn(ang_x, ang_y : REAL) is
  33. do
  34. set_pitch(ang_x)
  35. set_heading(ang_y)
  36. end
  37. feature {}
  38. angle_x, angle_y : REAL
  39. vertices: FAST_ARRAY[VERTEX]
  40. end