Index

Package: GLOBE_3D

Description

package GLOBE_3D is
Added "List_status" and "List_Id" to the Object_3D. by default the Display_One routine will now generate a GL command list instead of sending the command each time explicitely. To disable this feature, set Object_3D.List_Status to "No_List". If memory is not sufficient to hold a list, the Display_One routine will automatically default back to "No_List". Uwe R. Zimmer, July 2011 Added an alternative display face routine which is optimized to produce a shorter list of GL commands. Runs slower than the original Display face routine yet needs to be executed only once. Uwe R. Zimmer, July 2011 Cleaned up the whole code base (including the whole GL base) to address _every_ warning and style message. Restructed the code in places to take advantage of Ada 2012. No identifier hides any other in the surrounding scope any more. Compound assignments and function-expressions have been used frequently to make the code leaner and safer. The code will no longer compile under Ada 2005 or earlier though. Uwe R. Zimmer, September 2013

Packages

REF (new Ada)

package REF is new Ada.Numerics.Generic_Elementary_Functions (Real);

RIO (new Float_IO)

package RIO is new Ada.Text_IO.Float_IO (Real);

Visuals_Mapping (private) (new Hashed_Maps)

package Visuals_Mapping is new Ada.Containers.Hashed_Maps
     (Key_Type        => Ada.Strings.Unbounded.Unbounded_String,
      Element_Type    => p_Visual,
      Hash            => Ada.Strings.Unbounded.Hash,
      Equivalent_Keys => Ada.Strings.Unbounded."=");
Maps of Visuals - quick dictionary search

Classes

Camera

type Camera is tagged
      record
         Clipper              : Clipping_data := (Eye_Position    => (0.0,  0.0,  5.0),
                                                  view_direction  => (0.0,  0.0, -1.0),
                                                  max_dot_product => 0.0,
                                                  main_clipping   => (0, 0, 0, 0));
         World_Rotation       : Matrix_33 := Id_33;
         Speed                : Vector_3D := (0.0, 0.0, 0.0);
         rotation_Speed       : Vector_3D := (0.0, 0.0, 0.0);
         compose_rotations    : Boolean := True;
         -- True : apply successive rotations from rotation_Speed directly
         --       to world_Rotation. Good for totally free 3D movement, no gravity.
         --       Drawback : rotations around x axis, then y, then x, .. . induce a
         --       rotation around z (the nose) which is x rotated around y.
         -- False : world_Rotation is set as XYZ_rotation of the rotation vector below;
         --        x, y, z keep separate.
         -- Cf implementation in the package Actors
         rotation             : Vector_3D := (0.0, 0.0, 0.0);
         -- ^ this vector is updated, whatever the state of 'compose_rotations'

         FOVy                 : Real  := default_field_of_view_Angle;  -- field of view angle (deg) in the y direction
         Aspect               : Real;                                  -- x/y aspect ratio

         near_plane_Distance  : Real  := 1.0;                          -- distance to the near clipping plane
         near_plane_Width     : Real;
         near_plane_Height    : Real;

         far_plane_Distance   : Real  := fairly_Far;                   -- distance to the far clipping plane
         far_plane_Width      : Real;
         far_plane_Height     : Real;

         Projection_Matrix    : Matrix_44;

         frustum_Planes       : GL.Frustums.plane_Array;
      end record;

Primitive operations:

References:

globe_3d.ads:156:9 (declaration)
actors.adb:8:68 (reference)
actors.adb:59:60 (reference)
actors.adb:66:57 (reference)
actors.ads:17:60 (reference)
actors.ads:27:68 (reference)
actors.ads:38:57 (reference)
globe_3d.adb:1069:63 (reference)
globe_3d.ads:192:32 (reference)
globe_3d.ads:243:65 (reference)
globe_3d.ads:457:37 (reference)
graphics_data.ads:23:27 (reference)

Visual (abstract)

type Visual is abstract tagged
      record
         ID                      : Ident := "-Nameless-                              ";
         --                                  1234567890123456789012345678901234567890

         Centre                  : Point_3D  := (0.0, 0.0, 0.0); -- vertex coords are relative to the centre.
         Centre_Camera_Space     : Point_3D;                     -- the visuals 'centre' in camera space.
         rotation                : Matrix_33 := Id_33;

         is_Terrain              : Boolean   := False;
      end record;

Immediate Children:

Primitive operations:

is_Transparent
Pre_calculate
skinned_Geometrys

References:

globe_3d.ads:197:9 (declaration)
globe_3d.adb:112:63 (reference)
globe_3d.adb:119:36 (reference)
globe_3d.adb:122:25 (reference)
globe_3d.adb:125:26 (reference)
globe_3d.adb:128:25 (reference)
globe_3d.adb:941:35 (reference)
globe_3d.adb:951:27 (reference)
globe_3d.adb:1100:32 (reference)
globe_3d.adb:1223:35 (reference)
globe_3d.ads:209:32 (reference)
globe_3d.ads:212:46 (reference)
globe_3d.ads:215:46 (reference)
globe_3d.ads:217:46 (reference)
globe_3d.ads:220:46 (reference)
globe_3d.ads:224:30 (reference)
globe_3d.ads:225:30 (reference)
globe_3d.ads:227:37 (reference)
globe_3d.ads:229:44 (reference)
globe_3d.ads:232:35 (reference)
globe_3d.ads:235:27 (reference)
globe_3d.ads:237:25 (reference)
globe_3d.ads:238:25 (reference)
globe_3d.ads:239:25 (reference)
globe_3d.ads:371:60 (reference)

Window (abstract)

type Window is abstract tagged
      record
         Camera  : aliased GLOBE_3D.Camera;
      end record;

Immediate Children:

Primitive operations:

References:

globe_3d.ads:455:9 (declaration)
globe_3d.ads:460:32 (reference)
globe_3d.ads:462:43 (reference)
globe_3d.ads:463:43 (reference)
glut-windows.adb:548:51 (reference)
glut-windows.ads:25:32 (reference)
glut-windows.ads:82:32 (reference)

Types

Ident

subtype Ident is String (1 .. 40);
Identifiers for naming things (textures, objects, . .. ) Identifiers are case insensitive and stored as UPPER_CASE

Image_ID

type Image_ID is new Integer range -1 .. Integer'Last;
List of textures ID's, correspond to files in the archives and to GL's "names"

Real

subtype Real is GL.Double;

References:

