indexing description: "[ A EM_3D_OBJECT_CONTAINER is a DS_LINKED_LIST of EM_3D_OBJECT. The EM_3D_OBJECT_CONTAINER itself is a EM_3D_OBJECT. If it is drawn all containing EM_3D_OBJECTs are drawn. First element in the LIST is drawn first, last element is drawn last. An EM_3D_OBJECT_CONTAINER is a new coordinate system for all its elements. All the elements are drawn relativ to the x and y position of the EM_3D_OBJECT_CONTAINER. ]" date: "$Date$" revision: "$Revision$" class EM_3D_OBJECT_CONTAINER [G -> EM_3D_OBJECT] inherit EM_3D_OBJECT undefine copy, is_equal end DS_LINKED_LIST [G] rename put_last as extend, forth as foo, extend as put_i_th redefine make end create make, make_specified feature -- Creation make is -- TODO compute width, height and depth from the values in the list do Precursor scale.set (1, 1, 1) end make_specified (a_width: DOUBLE; a_height: DOUBLE; a_depth: DOUBLE) is -- TODO compute width, height and depth from the values in the list require a_width >= 0 a_height >= 0 a_depth >= 0 do make width := a_width height := a_height depth := a_depth ensure width_set: width = a_width height_set: height = a_height depth_set: depth = a_depth end feature {NONE} -- Implementation draw_object is -- Draws the objects to the framebuffer at the current position local cursor: DS_LINKED_LIST_CURSOR [G] do create cursor.make (Current) from cursor.start until cursor.off loop cursor.item.draw cursor.forth end end end