Index

Package: GL.Materials

Description

package GL.Materials is

Types

Material_type

type Material_type is record
    ambient,
    diffuse,
    specular,
    emission  : GL.Material_Float_vector;
    shininess : GL.Float; -- 0.0 .. 128.0
  end record;

References:

gl-materials.ads:25:8 (declaration)
gl-materials.adb:4:40 (reference)
gl-materials.ads:33:38 (reference)
gl-materials.ads:36:14 (reference)
gl-materials.ads:45:20 (reference)
gl-materials.ads:53:23 (reference)
gl-materials.ads:61:23 (reference)
gl-materials.ads:69:22 (reference)
gl-materials.ads:78:23 (reference)
gl-materials.ads:86:21 (reference)
gl-materials.ads:94:23 (reference)
gl-materials.ads:102:22 (reference)
gl-materials.ads:110:22 (reference)
gl-materials.ads:118:28 (reference)
gl-materials.ads:126:27 (reference)
gl-materials.ads:136:22 (reference)
gl-materials.ads:144:23 (reference)
gl-materials.ads:150:24 (reference)
gl-materials.ads:156:33 (reference)
gl-materials.ads:162:24 (reference)
gl-materials.ads:168:24 (reference)
gl-materials.ads:174:33 (reference)
gl-materials.ads:180:22 (reference)
gl-materials.ads:186:31 (reference)
gl-materials.ads:192:24 (reference)
gl-materials.ads:198:24 (reference)
gl-materials.ads:204:33 (reference)
gl-materials.ads:210:25 (reference)
gl-materials.ads:216:22 (reference)
gl-materials.ads:222:26 (reference)
gl-materials.ads:228:23 (reference)
gl-materials.ads:234:22 (reference)
gl-materials.ads:240:27 (reference)
gl-materials.ads:246:31 (reference)
gl-materials.ads:252:30 (reference)
gl-materials.ads:259:30 (reference)
gl-skins.adb:72:41 (reference)
gl-skins.ads:97:34 (reference)
globe_3d.adb:115:40 (reference)
globe_3d.adb:127:42 (reference)
globe_3d.ads:316:34 (reference)
globe_3d.ads:605:41 (reference)
globe_3d.ads:609:43 (reference)
models.adb:17:72 (reference)
models.adb:45:54 (reference)
models.adb:45:93 (reference)
models.adb:47:35 (reference)
arrow_p.adb:15:19 (reference)
cube_p.adb:15:22 (reference)
cube_p.adb:21:24 (reference)
cube_p.adb:26:25 (reference)
duck_p.adb:15:19 (reference)
plane_p.adb:15:19 (reference)
spaceship_p.adb:15:19 (reference)
sphere_p.adb:15:19 (reference)

Constants & Global variables

neutral_material (Material_type)

neutral_material :
    constant Material_type:= (ambient =>        (0.2, 0.2, 0.2, 1.0),
                              diffuse =>        (0.8, 0.8, 0.8, 1.0),
                              specular =>       (0.0, 0.0, 0.0, 1.0),
                              emission =>       (0.0, 0.0, 0.0, 1.0),
                              shininess =>      0.0);

References:

gl-materials.ads:35:3 (declaration)
gl-skins.ads:97:61 (reference)
globe_3d.adb:480:41 (reference)
globe_3d.ads:317:36 (reference)
^ the values are GL defaults.

Red (Material_type)