globe_3d.ads:102:12 (declaration)
actors.adb:10:68 (reference)
actors.adb:11:68 (reference)
actors.adb:12:68 (reference)
actors.adb:13:68 (reference)
actors.adb:17:40 (reference)
actors.adb:61:60 (reference)
actors.adb:62:60 (reference)
actors.adb:63:60 (reference)
actors.adb:64:60 (reference)
actors.adb:68:57 (reference)
actors.adb:69:57 (reference)
actors.adb:70:57 (reference)
actors.adb:71:57 (reference)
actors.adb:98:66 (reference)
actors.adb:99:66 (reference)
actors.adb:100:66 (reference)
actors.adb:102:66 (reference)
actors.adb:105:56 (reference)
actors.adb:146:66 (reference)
actors.adb:147:66 (reference)
actors.adb:148:66 (reference)
actors.adb:150:66 (reference)
actors.ads:19:60 (reference)
actors.ads:20:60 (reference)
actors.ads:21:60 (reference)
actors.ads:22:60 (reference)
actors.ads:29:68 (reference)
actors.ads:30:68 (reference)
actors.ads:31:68 (reference)
actors.ads:32:68 (reference)
actors.ads:40:57 (reference)
actors.ads:41:57 (reference)
actors.ads:42:57 (reference)
actors.ads:43:57 (reference)
actors.ads:47:66 (reference)
actors.ads:48:66 (reference)
actors.ads:49:66 (reference)
actors.ads:51:66 (reference)
actors.ads:56:66 (reference)
actors.ads:57:66 (reference)
actors.ads:58:66 (reference)
actors.ads:60:66 (reference)
globe_3d-math.adb:10:22 (reference)
globe_3d-math.adb:12:37 (reference)
globe_3d-math.adb:20:43 (reference)
globe_3d-math.adb:26:41 (reference)
globe_3d-math.adb:28:42 (reference)
globe_3d-math.adb:35:67 (reference)
globe_3d-math.adb:39:29 (reference)
globe_3d-math.adb:48:36 (reference)
globe_3d-math.adb:48:49 (reference)
globe_3d-math.adb:50:36 (reference)
globe_3d-math.adb:50:49 (reference)
globe_3d-math.adb:64:20 (reference)
globe_3d-math.adb:83:17 (reference)
globe_3d-math.adb:104:17 (reference)
globe_3d-math.adb:123:17 (reference)
globe_3d-math.adb:143:40 (reference)
globe_3d-math.adb:150:40 (reference)
globe_3d-math.adb:152:38 (reference)
globe_3d-math.adb:225:26 (reference)
globe_3d-math.adb:262:78 (reference)
globe_3d-math.adb:302:30 (reference)
globe_3d-math.adb:302:64 (reference)
globe_3d-math.ads:7:21 (reference)
globe_3d-math.ads:10:36 (reference)
globe_3d-math.ads:22:42 (reference)
globe_3d-math.ads:28:40 (reference)
globe_3d-math.ads:31:41 (reference)
globe_3d-math.ads:39:67 (reference)
globe_3d-math.ads:43:36 (reference)
globe_3d-math.ads:43:49 (reference)
globe_3d-math.ads:44:36 (reference)
globe_3d-math.ads:44:49 (reference)
globe_3d-math.ads:59:39 (reference)
globe_3d-math.ads:61:39 (reference)
globe_3d-math.ads:83:29 (reference)
globe_3d-stars_sky.adb:32:14 (reference)
globe_3d-stars_sky.adb:36:28 (reference)
globe_3d-stars_sky.adb:38:14 (reference)
globe_3d-stars_sky.adb:41:15 (reference)
globe_3d-stars_sky.adb:54:17 (reference)
globe_3d-stars_sky.adb:55:44 (reference)
globe_3d-stars_sky.adb:56:44 (reference)
globe_3d-stars_sky.adb:57:44 (reference)
globe_3d-stars_sky.ads:4:26 (reference)
globe_3d.adb:24:24 (reference)
globe_3d.adb:33:47 (reference)
globe_3d.adb:122:46 (reference)
globe_3d.adb:125:47 (reference)
globe_3d.adb:128:46 (reference)
globe_3d.adb:199:18 (reference)
globe_3d.adb:207:23 (reference)
globe_3d.adb:225:24 (reference)
globe_3d.adb:226:24 (reference)
globe_3d.adb:273:16 (reference)
globe_3d.adb:305:22 (reference)
globe_3d.adb:307:39 (reference)
globe_3d.adb:307:81 (reference)
globe_3d.adb:308:39 (reference)
globe_3d.adb:308:81 (reference)
globe_3d.adb:309:39 (reference)
globe_3d.adb:309:81 (reference)
globe_3d.adb:313:42 (reference)
globe_3d.adb:315:42 (reference)
globe_3d.adb:316:42 (reference)
globe_3d.adb:317:42 (reference)
globe_3d.adb:318:42 (reference)
globe_3d.adb:319:42 (reference)
globe_3d.adb:320:42 (reference)
globe_3d.adb:584:25 (reference)
globe_3d.adb:677:18 (reference)
globe_3d.ads:103:66 (reference)
globe_3d.ads:104:45 (reference)
globe_3d.ads:109:40 (reference)
globe_3d.ads:113:78 (reference)
globe_3d.ads:146:26 (reference)
globe_3d.ads:176:33 (reference)
globe_3d.ads:177:33 (reference)
globe_3d.ads:179:33 (reference)
globe_3d.ads:180:33 (reference)
globe_3d.ads:181:33 (reference)
globe_3d.ads:183:33 (reference)
globe_3d.ads:184:33 (reference)
globe_3d.ads:185:33 (reference)
globe_3d.ads:237:46 (reference)
globe_3d.ads:238:46 (reference)
globe_3d.ads:239:46 (reference)
globe_3d.ads:464:52 (reference)
globe_3d.ads:505:24 (reference)
globe_3d.ads:528:19 (reference)
glut-windows.adb:155:35 (reference)
glut-windows.adb:156:35 (reference)
glut-windows.adb:216:47 (reference)
glut-windows.adb:332:55 (reference)
glut-windows.adb:341:29 (reference)
glut-windows.adb:384:52 (reference)
glut-windows.adb:389:46 (reference)
glut-windows.adb:390:46 (reference)
glut-windows.adb:392:19 (reference)
glut-windows.adb:393:19 (reference)
glut-windows.adb:393:35 (reference)
glut-windows.adb:619:57 (reference)
glut-windows.ads:37:51 (reference)
glut-windows.ads:68:53 (reference)
glut-windows.ads:108:32 (reference)
graphics_configuration.ads:30:42 (reference)
graphics_configuration.ads:35:52 (reference)
graphics_configuration.ads:36:52 (reference)
graphics_configuration.ads:37:52 (reference)
graphics_setup.adb:41:47 (reference)
spaceship_p.adb:615:53 (reference)
spaceship_p.ads:10:53 (reference)
sphere_p.adb:136:53 (reference)
sphere_p.ads:10:52 (reference)

Vector_3D

subtype Vector_3D is GL.Double_Vector_3D;

References:

