Add initial prototype.
This commit is contained in:
86
3-mid/opengl/source/lean/model/opengl-model-segment_line.ads
Normal file
86
3-mid/opengl/source/lean/model/opengl-model-segment_line.ads
Normal file
@@ -0,0 +1,86 @@
|
||||
with
|
||||
openGL.Font;
|
||||
|
||||
private
|
||||
with
|
||||
openGL.Geometry.colored,
|
||||
ada.Containers.Vectors;
|
||||
|
||||
|
||||
package openGL.Model.segment_line
|
||||
--
|
||||
-- Models a segmented line.
|
||||
--
|
||||
is
|
||||
type Item is new Model.item with private;
|
||||
type View is access all Item'Class;
|
||||
|
||||
|
||||
---------
|
||||
--- Forge
|
||||
--
|
||||
|
||||
function new_segment_line_Model (Color : in openGL.Color) return View;
|
||||
|
||||
|
||||
-----------
|
||||
--- Segment
|
||||
--
|
||||
|
||||
type Segment is
|
||||
record
|
||||
First : Vector_3;
|
||||
Last : Vector_3;
|
||||
end record;
|
||||
|
||||
type Segments_t is array (Positive range <>) of aliased Segment;
|
||||
|
||||
function Angle_in_xz_plane (the_Segment : in Segment) return Radians;
|
||||
|
||||
|
||||
--------------
|
||||
--- Attributes
|
||||
--
|
||||
|
||||
overriding
|
||||
function to_GL_Geometries (Self : access Item; Textures : access Texture.name_Map_of_texture'Class;
|
||||
Fonts : in Font.font_id_Map_of_font) return Geometry.views;
|
||||
|
||||
procedure add_1st_Segment (Self : in out Item; start_Site : in Vector_3;
|
||||
end_Site : in Vector_3);
|
||||
|
||||
procedure add_Segment (Self : in out Item; end_Site : in Vector_3);
|
||||
|
||||
function Site (Self : in Item; for_End : in Integer) return Vector_3;
|
||||
|
||||
procedure Site_is (Self : in out Item; Now : in Vector_3;
|
||||
for_End : in Integer);
|
||||
|
||||
procedure Color_is (Self : in out Item; Now : in Color;
|
||||
for_End : in Integer);
|
||||
|
||||
function segment_Count (Self : in Item) return Natural;
|
||||
function Segments (Self : in Item) return Segments_t;
|
||||
|
||||
|
||||
|
||||
private
|
||||
|
||||
type vertex_Array_view is access all Geometry.colored.Vertex_array;
|
||||
|
||||
package site_Vectors is new ada.Containers.Vectors (Positive, Vector_3);
|
||||
subtype site_Vector is site_Vectors.Vector;
|
||||
|
||||
|
||||
type Item is new Model.item with
|
||||
record
|
||||
Color : openGL.rgb_Color;
|
||||
Points : site_Vector;
|
||||
|
||||
Vertices : Vertex_array_view := new Geometry.colored.Vertex_array (1 .. 2);
|
||||
vertex_Count : Natural := 0;
|
||||
|
||||
Geometry : openGL.Geometry.colored.view;
|
||||
end record;
|
||||
|
||||
end openGL.Model.segment_line;
|
||||
Reference in New Issue
Block a user