1. -- 
  2. -- Jan & Uwe R. Zimmer, Australia, July 2011 
  3. -- 
  4.  
  5. with GLOBE_3D; 
  6.  
  7. with Float_Type;            use Float_Type; 
  8. with Rotations;             use Rotations; 
  9. with Vectors_2D_N;          use Vectors_2D_N; 
  10. with Vectors_3D;            use Vectors_3D; 
  11.  
  12. package Graphics_Structures is 
  13.  
  14.    type RGB  is (Red, Green, Blue); 
  15.    type RGBA is (Red, Green, Blue, Alpha); 
  16.  
  17.    subtype Colour_Component_Range is Real range 0.0 .. 1.0; 
  18.  
  19.    type RGB_Colour  is array (RGB)  of Colour_Component_Range; 
  20.    type RGBA_Colour is array (RGBA) of Colour_Component_Range; 
  21.  
  22.    subtype Shininess_Range  is Real range 0.0 .. 128.0; 
  23.  
  24.    type Materials is record 
  25.       Ambient, 
  26.       Diffuse, 
  27.       Specular, 
  28.       Emission  : RGBA_Colour; 
  29.       Shininess : Shininess_Range; 
  30.    end record; 
  31.  
  32.    subtype Point_3D is Vector_3D; 
  33.  
  34.    type Points_3D is array (Positive range <>)     of Point_3D; 
  35.    type Line_3D   is array (Positive range 1 .. 2) of Point_3D; 
  36.  
  37.    type Camera is tagged 
  38.       record 
  39.          Position, 
  40.          Scene_Offset, 
  41.          Object_Offset : Vector_3D; 
  42.          Rotation      : Quaternion_Rotation; 
  43.       end record; 
  44.  
  45.    subtype Point_2D is Vector_2D_N; 
  46.    subtype Size_2D  is Vector_2D_N; 
  47.  
  48.    type Points_2D is array (Positive range <>)     of Point_2D; 
  49.    type Line_2D   is array (Positive range 1 .. 2) of Point_2D; 
  50.  
  51.    type Camera_Mode_T is (Scene, Chase); 
  52.  
  53.    type Lights_T is array (Positive range <>) of GLOBE_3D.Light_definition; 
  54.  
  55. --  private 
  56. -- 
  57. --     type RGB_Colour_F  is array (RGB)  of GL.Float; 
  58. --     type RGB_Colour_D  is array (RGB)  of GL.Double; 
  59. --     type RGBA_Colour_F is array (RGBA) of GL.Float; 
  60. --     type RGBA_Colour_D is array (RGBA) of GL.Double; 
  61. -- 
  62. --     subtype Shininess_Range_F is GL.Float range 0.0 .. 128.0; 
  63. -- 
  64. --     type Materials_F is record 
  65. --        Ambient, 
  66. --        Diffuse, 
  67. --        Specular, 
  68. --        Emission  : RGBA_Colour_F; 
  69. --        Shininess : Shininess_Range_F; 
  70. --     end record; 
  71.  
  72. end Graphics_Structures;