globe_3d.ads:106:12 (declaration)
actors.adb:18:14 (reference)
actors.adb:54:52 (reference)
actors.adb:73:30 (reference)
actors.adb:86:17 (reference)
actors.adb:101:66 (reference)
actors.adb:103:66 (reference)
actors.adb:151:66 (reference)
actors.adb:153:30 (reference)
actors.ads:25:55 (reference)
actors.ads:50:66 (reference)
actors.ads:52:66 (reference)
actors.ads:61:66 (reference)
globe_3d-math.adb:10:32 (reference)
globe_3d-math.adb:10:50 (reference)
globe_3d-math.adb:12:22 (reference)
globe_3d-math.adb:12:50 (reference)
globe_3d-math.adb:14:25 (reference)
globe_3d-math.adb:14:43 (reference)
globe_3d-math.adb:16:22 (reference)
globe_3d-math.adb:16:40 (reference)
globe_3d-math.adb:18:25 (reference)
globe_3d-math.adb:18:43 (reference)
globe_3d-math.adb:20:25 (reference)
globe_3d-math.adb:22:25 (reference)
globe_3d-math.adb:22:43 (reference)
globe_3d-math.adb:26:23 (reference)
globe_3d-math.adb:28:24 (reference)
globe_3d-math.adb:30:29 (reference)
globe_3d-math.adb:30:47 (reference)
globe_3d-math.adb:35:49 (reference)
globe_3d-math.adb:37:29 (reference)
globe_3d-math.adb:38:29 (reference)
globe_3d-math.adb:76:37 (reference)
globe_3d-math.adb:76:55 (reference)
globe_3d-math.adb:78:12 (reference)
globe_3d-math.adb:86:65 (reference)
globe_3d-math.adb:88:43 (reference)
globe_3d-math.adb:94:37 (reference)
globe_3d-math.adb:94:55 (reference)
globe_3d-math.adb:115:37 (reference)
globe_3d-math.adb:178:31 (reference)
globe_3d-math.adb:180:34 (reference)
globe_3d-math.adb:182:20 (reference)
globe_3d-math.adb:212:41 (reference)
globe_3d-math.adb:214:27 (reference)
globe_3d-math.adb:215:27 (reference)
globe_3d-math.adb:216:27 (reference)
globe_3d-math.ads:7:31 (reference)
globe_3d-math.ads:7:49 (reference)
globe_3d-math.ads:10:21 (reference)
globe_3d-math.ads:10:49 (reference)
globe_3d-math.ads:13:24 (reference)
globe_3d-math.ads:13:42 (reference)
globe_3d-math.ads:16:21 (reference)
globe_3d-math.ads:16:39 (reference)
globe_3d-math.ads:19:24 (reference)
globe_3d-math.ads:19:42 (reference)
globe_3d-math.ads:22:24 (reference)
globe_3d-math.ads:25:24 (reference)
globe_3d-math.ads:25:42 (reference)
globe_3d-math.ads:28:22 (reference)
globe_3d-math.ads:31:23 (reference)
globe_3d-math.ads:34:28 (reference)
globe_3d-math.ads:34:46 (reference)
globe_3d-math.ads:39:49 (reference)
globe_3d-math.ads:52:36 (reference)
globe_3d-math.ads:52:54 (reference)
globe_3d-math.ads:53:36 (reference)
globe_3d-math.ads:53:54 (reference)
globe_3d-math.ads:54:36 (reference)
globe_3d-math.ads:63:30 (reference)
globe_3d-math.ads:68:33 (reference)
globe_3d-math.ads:70:41 (reference)
globe_3d-stars_sky.adb:31:14 (reference)
globe_3d.adb:47:55 (reference)
globe_3d.adb:56:19 (reference)
globe_3d.adb:198:18 (reference)
globe_3d.adb:371:39 (reference)
globe_3d.adb:375:19 (reference)
globe_3d.adb:569:14 (reference)
globe_3d.adb:678:28 (reference)
globe_3d.adb:888:44 (reference)
globe_3d.ads:107:36 (reference)
globe_3d.ads:111:24 (reference)
globe_3d.ads:123:57 (reference)
globe_3d.ads:145:26 (reference)
globe_3d.ads:163:33 (reference)
globe_3d.ads:164:33 (reference)
globe_3d.ads:173:33 (reference)
globe_3d.ads:509:44 (reference)
globe_3d.ads:529:19 (reference)
globe_3d.ads:552:22 (reference)
graphics_opengl.adb:49:66 (reference)
graphics_opengl.adb:99:55 (reference)
graphics_opengl.adb:101:55 (reference)
graphics_opengl.adb:161:50 (reference)

p_Vector_3D

type  p_Vector_3D is access all Vector_3D;

References:

globe_3d.ads:107:10 (declaration)

Vector_4D

type Vector_4D is array (0 .. 3) of Real;

Point_3D

subtype Point_3D is Vector_3D;

Matrix

type Matrix    is array (Positive range <>, Positive range <>) of aliased Real;

References:

globe_3d.ads:113:9 (declaration)
globe_3d-math.adb:194:47 (reference)
globe_3d-math.adb:196:64 (reference)
globe_3d-math.adb:198:25 (reference)
globe_3d-math.ads:88:47 (reference)
globe_3d-math.ads:90:64 (reference)
globe_3d.ads:114:26 (reference)
globe_3d.ads:115:26 (reference)

Matrix_33

type Matrix_33 is new Matrix (1 .. 3, 1 .. 3);

References:

globe_3d.ads:114:9 (declaration)
actors.adb:149:66 (reference)
actors.ads:59:66 (reference)
globe_3d-math.adb:56:25 (reference)
globe_3d-math.adb:56:43 (reference)
globe_3d-math.adb:58:12 (reference)
globe_3d-math.adb:61:16 (reference)
globe_3d-math.adb:62:19 (reference)
globe_3d-math.adb:66:25 (reference)
globe_3d-math.adb:76:22 (reference)
globe_3d-math.adb:81:16 (reference)
globe_3d-math.adb:85:22 (reference)
globe_3d-math.adb:86:43 (reference)
globe_3d-math.adb:88:21 (reference)
globe_3d-math.adb:134:28 (reference)
globe_3d-math.adb:134:46 (reference)
globe_3d-math.adb:143:22 (reference)
globe_3d-math.adb:150:53 (reference)
globe_3d-math.adb:152:20 (reference)
globe_3d-math.adb:178:49 (reference)
globe_3d-math.adb:180:52 (reference)
globe_3d-math.adb:212:59 (reference)
globe_3d-math.adb:224:44 (reference)
globe_3d-math.adb:268:38 (reference)
globe_3d-math.adb:283:33 (reference)
globe_3d-math.ads:50:24 (reference)
globe_3d-math.ads:50:42 (reference)
globe_3d-math.ads:52:21 (reference)
globe_3d-math.ads:56:27 (reference)
globe_3d-math.ads:56:45 (reference)
globe_3d-math.ads:59:21 (reference)
globe_3d-math.ads:61:52 (reference)
globe_3d-math.ads:63:48 (reference)
globe_3d-math.ads:68:51 (reference)
globe_3d-math.ads:70:59 (reference)
globe_3d-math.ads:74:43 (reference)
globe_3d-math.ads:77:37 (reference)
globe_3d-math.ads:80:32 (reference)
globe_3d-stars_sky.adb:11:34 (reference)
globe_3d-stars_sky.ads:10:34 (reference)
globe_3d.ads:117:21 (reference)
globe_3d.ads:162:33 (reference)
globe_3d.ads:204:36 (reference)
graphics_opengl.adb:29:82 (reference)
graphics_opengl.adb:34:28 (reference)
graphics_opengl.adb:100:55 (reference)
graphics_opengl.adb:162:50 (reference)

Matrix_44

type Matrix_44 is new Matrix (1 .. 4, 1 .. 4);

Point_3D_array

type Point_3D_array   is array (Positive range <>) of aliased Point_3D;

References:

globe_3d.ads:121:9 (declaration)
globe_3d.ads:122:36 (reference)
globe_3d.ads:372:25 (reference)
globe_3d.ads:516:38 (reference)
spaceship_p.adb:21:23 (reference)
sphere_p.adb:22:23 (reference)

p_Point_3D_array

type p_Point_3D_array is access Point_3D_array;

References:

globe_3d.ads:122:9 (declaration)
globe_3d.ads:516:54 (reference)

Vector_3D_array

type Vector_3D_array  is array (Natural range <>) of Vector_3D;

References:

globe_3d.ads:123:9 (declaration)
globe_3d.ads:373:25 (reference)

Natural_Index_array

type Natural_Index_array is array (Natural range <>) of aliased Natural;

References:

globe_3d.ads:125:9 (declaration)
globe_3d.ads:285:27 (reference)
globe_3d.ads:287:27 (reference)

Rectangle

type Rectangle is record
      X1, Y1, X2, Y2 : Integer;
   end record;

Clipping_area

subtype Clipping_area is Rectangle;

References:

globe_3d.ads:135:12 (declaration)
globe_3d.adb:670:56 (reference)
globe_3d.adb:679:60 (reference)
globe_3d.ads:147:26 (reference)
globe_3d.ads:532:19 (reference)

Clipping_data

type Clipping_data is record
      Eye_Position     : aliased Point_3D;
      view_direction   : Vector_3D;
      max_dot_product  : Real;         -- depends on the field of view
      main_clipping    : Clipping_area;
   end record;

References:

globe_3d.ads:143:9 (declaration)
globe_3d.adb:665:48 (reference)
globe_3d.ads:158:33 (reference)
globe_3d.ads:230:44 (reference)
globe_3d.ads:434:55 (reference)

p_Camera

type p_Camera is access all Camera'Class;

References:

globe_3d.ads:192:9 (declaration)

p_Visual

type p_Visual is access all Visual'Class;

References:

globe_3d.ads:209:9 (declaration)
globe_3d.adb:110:31 (reference)
globe_3d.adb:112:77 (reference)
globe_3d.adb:796:16 (reference)
globe_3d.adb:1057:21 (reference)
globe_3d.adb:1144:27 (reference)
globe_3d.adb:1193:40 (reference)
globe_3d.adb:1202:76 (reference)
globe_3d.adb:1276:58 (reference)
globe_3d.ads:210:54 (reference)
globe_3d.ads:213:46 (reference)
globe_3d.ads:255:58 (reference)
globe_3d.ads:600:26 (reference)
glut-windows.adb:639:63 (reference)
glut-windows.adb:646:63 (reference)
glut-windows.ads:45:63 (reference)
glut-windows.ads:46:63 (reference)

Visual_array

type Visual_array is array (Positive range <>) of p_Visual;

References:

globe_3d.ads:210:9 (declaration)
globe_3d.adb:1069:36 (reference)
globe_3d.adb:1073:36 (reference)
globe_3d.adb:1203:76 (reference)
globe_3d.adb:1292:26 (reference)
globe_3d.ads:241:29 (reference)
globe_3d.ads:243:37 (reference)
globe_3d.ads:258:26 (reference)
globe_3d.ads:465:52 (reference)
glut-windows.adb:270:57 (reference)
glut-windows.adb:283:53 (reference)
glut-windows.adb:333:60 (reference)
glut-windows.adb:620:62 (reference)
glut-windows.ads:38:51 (reference)
glut-windows.ads:87:35 (reference)

Map_of_Visuals

type Map_of_Visuals is private;

References:

globe_3d.ads:252:9 (declaration)
globe_3d.adb:958:51 (reference)
globe_3d.adb:1269:30 (reference)
globe_3d.adb:1270:15 (reference)
globe_3d.adb:1276:35 (reference)
globe_3d.adb:1292:47 (reference)
globe_3d.adb:1293:13 (reference)
globe_3d.ads:254:30 (reference)
globe_3d.ads:255:35 (reference)
globe_3d.ads:258:47 (reference)
globe_3d.ads:412:51 (reference)
globe_3d.ads:604:9 (full declaration)
Map_of_Visuals We define here a way of finding quickly a Visual's access through its identifier.

Object_3D

type Object_3D (Max_points, Max_faces : Integer) is new Visual with record
      Point           : Point_3D_array  (1 .. Max_points);  -- vertices
      edge_vector     : Vector_3D_array (1 .. Max_points);  -- normals for lighting
      face            : Face_array (1 .. Max_faces);
      sub_objects     : p_Object_3D_list := null;
      -- List of objects to be drawn AFTER the
      -- object itself e.g., things inside a room
      pre_calculated  : Boolean := False;
      List_Status     : List_Cases := Generate_List;
      -- private:
      List_Id         : List_Ids;
      Face_Invariant  : Face_invariant_array (1 .. Max_faces);
      Bounds          : GL.Geometry.Bounds_record;
      transparent     : Boolean := False;
   end record;

References:

globe_3d.ads:263:9 (declaration)
globe_3d-portals.adb:49:47 (reference)
globe_3d-portals.ads:8:19 (reference)
globe_3d.adb:45:55 (reference)
globe_3d.adb:137:32 (reference)
globe_3d.adb:194:51 (reference)
globe_3d.adb:401:38 (reference)
globe_3d.adb:664:48 (reference)
globe_3d.adb:669:56 (reference)
globe_3d.adb:773:47 (reference)
globe_3d.adb:790:45 (reference)
globe_3d.adb:801:47 (reference)
globe_3d.adb:809:44 (reference)
globe_3d.adb:815:40 (reference)
globe_3d.adb:821:36 (reference)
globe_3d.adb:957:51 (reference)
globe_3d.adb:1025:47 (reference)
globe_3d.adb:1038:45 (reference)
globe_3d.ads:264:35 (reference)
globe_3d.ads:371:9 (full declaration)
globe_3d.ads:387:53 (reference)
globe_3d.ads:388:53 (reference)
globe_3d.ads:389:53 (reference)
globe_3d.ads:390:53 (reference)
globe_3d.ads:391:53 (reference)
globe_3d.ads:393:32 (reference)
globe_3d.ads:397:47 (reference)
globe_3d.ads:404:46 (reference)
globe_3d.ads:411:51 (reference)
globe_3d.ads:424:51 (reference)
globe_3d.ads:433:55 (reference)
globe_3d.ads:448:38 (reference)
spaceship_p.adb:622:13 (reference)
sphere_p.adb:143:13 (reference)

p_Object_3D

type p_Object_3D is access all Object_3D'Class;

References:

globe_3d.ads:264:9 (declaration)
globe_3d.adb:996:41 (reference)
globe_3d.ads:299:23 (reference)
globe_3d.ads:347:14 (reference)
globe_3d.ads:351:57 (reference)
graphics_opengl.adb:150:43 (reference)
graphics_opengl.adb:160:50 (reference)
graphics_opengl.adb:169:43 (reference)
graphics_opengl.ads:18:50 (reference)
models.adb:19:48 (reference)
models.ads:23:94 (reference)
models.ads:24:94 (reference)
spaceship_p.adb:614:53 (reference)
spaceship_p.ads:9:53 (reference)
sphere_p.adb:135:53 (reference)
sphere_p.ads:9:52 (reference)

Skin_Type

type Skin_Type is (texture_only,
                      colour_only,
                      coloured_texture,
                      material_only,
                      material_texture,
                      invisible);

References:

globe_3d.ads:270:9 (declaration)
globe_3d.adb:344:46 (reference)
globe_3d.ads:277:31 (reference)
globe_3d.ads:302:23 (reference)

Set_of_Skin

type Set_of_Skin is array (Skin_Type) of Boolean;

References:

globe_3d.ads:277:9 (declaration)
globe_3d.ads:279:27 (reference)

Idx_3_array

subtype Idx_3_array is Natural_Index_array (1 .. 3);

References:

globe_3d.ads:285:12 (declaration)

Idx_4_array

subtype Idx_4_array is Natural_Index_array (1 .. 4);

References:

globe_3d.ads:287:12 (declaration)
globe_3d.ads:288:59 (reference)
globe_3d.ads:295:23 (reference)
globe_3d.ads:545:22 (reference)

Idx_4_array_array

type Idx_4_array_array is array (Positive range <>) of Idx_4_array;

References:

globe_3d.ads:288:9 (declaration)
spaceship_p.adb:320:21 (reference)
sphere_p.adb:75:21 (reference)

Map_idx_pair

type Map_idx_pair is record U, V : aliased GL.Double; end record;

References:

globe_3d.ads:290:9 (declaration)
globe_3d.ads:291:59 (reference)

Map_idx_pair_array

type Map_idx_pair_array is array (Natural range <>) of Map_idx_pair;

References:

globe_3d.ads:291:9 (declaration)
globe_3d.ads:292:36 (reference)

Map_idx_pair_4_array

subtype Map_idx_pair_4_array is Map_idx_pair_array (1 .. 4);

References:

globe_3d.ads:292:12 (declaration)
globe_3d.ads:330:7 (reference)
globe_3d.ads:549:22 (reference)

Face_type