Red   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (1.0, 0.0, 0.0, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:45:3 (declaration)

Orange (Material_type)

Orange   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.992157, 0.513726, 0.0, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:53:3 (declaration)

Yellow (Material_type)

Yellow   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (1.0, 0.964706, 0.0, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:61:3 (declaration)

Green (Material_type)

Green   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.0, 1.0, 0.0, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:69:3 (declaration)

Indigo (Material_type)

Indigo   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.0980392, 0.0, 0.458824, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:78:3 (declaration)

Blue (Material_type)

Blue   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.0, 0.0, 1.0, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:86:3 (declaration)

Violet (Material_type)

Violet   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.635294, 0.0, 1.0, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:94:3 (declaration)

White (Material_type)

White   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.992157, 0.992157, 0.992157, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:102:3 (declaration)

Black (Material_type)

Black   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.0, 0.0, 0.0, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:110:3 (declaration)

Medium_Gray (Material_type)

Medium_Gray   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.454902, 0.454902, 0.454902, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:118:3 (declaration)

Light_Gray (Material_type)

Light_Gray   : constant Material_type:= (
    ambient   => (0.0, 0.0, 0.0, 1.0),
    diffuse   => (0.682353, 0.682353, 0.682353, 1.0),
    specular  => (0.0225, 0.0225, 0.0225, 1.0),
    emission  => (0.0, 0.0, 0.0, 1.0),
    shininess => 12.8
  );

References:

gl-materials.ads:126:3 (declaration)

Glass (Material_type)

Glass   : constant Material_type:= (
              ambient   => (0.0, 0.0, 0.0, 1.0),
              diffuse   => (0.588235, 0.670588, 0.729412, 1.0),
              specular  => (0.9, 0.9, 0.9, 1.0),
              emission  => (0.0, 0.0, 0.0, 1.0),
              shininess => 96.0
            );

References:

gl-materials.ads:136:3 (declaration)

Brass (Material_type)

Brass    : constant Material_type:= (
            ambient =>        (0.329412, 0.223529, 0.027451, 1.0),
            diffuse =>        (0.780392, 0.568627, 0.113725, 1.0),
            specular =>       (0.992157, 0.941176, 0.807843, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      27.8974);

References:

gl-materials.ads:144:3 (declaration)

Bronze (Material_type)

Bronze    : constant Material_type:= (
            ambient =>        (0.2125, 0.1275, 0.054, 1.0),
            diffuse =>        (0.714, 0.4284, 0.18144, 1.0),
            specular =>       (0.393548, 0.271906, 0.166721, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      25.6);

References:

gl-materials.ads:150:3 (declaration)

Polished_Bronze (Material_type)

Polished_Bronze    : constant Material_type:= (
            ambient =>        (0.25, 0.148, 0.06475, 1.0),
            diffuse =>        (0.4, 0.2368, 0.1036, 1.0),
            specular =>       (0.774597, 0.458561, 0.200621, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      76.8);

References:

gl-materials.ads:156:3 (declaration)

Chrome (Material_type)

Chrome    : constant Material_type:= (
            ambient =>        (0.25, 0.25, 0.25, 1.0),
            diffuse =>        (0.4, 0.4, 0.4, 1.0),
            specular =>       (0.774597, 0.774597, 0.774597, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      76.8);

References:

gl-materials.ads:162:3 (declaration)

Copper (Material_type)

Copper    : constant Material_type:= (
            ambient =>        (0.19125, 0.0735, 0.0225, 1.0),
            diffuse =>        (0.7038, 0.27048, 0.0828, 1.0),
            specular =>       (0.256777, 0.137622, 0.086014, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      12.8);

References:

gl-materials.ads:168:3 (declaration)

Polished_Copper (Material_type)

Polished_Copper    : constant Material_type:= (
            ambient =>        (0.2295, 0.08825, 0.0275, 1.0),
            diffuse =>        (0.5508, 0.2118, 0.066, 1.0),
            specular =>       (0.580594, 0.223257, 0.0695701, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      51.2);

References:

gl-materials.ads:174:3 (declaration)

Gold (Material_type)

Gold    : constant Material_type:= (
            ambient =>        (0.24725, 0.1995, 0.0745, 1.0),
            diffuse =>        (0.75164, 0.60648, 0.22648, 1.0),
            specular =>       (0.628281, 0.555802, 0.366065, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      51.2);

References:

gl-materials.ads:180:3 (declaration)

Polished_Gold (Material_type)

Polished_Gold    : constant Material_type:= (
            ambient =>        (0.24725, 0.2245, 0.0645, 1.0),
            diffuse =>        (0.34615, 0.3143, 0.0903, 1.0),
            specular =>       (0.797357, 0.723991, 0.208006, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      83.2);

References:

gl-materials.ads:186:3 (declaration)

Pewter (Material_type)

Pewter    : constant Material_type:= (
            ambient =>        (0.105882, 0.058824, 0.113725, 1.0),
            diffuse =>        (0.427451, 0.470588, 0.541176, 1.0),
            specular =>       (0.333333, 0.333333, 0.521569, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      9.84615);

References:

gl-materials.ads:192:3 (declaration)

Silver (Material_type)

Silver    : constant Material_type:= (
            ambient =>        (0.19225, 0.19225, 0.19225, 1.0),
            diffuse =>        (0.50754, 0.50754, 0.50754, 1.0),
            specular =>       (0.508273, 0.508273, 0.508273, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      51.2);

References:

gl-materials.ads:198:3 (declaration)

Polished_Silver (Material_type)

Polished_Silver    : constant Material_type:= (
            ambient =>        (0.23125, 0.23125, 0.23125, 1.0),
            diffuse =>        (0.2775, 0.2775, 0.2775, 1.0),
            specular =>       (0.773911, 0.773911, 0.773911, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      89.6);

References:

gl-materials.ads:204:3 (declaration)

Emerald (Material_type)

Emerald    : constant Material_type:= (
            ambient =>        (0.0215, 0.1745, 0.0215, 0.55),
            diffuse =>        (0.07568, 0.61424, 0.07568, 0.55),
            specular =>       (0.633, 0.727811, 0.633, 0.55),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      76.8);

References:

gl-materials.ads:210:3 (declaration)

Jade (Material_type)

Jade    : constant Material_type:= (
            ambient =>        (0.135, 0.2225, 0.1575, 0.95),
            diffuse =>        (0.54, 0.89, 0.63, 0.95),
            specular =>       (0.316228, 0.316228, 0.316228, 0.95),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      12.8);

References:

gl-materials.ads:216:3 (declaration)

Obsidian (Material_type)

Obsidian    : constant Material_type:= (
            ambient =>        (0.05375, 0.05, 0.06625, 0.82),
            diffuse =>        (0.18275, 0.17, 0.22525, 0.82),
            specular =>       (0.332741, 0.328634, 0.346435, 0.82),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      38.4);

References:

gl-materials.ads:222:3 (declaration)

Pearl (Material_type)

Pearl    : constant Material_type:= (
            ambient =>        (0.25, 0.20725, 0.20725, 0.922),
            diffuse =>        (1.0, 0.829, 0.829, 0.922),
            specular =>       (0.296648, 0.296648, 0.296648, 0.922),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      11.264);

References:

gl-materials.ads:228:3 (declaration)
models.adb:71:166 (reference)
models.adb:87:107 (reference)
models.adb:88:107 (reference)

Ruby (Material_type)

Ruby    : constant Material_type:= (
            ambient =>        (0.1745, 0.01175, 0.01175, 0.55),
            diffuse =>        (0.61424, 0.04136, 0.04136, 0.55),
            specular =>       (0.727811, 0.626959, 0.626959, 0.55),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      76.8);

References:

gl-materials.ads:234:3 (declaration)
models.adb:73:158 (reference)
models.adb:87:96 (reference)

Turquoise (Material_type)

Turquoise    : constant Material_type:= (
            ambient =>        (0.1, 0.18725, 0.1745, 0.8),
            diffuse =>        (0.396, 0.74151, 0.69102, 0.8),
            specular =>       (0.297254, 0.30829, 0.306678, 0.8),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      12.8);

References:

gl-materials.ads:240:3 (declaration)
models.adb:88:96 (reference)

Black_Plastic (Material_type)

Black_Plastic    : constant Material_type:= (
            ambient =>        (0.0, 0.0, 0.0, 1.0),
            diffuse =>        (0.01, 0.01, 0.01, 1.0),
            specular =>       (0.50, 0.50, 0.50, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      32.0);

References:

gl-materials.ads:246:3 (declaration)

Black_Rubber (Material_type)

Black_Rubber    : constant Material_type:= (
            ambient =>        (0.02, 0.02, 0.02, 1.0),
            diffuse =>        (0.01, 0.01, 0.01, 1.0),
            specular =>       (0.4, 0.4, 0.4, 1.0),
            emission =>       (0.0,0.0,0.0,0.0),
            shininess =>      10.0);

References:

gl-materials.ads:252:3 (declaration)

VRML_Defaults (Material_type)

VRML_Defaults   : constant Material_type:= (
            ambient =>        (0.2, 0.2, 0.2, 1.0),
            diffuse =>        (0.8, 0.8, 0.8, 1.0),
            specular =>       (0.0, 0.0, 0.0, 1.0),
            emission =>       (0.0, 0.0, 0.0, 1.0),
            shininess =>       25.6);

References:

gl-materials.ads:259:3 (declaration)
arrow_p.adb:148:23 (reference)
cube_p.adb:77:25 (reference)
duck_p.adb:443:23 (reference)
plane_p.adb:8355:23 (reference)
spaceship_p.adb:628:23 (reference)
sphere_p.adb:147:23 (reference)

Subprograms & Entries

is_Transparent

function is_Transparent 
(Self: in Material_type)
return Boolean;

References:

gl-materials.ads:33:12 (declaration)
gl-materials.adb:4:14 (body)
gl-skins.adb:170:14 (reference)