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 then the original Display face routine yet needs to be executed only once. Uwe R. Zimmer, July 2011

Packages

REF (new Ada.Numerics.Generic_Elementary_Functions)

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:144:9 (declaration)
globe_3d.adb:1077:71 (reference)
globe_3d.ads:180:32 (reference)
globe_3d.ads:241:71 (reference)
globe_3d.ads:468:36 (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:186:9 (declaration)
globe_3d.adb:142:62 (reference)
globe_3d.adb:148:38 (reference)
globe_3d.adb:154:26 (reference)
globe_3d.adb:160:27 (reference)
globe_3d.adb:167:26 (reference)
globe_3d.adb:948:32 (reference)
globe_3d.adb:957:24 (reference)
globe_3d.adb:1108:32 (reference)
globe_3d.adb:1230:35 (reference)
globe_3d.ads:198:32 (reference)
globe_3d.ads:201:45 (reference)
globe_3d.ads:204:45 (reference)
globe_3d.ads:206:45 (reference)
globe_3d.ads:209:45 (reference)
globe_3d.ads:214:32 (reference)
globe_3d.ads:215:32 (reference)
globe_3d.ads:217:39 (reference)
globe_3d.ads:219:43 (reference)
globe_3d.ads:224:34 (reference)
globe_3d.ads:227:29 (reference)
globe_3d.ads:231:27 (reference)
globe_3d.ads:232:27 (reference)
globe_3d.ads:233:27 (reference)
globe_3d.ads:377:59 (reference)

Window (abstract)

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

Immediate Children:

Primitive operations:

References:

globe_3d.ads:466:8 (declaration)
globe_3d.ads:472:32 (reference)
globe_3d.ads:476:41 (reference)
globe_3d.ads:477:41 (reference)
glut-windows.adb:665:51 (reference)
glut-windows.ads:32:32 (reference)
glut-windows.ads:112:32 (reference)

Types

Ident

subtype Ident is String(1..40);

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:84:11 (declaration)
globe_3d-math.adb:9:19 (reference)
globe_3d-math.adb:14:33 (reference)
globe_3d-math.adb:34:39 (reference)
globe_3d-math.adb:46:38 (reference)
globe_3d-math.adb:51:39 (reference)
globe_3d-math.adb:65:65 (reference)
globe_3d-math.adb:69:27 (reference)
globe_3d-math.adb:78:34 (reference)
globe_3d-math.adb:78:47 (reference)
globe_3d-math.adb:85:34 (reference)
globe_3d-math.adb:85:47 (reference)
globe_3d-math.adb:97:8 (reference)
globe_3d-math.adb:114:8 (reference)
globe_3d-math.adb:131:8 (reference)
globe_3d-math.adb:153:8 (reference)
globe_3d-math.adb:192:37 (reference)
globe_3d-math.adb:203:35 (reference)
globe_3d-math.adb:204:33 (reference)
globe_3d-math.adb:279:21 (reference)
globe_3d-math.adb:316:49 (reference)
globe_3d-math.adb:356:27 (reference)
globe_3d-math.adb:358:22 (reference)
globe_3d-math.ads:7:19 (reference)
globe_3d-math.ads:10:33 (reference)
globe_3d-math.ads:22:39 (reference)
globe_3d-math.ads:28:38 (reference)
globe_3d-math.ads:31:39 (reference)
globe_3d-math.ads:40:66 (reference)
globe_3d-math.ads:45:35 (reference)
globe_3d-math.ads:45:48 (reference)
globe_3d-math.ads:46:35 (reference)
globe_3d-math.ads:46:48 (reference)
globe_3d-math.ads:62:37 (reference)
globe_3d-math.ads:64:35 (reference)
globe_3d-math.ads:87:27 (reference)
globe_3d-stars_sky.adb:29:10 (reference)
globe_3d-stars_sky.adb:32:26 (reference)
globe_3d-stars_sky.adb:33:10 (reference)
globe_3d-stars_sky.adb:35:11 (reference)
globe_3d-stars_sky.adb:48:13 (reference)
globe_3d-stars_sky.adb:50:18 (reference)
globe_3d-stars_sky.adb:51:18 (reference)
globe_3d-stars_sky.adb:52:18 (reference)
globe_3d-stars_sky.ads:4:22 (reference)
globe_3d.adb:26:22 (reference)
globe_3d.adb:33:14 (reference)
globe_3d.adb:154:47 (reference)
globe_3d.adb:160:48 (reference)
globe_3d.adb:167:47 (reference)
globe_3d.adb:238:16 (reference)
globe_3d.adb:246:19 (reference)
globe_3d.adb:264:18 (reference)
globe_3d.adb:265:18 (reference)
globe_3d.adb:311:13 (reference)
globe_3d.adb:339:19 (reference)
globe_3d.adb:341:36 (reference)
globe_3d.adb:341:78 (reference)
globe_3d.adb:342:36 (reference)
globe_3d.adb:342:78 (reference)
globe_3d.adb:343:36 (reference)
globe_3d.adb:343:78 (reference)
globe_3d.adb:347:38 (reference)
globe_3d.adb:349:38 (reference)
globe_3d.adb:350:38 (reference)
globe_3d.adb:351:38 (reference)
globe_3d.adb:352:38 (reference)
globe_3d.adb:353:38 (reference)
globe_3d.adb:354:38 (reference)
globe_3d.adb:607:18 (reference)
globe_3d.adb:705:13 (reference)
globe_3d.ads:85:64 (reference)
globe_3d.ads:86:43 (reference)
globe_3d.ads:91:37 (reference)
globe_3d.ads:97:77 (reference)
globe_3d.ads:131:23 (reference)
globe_3d.ads:139:13 (reference)
globe_3d.ads:164:32 (reference)
globe_3d.ads:165:32 (reference)
globe_3d.ads:167:32 (reference)
globe_3d.ads:168:32 (reference)
globe_3d.ads:169:32 (reference)
globe_3d.ads:171:32 (reference)
globe_3d.ads:172:32 (reference)
globe_3d.ads:173:32 (reference)
globe_3d.ads:231:48 (reference)
globe_3d.ads:232:48 (reference)
globe_3d.ads:233:48 (reference)
globe_3d.ads:478:50 (reference)
globe_3d.ads:520:22 (reference)
globe_3d.ads:543:17 (reference)
glut-windows.adb:206:34 (reference)
glut-windows.adb:207:34 (reference)
glut-windows.adb:278:46 (reference)
glut-windows.adb:425:54 (reference)
glut-windows.adb:434:28 (reference)
glut-windows.adb:484:44 (reference)
glut-windows.adb:490:38 (reference)
glut-windows.adb:491:38 (reference)
glut-windows.adb:493:19 (reference)
glut-windows.adb:494:19 (reference)
glut-windows.adb:494:35 (reference)
glut-windows.adb:761:46 (reference)
glut-windows.ads:48:51 (reference)
glut-windows.ads:87:53 (reference)
glut-windows.ads:138:31 (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:38:47 (reference)
arrow_p.adb:137:29 (reference)
arrow_p.ads:11:29 (reference)
cube_p.adb:66:45 (reference)
cube_p.ads:11:29 (reference)
duck_p.adb:432:29 (reference)
duck_p.ads:11:29 (reference)
plane_p.adb:8344:29 (reference)
plane_p.ads:11:29 (reference)
spaceship_p.adb:617:29 (reference)
spaceship_p.ads:11:29 (reference)
sphere_p.adb:136:29 (reference)
sphere_p.ads:11:29 (reference)

Vector_3D

subtype Vector_3D is GL.Double_vector_3D;

References:

globe_3d.ads:88:11 (declaration)
globe_3d-math.adb:9:28 (reference)
globe_3d-math.adb:9:46 (reference)
globe_3d-math.adb:14:19 (reference)
globe_3d-math.adb:14:46 (reference)
globe_3d-math.adb:19:21 (reference)
globe_3d-math.adb:19:39 (reference)
globe_3d-math.adb:24:19 (reference)
globe_3d-math.adb:24:37 (reference)
globe_3d-math.adb:29:21 (reference)
globe_3d-math.adb:29:39 (reference)
globe_3d-math.adb:34:21 (reference)
globe_3d-math.adb:39:21 (reference)
globe_3d-math.adb:39:39 (reference)
globe_3d-math.adb:46:20 (reference)
globe_3d-math.adb:51:21 (reference)
globe_3d-math.adb:56:26 (reference)
globe_3d-math.adb:56:44 (reference)
globe_3d-math.adb:65:47 (reference)
globe_3d-math.adb:67:27 (reference)
globe_3d-math.adb:68:27 (reference)
globe_3d-math.adb:113:33 (reference)
globe_3d-math.adb:113:51 (reference)
globe_3d-math.adb:115:9 (reference)
globe_3d-math.adb:130:33 (reference)
globe_3d-math.adb:130:51 (reference)
globe_3d-math.adb:152:33 (reference)
globe_3d-math.adb:229:28 (reference)
globe_3d-math.adb:234:31 (reference)
globe_3d-math.adb:235:17 (reference)
globe_3d-math.adb:265:39 (reference)
globe_3d-math.adb:267:25 (reference)
globe_3d-math.adb:268:25 (reference)
globe_3d-math.adb:269:25 (reference)
globe_3d-math.ads:7:28 (reference)
globe_3d-math.ads:7:46 (reference)
globe_3d-math.ads:10:19 (reference)
globe_3d-math.ads:10:46 (reference)
globe_3d-math.ads:13:21 (reference)
globe_3d-math.ads:13:39 (reference)
globe_3d-math.ads:16:19 (reference)
globe_3d-math.ads:16:37 (reference)
globe_3d-math.ads:19:21 (reference)
globe_3d-math.ads:19:39 (reference)
globe_3d-math.ads:22:21 (reference)
globe_3d-math.ads:25:21 (reference)
globe_3d-math.ads:25:39 (reference)
globe_3d-math.ads:28:20 (reference)
globe_3d-math.ads:31:21 (reference)
globe_3d-math.ads:34:26 (reference)
globe_3d-math.ads:34:44 (reference)
globe_3d-math.ads:40:48 (reference)
globe_3d-math.ads:55:33 (reference)
globe_3d-math.ads:55:51 (reference)
globe_3d-math.ads:56:33 (reference)
globe_3d-math.ads:56:51 (reference)
globe_3d-math.ads:57:33 (reference)
globe_3d-math.ads:66:28 (reference)
globe_3d-math.ads:71:31 (reference)
globe_3d-math.ads:73:40 (reference)
globe_3d-stars_sky.adb:28:8 (reference)
globe_3d.adb:56:55 (reference)
globe_3d.adb:67:18 (reference)
globe_3d.adb:237:8 (reference)
globe_3d.adb:402:35 (reference)
globe_3d.adb:404:14 (reference)
globe_3d.adb:593:10 (reference)
globe_3d.adb:706:23 (reference)
globe_3d.adb:904:42 (reference)
globe_3d.ads:89:35 (reference)
globe_3d.ads:95:23 (reference)
globe_3d.ads:108:54 (reference)
globe_3d.ads:130:23 (reference)
globe_3d.ads:151:32 (reference)
globe_3d.ads:152:32 (reference)
globe_3d.ads:161:32 (reference)
globe_3d.ads:524:42 (reference)
globe_3d.ads:544:17 (reference)
globe_3d.ads:567:20 (reference)
graphics_opengl.adb:48:66 (reference)
graphics_opengl.adb:50:37 (reference)
graphics_opengl.adb:106:55 (reference)
graphics_opengl.adb:108:55 (reference)
graphics_opengl.adb:168:50 (reference)

p_Vector_3D

type  p_Vector_3D is access all Vector_3D;

References:

globe_3d.ads:89:9 (declaration)

Vector_4D

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

References:

globe_3d.ads:91:8 (declaration)
globe_3d-math.adb:152:51 (reference)
globe_3d-math.adb:155:23 (reference)
globe_3d-math.adb:156:14 (reference)
globe_3d-math.ads:57:51 (reference)

Point_3D

subtype Point_3D is Vector_3D;

References:

globe_3d.ads:95:11 (declaration)
globe_3d-portals.adb:19:18 (reference)
globe_3d-stars_sky.adb:9:31 (reference)
globe_3d.adb:36:23 (reference)
globe_3d.adb:402:22 (reference)
globe_3d.ads:106:62 (reference)
globe_3d.ads:129:31 (reference)
globe_3d.ads:191:35 (reference)
globe_3d.ads:192:35 (reference)
globe_3d.ads:522:23 (reference)
globe_3d.ads:548:32 (reference)
graphics_configuration.ads:38:52 (reference)
arrow_p.adb:138:29 (reference)
arrow_p.ads:12:29 (reference)
cube_p.adb:67:45 (reference)
cube_p.ads:12:29 (reference)
duck_p.adb:433:29 (reference)
duck_p.ads:12:29 (reference)
plane_p.adb:8345:29 (reference)
plane_p.ads:12:29 (reference)
spaceship_p.adb:618:29 (reference)
spaceship_p.ads:12:29 (reference)
sphere_p.adb:137:29 (reference)
sphere_p.ads:12:29 (reference)

Matrix

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

References:

globe_3d.ads:97:8 (declaration)
globe_3d-math.adb:248:34 (reference)
globe_3d-math.adb:249:85 (reference)
globe_3d-math.adb:251:23 (reference)
globe_3d-math.ads:93:34 (reference)
globe_3d-math.ads:94:85 (reference)
globe_3d.ads:98:25 (reference)
globe_3d.ads:99:25 (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:106:8 (declaration)
globe_3d.ads:107:35 (reference)
globe_3d.ads:378:24 (reference)
globe_3d.ads:531:37 (reference)
arrow_p.adb:22:19 (reference)
cube_p.adb:32:22 (reference)
duck_p.adb:22:19 (reference)
plane_p.adb:22:19 (reference)
spaceship_p.adb:22:19 (reference)
sphere_p.adb:22:19 (reference)

p_Point_3D_array

type p_Point_3D_array is access Point_3D_array;

References:

globe_3d.ads:107:8 (declaration)
globe_3d.ads:531:53 (reference)

Vector_3D_array

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

References:

globe_3d.ads:108:8 (declaration)
globe_3d.ads:379:24 (reference)

Index_array

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

References:

globe_3d.ads:110:8 (declaration)
globe_3d.ads:288:26 (reference)
globe_3d.ads:290:26 (reference)

Rectangle

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

Clipping_area

subtype Clipping_area is Rectangle;

References:

globe_3d.ads:120:11 (declaration)
globe_3d.adb:699:29 (reference)
globe_3d.adb:707:55 (reference)
globe_3d.ads:132:23 (reference)
globe_3d.ads:547:17 (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:128:8 (declaration)
globe_3d.adb:691:25 (reference)
globe_3d.ads:146:32 (reference)
globe_3d.ads:220:43 (reference)
globe_3d.ads:444:25 (reference)

p_Camera

type p_Camera is access all Camera'Class;

References:

globe_3d.ads:180:9 (declaration)

p_Visual

type p_Visual is access all Visual'Class;

References:

globe_3d.ads:198:9 (declaration)
globe_3d.adb:140:34 (reference)
globe_3d.adb:142:76 (reference)
globe_3d.adb:821:12 (reference)
globe_3d.adb:1064:24 (reference)
globe_3d.adb:1153:27 (reference)
globe_3d.adb:1201:43 (reference)
globe_3d.adb:1209:76 (reference)
globe_3d.adb:1285:56 (reference)
globe_3d.ads:199:54 (reference)
globe_3d.ads:202:45 (reference)
globe_3d.ads:254:56 (reference)
globe_3d.ads:615:26 (reference)
glut-windows.adb:796:68 (reference)
glut-windows.adb:806:68 (reference)
glut-windows.ads:57:68 (reference)
glut-windows.ads:58:68 (reference)

Visual_array

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

References:

globe_3d.ads:199:9 (declaration)
globe_3d.adb:1077:39 (reference)
globe_3d.adb:1081:36 (reference)
globe_3d.adb:1210:76 (reference)
globe_3d.adb:1301:25 (reference)
globe_3d.ads:237:28 (reference)
globe_3d.ads:241:39 (reference)
globe_3d.ads:257:25 (reference)
globe_3d.ads:479:50 (reference)
glut-windows.adb:349:56 (reference)
glut-windows.adb:367:52 (reference)
glut-windows.adb:426:59 (reference)
glut-windows.adb:762:51 (reference)
glut-windows.ads:49:51 (reference)
glut-windows.ads:117:34 (reference)

Map_of_Visuals

type Map_of_Visuals is private;

References:

globe_3d.ads:251:9 (declaration)
globe_3d.adb:964:26 (reference)
globe_3d.adb:1278:30 (reference)
globe_3d.adb:1279:13 (reference)
globe_3d.adb:1285:34 (reference)
globe_3d.adb:1301:47 (reference)
globe_3d.adb:1302:11 (reference)
globe_3d.ads:253:30 (reference)
globe_3d.ads:254:34 (reference)
globe_3d.ads:257:47 (reference)
globe_3d.ads:421:26 (reference)
globe_3d.ads:619:8 (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:262:8 (declaration)
globe_3d-portals.adb:56:18 (reference)
globe_3d-portals.ads:8:18 (reference)
globe_3d.adb:54:55 (reference)
globe_3d.adb:179:29 (reference)
globe_3d.adb:234:37 (reference)
globe_3d.adb:429:35 (reference)
globe_3d.adb:690:25 (reference)
globe_3d.adb:698:29 (reference)
globe_3d.adb:800:43 (reference)
globe_3d.adb:817:33 (reference)
globe_3d.adb:826:33 (reference)
globe_3d.adb:833:33 (reference)
globe_3d.adb:838:29 (reference)
globe_3d.adb:843:26 (reference)
globe_3d.adb:963:26 (reference)
globe_3d.adb:1031:18 (reference)
globe_3d.adb:1043:18 (reference)
globe_3d.ads:263:34 (reference)
globe_3d.ads:377:9 (full declaration)
globe_3d.ads:394:40 (reference)
globe_3d.ads:395:40 (reference)
globe_3d.ads:396:36 (reference)
globe_3d.ads:397:36 (reference)
globe_3d.ads:398:36 (reference)
globe_3d.ads:401:29 (reference)
globe_3d.ads:406:18 (reference)
globe_3d.ads:413:18 (reference)
globe_3d.ads:420:26 (reference)
globe_3d.ads:433:37 (reference)
globe_3d.ads:443:25 (reference)
globe_3d.ads:458:35 (reference)
arrow_p.adb:144:11 (reference)
cube_p.adb:73:13 (reference)
duck_p.adb:439:11 (reference)
plane_p.adb:8351:11 (reference)
spaceship_p.adb:624:11 (reference)
sphere_p.adb:143:11 (reference)

p_Object_3D

type p_Object_3D is access all Object_3D'Class;

References:

globe_3d.ads:263:8 (declaration)
globe_3d.adb:1001:34 (reference)
globe_3d.ads:302:21 (reference)
globe_3d.ads:352:11 (reference)
globe_3d.ads:356:55 (reference)
graphics_opengl.adb:157:43 (reference)
graphics_opengl.adb:167:50 (reference)
graphics_opengl.adb:176:43 (reference)
graphics_opengl.ads:18:50 (reference)
models.adb:17:48 (reference)
models.ads:23:94 (reference)
models.ads:24:94 (reference)
arrow_p.adb:136:29 (reference)
arrow_p.ads:10:29 (reference)
cube_p.adb:65:45 (reference)
cube_p.ads:10:29 (reference)
duck_p.adb:431:29 (reference)
duck_p.ads:10:29 (reference)
plane_p.adb:8343:29 (reference)
plane_p.ads:10:29 (reference)
spaceship_p.adb:616:29 (reference)
spaceship_p.ads:10:29 (reference)
sphere_p.adb:135:29 (reference)
sphere_p.ads:10:29 (reference)

Skin_type

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

References:

globe_3d.ads:270:8 (declaration)
globe_3d.adb:377:25 (reference)
globe_3d.ads:279:29 (reference)
globe_3d.ads:305:21 (reference)

Set_of_Skin

type Set_of_Skin is array(Skin_Type) of Boolean;

References:

globe_3d.ads:279:8 (declaration)
globe_3d.ads:281:25 (reference)

Idx_3_array

subtype Idx_3_array is Index_array(1..3);

References:

globe_3d.ads:288:11 (declaration)

Idx_4_array

subtype Idx_4_array is Index_array(1..4);

References:

globe_3d.ads:290:11 (declaration)
globe_3d.ads:291:57 (reference)
globe_3d.ads:298:21 (reference)
globe_3d.ads:560:20 (reference)

Idx_4_array_array

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

References:

globe_3d.ads:291:8 (declaration)
arrow_p.adb:82:17 (reference)
cube_p.adb:47:20 (reference)
duck_p.adb:229:17 (reference)
plane_p.adb:4083:17 (reference)
spaceship_p.adb:321:17 (reference)
sphere_p.adb:75:17 (reference)

Map_idx_pair

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

References:

globe_3d.ads:293:8 (declaration)
globe_3d.ads:294:57 (reference)

Map_idx_pair_array

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

References:

globe_3d.ads:294:8 (declaration)
globe_3d.ads:295:35 (reference)

Map_idx_pair_4_array

subtype Map_idx_pair_4_array is Map_idx_pair_array(1..4);

References:

globe_3d.ads:295:11 (declaration)
globe_3d.ads:333:21 (reference)
globe_3d.ads:564:20 (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:297:8 (declaration)
globe_3d.adb:241:15 (reference)
globe_3d.adb:443:57 (reference)
globe_3d.adb:445:33 (reference)
globe_3d.adb:453:57 (reference)
globe_3d.ads:336:57 (reference)
arrow_p.adb:141:14 (reference)
cube_p.adb:70:16 (reference)
duck_p.adb:436:14 (reference)
plane_p.adb:8348:14 (reference)
spaceship_p.adb:621:14 (reference)
sphere_p.adb:140:14 (reference)

Face_array

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

References:

globe_3d.ads:336:8 (declaration)
globe_3d.ads:337:31 (reference)
globe_3d.ads:380:24 (reference)
globe_3d.ads:534:37 (reference)

p_Face_array

type p_Face_array is access Face_array;

References:

globe_3d.ads:337:8 (declaration)
globe_3d.ads:534:49 (reference)

Edge_count

subtype Edge_count is Positive range 3..4;

References:

globe_3d.ads:339:11 (declaration)
globe_3d.adb:256:15 (reference)
globe_3d.ads:563:20 (reference)

Face_invariant_type

type Face_invariant_type is private;

References:

globe_3d.ads:343:8 (declaration)
globe_3d.adb:242:15 (reference)
globe_3d.adb:443:79 (reference)
globe_3d.adb:446:33 (reference)
globe_3d.adb:453:79 (reference)
globe_3d.ads:345:59 (reference)
globe_3d.ads:559:8 (full declaration)

Face_invariant_array

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

References:

globe_3d.ads:345:8 (declaration)
globe_3d.ads:388:24 (reference)

Object_3D_list

type Object_3D_list;

References:

globe_3d.ads:349:8 (declaration)
globe_3d.ads:350:35 (reference)
globe_3d.ads:351:8 (full declaration)

p_Object_3D_list

type p_Object_3D_list is access Object_3D_list;

References:

globe_3d.ads:350:8 (declaration)
globe_3d.adb:818:9 (reference)
globe_3d.ads:353:11 (reference)
globe_3d.ads:381:24 (reference)

Object_3D_array

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

References:

globe_3d.ads:356:8 (declaration)
globe_3d.ads:357:36 (reference)

p_Object_3D_array

type p_Object_3D_array is access Object_3D_array;

References:

globe_3d.ads:357:8 (declaration)

List_Cases

type List_Cases  is (No_List, Generate_List, Is_List);

References:

globe_3d.ads:364:9 (declaration)
globe_3d.ads:385:24 (reference)

List_Ids

subtype List_Ids is Positive;

References:

globe_3d.ads:365:12 (declaration)
globe_3d.ads:387:24 (reference)

p_Window

type p_Window is access all Window'Class;

References:

globe_3d.ads:472:9 (declaration)
globe_3d.ads:472:74 (reference)
glut-windows.adb:55:84 (reference)
glut-windows.adb:641:69 (reference)

Light_count

subtype Light_count is Natural range 0..8;

References:

globe_3d.ads:499:11 (declaration)
globe_3d.ads:501:26 (reference)
globe_3d.ads:501:47 (reference)
GL supports up to 8 sources.

Light_ident

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

References:

globe_3d.ads:501:11 (declaration)
globe_3d.adb:853:25 (reference)
globe_3d.adb:855:27 (reference)
globe_3d.adb:869:14 (reference)
globe_3d.adb:874:29 (reference)
globe_3d.adb:879:33 (reference)
globe_3d.adb:890:37 (reference)
globe_3d.adb:895:41 (reference)
globe_3d.ads:507:27 (reference)
globe_3d.ads:510:33 (reference)
globe_3d.ads:512:41 (reference)
globe_3d.ads:514:37 (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:503:8 (declaration)
globe_3d.adb:855:44 (reference)
globe_3d.ads:507:44 (reference)
glut-windows.adb:95:21 (reference)
glut-windows.ads:129:37 (reference)
graphics_structures.ads:53:59 (reference)

p_String (private)

type p_String is access String;

References:

globe_3d.ads:557:8 (declaration)

Constants & Global variables

empty (Ident)

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

References:

globe_3d.ads:71:3 (declaration)
globe_3d-textures.adb:19:28 (reference)
globe_3d-textures.adb:146:19 (reference)
globe_3d.adb:953:12 (reference)
globe_3d.adb:974:46 (reference)
globe_3d.adb:990:46 (reference)
globe_3d.adb:1038:43 (reference)
globe_3d.adb:1050:43 (reference)
globe_3d.ads:569:28 (reference)
globe_3d.ads:574:28 (reference)
for naming things

null_image (Image_ID)

null_image: constant Image_ID:= -1;

References:

globe_3d.ads:82:3 (declaration)
globe_3d-textures.adb:46:7 (reference)
globe_3d-textures.adb:100:18 (reference)
globe_3d-textures.adb:125:14 (reference)
globe_3d.adb:982:35 (reference)
globe_3d.ads:319:32 (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:101:3 (declaration)
globe_3d.ads:150:45 (reference)
globe_3d.ads:193:48 (reference)
glut-windows.adb:415:52 (reference)
graphics_setup.adb:121:44 (reference)

fairly_Far

fairly_Far                  : constant := 50_000.0;

References:

globe_3d.ads:141:4 (declaration)
globe_3d.ads:171:41 (reference)

default_field_of_view_Angle

default_field_of_view_Angle : constant :=     55.0;

References:

globe_3d.ads:142:4 (declaration)
globe_3d.ads:164:41 (reference)

null_Visuals (Visual_array)

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

References:

globe_3d.ads:237:4 (declaration)
globe_3d.ads:479:75 (reference)
glut-windows.adb:349:81 (reference)
glut-windows.adb:367:77 (reference)
glut-windows.adb:426:84 (reference)
glut-windows.adb:762:76 (reference)
glut-windows.ads:49:76 (reference)

Duplicate_name

Duplicate_name: exception;

References:

globe_3d.ads:255:4 (declaration)
globe_3d-textures.adb:177:13 (reference)
globe_3d.adb:1297:14 (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:281:3 (declaration)
globe_3d.adb:372:10 (reference)
globe_3d.adb:517:12 (reference)
globe_3d.adb:576:14 (reference)
globe_3d.adb:973:10 (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:286:3 (declaration)

Portal_connection_failed

Portal_connection_failed: exception;

References:

globe_3d.ads:426:3 (declaration)
globe_3d.adb:1018:15 (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:428:3 (declaration)
globe_3d.adb:189:27 (reference)

duplicated_vertex

duplicated_vertex,
    duplicated_vertex_location: exception;

References:

globe_3d.ads:428:22 (declaration)
globe_3d.adb:202:27 (reference)

duplicated_vertex_location

duplicated_vertex_location: exception;

References:

globe_3d.ads:429:5 (declaration)
globe_3d.adb:209:27 (reference)

point_unmatched

point_unmatched, too_many_adjacences: exception;

References:

globe_3d.ads:430:3 (declaration)
globe_3d.adb:385:27 (reference)

too_many_adjacences

too_many_adjacences: exception;

References:

globe_3d.ads:430:20 (declaration)

bad_edge_number

bad_edge_number: exception;

References:

globe_3d.ads:431:3 (declaration)
globe_3d.adb:259:26 (reference)

Missing_level_data

Missing_level_data : exception;

References:

globe_3d.ads:485:3 (declaration)

Missing_global_data

Missing_global_data: exception;

References:

globe_3d.ads:486:3 (declaration)

Missing_texture

Missing_texture: exception;

References:

globe_3d.ads:488:3 (declaration)
globe_3d-textures.adb:95:23 (reference)

Missing_object

Missing_object : exception;

References:

globe_3d.ads:489:3 (declaration)

zero_normal

zero_normal: exception;

References:

globe_3d.ads:491:3 (declaration)
globe_3d.adb:72:27 (reference)

zero_summed_normal

zero_summed_normal: exception;

References:

globe_3d.ads:492:3 (declaration)
globe_3d.adb:299:17 (reference)
globe_3d.adb:331:14 (reference)
globe_3d.adb:332:32 (reference)

zero_averaged_normal

zero_averaged_normal: exception;

References:

globe_3d.ads:493:3 (declaration)

info_b_real1 (Real)

info_b_real1,
  info_b_real2: Real:= 123.0;

References:

globe_3d.ads:542:3 (declaration)

info_b_real2 (Real)

info_b_real2: Real:= 123.0;

References:

globe_3d.ads:543:3 (declaration)

info_b_vect (Vector_3D)

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

References:

globe_3d.ads:544:3 (declaration)

info_b_bool1 (boolean)

info_b_bool1,
  info_b_bool2: Boolean:= False;

References:

globe_3d.ads:545:3 (declaration)

info_b_bool2 (boolean)

info_b_bool2: Boolean:= False;

References:

globe_3d.ads:546:3 (declaration)

info_b_clip (Clipping_area)

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

References:

globe_3d.ads:547:3 (declaration)

info_b_pnt (Point_3D)

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

References:

globe_3d.ads:548:3 (declaration)

info_b_ntl1 (natural)

info_b_ntl1,
  info_b_ntl2,
  info_b_ntl3 : Natural:= 0;

References:

globe_3d.ads:549:3 (declaration)

info_b_ntl2 (natural)

info_b_ntl2,
  info_b_ntl3 : Natural:= 0;

References:

globe_3d.ads:550:3 (declaration)
globe_3d.adb:791:9 (write reference)
globe_3d.adb:791:23 (reference)
globe_3d.adb:811:5 (write reference)

info_b_ntl3 (natural)

info_b_ntl3 : Natural:= 0;

References:

globe_3d.ads:551:3 (declaration)
globe_3d.adb:792:9 (write reference)
globe_3d.adb:792:49 (reference)
globe_3d.adb:812:5 (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:552:3 (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:587:3 (declaration)
globe_3d-textures.adb:84:33 (reference)
globe_3d-textures.adb:203:37 (reference)
globe_3d.adb:936:5 (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:589:3 (declaration)
globe_3d-textures.adb:89:36 (reference)
globe_3d-textures.adb:204:37 (reference)
globe_3d.adb:945:5 (write reference)

zif_level (private) (Zip.Zip_info)

zif_level, zif_global: Zip.Zip_info;

References:

globe_3d.ads:593:3 (declaration)
globe_3d-textures.adb:84:12 (write reference)
globe_3d-textures.adb:203:15 (write reference)
globe_3d.adb:932:23 (reference)
globe_3d.adb:933:19 (write reference)
Corresponding zip file infos for quick search

zif_global (private) (Zip.Zip_info)

zif_global: Zip.Zip_info;

References:

globe_3d.ads:593:14 (declaration)
globe_3d-textures.adb:89:14 (write reference)
globe_3d-textures.adb:204:15 (write reference)
globe_3d.adb:941:23 (reference)
globe_3d.adb:942:19 (write reference)
Corresponding zip file infos for quick search

Subprograms & Entries

Set_level_data_name

procedure Set_level_data_name
(s: String);

References:

globe_3d.ads:76:13 (declaration)
globe_3d.adb:930:13 (body)
globe_3d.adb:937:7 (label)

Calls:

To_Unbounded_String defined at a-strunb.ads:67:13
Zip.Delete defined at zip.ads:98:13
Zip.Is_loaded defined at zip.ads:88:12
Set the name of Zip archives containing the data If an item is not found in the level data, it is searched in the global one

Set_global_data_name

procedure Set_global_data_name
(s: String);

References:

globe_3d.ads:77:13 (declaration)
globe_3d.adb:939:13 (body)
globe_3d.adb:946:7 (label)
graphics_setup.adb:79:16 (reference)

Calls:

To_Unbounded_String defined at a-strunb.ads:67:13
Zip.Delete defined at zip.ads:98:13
Zip.Is_loaded defined at zip.ads:88:12

destroy (abstract)

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

References:

globe_3d.ads:201:14 (declaration)
globe_3d.adb:144:6 (dispatching call)

Called by:

free defined at globe_3d.ads:202:14

free

procedure free           
(o: in out p_Visual);

References:

globe_3d.ads:202:14 (declaration)
globe_3d.adb:140:13 (body)
globe_3d.adb:146:7 (label)
globe_3d.adb:821:7 (reference)

Called by:

destroy defined at globe_3d.ads:394:13

Calls:

destroy defined at globe_3d.ads:201:14
GLOBE_3D.free.deallocate defined at globe_3d.adb:142:16
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:204:14 (declaration)

set_Alpha (abstract)

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

References:

globe_3d.ads:206:14 (declaration)
glut-windows.adb:532:13 (dispatching call)

is_Transparent (abstract)

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

References:

globe_3d.ads:209:14 (declaration)
globe_3d.adb:1111:16 (dispatching call)

Called by:

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

face_Count (abstract)

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

References:

globe_3d.ads:214:13 (declaration)

Bounds (abstract)

function Bounds     
(o: in Visual)
return gl.geometry.Bounds_record is abstract;

References:

globe_3d.ads:215:13 (declaration)
globe_3d.adb:157:13 (dispatching call)
globe_3d.adb:157:43 (dispatching call)
globe_3d.adb:163:13 (dispatching call)
globe_3d.adb:163:43 (dispatching call)
globe_3d.adb:170:13 (dispatching call)
globe_3d.adb:170:43 (dispatching call)

skinned_Geometrys

function skinned_Geometrys 
(o: in Visual)
return gl.skinned_geometry.skinned_Geometrys;

References:

globe_3d.ads:217:13 (declaration)
globe_3d.adb:148:12 (body)
globe_3d.adb:152:7 (label)
globe_3d.adb:1109:78 (dispatching call)
globe_3d.adb:1231:90 (dispatching call)

Called by:

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

Display (abstract)

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

References:

globe_3d.ads:219:14 (declaration)
globe_3d.adb:1121:16 (dispatching call)
globe_3d.adb:1233:16 (dispatching call)

Called by:

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

Set_name

procedure Set_name 
(o: in out Visual'class;
new_name: String);

References:

globe_3d.ads:224:14 (declaration)
globe_3d.adb:948:13 (body)
globe_3d.adb:955:7 (label)
arrow_p.adb:146:5 (reference)
cube_p.adb:75:7 (reference)
duck_p.adb:441:5 (reference)
plane_p.adb:8353:5 (reference)
spaceship_p.adb:626:5 (reference)
sphere_p.adb:145:5 (reference)
Give a new name (no need of space-filling) to the object

Get_name

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

References:

globe_3d.ads:227:13 (declaration)
globe_3d.adb:957:12 (body)
globe_3d.adb:960:7 (label)

Calls:

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

Width

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

References:

globe_3d.ads:231:13 (declaration)
globe_3d.adb:154:12 (body)
globe_3d.adb:158:7 (label)

Calls:

Bounds defined at globe_3d.ads:215:13

Height

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

References:

globe_3d.ads:232:13 (declaration)
globe_3d.adb:160:12 (body)
globe_3d.adb:164:7 (label)

Calls:

Bounds defined at globe_3d.ads:215:13

Depth

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

References:

globe_3d.ads:233:13 (declaration)
globe_3d.adb:167:12 (body)
globe_3d.adb:171:7 (label)

Calls:

Bounds defined at globe_3d.ads:215:13

render

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

References:

globe_3d.ads:241:14 (declaration)
globe_3d.adb:1077:14 (body)
globe_3d.adb:1275:8 (label)
glut-windows.adb:353:11 (reference)
clears the color buffer and renders each of the visuals.

empty_map

function empty_map return Map_of_Visuals;

References:

globe_3d.ads:253:13 (declaration)
globe_3d.adb:1278:13 (body)
globe_3d.adb:1283:8 (label)
globe_3d.adb:1302:28 (reference)

Called by:

Map_of defined at globe_3d.ads:257: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:254:14 (declaration)
globe_3d.adb:1285:14 (body)
globe_3d.adb:1299:8 (label)
globe_3d.adb:1306:8 (reference)

Called by:

Map_of defined at globe_3d.ads:257:13

Calls:

Insert defined at a-cohama.ads:131:14
To_Unbounded_String defined at a-strunb.ads:67:13

Map_of

function Map_of
( va: Visual_array )
return Map_of_Visuals;

References:

globe_3d.ads:257:13 (declaration)
globe_3d.adb:1301:13 (body)
globe_3d.adb:1309:8 (label)

Calls:

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

destroy

procedure destroy        
(o: in out Object_3D);

References:

globe_3d.ads:394:13 (declaration)
globe_3d.adb:817:13 (body)
globe_3d.adb:824:7 (label)

Calls:

free defined at globe_3d.ads:202:14

set_Alpha

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

References:

globe_3d.ads:395:13 (declaration)
globe_3d.adb:826:13 (body)
globe_3d.adb:831:7 (label)

is_Transparent

function  is_Transparent 
(o: in Object_3D)
return Boolean;

References:

globe_3d.ads:396:13 (declaration)
globe_3d.adb:833:12 (body)
globe_3d.adb:836:7 (label)

face_Count

function  face_Count     
(o: in Object_3D)
return Natural;

References:

globe_3d.ads:397:13 (declaration)
globe_3d.adb:838:12 (body)
globe_3d.adb:841:7 (label)

Bounds

function  Bounds         
(o: in Object_3D)
return gl.geometry.Bounds_record;

References:

globe_3d.ads:398:13 (declaration)
globe_3d.adb:843:13 (body)
globe_3d.adb:846:7 (label)

Check_object

procedure Check_object
(o: Object_3D);

References:

globe_3d.ads:401:13 (declaration)
globe_3d.adb:179:13 (body)
globe_3d.adb:228:7 (label)
globe_3d.adb:314:32 (reference)

Called by:

Pre_calculate defined at globe_3d.ads:433:13
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:405:13 (declaration)
globe_3d.adb:1030:13 (body)
globe_3d.adb:1040:7 (label)

Portal_name_hint

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

References:

globe_3d.ads:412:13 (declaration)
globe_3d.adb:1042:13 (body)
globe_3d.adb:1052:7 (label)

Rebuild_links

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

References:

globe_3d.ads:419:13 (declaration)
globe_3d.adb:962:13 (body)
globe_3d.adb:1028:7 (label)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:97:14
Element defined at a-cohama.ads:237:13
GLOBE_3D.Textures.Texture_ID defined at globe_3d-textures.ads:61:12
To_Unbounded_String defined at a-strunb.ads:67:13
Trim defined at a-strfix.ads:186:13

Pre_calculate

procedure Pre_calculate
(o: in out Object_3D);

References:

globe_3d.ads:433:13 (declaration)
globe_3d.adb:234:13 (body)
globe_3d.adb:400:7 (label)
globe_3d.adb:619:7 (reference)
globe_3d.adb:746:9 (dispatching call)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:97:14
Ada.Numerics.Generic_Elementary_Functions.Sqrt defined at a-ngelfu.ads:22:13
Check_object defined at globe_3d.ads:401:13
GLOBE_3D.Math.* defined at globe_3d-math.ads:7:12
GLOBE_3D.Math.+ defined at globe_3d-math.ads:13:12
GLOBE_3D.Math.Almost_zero defined at globe_3d-math.ads:87:12
GLOBE_3D.Math.Norm defined at globe_3d-math.ads:28:12
GLOBE_3D.Math.Norm2 defined at globe_3d-math.ads:31:12
GLOBE_3D.Pre_calculate.Calculate_face_invariants defined at globe_3d.adb:240:15
GLOBE_3D.Textures.Valid_texture_ID defined at globe_3d-textures.ads:76:12
Is_to_blend defined at globe_3d.ads:605:12
Is_to_blend defined at globe_3d.ads:602:12
Trim defined at a-strfix.ads:186:13
Done automatically at first display, but sometimes it's better to do it before: operation can be long!

Display_one

procedure Display_one
(o: in out Object_3D);

References:

globe_3d.ads:458:13 (declaration)
globe_3d.adb:429:13 (body)
globe_3d.adb:686:7 (label)
globe_3d.adb:793:9 (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:476:13 (declaration)

freshen (abstract)

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

References:

globe_3d.ads:477:13 (declaration)

Switch_lights

procedure Switch_lights
(on: Boolean);

References:

globe_3d.ads:509:13 (declaration)
globe_3d.adb:867:13 (body)
globe_3d.adb:872:7 (label)
glut-windows.adb:128:11 (reference)

Calls:

Switch_light defined at globe_3d.ads:510:13

Reverse_light_switch

procedure Reverse_light_switch
(which: Light_ident);

References:

globe_3d.ads:512:13 (declaration)
globe_3d.adb:895:13 (body)
globe_3d.adb:898:7 (label)
glut-windows.adb:457:13 (reference)

Is_light_switched

function Is_light_switched
(which: Light_ident)
return Boolean;

References:

globe_3d.ads:514:12 (declaration)
globe_3d.adb:890:12 (body)
globe_3d.adb:893:7 (label)
globe_3d.adb:897:29 (reference)
glut-windows.adb:308:13 (reference)

Image

function Image
( r: Real )
return String;

References:

globe_3d.ads:520:12 (declaration)
globe_3d.adb:26:12 (body)
globe_3d.adb:34:7 (label)
globe_3d.adb:38:18 (reference)
globe_3d.adb:39:18 (reference)
globe_3d.adb:40:18 (reference)

Called by:

Coords defined at globe_3d.ads:522:12
Coords defined at globe_3d.ads:522:12
Coords defined at globe_3d.ads:522:12

Calls:

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

Angles_modulo_360

procedure Angles_modulo_360
( v: in out Vector_3D );

References:

globe_3d.ads:524:13 (declaration)
globe_3d.adb:904:13 (body)
globe_3d.adb:912:7 (label)

Dispose

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

References:

globe_3d.ads:530:13 (declaration)

Dispose

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

References:

globe_3d.ads:533:13 (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:68:13
Zip.Is_loaded defined at zip.ads:88:12
Zip.Load defined at zip.ads:63:13

Is_to_blend (private)

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

References:

globe_3d.ads:602:12 (declaration)
globe_3d.adb:95:12 (body)
globe_3d.adb:99:7 (label)
globe_3d.adb:325:44 (reference)

Called by:

Pre_calculate defined at globe_3d.ads:433:13
blending support

Is_to_blend (private)

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

References:

globe_3d.ads:603:12 (declaration)
globe_3d.adb:102:12 (body)
globe_3d.adb:106:7 (label)
globe_3d.adb:111:12 (reference)

Called by:

Is_to_blend defined at globe_3d.ads:604:12

Is_to_blend (private)

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

References:

globe_3d.ads:604:12 (declaration)
globe_3d.adb:109:12 (body)
globe_3d.adb:112:7 (label)
globe_3d.adb:118:7 (reference)
globe_3d.adb:119:7 (reference)
globe_3d.adb:120:7 (reference)

Calls:

Is_to_blend defined at globe_3d.ads:603:12

Is_to_blend (private)

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

References:

globe_3d.ads:605:12 (declaration)
globe_3d.adb:115:12 (body)
globe_3d.adb:122:7 (label)
globe_3d.adb:323:44 (reference)

Called by:

Pre_calculate defined at globe_3d.ads:433:13

Calls:

Is_to_blend defined at globe_3d.ads:604:12