type Face_type is record
      P             : Idx_4_array;  -- indices of the edges (anticlockwise)
      -- one of them can be 0 (triangle); then the
      -- "missing" edge indicates how to put texture
      -- *** Portals :
      connecting    : p_Object_3D := null; -- object behind - if there is one

      -- *** Surface
      skin          : Skin_Type;
      mirror        : Boolean := False;  -- mirror just behind the skin ?
      alpha         : GL.Double := 1.0;
      -- alpha in [0;1] for blending colours and textures.
      -- NB : when this value (or all of material colours) is equal to
      --     one, the blending for transparency is switched off to gain
      --     speed; GLOBE_3D can switch on the blending again when loading
      --     a texture that has an alpha layer
      -- *** > colour part (data ignored when irrelevant):
      colour        : GL.RGB_Color;
      -- *** > material part (data ignored when irrelevant):
      material      : GL.Materials.Material_type :=
        GL.Materials.neutral_material;
      -- *** > texture - mapping part (data ignored when irrelevant):
      texture       : Image_ID := null_image;
      --  Alternative to setting an Image_id, if it is not known at
      --  time of building the object : use Texture_name_hint, then
      --  Rebuild_links
      --
      --    Whole texture or part of one ?
      whole_texture : Boolean := True;
      --    - in case of a whole texture, automatic mapping, we just need
      --      to know how many times is it tiled:
      repeat_U,
      repeat_V      : Positive := 1;
      --    - in case of a partial texture (e.g. for a texture spread
      --      across several faces), we need a deterministic mapping:
      texture_edge_map :
      Map_idx_pair_4_array;
   end record;

References:

globe_3d.ads:294:9 (declaration)
globe_3d.adb:202:53 (reference)
globe_3d.adb:415:61 (reference)
globe_3d.adb:417:36 (reference)
globe_3d.adb:425:61 (reference)
globe_3d.ads:333:59 (reference)
spaceship_p.adb:618:16 (reference)
sphere_p.adb:140:16 (reference)

Face_array

type Face_array is array (Natural range <>) of aliased Face_type;

References:

globe_3d.ads:333:9 (declaration)
globe_3d.ads:334:32 (reference)
globe_3d.ads:374:25 (reference)
globe_3d.ads:519:38 (reference)

p_Face_array

type p_Face_array is access Face_array;

References:

globe_3d.ads:334:9 (declaration)
globe_3d.ads:519:50 (reference)

Edge_count

subtype Edge_count is Positive range 3 .. 4;

References:

globe_3d.ads:336:12 (declaration)
globe_3d.adb:217:18 (reference)
globe_3d.ads:548:22 (reference)

Face_invariant_type

type Face_invariant_type is private;

References:

globe_3d.ads:340:9 (declaration)
globe_3d.adb:203:53 (reference)
globe_3d.adb:415:84 (reference)
globe_3d.adb:418:36 (reference)
globe_3d.adb:425:84 (reference)
globe_3d.ads:342:61 (reference)
globe_3d.ads:544:9 (full declaration)

Face_invariant_array

type Face_invariant_array is array (Natural range <>) of Face_invariant_type;

References:

globe_3d.ads:342:9 (declaration)
globe_3d.ads:382:25 (reference)

Object_3D_list

type Object_3D_list;

References:

globe_3d.ads:344:9 (declaration)
globe_3d.ads:345:36 (reference)
globe_3d.ads:346:9 (full declaration)

p_Object_3D_list

type p_Object_3D_list is access Object_3D_list;

References:

globe_3d.ads:345:9 (declaration)
globe_3d.adb:792:12 (reference)
globe_3d.ads:348:14 (reference)
globe_3d.ads:375:25 (reference)

Object_3D_array

type Object_3D_array is array (Positive range <>) of p_Object_3D;

References:

globe_3d.ads:351:9 (declaration)
globe_3d.ads:352:37 (reference)

p_Object_3D_array

type p_Object_3D_array is access Object_3D_array;

References:

globe_3d.ads:352:9 (declaration)

List_Cases

type List_Cases  is (No_List, Generate_List, Is_List);

References:

globe_3d.ads:358:9 (declaration)
globe_3d.ads:379:25 (reference)

List_Ids

subtype List_Ids is Positive;

References:

globe_3d.ads:359:12 (declaration)
globe_3d.ads:381:25 (reference)

p_Window

type p_Window is access all Window'Class;

References:

globe_3d.ads:460:9 (declaration)
globe_3d.ads:460:73 (reference)
glut-windows.adb:44:84 (reference)
glut-windows.adb:523:69 (reference)

Light_count

subtype Light_count is Natural range 0 .. 8;

References:

globe_3d.ads:484:12 (declaration)
globe_3d.ads:486:27 (reference)
globe_3d.ads:486:50 (reference)
GL supports up to 8 sources.

Light_ident

subtype Light_ident is Light_count range 1 .. Light_count'Last;

References:

globe_3d.ads:486:12 (declaration)
globe_3d.adb:831:27 (reference)
globe_3d.adb:833:30 (reference)
globe_3d.adb:849:16 (reference)
globe_3d.adb:854:32 (reference)
globe_3d.adb:860:36 (reference)
globe_3d.adb:872:40 (reference)
globe_3d.adb:878:44 (reference)
globe_3d.ads:492:30 (reference)
globe_3d.ads:495:36 (reference)
globe_3d.ads:497:44 (reference)
globe_3d.ads:499:40 (reference)
GL supports up to 8 sources.

Light_definition

type Light_definition is record
      position, ambient, diffuse, specular : GL.Light_Float_vector;
   end record;

References:

globe_3d.ads:488:9 (declaration)
globe_3d.adb:833:48 (reference)
globe_3d.ads:492:48 (reference)
glut-windows.adb:63:26 (reference)
glut-windows.ads:99:38 (reference)
graphics_structures.ads:53:59 (reference)

p_String (private)

type p_String is access String;

References:

globe_3d.ads:542:9 (declaration)

Constants & Global variables

empty (Ident)

empty  : constant Ident := (others => ' ');

References:

globe_3d.ads:83:4 (declaration)
globe_3d-textures.adb:19:30 (reference)
globe_3d-textures.adb:141:21 (reference)
globe_3d.adb:947:15 (reference)
globe_3d.adb:969:49 (reference)
globe_3d.adb:985:50 (reference)
globe_3d.adb:1034:47 (reference)
globe_3d.adb:1047:47 (reference)
globe_3d.ads:554:31 (reference)
globe_3d.ads:559:31 (reference)

data_file_not_found

data_file_not_found : exception;

References:

globe_3d.ads:95:4 (declaration)
globe_3d.adb:924:16 (reference)
globe_3d.adb:937:16 (reference)

null_image (Image_ID)

null_image : constant Image_ID := -1;

References:

globe_3d.ads:100:4 (declaration)
globe_3d-textures.adb:46:7 (reference)
globe_3d-textures.adb:99:18 (reference)
globe_3d-textures.adb:124:14 (reference)
globe_3d.adb:977:44 (reference)
globe_3d.ads:316:35 (reference)

Id_33 (Matrix_33)

Id_33 : constant Matrix_33 := ((1.0, 0.0, 0.0),
                                  (0.0, 1.0, 0.0),
                                  (0.0, 0.0, 1.0));

References:

globe_3d.ads:117:4 (declaration)
globe_3d.ads:162:46 (reference)
globe_3d.ads:204:49 (reference)
glut-windows.adb:325:52 (reference)
graphics_setup.adb:121:44 (reference)

fairly_Far

fairly_Far                   : constant := 50_000.0;

References:

globe_3d.ads:153:4 (declaration)
globe_3d.ads:183:42 (reference)

default_field_of_view_Angle

default_field_of_view_Angle  : constant :=     55.0;

References:

globe_3d.ads:154:4 (declaration)
globe_3d.ads:176:42 (reference)

null_Visuals (Visual_array)

null_Visuals  : constant Visual_array (1 .. 0) := (others => null);

References:

globe_3d.ads:241:4 (declaration)
globe_3d.ads:465:77 (reference)
glut-windows.adb:270:82 (reference)
glut-windows.adb:283:78 (reference)
glut-windows.adb:333:85 (reference)
glut-windows.adb:620:87 (reference)
glut-windows.ads:38:76 (reference)

Duplicate_name

Duplicate_name : exception;

References:

globe_3d.ads:256:4 (declaration)
globe_3d-textures.adb:171:13 (reference)
globe_3d.adb:1288:16 (reference)
One can also get a map of an array of visuals in one go:

is_textured (Set_of_Skin)

is_textured : constant Set_of_Skin :=
     (texture_only | coloured_texture | material_texture => True,
      others => False);

References:

globe_3d.ads:279:4 (declaration)
globe_3d.adb:338:13 (reference)
globe_3d.adb:490:16 (reference)
globe_3d.adb:550:19 (reference)
globe_3d.adb:968:13 (reference)

null_colour (GL.Material_Float_vector)

null_colour : constant GL.Material_Float_vector := (0.0, 0.0, 0.0, 0.0);

References:

globe_3d.ads:283:4 (declaration)

Portal_connection_failed

Portal_connection_failed : exception;

References:

globe_3d.ads:417:4 (declaration)
globe_3d.adb:1013:36 (reference)
Does nothing when texture or object name is empty

bad_vertex_number

bad_vertex_number, duplicated_vertex,
   duplicated_vertex_location : exception;

References:

globe_3d.ads:419:4 (declaration)
globe_3d.adb:147:33 (reference)

duplicated_vertex

duplicated_vertex,
   duplicated_vertex_location : exception;

References:

globe_3d.ads:419:23 (declaration)
globe_3d.adb:162:33 (reference)

duplicated_vertex_location

duplicated_vertex_location : exception;

References:

globe_3d.ads:420:4 (declaration)
globe_3d.adb:169:33 (reference)

point_unmatched

point_unmatched, too_many_adjacences : exception;

References:

globe_3d.ads:421:4 (declaration)
globe_3d.adb:353:33 (reference)

too_many_adjacences

too_many_adjacences : exception;

References:

globe_3d.ads:421:21 (declaration)

bad_edge_number

bad_edge_number : exception;

References:

globe_3d.ads:422:4 (declaration)
globe_3d.adb:220:30 (reference)

Missing_level_data

Missing_level_data  : exception;

References:

globe_3d.ads:470:4 (declaration)

Missing_global_data

Missing_global_data : exception;

References:

globe_3d.ads:471:4 (declaration)

Missing_texture

Missing_texture : exception;

References:

globe_3d.ads:473:4 (declaration)
globe_3d-textures.adb:94:24 (reference)

Missing_object

Missing_object  : exception;

References:

globe_3d.ads:474:4 (declaration)

zero_normal

zero_normal : exception;

References:

globe_3d.ads:476:4 (declaration)
globe_3d.adb:63:30 (reference)

zero_summed_normal

zero_summed_normal : exception;

References:

globe_3d.ads:477:4 (declaration)
globe_3d.adb:261:22 (reference)
globe_3d.adb:297:18 (reference)
globe_3d.adb:298:33 (reference)

zero_averaged_normal

zero_averaged_normal : exception;

References:

globe_3d.ads:478:4 (declaration)

info_b_real1 (Real)

info_b_real1,
   info_b_real2 : Real := 123.0;

References:

globe_3d.ads:527:4 (declaration)

info_b_real2 (Real)

info_b_real2 : Real := 123.0;

References:

globe_3d.ads:528:4 (declaration)

info_b_vect (Vector_3D)

info_b_vect  : Vector_3D := (others => 123.0);

References:

globe_3d.ads:529:4 (declaration)

info_b_bool1 (Boolean)

info_b_bool1,
   info_b_bool2 : Boolean := False;

References:

globe_3d.ads:530:4 (declaration)

info_b_bool2 (Boolean)

info_b_bool2 : Boolean := False;

References:

globe_3d.ads:531:4 (declaration)

info_b_clip (Clipping_area)

info_b_clip  : Clipping_area := (0, 0, 0, 0);

References:

globe_3d.ads:532:4 (declaration)

info_b_pnt (Point_3D)

info_b_pnt   : array (0 .. 4) of Point_3D := (others => (others => 123.0));

References:

globe_3d.ads:533:4 (declaration)

info_b_ntl1 (Natural)

info_b_ntl1,
   info_b_ntl2,
   info_b_ntl3  : Natural := 0;

References:

globe_3d.ads:534:4 (declaration)

info_b_ntl2 (Natural)

info_b_ntl2,
   info_b_ntl3  : Natural := 0;

References:

globe_3d.ads:535:4 (declaration)
globe_3d.adb:762:13 (write reference)
globe_3d.adb:762:28 (reference)
globe_3d.adb:784:7 (write reference)

info_b_ntl3 (Natural)

info_b_ntl3  : Natural := 0;

References:

globe_3d.ads:536:4 (declaration)
globe_3d.adb:763:13 (write reference)
globe_3d.adb:763:55 (reference)
globe_3d.adb:785:7 (write reference)

info_b_str1 (Unbounded_String)

info_b_str1  : Ada.Strings.Unbounded.Unbounded_String :=
     Ada.Strings.Unbounded.Null_Unbounded_String;

References:

globe_3d.ads:537:4 (declaration)

level_data_name (private) (Unbounded_String)

level_data_name   : Ada.Strings.Unbounded.Unbounded_String :=
     Ada.Strings.Unbounded.To_Unbounded_String ("*undefined_level_data*");

References:

globe_3d.ads:572:4 (declaration)
globe_3d-textures.adb:83:34 (reference)
globe_3d-textures.adb:199:38 (reference)
globe_3d-textures.adb:242:26 (reference)
globe_3d.adb:922:7 (write reference)
Name of Zip archives containing the Level / Global data If an item is not found in the level data, it is searched in the global one

global_data_name (private) (Unbounded_String)

global_data_name  : Ada.Strings.Unbounded.Unbounded_String :=
     Ada.Strings.Unbounded.To_Unbounded_String ("*undefined_global_data*");

References:

globe_3d.ads:574:4 (declaration)
globe_3d-textures.adb:88:37 (reference)
globe_3d-textures.adb:200:38 (reference)
globe_3d-textures.adb:240:26 (reference)
globe_3d.adb:935:7 (write reference)

zif_level (private) (Zip.Zip_info)

zif_level, zif_global : Zip.Zip_info;

References:

globe_3d.ads:578:4 (declaration)
globe_3d-textures.adb:83:12 (reference)
globe_3d-textures.adb:199:15 (reference)
globe_3d.adb:918:25 (reference)
globe_3d.adb:919:22 (reference)
Corresponding zip file infos for quick search

zif_global (private) (Zip.Zip_info)

zif_global : Zip.Zip_info;

References:

globe_3d.ads:578:15 (declaration)
globe_3d-textures.adb:88:14 (reference)
globe_3d-textures.adb:200:15 (reference)
globe_3d.adb:931:25 (reference)
globe_3d.adb:932:22 (reference)
Corresponding zip file infos for quick search

Subprograms & Entries

Set_local_data_name

procedure Set_local_data_name  
(s: String);

References:

globe_3d.ads:91:14 (declaration)
globe_3d.adb:915:14 (body)
globe_3d.adb:926:8 (label)
globe_3d.ads:92:56 (reference)

Calls:

To_Unbounded_String defined at a-strunb.ads:94:13
Zip.Delete defined at zip.ads:92:13
Zip.Exists defined at zip.ads:250:12
Zip.Is_loaded defined at zip.ads:82:12
Set the name of Zip archives containing the data. If an item is not found in the level (local) data, it is searched in the global data. The idea is to set the global data once in the execution of the program, and change the local data upon context change (e.g., in a game, a change of level).

Set_level_data_name

procedure Set_level_data_name  
(s: String) renames Set_local_data_name;

References:

globe_3d.ads:92:14 (declaration)

Set_global_data_name

procedure Set_global_data_name 
(s: String);

References:

globe_3d.ads:93:14 (declaration)
globe_3d.adb:928:14 (body)
globe_3d.adb:939:8 (label)

Calls:

To_Unbounded_String defined at a-strunb.ads:94:13
Zip.Delete defined at zip.ads:92:13
Zip.Exists defined at zip.ads:250:12
Zip.Is_loaded defined at zip.ads:82:12

Destroy (abstract)

procedure Destroy        
(o: in out Visual) is abstract;

References:

globe_3d.ads:212:14 (declaration)
globe_3d.adb:115:7 (dispatching call)

Called by:

Free defined at globe_3d.ads:213:14

Free

procedure Free           
(o: in out p_Visual);

References:

globe_3d.ads:213:14 (declaration)
globe_3d.adb:110:14 (body)
globe_3d.adb:117:8 (label)
globe_3d.adb:796:10 (call)

Called by:

Destroy defined at globe_3d.ads:387:25

Calls:

Destroy defined at globe_3d.ads:212:14
GLOBE_3D.Free.Deallocate defined at globe_3d.adb:112:17
Unchecked_Deallocation defined at a-uncdea.ads:20:15

Pre_calculate (abstract)

procedure Pre_calculate  
(o: in out Visual) is abstract;

References:

globe_3d.ads:215:14 (declaration)

set_Alpha (abstract)

procedure set_Alpha      
(o: in out Visual;
Alpha: GL.Double) is abstract;

References:

globe_3d.ads:217:14 (declaration)
glut-windows.adb:436:13 (dispatching call)

is_Transparent (abstract)

function  is_Transparent 
(o: Visual) return Boolean is abstract;

References:

globe_3d.ads:220:14 (declaration)
globe_3d.adb:1103:16 (dispatching call)

Called by:

render defined at globe_3d.ads:243:14
returns 'True' if any part of the 'visual' is potentially transparent.

face_Count (abstract)

function face_Count 
(o: Visual) return Natural is abstract;

References:

globe_3d.ads:224:13 (declaration)

Bounds (abstract)

function Bounds     
(o: Visual) return GL.Geometry.Bounds_record is abstract;

References:

globe_3d.ads:225:13 (declaration)
globe_3d.adb:123:10 (dispatching call)
globe_3d.adb:123:40 (dispatching call)
globe_3d.adb:126:10 (dispatching call)
globe_3d.adb:126:40 (dispatching call)
globe_3d.adb:129:10 (dispatching call)
globe_3d.adb:129:40 (dispatching call)

skinned_Geometrys

function skinned_Geometrys 
(o: Visual) return GL.Skinned_Geometry.skinned_Geometrys;

References:

globe_3d.ads:227:13 (declaration)
globe_3d.adb:119:13 (body)
globe_3d.adb:1101:78 (dispatching call)
globe_3d.adb:1224:90 (dispatching call)

Called by:

render defined at globe_3d.ads:243:14
render defined at globe_3d.ads:243:14

Display (abstract)

procedure Display 
(o: in out Visual;
clip: Clipping_data) is abstract;

References:

globe_3d.ads:229:14 (declaration)
globe_3d.adb:1113:16 (dispatching call)
globe_3d.adb:1226:16 (dispatching call)

Called by:

render defined at globe_3d.ads:243:14
render defined at globe_3d.ads:243:14

Set_name

procedure Set_name 
(o: in out Visual'class;
new_name: String);
Give a new name (no need of space - filling) to the object

Get_name

function Get_name 
(o: Visual'class) return String;

References:

globe_3d.ads:235:13 (declaration)
globe_3d.adb:951:13 (body)
globe_3d.adb:955:8 (label)

Calls:

Trim defined at a-strfix.ads:195:13

Width

function Width  
(o: Visual'class) return Real;

References:

globe_3d.ads:237:13 (declaration)
globe_3d.adb:122:13 (body)

Height

function Height 
(o: Visual'class) return Real;

References:

globe_3d.ads:238:13 (declaration)
globe_3d.adb:125:13 (body)

Depth

function Depth  
(o: Visual'class) return Real;

References:

globe_3d.ads:239:13 (declaration)
globe_3d.adb:128:13 (body)

render

procedure render 
(the_Visuals: Visual_array;
the_Camera: Camera);

Calls:

Ada.Containers.Generic_Array_Sort defined at a-cgarso.ads:24:26
Display defined at globe_3d.ads:229:14
Errors.log defined at gl-errors.ads:21:14
Geometry.Draw defined at gl-geometry.ads:135:14
GL.BlendFunc defined at gl.ads:349:14
GL.Clear defined at gl.ads:3197:14
GL.CullFace defined at gl.ads:418:14
GL.Depth_Mask defined at gl.ads:3252:14
GL.Enable defined at gl.ads:704:14
GL.MatrixMode defined at gl.ads:1338:14
GL.PopMatrix defined at gl.ads:3280:14
GL.PushMatrix defined at gl.ads:3278:14
GL.Translate defined at gl.ads:3308:14
GL.Translate defined at gl.ads:3306:14
GLOBE_3D.render.< defined at globe_3d.adb:1125:20
GLOBE_3D.render.< defined at globe_3d.adb:1193:20
GLOBE_3D.render.sort defined at globe_3d.adb:1139:20
GLOBE_3D.render.sort defined at globe_3d.adb:1201:20
is_Transparent defined at globe_3d.ads:220:14
Math.* defined at globe_3d-math.ads:52:13
Math.- defined at globe_3d-math.ads:19:13
Math.Multiply_GL_Matrix defined at globe_3d-math.ads:77:13
Math.Set_GL_Matrix defined at globe_3d-math.ads:80:13
skinned_Geometrys defined at globe_3d.ads:227:13
Skins.Enable defined at gl-skins.ads:42:14
Skins.Enable defined at gl-skins.ads:24:14
clears the color buffer and renders each of the visuals.

empty_map

function empty_map return Map_of_Visuals;

References:

globe_3d.ads:254:13 (declaration)
globe_3d.adb:1269:13 (body)
globe_3d.adb:1274:8 (label)
globe_3d.adb:1293:31 (call)

Called by:

Map_of defined at globe_3d.ads:258:13
One can begin with empty_map, then Add Visuals one per one:

Add

procedure Add 
(to_map: in out Map_of_Visuals;
what: p_Visual);

References:

globe_3d.ads:255:14 (declaration)
globe_3d.adb:1276:14 (body)
globe_3d.adb:1290:8 (label)
globe_3d.adb:1297:10 (call)

Called by:

Map_of defined at globe_3d.ads:258:13

Calls:

Insert defined at a-cohama.ads:176:14
To_Unbounded_String defined at a-strunb.ads:94:13

Map_of

function Map_of 
(va: Visual_array) return Map_of_Visuals;

References:

globe_3d.ads:258:13 (declaration)
globe_3d.adb:1292:13 (body)
globe_3d.adb:1300:8 (label)

Calls:

Add defined at globe_3d.ads:255:14
empty_map defined at globe_3d.ads:254:13
One can also get a map of an array of visuals in one go:

Destroy

overriding procedure Destroy        
(o: in out Object_3D);

References:

globe_3d.ads:387:25 (declaration)
globe_3d.adb:790:25 (body)
globe_3d.adb:799:8 (label)

Calls:

Free defined at globe_3d.ads:213:14

set_Alpha

overriding procedure set_Alpha      
(o: in out Object_3D;
Alpha: GL.Double);

References:

globe_3d.ads:388:25 (declaration)
globe_3d.adb:801:25 (body)
globe_3d.adb:807:8 (label)

is_Transparent

overriding function  is_Transparent 
(o: Object_3D) return Boolean;

References:

globe_3d.ads:389:25 (declaration)
globe_3d.adb:809:24 (body)
globe_3d.adb:813:8 (label)

face_Count

overriding function  face_Count     
(o: Object_3D) return Natural;

References:

globe_3d.ads:390:25 (declaration)
globe_3d.adb:815:24 (body)
globe_3d.adb:819:8 (label)

Bounds

overriding function  Bounds         
(o: Object_3D) return GL.Geometry.Bounds_record;

References:

globe_3d.ads:391:25 (declaration)
globe_3d.adb:821:24 (body)
globe_3d.adb:825:8 (label)

Check_object

procedure Check_object 
(o: Object_3D);

References:

globe_3d.ads:393:14 (declaration)
globe_3d.adb:137:14 (body)
globe_3d.adb:188:8 (label)
globe_3d.adb:278:10 (call)

Called by:

Pre_calculate defined at globe_3d.ads:424:25
Check object for invalid or duplicate vertices

Texture_name_hint

procedure Texture_name_hint 
( o: in out Object_3D;
face: Positive;
name: String );

References:

globe_3d.ads:396:14 (declaration)
globe_3d.adb:1025:14 (body)
globe_3d.adb:1036:8 (label)
Indicate a texture's name that can be resolved later by Rebuild_links

Portal_name_hint

procedure Portal_name_hint 
( o: in out Object_3D;
face: Positive;
name: String );

References:

globe_3d.ads:403:14 (declaration)
globe_3d.adb:1038:14 (body)
globe_3d.adb:1049:8 (label)
Indicate a portal's name that can be resolved later by Rebuild_links

Rebuild_links

procedure Rebuild_links 
( o: in out Object_3D'Class;
-- object to be relinked neighbouring: Map_of_Visuals;
-- neighbourhood tolerant_obj: Boolean;
-- tolerant on missing objects tolerant_tex: Boolean -- tolerant on missing textures );

References:

globe_3d.ads:410:14 (declaration)
globe_3d.adb:957:14 (body)
globe_3d.adb:1023:8 (label)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:93:14
Element defined at a-cohama.ads:282:13
Textures.Texture_ID defined at globe_3d-textures.ads:71:12
To_Unbounded_String defined at a-strunb.ads:94:13
Trim defined at a-strfix.ads:195:13
Does nothing when texture or object name is empty

Pre_calculate

overriding procedure Pre_calculate 
(o: in out Object_3D);

References:

globe_3d.ads:424:25 (declaration)
globe_3d.adb:194:25 (body)
globe_3d.adb:369:8 (label)
globe_3d.adb:594:10 (call)
globe_3d.adb:719:13 (dispatching call)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:93:14
Ada.Numerics.Generic_Elementary_Functions.Sqrt defined at a-ngelfu.ads:42:13
Check_object defined at globe_3d.ads:393:14
GLOBE_3D.Pre_calculate.Calculate_face_invariants defined at globe_3d.adb:201:17
Is_to_blend defined at globe_3d.ads:590:13
Is_to_blend defined at globe_3d.ads:587:13
Math.* defined at globe_3d-math.ads:7:13
Math.+ defined at globe_3d-math.ads:13:13
Math.Almost_zero defined at globe_3d-math.ads:83:12
Math.Norm defined at globe_3d-math.ads:28:12
Math.Norm2 defined at globe_3d-math.ads:31:12
Textures.Valid_texture_ID defined at globe_3d-textures.ads:86:12
Trim defined at a-strfix.ads:195:13
Done automatically at first display, but sometimes it's better to do it before : operation can be long!

Display

overriding procedure Display 
( o: in out Object_3D;
clip: Clipping_data );

References:

globe_3d.ads:432:25 (declaration)
globe_3d.adb:664:25 (body)
globe_3d.adb:788:8 (label)
graphics_opengl.adb:154:16 (dispatching call)
- "out" for o because object might be pre_calculated if not yet - clip: allows to cull rendering of neighbouring objects that are not visible from current point of view; also avoids infinite recursion in case of mutually connected objects. - neighbouring objects being drawn more than once, e.g. two parts visible through two portals, is admissible with adequate clipping.

Display_one

procedure Display_one 
(o: in out Object_3D);

References:

globe_3d.ads:448:14 (declaration)
globe_3d.adb:401:14 (body)
globe_3d.adb:662:8 (label)
globe_3d.adb:764:13 (dispatching call)
Display only this object and not connected objects "out" for o because object might be pre_calculated if not yet

Enable (abstract)

procedure Enable  
(Self: in out Window) is abstract;

References:

globe_3d.ads:462:14 (declaration)

Freshen (abstract)

procedure Freshen 
(Self: in out Window;
time_Step: GLOBE_3D.Real;
Extras: GLOBE_3D.Visual_array := GLOBE_3D.null_Visuals) is abstract;

References:

globe_3d.ads:463:14 (declaration)

Switch_lights

procedure Switch_lights 
(on: Boolean);

References:

globe_3d.ads:494:14 (declaration)
globe_3d.adb:846:14 (body)
globe_3d.adb:852:8 (label)
glut-windows.adb:96:11 (call)

Calls:

Switch_light defined at globe_3d.ads:495:14

Reverse_light_switch

procedure Reverse_light_switch 
(which: Light_ident);

References:

globe_3d.ads:497:14 (declaration)
globe_3d.adb:878:14 (body)
globe_3d.adb:882:8 (label)
glut-windows.adb:360:13 (call)

Is_light_switched

function Is_light_switched 
(which: Light_ident) return Boolean;

Image

function Image 
(r: Real) return String;

Calls:

Put defined at a-tiflio.ads:78:14

Angles_modulo_360

procedure Angles_modulo_360 
(v: in out Vector_3D);

References:

globe_3d.ads:509:14 (declaration)
globe_3d.adb:888:14 (body)
globe_3d.adb:896:8 (label)

Dispose

procedure Dispose is new Ada.Unchecked_Deallocation 
(Point_3D_array, p_Point_3D_array);

References:

globe_3d.ads:515:14 (declaration)

Dispose

procedure Dispose is new Ada.Unchecked_Deallocation 
(Face_array, p_Face_array);

References:

globe_3d.ads:518:14 (declaration)

Load_if_needed (private)

procedure Load_if_needed 
(zif: in out Zip.Zip_info;
name: String);

Calls:

To_Lower defined at a-chahan.ads:66:13
Zip.Is_loaded defined at zip.ads:82:12
Zip.Load defined at zip.ads:62:14

Is_to_blend (private)

function Is_to_blend 
(m: GL.Double) return Boolean;

References:

globe_3d.ads:587:13 (declaration)
globe_3d.adb:82:13 (body)
globe_3d.adb:291:49 (call)

Called by:

Pre_calculate defined at globe_3d.ads:424:25
blending support

Is_to_blend (private)

function Is_to_blend 
(m: GL.C_Float) return Boolean;

References:

globe_3d.ads:588:13 (declaration)
globe_3d.adb:84:13 (body)
globe_3d.adb:86:75 (call)

Is_to_blend (private)

function Is_to_blend 
(m: GL.Material_Float_vector) return Boolean;

References:

globe_3d.ads:589:13 (declaration)
globe_3d.adb:86:13 (body)
globe_3d.adb:89:7 (call)
globe_3d.adb:90:7 (call)
globe_3d.adb:91:7 (call)

Is_to_blend (private)

function Is_to_blend 
(m: GL.Materials.Material_type) return Boolean;

References:

globe_3d.ads:590:13 (declaration)
globe_3d.adb:88:13 (body)
globe_3d.adb:289:49 (call)

Called by:

Pre_calculate defined at globe_3d.ads:424:25