gel.demos: Update code to use new openGL updates.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
with
|
with
|
||||||
openGL.texture_Set;
|
openGL.texture_Set;
|
||||||
|
|
||||||
private
|
-- private
|
||||||
with
|
with
|
||||||
openGL.Geometry.texturing;
|
openGL.Geometry.texturing;
|
||||||
|
|
||||||
@@ -11,7 +11,11 @@ package openGL.Geometry.lit_colored_textured
|
|||||||
-- Supports 'per-vertex' site, color, texture and lighting.
|
-- Supports 'per-vertex' site, color, texture and lighting.
|
||||||
--
|
--
|
||||||
is
|
is
|
||||||
type Item is new openGL.Geometry.item with private;
|
package textured_Geometry is new texturing.Mixin;
|
||||||
|
|
||||||
|
|
||||||
|
-- type Item is new openGL.Geometry.item with private;
|
||||||
|
type Item is new textured_Geometry.item with private;
|
||||||
type View is access all Item'Class;
|
type View is access all Item'Class;
|
||||||
|
|
||||||
function new_Geometry (texture_is_Alpha : in Boolean) return access Geometry.lit_colored_textured.item'Class;
|
function new_Geometry (texture_is_Alpha : in Boolean) return access Geometry.lit_colored_textured.item'Class;
|
||||||
@@ -65,9 +69,6 @@ is
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
package textured_Geometry is new texturing.Mixin;
|
|
||||||
|
|
||||||
|
|
||||||
type Item is new textured_Geometry.item with
|
type Item is new textured_Geometry.item with
|
||||||
record
|
record
|
||||||
null;
|
null;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ with
|
|||||||
openGL.Model;
|
openGL.Model;
|
||||||
|
|
||||||
|
|
||||||
private
|
-- private
|
||||||
package openGL.Geometry.texturing
|
package openGL.Geometry.texturing
|
||||||
--
|
--
|
||||||
-- Provides texturing support for geometries.
|
-- Provides texturing support for geometries.
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ is
|
|||||||
|
|
||||||
function new_Capsule (Radius : in Real;
|
function new_Capsule (Radius : in Real;
|
||||||
Height : in Real;
|
Height : in Real;
|
||||||
|
texture_Details : in texture_Set.Details;
|
||||||
Image : in asset_Name := null_Asset) return View
|
Image : in asset_Name := null_Asset) return View
|
||||||
is
|
is
|
||||||
Self : constant View := new Item;
|
Self : constant View := new Item;
|
||||||
@@ -21,6 +22,8 @@ is
|
|||||||
Self.Height := Height;
|
Self.Height := Height;
|
||||||
Self.Image := Image;
|
Self.Image := Image;
|
||||||
|
|
||||||
|
Self.texture_Details_is (texture_Details);
|
||||||
|
|
||||||
return Self;
|
return Self;
|
||||||
end new_Capsule;
|
end new_Capsule;
|
||||||
|
|
||||||
@@ -368,6 +371,10 @@ is
|
|||||||
cap_2_Geometry := new_Cap (is_Fore => False);
|
cap_2_Geometry := new_Cap (is_Fore => False);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
the_shaft_Geometry.Model_is (Self.all'unchecked_Access);
|
||||||
|
cap_1_Geometry .Model_is (Self.all'unchecked_Access);
|
||||||
|
cap_2_Geometry .Model_is (Self.all'unchecked_Access);
|
||||||
|
|
||||||
return (1 => the_shaft_Geometry.all'Access,
|
return (1 => the_shaft_Geometry.all'Access,
|
||||||
2 => cap_1_Geometry.all'Access,
|
2 => cap_1_Geometry.all'Access,
|
||||||
3 => cap_2_Geometry.all'Access);
|
3 => cap_2_Geometry.all'Access);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
with
|
with
|
||||||
openGL.Geometry;
|
openGL.Geometry,
|
||||||
|
openGL.Model.texturing;
|
||||||
|
|
||||||
|
|
||||||
package openGL.Model.capsule.textured
|
package openGL.Model.capsule.textured
|
||||||
@@ -7,8 +8,10 @@ package openGL.Model.capsule.textured
|
|||||||
-- Models a textured capsule.
|
-- Models a textured capsule.
|
||||||
--
|
--
|
||||||
is
|
is
|
||||||
type Item is new Model.capsule.item with private;
|
-- type Item is new Model.capsule.item with private;
|
||||||
type View is access all Item'Class;
|
package textured_Model is new texturing.Mixin (openGL.Model.capsule.item);
|
||||||
|
|
||||||
|
type Item is new textured_Model.textured_item with private; type View is access all Item'Class;
|
||||||
|
|
||||||
|
|
||||||
---------
|
---------
|
||||||
@@ -17,6 +20,7 @@ is
|
|||||||
|
|
||||||
function new_Capsule (Radius : in Real;
|
function new_Capsule (Radius : in Real;
|
||||||
Height : in Real;
|
Height : in Real;
|
||||||
|
texture_Details : in texture_Set.Details;
|
||||||
Image : in asset_Name := null_Asset) return View;
|
Image : in asset_Name := null_Asset) return View;
|
||||||
|
|
||||||
--------------
|
--------------
|
||||||
@@ -31,7 +35,8 @@ is
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
type Item is new Model.capsule.item with
|
-- type Item is new Model.capsule.item with
|
||||||
|
type Item is new textured_Model.textured_item with
|
||||||
record
|
record
|
||||||
Radius : Real;
|
Radius : Real;
|
||||||
Height : Real;
|
Height : Real;
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ with
|
|||||||
openGL.Primitive.indexed,
|
openGL.Primitive.indexed,
|
||||||
openGL.Texture.Coordinates;
|
openGL.Texture.Coordinates;
|
||||||
|
|
||||||
|
with ada.Text_IO; use ada.Text_IO;
|
||||||
|
|
||||||
|
|
||||||
package body openGL.Model.circle.lit_textured
|
package body openGL.Model.circle.lit_textured
|
||||||
is
|
is
|
||||||
@@ -83,6 +85,9 @@ is
|
|||||||
|
|
||||||
for i in 1 .. Self.texture_Details.texture_Count
|
for i in 1 .. Self.texture_Details.texture_Count
|
||||||
loop
|
loop
|
||||||
|
put_Line ("KKK" & Self.texture_Details'Image);
|
||||||
|
|
||||||
|
|
||||||
Id := texture_Id (i);
|
Id := texture_Id (i);
|
||||||
|
|
||||||
the_Geometry.Fade_is (which => Id,
|
the_Geometry.Fade_is (which => Id,
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ is
|
|||||||
lat_Count : in Positive := 26;
|
lat_Count : in Positive := 26;
|
||||||
long_Count : in Positive := 52;
|
long_Count : in Positive := 52;
|
||||||
Image : in asset_Name := null_Asset;
|
Image : in asset_Name := null_Asset;
|
||||||
|
texture_Details : in texture_Set.Details;
|
||||||
is_Skysphere : in Boolean := False) return View
|
is_Skysphere : in Boolean := False) return View
|
||||||
is
|
is
|
||||||
Self : constant View := new Item;
|
Self : constant View := new Item;
|
||||||
@@ -26,6 +27,8 @@ is
|
|||||||
|
|
||||||
Self.define (Radius);
|
Self.define (Radius);
|
||||||
|
|
||||||
|
Self.texture_Details_is (texture_Details);
|
||||||
|
|
||||||
return Self;
|
return Self;
|
||||||
end new_Sphere;
|
end new_Sphere;
|
||||||
|
|
||||||
@@ -196,6 +199,8 @@ is
|
|||||||
the_Geometry.add (Primitive.view (the_Primitive));
|
the_Geometry.add (Primitive.view (the_Primitive));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
the_Geometry.Model_is (Self.all'unchecked_Access);
|
||||||
|
|
||||||
return [1 => Geometry.view (the_Geometry)];
|
return [1 => Geometry.view (the_Geometry)];
|
||||||
end to_GL_Geometries;
|
end to_GL_Geometries;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
with
|
with
|
||||||
openGL.Font,
|
openGL.Font,
|
||||||
openGL.Geometry;
|
openGL.Geometry,
|
||||||
|
openGL.Model.texturing;
|
||||||
|
|
||||||
|
|
||||||
package openGL.Model.sphere.textured
|
package openGL.Model.sphere.textured
|
||||||
@@ -8,7 +9,10 @@ package openGL.Model.sphere.textured
|
|||||||
-- Models a textured sphere.
|
-- Models a textured sphere.
|
||||||
--
|
--
|
||||||
is
|
is
|
||||||
type Item is new Model.sphere.item with private;
|
package textured_Model is new texturing.Mixin (openGL.Model.sphere.item);
|
||||||
|
|
||||||
|
type Item is new textured_Model.textured_item with private;
|
||||||
|
-- type Item is new Model.sphere.item with private;
|
||||||
type View is access all Item'Class;
|
type View is access all Item'Class;
|
||||||
|
|
||||||
|
|
||||||
@@ -20,6 +24,7 @@ is
|
|||||||
lat_Count : in Positive := 26;
|
lat_Count : in Positive := 26;
|
||||||
long_Count : in Positive := 52;
|
long_Count : in Positive := 52;
|
||||||
Image : in asset_Name := null_Asset;
|
Image : in asset_Name := null_Asset;
|
||||||
|
texture_Details : in texture_Set.Details;
|
||||||
is_Skysphere : in Boolean := False) return View;
|
is_Skysphere : in Boolean := False) return View;
|
||||||
|
|
||||||
--------------
|
--------------
|
||||||
@@ -33,7 +38,8 @@ is
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
type Item is new Model.sphere.item with
|
-- type Item is new Model.sphere.item with
|
||||||
|
type Item is new textured_Model.textured_item with
|
||||||
record
|
record
|
||||||
Image : asset_Name := null_Asset; -- Usually a mercator projection to be mapped onto the sphere.
|
Image : asset_Name := null_Asset; -- Usually a mercator projection to be mapped onto the sphere.
|
||||||
is_Skysphere : Boolean := False;
|
is_Skysphere : Boolean := False;
|
||||||
|
|||||||
@@ -81,14 +81,14 @@ is
|
|||||||
is
|
is
|
||||||
pragma unreferenced (Textures);
|
pragma unreferenced (Textures);
|
||||||
|
|
||||||
-- text_Scale : constant Vector_3 := [2.0 * 4.0 / 78.0, -- TODO: Fix scaling.
|
text_Scale : constant Vector_3 := [2.0 * 4.0 / 78.0, -- TODO: Fix scaling.
|
||||||
-- 2.0 * 4.0 / 95.0,
|
2.0 * 4.0 / 95.0,
|
||||||
-- 1.0 / 1.0];
|
|
||||||
|
|
||||||
text_Scale : constant Vector_3 := [1.0 * 1.0 / 78.0, -- TODO: Fix scaling.
|
|
||||||
1.0 * 1.0 / 95.0,
|
|
||||||
1.0 / 1.0];
|
1.0 / 1.0];
|
||||||
|
|
||||||
|
-- text_Scale : constant Vector_3 := [1.0 * 1.0 / 78.0, -- TODO: Fix scaling.
|
||||||
|
-- 1.0 * 1.0 / 95.0,
|
||||||
|
-- 1.0 / 1.0];
|
||||||
|
|
||||||
begin
|
begin
|
||||||
if Self.Text.all = ""
|
if Self.Text.all = ""
|
||||||
then
|
then
|
||||||
@@ -290,6 +290,8 @@ is
|
|||||||
the_Geometry.Model_is (Self.all'unchecked_Access);
|
the_Geometry.Model_is (Self.all'unchecked_Access);
|
||||||
the_Geometry.is_Transparent;
|
the_Geometry.is_Transparent;
|
||||||
|
|
||||||
|
-- the_Geometry.texture_Details_is (openGL.texture_Set.to_Details ([1 => to_Asset ("assets/textures/Face1.bmp")]));
|
||||||
|
|
||||||
return [1 => Geometry.view (the_Geometry)];
|
return [1 => Geometry.view (the_Geometry)];
|
||||||
end;
|
end;
|
||||||
end to_GL_Geometries;
|
end to_GL_Geometries;
|
||||||
|
|||||||
@@ -137,8 +137,8 @@ is
|
|||||||
is
|
is
|
||||||
the_Source : aliased constant C.char_array := to_C_char_array (shader_Filename);
|
the_Source : aliased constant C.char_array := to_C_char_array (shader_Filename);
|
||||||
begin
|
begin
|
||||||
put_Line ("SHADER NAME: " & shader_Filename);
|
-- put_Line ("SHADER NAME: " & shader_Filename);
|
||||||
put_Line (interfaces.C.to_Ada (the_Source));
|
-- put_Line (interfaces.C.to_Ada (the_Source));
|
||||||
|
|
||||||
create_Shader (Self, Kind, the_Source);
|
create_Shader (Self, Kind, the_Source);
|
||||||
end define;
|
end define;
|
||||||
|
|||||||
@@ -13,11 +13,20 @@ gprclean -r -P ../gel_demo.gpr -Xrestrictions=xgc -Xopengl_platform=egl -Xopengl
|
|||||||
## Build
|
## Build
|
||||||
#
|
#
|
||||||
mkdir --parents dsa/x86_64-unknown-linux-gnu/obj
|
mkdir --parents dsa/x86_64-unknown-linux-gnu/obj
|
||||||
cp /usr/lib/gcc/x86_64-pc-linux-gnu/13.2.1/adalib/a-sttebu.ali \
|
cp /usr/lib/gcc/x86_64-pc-linux-gnu/15.1.1/adalib/a-sttebu.ali \
|
||||||
dsa/x86_64-unknown-linux-gnu/obj
|
dsa/x86_64-unknown-linux-gnu/obj
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
po_gnatdist -Xrestrictions=xgc -Xopengl_platform=egl -Xopengl_profile=lean -P demo_dsa.gpr simple_dsa.cfg
|
po_gnatdist -Xrestrictions=xgc \
|
||||||
|
-Xopengl_platform=egl \
|
||||||
|
-Xopengl_profile=lean \
|
||||||
|
-P demo_dsa.gpr \
|
||||||
|
simple_dsa.cfg \
|
||||||
|
-cargs \
|
||||||
|
-I$LACE/3-mid/physics/implement/box2d/contrib/include \
|
||||||
|
-g \
|
||||||
|
-largs \
|
||||||
|
-g
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|
||||||
@@ -27,3 +36,8 @@ cp dsa/x86_64-unknown-linux-gnu/obj/*.o dsa/x86_64-unknown-linux-gnu/partition
|
|||||||
cp dsa/x86_64-unknown-linux-gnu/obj/*.o dsa/x86_64-unknown-linux-gnu/partitions/simple_dsa/client_partition
|
cp dsa/x86_64-unknown-linux-gnu/obj/*.o dsa/x86_64-unknown-linux-gnu/partitions/simple_dsa/client_partition
|
||||||
|
|
||||||
po_gnatdist -Xrestrictions=xgc -Xopengl_platform=egl -Xopengl_profile=lean -P demo_dsa.gpr simple_dsa.cfg
|
po_gnatdist -Xrestrictions=xgc -Xopengl_platform=egl -Xopengl_profile=lean -P demo_dsa.gpr simple_dsa.cfg
|
||||||
|
|
||||||
|
|
||||||
|
cp bin/server_partition test/test_server
|
||||||
|
cp bin/client_partition test/test_client_1
|
||||||
|
cp bin/client_partition test/test_client_2
|
||||||
|
|||||||
@@ -67,7 +67,8 @@ is
|
|||||||
|
|
||||||
-- Close.
|
-- Close.
|
||||||
--
|
--
|
||||||
gel_demo_services.World.deregister (the_mirror => the_Applet.client_World.all'access);
|
gel_demo_services.World.deregister (the_Mirror => the_Applet.client_World.all'access,
|
||||||
|
Mirror_as_Observer => the_Applet.client_World.all'access);
|
||||||
the_Applet.destroy;
|
the_Applet.destroy;
|
||||||
gel_demo_Server.item.stop;
|
gel_demo_Server.item.stop;
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ with
|
|||||||
openGL.Model.capsule.textured,
|
openGL.Model.capsule.textured,
|
||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
openGL.Model.terrain,
|
openGL.Model.terrain,
|
||||||
|
openGL.texture_Set,
|
||||||
openGL.IO,
|
openGL.IO,
|
||||||
openGL.Light,
|
openGL.Light,
|
||||||
openGL.Palette;
|
openGL.Palette;
|
||||||
@@ -35,11 +36,12 @@ is
|
|||||||
|
|
||||||
procedure put_Line (Message : in String)
|
procedure put_Line (Message : in String)
|
||||||
is
|
is
|
||||||
Text : constant gel.Sprite.view := gel.Forge.new_text_Sprite (the_Applet.gui_World,
|
Text : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
|
||||||
text_line_Site,
|
Site => text_line_Site,
|
||||||
Message,
|
Spin => Identity_3x3,
|
||||||
the_Applet.Font,
|
Text => Message,
|
||||||
White);
|
Font => the_Applet.Font,
|
||||||
|
Color => White);
|
||||||
begin
|
begin
|
||||||
the_Applet.gui_World.add (Text);
|
the_Applet.gui_World.add (Text);
|
||||||
text_line_Site (2) := text_line_Site (2) - 2.0;
|
text_line_Site (2) := text_line_Site (2) - 2.0;
|
||||||
@@ -83,13 +85,14 @@ is
|
|||||||
Scale => 10.0);
|
Scale => 10.0);
|
||||||
|
|
||||||
the_terrain_Model : constant openGL.Model.terrain.view
|
the_terrain_Model : constant openGL.Model.terrain.view
|
||||||
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
||||||
Row => 1,
|
Row => 1,
|
||||||
Col => 1,
|
Col => 1,
|
||||||
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
||||||
color_Map => terrain_Texture,
|
color_Map => terrain_Texture,
|
||||||
Tiling => (s => (0.0, 1.0),
|
texture_Details => texture_Set.to_Details ([1 => terrain_Texture]),
|
||||||
t => (0.0, 1.0)));
|
Tiling => (s => (0.0, 1.0),
|
||||||
|
t => (0.0, 1.0)));
|
||||||
|
|
||||||
the_terrain_physics_Model : constant physics.Model.view
|
the_terrain_physics_Model : constant physics.Model.view
|
||||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.heightfield,
|
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.heightfield,
|
||||||
@@ -97,11 +100,10 @@ is
|
|||||||
height_Range => [0.0, 200.0]),
|
height_Range => [0.0, 200.0]),
|
||||||
Scale => [hs, 1.0, hs]);
|
Scale => [hs, 1.0, hs]);
|
||||||
the_Terrain : constant gel.Sprite.view
|
the_Terrain : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Terrain",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Terrain",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_terrain_Model,
|
||||||
the_terrain_Model,
|
physics_Model => the_terrain_physics_Model);
|
||||||
the_terrain_physics_Model);
|
|
||||||
begin
|
begin
|
||||||
-- Setup the applet.
|
-- Setup the applet.
|
||||||
--
|
--
|
||||||
@@ -163,11 +165,10 @@ begin
|
|||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
|
|
||||||
the_Box : constant gel.Sprite.view
|
the_Box : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_box_Model.all'Access,
|
||||||
the_box_Model.all'Access,
|
physics_Model => the_box_physics_Model);
|
||||||
the_box_physics_Model);
|
|
||||||
|
|
||||||
-- Ball
|
-- Ball
|
||||||
--
|
--
|
||||||
@@ -177,36 +178,37 @@ begin
|
|||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
|
|
||||||
the_ball_Model : constant openGL.Model.sphere.textured.view
|
the_ball_Model : constant openGL.Model.sphere.textured.view
|
||||||
:= openGL.Model.sphere.textured.new_Sphere (Radius => 0.5,
|
:= openGL.Model.sphere.textured.new_Sphere (Radius => 0.5,
|
||||||
Image => openGL.to_Asset ("assets/gel/texture/earth_map.bmp"));
|
Image => openGL.to_Asset ("assets/gel/texture/earth_map.bmp"),
|
||||||
|
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]));
|
||||||
the_Ball : constant gel.Sprite.view
|
the_Ball : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Ball",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ball",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_ball_Model,
|
||||||
the_ball_Model,
|
physics_Model => the_ball_physics_Model);
|
||||||
the_ball_physics_Model);
|
|
||||||
|
|
||||||
-- Cone
|
-- Cone
|
||||||
--
|
--
|
||||||
the_cone_Model : constant openGL.Model.any.view
|
the_cone_Model : constant openGL.Model.any.view
|
||||||
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cone.obj"),
|
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cone.obj"),
|
||||||
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
|
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
|
||||||
|
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
|
|
||||||
the_cone_physics_Model : constant physics.Model.view
|
the_cone_physics_Model : constant physics.Model.view
|
||||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cone),
|
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cone),
|
||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
the_Cone : constant gel.Sprite.view
|
the_Cone : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Cone",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cone",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_cone_Model.all'Access,
|
||||||
the_cone_Model.all'Access,
|
physics_Model => the_cone_physics_Model);
|
||||||
the_cone_physics_Model);
|
|
||||||
-- Capsule
|
-- Capsule
|
||||||
--
|
--
|
||||||
the_capsule_Model : constant openGL.Model.capsule.textured.view
|
the_capsule_Model : constant openGL.Model.capsule.textured.view
|
||||||
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
||||||
Height => 1.0,
|
Height => 1.0,
|
||||||
|
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||||
Image => openGL.to_Asset ("assets/gel/Face1.bmp"));
|
Image => openGL.to_Asset ("assets/gel/Face1.bmp"));
|
||||||
|
|
||||||
the_capsule_physics_Model : constant physics.Model.view
|
the_capsule_physics_Model : constant physics.Model.view
|
||||||
@@ -216,33 +218,32 @@ begin
|
|||||||
Height => 1.0),
|
Height => 1.0),
|
||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
the_Capsule : constant gel.Sprite.view
|
the_Capsule : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Capsule",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Capsule",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_capsule_Model.all'Access,
|
||||||
the_capsule_Model.all'Access,
|
physics_Model => the_capsule_physics_Model);
|
||||||
the_capsule_physics_Model);
|
|
||||||
|
|
||||||
-- multi_Sphere
|
-- multi_Sphere
|
||||||
--
|
--
|
||||||
the_multi_Sphere_Model : constant openGL.Model.capsule.textured.view
|
-- the_multi_Sphere_Model : constant openGL.Model.capsule.textured.view
|
||||||
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
-- := openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
||||||
Height => 0.0,
|
-- Height => 0.0,
|
||||||
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
|
-- texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/golf_green-16x16.tga")]),
|
||||||
|
-- Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
|
||||||
the_multi_Sphere_physics_Model : constant physics.Model.view
|
--
|
||||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.multi_Sphere,
|
-- the_multi_Sphere_physics_Model : constant physics.Model.view
|
||||||
Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
-- := physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.multi_Sphere,
|
||||||
[ 0.5, 0.0, 0.0]),
|
-- Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
||||||
Radii => new gel.math.Vector' (1 => 0.5,
|
-- [ 0.5, 0.0, 0.0]),
|
||||||
2 => 0.5)),
|
-- Radii => new gel.math.Vector' (1 => 0.5,
|
||||||
Mass => 1.0);
|
-- 2 => 0.5)),
|
||||||
|
-- Mass => 1.0);
|
||||||
the_multi_Sphere : constant gel.Sprite.view
|
--
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
|
-- the_multi_Sphere : constant gel.Sprite.view
|
||||||
the_Applet.gui_World.all'Access,
|
-- := gel.Sprite.forge.new_Sprite (Name => "demo.multi_Sphere",
|
||||||
Origin_3D,
|
-- World => the_Applet.gui_World.all'Access,
|
||||||
the_multi_Sphere_Model.all'Access,
|
-- graphics_Model => the_multi_Sphere_Model.all'Access,
|
||||||
the_multi_Sphere_physics_Model);
|
-- physics_Model => the_multi_Sphere_physics_Model);
|
||||||
|
|
||||||
-- Hull
|
-- Hull
|
||||||
--
|
--
|
||||||
@@ -264,24 +265,23 @@ begin
|
|||||||
[ s, s, -s],
|
[ s, s, -s],
|
||||||
[-s, s, -s])));
|
[-s, s, -s])));
|
||||||
the_Hull : constant gel.Sprite.view
|
the_Hull : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Hull",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_hull_Model.all'Access,
|
||||||
the_hull_Model.all'Access,
|
physics_Model => the_hull_physics_Model);
|
||||||
the_hull_physics_Model);
|
|
||||||
begin
|
begin
|
||||||
the_Applet.gui_World.add (the_Ball);
|
the_Applet.gui_World.add (the_Ball);
|
||||||
the_Applet.gui_World.add (the_Box);
|
the_Applet.gui_World.add (the_Box);
|
||||||
the_Applet.gui_World.add (the_Cone);
|
the_Applet.gui_World.add (the_Cone);
|
||||||
the_Applet.gui_World.add (the_Capsule);
|
the_Applet.gui_World.add (the_Capsule);
|
||||||
the_Applet.gui_World.add (the_multi_Sphere);
|
-- the_Applet.gui_World.add (the_multi_Sphere);
|
||||||
the_Applet.gui_World.add (the_Hull);
|
the_Applet.gui_World.add (the_Hull);
|
||||||
|
|
||||||
the_Ball .Site_is ([ x, y, 0.0]);
|
the_Ball .Site_is ([ x, y, 0.0]);
|
||||||
the_Box .Site_is ([ 0.0, y, -2.5]);
|
the_Box .Site_is ([ 0.0, y, -2.5]);
|
||||||
the_Cone .Site_is ([ 0.0, y, 0.0]);
|
the_Cone .Site_is ([ 0.0, y, 0.0]);
|
||||||
the_Capsule .Site_is ([ 0.0 + X, y, 0.0 + x]);
|
the_Capsule .Site_is ([ 0.0 + X, y, 0.0 + x]);
|
||||||
the_multi_Sphere.Site_is ([-4.0, y, 4.4]);
|
-- the_multi_Sphere.Site_is ([-4.0, y, 4.4]);
|
||||||
the_Hull .Site_is ([ 4.0, y, 4.4]);
|
the_Hull .Site_is ([ 4.0, y, 4.4]);
|
||||||
|
|
||||||
x := x + 2.0;
|
x := x + 2.0;
|
||||||
|
|||||||
@@ -102,13 +102,14 @@ begin
|
|||||||
--- Ball
|
--- Ball
|
||||||
--
|
--
|
||||||
the_Ball : constant gel.Sprite.view
|
the_Ball : constant gel.Sprite.view
|
||||||
:= gel.Forge.new_circle_Sprite (in_World => the_Applet.World,
|
:= gel.Forge.new_circle_Sprite (Name => "Ball",
|
||||||
Site => [0.0, 0.0],
|
in_World => the_Applet.World,
|
||||||
Mass => 1.0,
|
Site => [0.0, 0.0, 0.0],
|
||||||
|
Mass => 0.2,
|
||||||
Bounce => 1.0,
|
Bounce => 1.0,
|
||||||
Friction => 0.0,
|
Friction => 0.0,
|
||||||
Radius => 0.5,
|
Radius => 0.5,
|
||||||
Color => Grey,
|
Color => (Grey, openGL.Opaque),
|
||||||
Texture => openGL.to_Asset ("assets/opengl/texture/Face1.bmp"));
|
Texture => openGL.to_Asset ("assets/opengl/texture/Face1.bmp"));
|
||||||
|
|
||||||
court_Width : constant := 30.0;
|
court_Width : constant := 30.0;
|
||||||
@@ -140,8 +141,9 @@ begin
|
|||||||
the_Player : Player renames the_Players (Id);
|
the_Player : Player renames the_Players (Id);
|
||||||
score_Site : constant Vector_2 := Site + [0.0, court_Height / 2.0 + 0.8];
|
score_Site : constant Vector_2 := Site + [0.0, court_Height / 2.0 + 0.8];
|
||||||
begin
|
begin
|
||||||
the_Player.Paddle := gel.Forge.new_rectangle_Sprite (the_Applet.World,
|
the_Player.Paddle := gel.Forge.new_rectangle_Sprite (in_World => the_Applet.World,
|
||||||
Site => Site,
|
Name => "Paddle" & Id'Image,
|
||||||
|
Site => Vector_3 (Site & 0.0),
|
||||||
Mass => 0.0,
|
Mass => 0.0,
|
||||||
Bounce => 1.0,
|
Bounce => 1.0,
|
||||||
Friction => 0.0,
|
Friction => 0.0,
|
||||||
@@ -149,17 +151,22 @@ begin
|
|||||||
Height => 3.0,
|
Height => 3.0,
|
||||||
Color => Red);
|
Color => Red);
|
||||||
|
|
||||||
the_Player.score_Text := gel.Forge.new_text_Sprite (the_Applet.World,
|
the_Player.score_Text := gel.Forge.new_text_Sprite (in_World => the_Applet.World,
|
||||||
Origin_3D,
|
Site => Origin_3D,
|
||||||
" 0",
|
Text => " 0",
|
||||||
the_Applet.Font,
|
Font => the_Applet.Font,
|
||||||
Green);
|
Color => Green,
|
||||||
|
Size => ([1.0, 1.0, 1.0]));
|
||||||
the_Player.score_Model := openGL.Model.text.view (the_Player.score_Text.graphics_Model);
|
the_Player.score_Model := openGL.Model.text.view (the_Player.score_Text.graphics_Model);
|
||||||
|
|
||||||
|
-- the_Player.score_Model.
|
||||||
|
|
||||||
the_Applet.World.add (the_Player.Paddle);
|
the_Applet.World.add (the_Player.Paddle);
|
||||||
the_Applet.World.add (the_Player.score_Text);
|
the_Applet.World.add (the_Player.score_Text);
|
||||||
|
|
||||||
the_Player.score_Text.Site_is (Vector_3 (score_Site & 0.0));
|
the_Player.score_Text.Site_is (Vector_3 (score_Site & 0.0));
|
||||||
|
the_Player.score_Text.Scale_is ([50.0, 50.0, 50.0]);
|
||||||
|
-- the_Player.score_Text.graphics_Model.
|
||||||
end add_Player;
|
end add_Player;
|
||||||
|
|
||||||
|
|
||||||
@@ -170,8 +177,9 @@ begin
|
|||||||
Height : in Real)
|
Height : in Real)
|
||||||
is
|
is
|
||||||
the_Wall : constant gel.Sprite.view
|
the_Wall : constant gel.Sprite.view
|
||||||
:= gel.Forge.new_rectangle_Sprite (the_Applet.World,
|
:= gel.Forge.new_rectangle_Sprite (in_World => the_Applet.World,
|
||||||
Site => Site,
|
Name => "Wall",
|
||||||
|
Site => Vector_3 (Site & 0.0),
|
||||||
Mass => 0.0,
|
Mass => 0.0,
|
||||||
Bounce => 1.0,
|
Bounce => 1.0,
|
||||||
Friction => 0.0,
|
Friction => 0.0,
|
||||||
@@ -269,7 +277,7 @@ begin
|
|||||||
declare
|
declare
|
||||||
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||||
begin
|
begin
|
||||||
Light.Site_is ([0.0, -1000.0, 0.0]);
|
Light.Site_is ([0.0, 0.0, 1.0]);
|
||||||
the_Applet.Renderer.set (Light);
|
the_Applet.Renderer.set (Light);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -387,6 +395,8 @@ begin
|
|||||||
if the_Player.moving_Down then the_Player.Paddle.Site_is (the_Player.Paddle.Site - paddle_Speed); end if;
|
if the_Player.moving_Down then the_Player.Paddle.Site_is (the_Player.Paddle.Site - paddle_Speed); end if;
|
||||||
end;
|
end;
|
||||||
end loop;
|
end loop;
|
||||||
|
|
||||||
|
delay 1.0 / 60.0;
|
||||||
end loop;
|
end loop;
|
||||||
|
|
||||||
free (the_Applet);
|
free (the_Applet);
|
||||||
|
|||||||
@@ -50,12 +50,13 @@ is
|
|||||||
--
|
--
|
||||||
the_Ball : constant gel.Sprite.view
|
the_Ball : constant gel.Sprite.view
|
||||||
:= gel.Forge.new_circle_Sprite (in_World => the_Applet.World,
|
:= gel.Forge.new_circle_Sprite (in_World => the_Applet.World,
|
||||||
|
Name => "Ball",
|
||||||
Site => [0.0, 0.0, 0.0],
|
Site => [0.0, 0.0, 0.0],
|
||||||
Mass => 1.0,
|
Mass => 0.2,
|
||||||
Bounce => 1.0,
|
Bounce => 1.0,
|
||||||
Friction => 0.0,
|
Friction => 0.0,
|
||||||
Radius => 0.5,
|
Radius => 0.5,
|
||||||
Color => Grey,
|
Color => (Grey, openGL.Opaque),
|
||||||
Texture => openGL.to_Asset ("assets/opengl/texture/Face1.bmp"));
|
Texture => openGL.to_Asset ("assets/opengl/texture/Face1.bmp"));
|
||||||
--- Players
|
--- Players
|
||||||
--
|
--
|
||||||
@@ -84,7 +85,8 @@ is
|
|||||||
stadium_Height / 2.0 + 0.8,
|
stadium_Height / 2.0 + 0.8,
|
||||||
0.0];
|
0.0];
|
||||||
begin
|
begin
|
||||||
the_Player.Paddle := gel.Forge.new_rectangle_Sprite (the_Applet.World,
|
the_Player.Paddle := gel.Forge.new_rectangle_Sprite (in_World => the_Applet.World,
|
||||||
|
Name => "Paddle" & Id'Image,
|
||||||
Site => Site,
|
Site => Site,
|
||||||
Mass => 0.0,
|
Mass => 0.0,
|
||||||
Bounce => 1.0,
|
Bounce => 1.0,
|
||||||
@@ -93,11 +95,14 @@ is
|
|||||||
Height => 3.0,
|
Height => 3.0,
|
||||||
Color => Red);
|
Color => Red);
|
||||||
|
|
||||||
the_Player.score_Text := gel.Forge.new_text_Sprite (the_Applet.World,
|
the_Player.score_Text := gel.Forge.new_text_Sprite (in_World => the_Applet.World,
|
||||||
Origin_3D,
|
Site => Origin_3D,
|
||||||
" 0",
|
Text => " 0",
|
||||||
the_Applet.Font,
|
Font => the_Applet.Font,
|
||||||
Green);
|
Color => Green,
|
||||||
|
Size => ([1.0, 1.0, 1.0]));
|
||||||
|
|
||||||
|
|
||||||
the_Player.score_Model := openGL.Model.text.view (the_Player.score_Text.graphics_Model);
|
the_Player.score_Model := openGL.Model.text.view (the_Player.score_Text.graphics_Model);
|
||||||
|
|
||||||
the_Applet.World.add (the_Player.Paddle);
|
the_Applet.World.add (the_Player.Paddle);
|
||||||
@@ -114,14 +119,15 @@ is
|
|||||||
Height : in Real)
|
Height : in Real)
|
||||||
is
|
is
|
||||||
the_Wall : constant gel.Sprite.view
|
the_Wall : constant gel.Sprite.view
|
||||||
:= gel.Forge.new_rectangle_Sprite (the_Applet.World,
|
:= gel.Forge.new_rectangle_Sprite (in_World => the_Applet.World,
|
||||||
Site => Site,
|
Name => "Wall",
|
||||||
Mass => 0.0,
|
Site => Site,
|
||||||
Bounce => 1.0,
|
Mass => 0.0,
|
||||||
Friction => 0.0,
|
Bounce => 1.0,
|
||||||
Width => Width,
|
Friction => 0.0,
|
||||||
Height => Height,
|
Width => Width,
|
||||||
Color => Blue);
|
Height => Height,
|
||||||
|
Color => Blue);
|
||||||
begin
|
begin
|
||||||
the_Applet.World.add (the_Wall);
|
the_Applet.World.add (the_Wall);
|
||||||
end add_Wall;
|
end add_Wall;
|
||||||
@@ -196,7 +202,7 @@ begin
|
|||||||
declare
|
declare
|
||||||
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||||
begin
|
begin
|
||||||
Light.Site_is ([0.0, -1000.0, 0.0]);
|
Light.Site_is ([0.0, 0.0, 1.0]);
|
||||||
the_Applet.Renderer.set (Light);
|
the_Applet.Renderer.set (Light);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -280,6 +286,7 @@ begin
|
|||||||
if relaunch_Ball
|
if relaunch_Ball
|
||||||
then
|
then
|
||||||
the_Ball.Site_is ([0.0, 0.0, 0.0]);
|
the_Ball.Site_is ([0.0, 0.0, 0.0]);
|
||||||
|
|
||||||
declare
|
declare
|
||||||
the_Force : Vector_3 := [gel.Math.Random.random_Real (50.0, 200.0),
|
the_Force : Vector_3 := [gel.Math.Random.random_Real (50.0, 200.0),
|
||||||
gel.Math.Random.random_Real ( 5.0, 20.0),
|
gel.Math.Random.random_Real ( 5.0, 20.0),
|
||||||
@@ -291,7 +298,8 @@ begin
|
|||||||
end if;
|
end if;
|
||||||
|
|
||||||
the_Ball.apply_Force (the_Force);
|
the_Ball.apply_Force (the_Force);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
relaunch_Ball := False;
|
relaunch_Ball := False;
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
with openGL.texture_Set;
|
||||||
with
|
with
|
||||||
gel.Applet.gui_World,
|
gel.Applet.gui_World,
|
||||||
gel.Window.setup,
|
gel.Window.setup,
|
||||||
@@ -8,6 +9,7 @@ with
|
|||||||
|
|
||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
openGL.Light,
|
openGL.Light,
|
||||||
|
openGL.texture_Set,
|
||||||
|
|
||||||
ada.Calendar,
|
ada.Calendar,
|
||||||
ada.Text_IO,
|
ada.Text_IO,
|
||||||
@@ -33,7 +35,8 @@ is
|
|||||||
|
|
||||||
the_human_graphics_Model : constant openGL.Model.any.view
|
the_human_graphics_Model : constant openGL.Model.any.view
|
||||||
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("./assets/opengl/model/human.obj"),
|
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("./assets/opengl/model/human.obj"),
|
||||||
Texture => openGL.null_Asset,
|
Texture => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg"),
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
|
|
||||||
the_human_physics_Model : constant physics.Model.view
|
the_human_physics_Model : constant physics.Model.view
|
||||||
@@ -52,6 +55,7 @@ is
|
|||||||
the_cobra_graphics_Model : aliased constant openGL.Model.any.view
|
the_cobra_graphics_Model : aliased constant openGL.Model.any.view
|
||||||
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("./assets/oolite_cobra3.obj"),
|
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("./assets/oolite_cobra3.obj"),
|
||||||
Texture => openGL.to_Asset ("./assets/oolite_cobra3_diffuse.png"),
|
Texture => openGL.to_Asset ("./assets/oolite_cobra3_diffuse.png"),
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/oolite_cobra3_diffuse.png")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
|
|
||||||
the_cobra_physics_Model : constant physics.Model.view
|
the_cobra_physics_Model : constant physics.Model.view
|
||||||
@@ -82,7 +86,7 @@ begin
|
|||||||
the_Human.Site_is ([0.0, 5.0, 0.0]); --
|
the_Human.Site_is ([0.0, 5.0, 0.0]); --
|
||||||
|
|
||||||
-- the_Applet.gui_World.add (the_Cobra); -- Add cobra.
|
-- the_Applet.gui_World.add (the_Cobra); -- Add cobra.
|
||||||
-- the_Cobra.Site_is ((0.0, 5.0, 0.0)); --
|
the_Cobra.Site_is ((0.0, 5.0, 0.0)); --
|
||||||
|
|
||||||
the_Applet.gui_Camera.Site_is ([0.0, 1.5, 2.6]); -- Position the camera.
|
the_Applet.gui_Camera.Site_is ([0.0, 1.5, 2.6]); -- Position the camera.
|
||||||
-- the_Applet.gui_Camera.Site_is ((0.0, 100.0, 0.0)); -- Position the camera.
|
-- the_Applet.gui_Camera.Site_is ((0.0, 100.0, 0.0)); -- Position the camera.
|
||||||
@@ -95,7 +99,7 @@ begin
|
|||||||
declare
|
declare
|
||||||
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||||
begin
|
begin
|
||||||
Light.Site_is ([0.0, 1000.0, 1000.0]);
|
Light.Site_is ([0.0, 15.0, 15.0]);
|
||||||
the_Applet.Renderer.set (Light);
|
the_Applet.Renderer.set (Light);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
with
|
with
|
||||||
|
openGL.Palette,
|
||||||
|
|
||||||
gel.Window.setup,
|
gel.Window.setup,
|
||||||
gel.Applet.gui_world,
|
gel.Applet.gui_world,
|
||||||
gel.World,
|
gel.World,
|
||||||
@@ -40,8 +42,10 @@ begin
|
|||||||
declare
|
declare
|
||||||
use ada.Calendar;
|
use ada.Calendar;
|
||||||
|
|
||||||
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (the_Applet.World (1),
|
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (in_World => the_Applet.World (1),
|
||||||
Mass => 1.0);
|
Mass => 1.0,
|
||||||
|
is_Lit => False,
|
||||||
|
Color => (openGL.Palette.Green, openGL.Opaque));
|
||||||
|
|
||||||
|
|
||||||
type retreat_Sprite is new lace.Response.item with
|
type retreat_Sprite is new lace.Response.item with
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
with
|
with
|
||||||
|
openGL.Palette,
|
||||||
|
|
||||||
gel.Window.setup,
|
gel.Window.setup,
|
||||||
gel.Applet.gui_world,
|
gel.Applet.gui_world,
|
||||||
gel.World,
|
gel.World,
|
||||||
@@ -40,8 +42,11 @@ begin
|
|||||||
declare
|
declare
|
||||||
use ada.Calendar;
|
use ada.Calendar;
|
||||||
|
|
||||||
the_Ball : constant gel.Sprite.view := gel.Forge.new_circle_Sprite (the_Applet.World (1),
|
the_Ball : constant gel.Sprite.view := gel.Forge.new_circle_Sprite (in_World => the_Applet.World (1),
|
||||||
Mass => 1.0);
|
Name => "Ball",
|
||||||
|
Mass => 1.0,
|
||||||
|
Color => (openGL.Palette.Green, openGL.Opaque),
|
||||||
|
Fill => False);
|
||||||
|
|
||||||
|
|
||||||
type retreat_Sprite is new lace.Response.item with
|
type retreat_Sprite is new lace.Response.item with
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ with
|
|||||||
gel.Forge,
|
gel.Forge,
|
||||||
|
|
||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
openGL.Light.directional,
|
openGL.texture_Set,
|
||||||
|
openGL.Light,
|
||||||
|
-- openGL.Light.directional,
|
||||||
|
|
||||||
ada.Calendar;
|
ada.Calendar;
|
||||||
|
|
||||||
@@ -28,12 +30,13 @@ is
|
|||||||
--- Variables
|
--- Variables
|
||||||
--
|
--
|
||||||
the_Applet : constant gel.Applet.gui_World.view := gel.Forge.new_gui_Applet ("Rig Demo", 1536, 864);
|
the_Applet : constant gel.Applet.gui_World.view := gel.Forge.new_gui_Applet ("Rig Demo", 1536, 864);
|
||||||
the_rig_Model : constant openGL.Model.any.view := openGL.Model.any.new_Model (-- Model => openGL.to_Asset ("./box_1_bone.dae"),
|
the_rig_Model : constant openGL.Model.any.view := openGL.Model.any.new_Model (Model => openGL.to_Asset ("./box_1_bone.dae"),
|
||||||
-- Model => openGL.to_Asset ("./box_1_bone-animated.dae"),
|
-- Model => openGL.to_Asset ("./box_1_bone-animated.dae"),
|
||||||
-- Model => openGL.to_Asset ("./box_2_bone.dae"),
|
-- Model => openGL.to_Asset ("./box_2_bone.dae"),
|
||||||
-- Model => openGL.to_Asset ("./box_3_bone.dae"),
|
-- Model => openGL.to_Asset ("./box_3_bone.dae"),
|
||||||
Model => openGL.to_Asset ("./human-default-animated-01_01.dae"),
|
-- Model => openGL.to_Asset ("./human-default-animated-01_01.dae"),
|
||||||
Texture => openGL.null_Asset,
|
Texture => openGL.null_Asset,
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
the_Rig : gel.Rig.item;
|
the_Rig : gel.Rig.item;
|
||||||
next_render_Time : ada.calendar.Time;
|
next_render_Time : ada.calendar.Time;
|
||||||
@@ -50,15 +53,20 @@ begin
|
|||||||
-- Set the lights position and ambient color.
|
-- Set the lights position and ambient color.
|
||||||
--
|
--
|
||||||
declare
|
declare
|
||||||
Light : openGL.Light.directional.item := the_Applet.Renderer.Light (Id => 1);
|
-- Light : openGL.Light.directional.item := the_Applet.Renderer.Light (Id => 1);
|
||||||
|
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||||
begin
|
begin
|
||||||
Light.ambient_Color_is ((255.0 / 255.0,
|
-- Light.ambient_Color_is ((255.0 / 255.0,
|
||||||
153.0 / 255.0,
|
-- 153.0 / 255.0,
|
||||||
102.0 / 255.0,
|
-- 102.0 / 255.0,
|
||||||
1.0));
|
-- 1.0));
|
||||||
Light.Site_is ((1000.0, 000.0, 1000.0));
|
Light.Color_is ((255.0 / 255.0,
|
||||||
|
153.0 / 255.0,
|
||||||
|
102.0 / 255.0));
|
||||||
|
Light.Site_is ([1000.0, 000.0, 1000.0]);
|
||||||
|
|
||||||
the_Applet.Renderer.Light_is (Id => 1, Now => Light);
|
-- the_Applet.Renderer.Light_is (Id => 1, Now => Light);
|
||||||
|
the_Applet.Renderer.set (the_Light => Light);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ with
|
|||||||
|
|
||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
openGL.Light,
|
openGL.Light,
|
||||||
|
openGL.texture_Set,
|
||||||
|
|
||||||
ada.Calendar;
|
ada.Calendar;
|
||||||
|
|
||||||
@@ -46,6 +47,7 @@ is
|
|||||||
Model => openGL.to_Asset ("./box_1_bone.dae"),
|
Model => openGL.to_Asset ("./box_1_bone.dae"),
|
||||||
-- Model => openGL.to_Asset ("./box_2_bone.dae"),
|
-- Model => openGL.to_Asset ("./box_2_bone.dae"),
|
||||||
Texture => openGL.null_Asset,
|
Texture => openGL.null_Asset,
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/opengl/textures/wooden-crate.jpg")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
the_Rig : aliased gel.Rig.item;
|
the_Rig : aliased gel.Rig.item;
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ with
|
|||||||
|
|
||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
openGL.Light,
|
openGL.Light,
|
||||||
|
openGL.texture_Set,
|
||||||
|
|
||||||
ada.command_Line,
|
ada.command_Line,
|
||||||
ada.Calendar,
|
ada.Calendar,
|
||||||
@@ -54,6 +55,7 @@ begin
|
|||||||
the_Rig : aliased gel.Rig.item;
|
the_Rig : aliased gel.Rig.item;
|
||||||
the_rig_Model : aliased constant openGL.Model.any.view := openGL.Model.any.new_Model (Model => openGL.to_Asset (model_Name),
|
the_rig_Model : aliased constant openGL.Model.any.view := openGL.Model.any.new_Model (Model => openGL.to_Asset (model_Name),
|
||||||
Texture => openGL.null_Asset,
|
Texture => openGL.null_Asset,
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
next_render_Time : ada.calendar.Time := ada.calendar.Clock;
|
next_render_Time : ada.calendar.Time := ada.calendar.Clock;
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ with
|
|||||||
gel.Joint,
|
gel.Joint,
|
||||||
|
|
||||||
Physics,
|
Physics,
|
||||||
openGL.Palette;
|
openGL.Palette,
|
||||||
|
openGL.Light;
|
||||||
|
|
||||||
pragma unreferenced (gel.Window.sdl);
|
pragma unreferenced (gel.Window.sdl);
|
||||||
|
|
||||||
@@ -37,6 +38,15 @@ begin
|
|||||||
the_Applet.Renderer .Background_is (Grey);
|
the_Applet.Renderer .Background_is (Grey);
|
||||||
the_Applet.enable_simple_Dolly (in_World => gui_World.gui_world_Id);
|
the_Applet.enable_simple_Dolly (in_World => gui_World.gui_world_Id);
|
||||||
|
|
||||||
|
-- Set the lights position.
|
||||||
|
--
|
||||||
|
declare
|
||||||
|
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||||
|
begin
|
||||||
|
Light.Site_is ([0.0, 0.0, 15.0]);
|
||||||
|
the_Applet.Renderer.set (Light);
|
||||||
|
end;
|
||||||
|
|
||||||
the_Ground.Site_is ([0.0, -40.0, 0.0]);
|
the_Ground.Site_is ([0.0, -40.0, 0.0]);
|
||||||
the_Applet.gui_World.add (the_Ground, and_Children => False);
|
the_Applet.gui_World.add (the_Ground, and_Children => False);
|
||||||
|
|
||||||
@@ -44,8 +54,13 @@ begin
|
|||||||
--
|
--
|
||||||
declare
|
declare
|
||||||
ball_Count : constant := 39;
|
ball_Count : constant := 39;
|
||||||
the_root_Ball : constant gel.Sprite.view := new_circle_Sprite (the_Applet.gui_World, Name => "the_root_Ball", Mass => 0.0);
|
the_root_Ball : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
|
||||||
the_Balls : constant gel.Sprite.views := [1 .. ball_Count => new_circle_Sprite (the_Applet.gui_World, Name => "the_Balls", Mass => 1.0)];
|
Name => "the_root_Ball",
|
||||||
|
Mass => 0.0);
|
||||||
|
the_Balls : constant gel.Sprite.views := [1 .. ball_Count => new_circle_Sprite (in_World => the_Applet.gui_World,
|
||||||
|
Name => "the_Balls",
|
||||||
|
Color => (Green, openGL.Opaque),
|
||||||
|
Mass => 1.0)];
|
||||||
|
|
||||||
Parent : gel.Sprite.view := the_root_Ball;
|
Parent : gel.Sprite.view := the_root_Ball;
|
||||||
new_Joint : gel.Joint .view;
|
new_Joint : gel.Joint .view;
|
||||||
|
|||||||
@@ -6,6 +6,9 @@ with
|
|||||||
gel.World,
|
gel.World,
|
||||||
gel.Camera,
|
gel.Camera,
|
||||||
|
|
||||||
|
openGL.Light,
|
||||||
|
openGL.Palette,
|
||||||
|
|
||||||
Physics,
|
Physics,
|
||||||
|
|
||||||
ada.Text_IO,
|
ada.Text_IO,
|
||||||
@@ -41,7 +44,8 @@ is
|
|||||||
end gui_Camera;
|
end gui_Camera;
|
||||||
|
|
||||||
|
|
||||||
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (gui_World);
|
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (in_World => gui_World,
|
||||||
|
Color => (openGL.Palette.Green, openGL.Opaque));
|
||||||
the_Box : constant gel.Sprite.view := gel.Forge.new_box_Sprite (gui_World,
|
the_Box : constant gel.Sprite.view := gel.Forge.new_box_Sprite (gui_World,
|
||||||
Mass => 0.0,
|
Mass => 0.0,
|
||||||
Size => [20.0, 1.0, 20.0]);
|
Size => [20.0, 1.0, 20.0]);
|
||||||
@@ -59,6 +63,15 @@ begin
|
|||||||
gui_World.add (the_Ball); -- Add ball.
|
gui_World.add (the_Ball); -- Add ball.
|
||||||
gui_World.add (the_Box); -- Add box.
|
gui_World.add (the_Box); -- Add box.
|
||||||
|
|
||||||
|
-- Set the lights position.
|
||||||
|
--
|
||||||
|
declare
|
||||||
|
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||||
|
begin
|
||||||
|
Light.Site_is ([0.0, 15.0, 15.0]);
|
||||||
|
Light.ambient_Coefficient_is (0.5);
|
||||||
|
the_Applet.Renderer.set (Light);
|
||||||
|
end;
|
||||||
|
|
||||||
while the_Applet.is_open
|
while the_Applet.is_open
|
||||||
loop
|
loop
|
||||||
|
|||||||
@@ -41,11 +41,10 @@ is
|
|||||||
half_Extents => [5.0, 0.25, 5.0]));
|
half_Extents => [5.0, 0.25, 5.0]));
|
||||||
|
|
||||||
the_Ground : constant gel.Sprite.view
|
the_Ground : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Ground",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ground",
|
||||||
gel.Sprite.World_view (the_Applet.gui_World),
|
World => gel.Sprite.World_view (the_Applet.gui_World),
|
||||||
math.Origin_3D,
|
graphics_Model => the_ground_graphics_Model,
|
||||||
the_ground_graphics_Model,
|
physics_Model => the_ground_physics_Model);
|
||||||
the_ground_physics_Model);
|
|
||||||
|
|
||||||
|
|
||||||
the_box_physics_Model : constant physics.Model.view
|
the_box_physics_Model : constant physics.Model.view
|
||||||
@@ -62,11 +61,10 @@ is
|
|||||||
Left => (Colors => [others => (Cyan, Opaque)]),
|
Left => (Colors => [others => (Cyan, Opaque)]),
|
||||||
Right => (Colors => [others => (Magenta, Opaque)])]);
|
Right => (Colors => [others => (Magenta, Opaque)])]);
|
||||||
the_Box : constant gel.Sprite.view
|
the_Box : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
|
||||||
gel.Sprite.World_view (the_Applet.gui_World),
|
World => gel.Sprite.World_view (the_Applet.gui_World),
|
||||||
math.Origin_3D,
|
graphics_Model => the_box_graphics_Model,
|
||||||
the_box_graphics_Model,
|
physics_Model => the_box_physics_Model);
|
||||||
the_box_physics_Model);
|
|
||||||
begin
|
begin
|
||||||
new_Line;
|
new_Line;
|
||||||
put_Line ("Use arrow keys and PgUp/PgDn to move the camera.");
|
put_Line ("Use arrow keys and PgUp/PgDn to move the camera.");
|
||||||
@@ -79,7 +77,7 @@ begin
|
|||||||
the_Applet.gui_World.add (the_Ground, and_children => False); -- Add ground.
|
the_Applet.gui_World.add (the_Ground, and_children => False); -- Add ground.
|
||||||
the_Ground.Site_is (math.Origin_3D);
|
the_Ground.Site_is (math.Origin_3D);
|
||||||
|
|
||||||
the_Applet.gui_World.add (the_Box, and_Children => False); -- Add ball.
|
the_Applet.gui_World.add (the_Box, and_Children => False); -- Add ball.
|
||||||
the_Box.Site_is ([0.0, 10.0, 0.0]);
|
the_Box.Site_is ([0.0, 10.0, 0.0]);
|
||||||
|
|
||||||
while the_Applet.is_open
|
while the_Applet.is_open
|
||||||
|
|||||||
18
4-high/gel/applet/demo/sprite/ghost_sprite/ghost_sprite.gpr
Normal file
18
4-high/gel/applet/demo/sprite/ghost_sprite/ghost_sprite.gpr
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
with
|
||||||
|
"gel_sdl",
|
||||||
|
"lace_shared";
|
||||||
|
|
||||||
|
|
||||||
|
project ghost_Sprite
|
||||||
|
is
|
||||||
|
for Object_Dir use "build";
|
||||||
|
for Exec_Dir use ".";
|
||||||
|
for Main use ("launch_ghost_sprite.adb");
|
||||||
|
for Languages use ("Ada");
|
||||||
|
|
||||||
|
package Ide renames Lace_shared.Ide;
|
||||||
|
package Builder renames Lace_shared.Builder;
|
||||||
|
package Compiler renames Lace_shared.Compiler;
|
||||||
|
package Binder renames Lace_shared.Binder;
|
||||||
|
|
||||||
|
end ghost_Sprite;
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
with
|
||||||
|
gel.Forge,
|
||||||
|
gel.Window.sdl,
|
||||||
|
gel.Applet.gui_world,
|
||||||
|
gel.Camera,
|
||||||
|
gel.Sprite,
|
||||||
|
physics.Model,
|
||||||
|
|
||||||
|
openGL.Model.box.colored,
|
||||||
|
openGL.Palette,
|
||||||
|
|
||||||
|
ada.Text_IO,
|
||||||
|
ada.Exceptions;
|
||||||
|
|
||||||
|
pragma unreferenced (gel.window.sdl);
|
||||||
|
|
||||||
|
|
||||||
|
procedure launch_ghost_Sprite
|
||||||
|
--
|
||||||
|
-- Drops a box onto a box 'terrain'.
|
||||||
|
--
|
||||||
|
is
|
||||||
|
use openGL.Model.box,
|
||||||
|
openGL,
|
||||||
|
opengl.Palette,
|
||||||
|
ada.Text_IO;
|
||||||
|
|
||||||
|
the_Applet : constant gel.Applet.gui_World.view
|
||||||
|
:= gel.Forge.new_gui_Applet ("ghost Sprite");
|
||||||
|
|
||||||
|
|
||||||
|
the_ground_graphics_Model : constant openGL.Model.box.colored.view
|
||||||
|
:= openGL.Model.box.colored.new_Box (Size => [10.0, 0.5, 10.0],
|
||||||
|
Faces => [Front => (Colors => [others => (Red, Opaque)]),
|
||||||
|
Rear => (Colors => [others => (Blue, Opaque)]),
|
||||||
|
Upper => (Colors => [others => (Green, Opaque)]),
|
||||||
|
Lower => (Colors => [others => (Yellow, Opaque)]),
|
||||||
|
Left => (Colors => [others => (Cyan, Opaque)]),
|
||||||
|
Right => (Colors => [others => (Magenta, Opaque)])]);
|
||||||
|
the_ground_physics_Model : constant physics.Model.view
|
||||||
|
:= physics.Model.Forge.new_physics_Model (shape_Info => (Kind => physics.Model.cube,
|
||||||
|
half_Extents => [5.0, 0.25, 5.0]),
|
||||||
|
is_Tangible => False);
|
||||||
|
|
||||||
|
the_Ground : constant gel.Sprite.view
|
||||||
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ground",
|
||||||
|
World => gel.Sprite.World_view (the_Applet.gui_World),
|
||||||
|
graphics_Model => the_ground_graphics_Model,
|
||||||
|
physics_Model => the_ground_physics_Model);
|
||||||
|
|
||||||
|
|
||||||
|
the_box_physics_Model : constant physics.Model.view
|
||||||
|
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cube,
|
||||||
|
half_Extents => [1.0, 0.5, 1.0]),
|
||||||
|
Mass => 1.0);
|
||||||
|
|
||||||
|
the_box_graphics_Model : constant openGL.Model.box.colored.view
|
||||||
|
:= openGL.Model.box.colored.new_Box (Size => [1.0, 1.0, 1.0],
|
||||||
|
Faces => [Front => (Colors => [others => (Red, Opaque)]),
|
||||||
|
Rear => (Colors => [others => (Blue, Opaque)]),
|
||||||
|
Upper => (Colors => [others => (dark_Green, Opaque)]),
|
||||||
|
Lower => (Colors => [others => (Yellow, Opaque)]),
|
||||||
|
Left => (Colors => [others => (Cyan, Opaque)]),
|
||||||
|
Right => (Colors => [others => (Magenta, Opaque)])]);
|
||||||
|
the_Box : constant gel.Sprite.view
|
||||||
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
|
||||||
|
World => gel.Sprite.World_view (the_Applet.gui_World),
|
||||||
|
graphics_Model => the_box_graphics_Model,
|
||||||
|
physics_Model => the_box_physics_Model);
|
||||||
|
begin
|
||||||
|
new_Line;
|
||||||
|
put_Line ("Use arrow keys and PgUp/PgDn to move the camera.");
|
||||||
|
new_Line;
|
||||||
|
|
||||||
|
the_Applet.gui_Camera.Site_is ([0.0, 5.0, 15.0]); -- Position the camera.
|
||||||
|
the_Applet.enable_simple_Dolly (1); -- Enable user camera control via keyboards.
|
||||||
|
the_Applet.enable_Mouse (detect_Motion => False); -- Enable the mouse.
|
||||||
|
|
||||||
|
the_Applet.gui_World.add (the_Ground, and_children => False); -- Add ground.
|
||||||
|
the_Ground.Site_is (math.Origin_3D);
|
||||||
|
|
||||||
|
the_Applet.gui_World.add (the_Box, and_Children => False); -- Add ball.
|
||||||
|
the_Box.Site_is ([0.0, 10.0, 0.0]);
|
||||||
|
|
||||||
|
while the_Applet.is_open
|
||||||
|
loop
|
||||||
|
the_Applet.freshen; -- Handle any new events and update the screen.
|
||||||
|
end loop;
|
||||||
|
|
||||||
|
the_Applet.destroy;
|
||||||
|
|
||||||
|
exception
|
||||||
|
when E : others =>
|
||||||
|
new_Line;
|
||||||
|
put_Line ("Unhandled exception in main thread ...");
|
||||||
|
put_Line (ada.Exceptions.exception_Information (E));
|
||||||
|
new_Line;
|
||||||
|
end launch_ghost_Sprite;
|
||||||
@@ -62,31 +62,28 @@ begin
|
|||||||
half_Extents => box_Size / 2.0),
|
half_Extents => box_Size / 2.0),
|
||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
the_Box_1 : constant gel.Sprite.view
|
the_Box_1 : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Box.static.1",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.static.1",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
math.Origin_3d,
|
graphics_Model => the_box_Model.all'Access,
|
||||||
the_box_Model.all'Access,
|
physics_Model => the_static_box_physics_Model,
|
||||||
the_static_box_physics_Model,
|
owns_Graphics => False,
|
||||||
owns_Graphics => False,
|
owns_Physics => True);
|
||||||
owns_Physics => True);
|
|
||||||
|
|
||||||
the_Box_2 : constant gel.Sprite.view
|
the_Box_2 : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Box.dynamic.2",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.dynamic.2",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
math.Origin_3d,
|
graphics_Model => the_box_Model.all'Access,
|
||||||
the_box_Model.all'Access,
|
physics_Model => the_dynamic_box_physics_Model,
|
||||||
the_dynamic_box_physics_Model,
|
owns_Graphics => False,
|
||||||
owns_Graphics => False,
|
owns_Physics => False);
|
||||||
owns_Physics => False);
|
|
||||||
|
|
||||||
the_Box_3 : constant gel.Sprite.view
|
the_Box_3 : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Box.dynamic.3",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.dynamic.3",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
math.Origin_3d,
|
graphics_Model => the_box_Model.all'Access,
|
||||||
the_box_Model.all'Access,
|
physics_Model => the_dynamic_box_physics_Model,
|
||||||
the_dynamic_box_physics_Model,
|
owns_Graphics => True,
|
||||||
owns_Graphics => True,
|
owns_Physics => True);
|
||||||
owns_Physics => True);
|
|
||||||
|
|
||||||
the_Joint_1 : constant gel.hinge_Joint.view := new gel.hinge_Joint.item;
|
the_Joint_1 : constant gel.hinge_Joint.view := new gel.hinge_Joint.item;
|
||||||
the_Joint_2 : constant gel.hinge_Joint.view := new gel.hinge_Joint.item;
|
the_Joint_2 : constant gel.hinge_Joint.view := new gel.hinge_Joint.item;
|
||||||
@@ -101,7 +98,6 @@ begin
|
|||||||
the_Box_1.Site_is ([ 0.0, 0.0, 0.0]);
|
the_Box_1.Site_is ([ 0.0, 0.0, 0.0]);
|
||||||
the_Box_2.Site_is ([ -1.0, 2.0, 0.0]);
|
the_Box_2.Site_is ([ -1.0, 2.0, 0.0]);
|
||||||
the_Box_3.Site_is ([ 10.0, 10.0, 0.0]);
|
the_Box_3.Site_is ([ 10.0, 10.0, 0.0]);
|
||||||
-- the_Box_3.Site_is (( 10.0, 10.0, 0.0));
|
|
||||||
|
|
||||||
declare
|
declare
|
||||||
use math.Algebra.linear.d3;
|
use math.Algebra.linear.d3;
|
||||||
|
|||||||
@@ -47,26 +47,49 @@ begin
|
|||||||
-- Hinge
|
-- Hinge
|
||||||
--
|
--
|
||||||
declare
|
declare
|
||||||
the_hinge_Box_1 : constant gel.Sprite.view := new_circle_Sprite (the_Applet.gui_World, Name => "the_hinge_Box_1", mass => 0.0);
|
the_hinge_Box_1 : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
|
||||||
the_hinge_Box_2 : constant gel.Sprite.view := new_circle_Sprite (the_Applet.gui_World, Name => "the_hinge_Box_2", mass => 1.0);
|
Name => "the_hinge_Box_1",
|
||||||
|
Mass => 0.0,
|
||||||
|
Color => (openGL.Palette.Green, openGL.Opaque),
|
||||||
|
Fill => False);
|
||||||
|
|
||||||
|
the_hinge_Box_2 : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
|
||||||
|
Name => "the_hinge_Box_2",
|
||||||
|
Mass => 1.0,
|
||||||
|
Color => (openGL.Palette.Green, openGL.Opaque),
|
||||||
|
Fill => False);
|
||||||
|
|
||||||
new_Joint : gel. Joint .view;
|
new_Joint : gel. Joint .view;
|
||||||
|
|
||||||
Frame_A : constant math.Matrix_4x4 := math.Identity_4x4;
|
-- Frame_A : constant math.Matrix_4x4 := math.Identity_4x4;
|
||||||
Frame_B : constant math.Matrix_4x4 := math.Identity_4x4;
|
-- Frame_B : constant math.Matrix_4x4 := math.Identity_4x4;
|
||||||
begin
|
begin
|
||||||
the_hinge_Box_1.Site_is ([ 0.0, 0.0, 0.0]);
|
the_hinge_Box_1.Site_is ([ 0.0, 0.0, 0.0]);
|
||||||
the_hinge_Box_2.Site_is ([-10.0, 0.0, 0.0]);
|
the_hinge_Box_2.Site_is ([-10.0, 0.0, 0.0]);
|
||||||
|
|
||||||
|
the_Applet.gui_World.add (the_hinge_Box_1);
|
||||||
|
the_Applet.gui_World.add (the_hinge_Box_2);
|
||||||
|
|
||||||
|
-- the_hinge_Box_1.attach_via_Hinge (the_Child => the_hinge_Box_2,
|
||||||
|
-- Frame_in_parent => Frame_A,
|
||||||
|
-- Frame_in_child => Frame_B,
|
||||||
|
-- Limits => (0.0, to_Radians (355.0)),
|
||||||
|
-- collide_Connected => False,
|
||||||
|
-- new_joint => new_Joint);
|
||||||
|
|
||||||
|
|
||||||
|
the_hinge_Box_1.attach_via_Hinge
|
||||||
|
(the_Child => the_hinge_Box_2,
|
||||||
|
pivot_Axis => [0.0, 0.0, 1.0], -- Unused.
|
||||||
|
pivot_Anchor => [-0.0, 0.0, 0.0],
|
||||||
|
low_Limit => to_Radians (-355.0),
|
||||||
|
high_Limit => to_Radians ( 355.0),
|
||||||
|
new_joint => new_Joint);
|
||||||
|
|
||||||
the_hinge_Box_1.attach_via_Hinge (the_Child => the_hinge_Box_2,
|
|
||||||
Frame_in_parent => Frame_A,
|
|
||||||
Frame_in_child => Frame_B,
|
|
||||||
Limits => (0.0, to_Radians (355.0)),
|
|
||||||
collide_Connected => False,
|
|
||||||
new_joint => new_Joint);
|
|
||||||
-- the_hinge_Joint := gel.hinge_Joint .view (new_Joint);
|
-- the_hinge_Joint := gel.hinge_Joint .view (new_Joint);
|
||||||
|
|
||||||
the_Applet.gui_World.add (the_hinge_Box_1, and_children => True);
|
-- the_Applet.gui_World.add (the_hinge_Box_1, and_children => True);
|
||||||
|
the_Applet.gui_World.add (new_Joint);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
-- -- DoF6
|
-- -- DoF6
|
||||||
|
|||||||
@@ -10,8 +10,10 @@ with
|
|||||||
openGL.Model.box.colored,
|
openGL.Model.box.colored,
|
||||||
openGL.Model.sphere.lit_colored_textured,
|
openGL.Model.sphere.lit_colored_textured,
|
||||||
openGL.Model.capsule.lit_colored_textured,
|
openGL.Model.capsule.lit_colored_textured,
|
||||||
|
openGL.Model.capsule.textured,
|
||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
openGL.Model.terrain,
|
openGL.Model.terrain,
|
||||||
|
openGL.texture_Set,
|
||||||
openGL.IO,
|
openGL.IO,
|
||||||
openGL.Light,
|
openGL.Light,
|
||||||
openGL.Palette;
|
openGL.Palette;
|
||||||
@@ -90,13 +92,14 @@ is
|
|||||||
Scale => 2.0);
|
Scale => 2.0);
|
||||||
|
|
||||||
the_heightfield_Model : constant openGL.Model.terrain.view
|
the_heightfield_Model : constant openGL.Model.terrain.view
|
||||||
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
||||||
Row => 1,
|
Row => 1,
|
||||||
Col => 1,
|
Col => 1,
|
||||||
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
||||||
color_Map => terrain_Texture,
|
color_Map => terrain_Texture,
|
||||||
Tiling => (s => (0.0, 1.0),
|
texture_Details => texture_Set.to_Details ([1 => terrain_Texture]),
|
||||||
t => (0.0, 1.0)));
|
Tiling => (s => (0.0, 1.0),
|
||||||
|
t => (0.0, 1.0)));
|
||||||
|
|
||||||
the_heightfield_physics_Model : constant physics.Model.view
|
the_heightfield_physics_Model : constant physics.Model.view
|
||||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.heightfield,
|
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.heightfield,
|
||||||
@@ -104,11 +107,10 @@ is
|
|||||||
height_Range => [0.0, 200.0]),
|
height_Range => [0.0, 200.0]),
|
||||||
Scale => [hs, 1.0, hs]);
|
Scale => [hs, 1.0, hs]);
|
||||||
the_Heightfield : constant gel.Sprite.view
|
the_Heightfield : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Heightfield",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_Heightfield_Model,
|
||||||
the_Heightfield_Model,
|
physics_Model => the_Heightfield_physics_Model);
|
||||||
the_Heightfield_physics_Model);
|
|
||||||
begin
|
begin
|
||||||
-- Applet.
|
-- Applet.
|
||||||
--
|
--
|
||||||
@@ -153,11 +155,10 @@ begin
|
|||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
|
|
||||||
the_Box : constant gel.Sprite.view
|
the_Box : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_box_Model.all'Access,
|
||||||
the_box_Model.all'Access,
|
physics_Model => the_box_physics_Model);
|
||||||
the_box_physics_Model);
|
|
||||||
|
|
||||||
-- Ball
|
-- Ball
|
||||||
--
|
--
|
||||||
@@ -167,36 +168,37 @@ begin
|
|||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
|
|
||||||
the_ball_Model : constant openGL.Model.sphere.lit_colored_textured.view
|
the_ball_Model : constant openGL.Model.sphere.lit_colored_textured.view
|
||||||
:= openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius => 1.0,
|
:= openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius => 1.0,
|
||||||
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
|
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"),
|
||||||
|
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]));
|
||||||
the_Ball : constant gel.Sprite.view
|
the_Ball : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Ball",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ball",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_ball_Model,
|
||||||
the_ball_Model,
|
physics_Model => the_ball_physics_Model);
|
||||||
the_ball_physics_Model);
|
|
||||||
|
|
||||||
-- Cone
|
-- Cone
|
||||||
--
|
--
|
||||||
the_cone_Model : constant openGL.Model.any.view
|
the_cone_Model : constant openGL.Model.any.view
|
||||||
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cone.obj"),
|
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cone.obj"),
|
||||||
Texture => openGL.null_Asset,
|
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
|
||||||
|
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
|
|
||||||
the_cone_physics_Model : constant physics.Model.view
|
the_cone_physics_Model : constant physics.Model.view
|
||||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cone),
|
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cone),
|
||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
the_Cone : constant gel.Sprite.view
|
the_Cone : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Cone",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cone",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_cone_Model.all'Access,
|
||||||
the_cone_Model.all'Access,
|
physics_Model => the_cone_physics_Model);
|
||||||
the_cone_physics_Model);
|
|
||||||
-- Cylinder
|
-- Cylinder
|
||||||
--
|
--
|
||||||
the_cylinder_Model : constant openGL.Model.any.view
|
the_cylinder_Model : constant openGL.Model.any.view
|
||||||
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cylinder.obj"),
|
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cylinder.obj"),
|
||||||
Texture => openGL.null_Asset,
|
Texture => openGL.to_Asset ("assets/gel/Face1.bmp"),
|
||||||
|
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
|
|
||||||
the_cylinder_physics_Model : constant physics.Model.view
|
the_cylinder_physics_Model : constant physics.Model.view
|
||||||
@@ -205,17 +207,18 @@ begin
|
|||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
|
|
||||||
the_Cylinder : constant gel.Sprite.view
|
the_Cylinder : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Cylinder",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cylinder",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_cylinder_Model.all'Access,
|
||||||
the_cylinder_Model.all'Access,
|
physics_Model => the_cylinder_physics_Model);
|
||||||
the_cylinder_physics_Model);
|
|
||||||
-- Capsule
|
-- Capsule
|
||||||
--
|
--
|
||||||
the_capsule_Model : constant openGL.Model.capsule.lit_colored_textured.view
|
the_capsule_Model : constant openGL.Model.capsule.textured.view
|
||||||
:= openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
|
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
||||||
Height => 0.0,
|
Height => 2.0,
|
||||||
Color => (palette.Green, Opaque));
|
texture_Details => texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||||
|
Image => openGL.to_Asset ("assets/gel/Face1.bmp"));
|
||||||
|
|
||||||
|
|
||||||
the_capsule_physics_Model : constant physics.Model.view
|
the_capsule_physics_Model : constant physics.Model.view
|
||||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.a_Capsule,
|
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.a_Capsule,
|
||||||
@@ -224,34 +227,33 @@ begin
|
|||||||
Height => 1.0),
|
Height => 1.0),
|
||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
the_Capsule : constant gel.Sprite.view
|
the_Capsule : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Capsule",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Capsule",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_capsule_Model.all'Access,
|
||||||
the_capsule_Model.all'Access,
|
physics_Model => the_capsule_physics_Model);
|
||||||
the_capsule_physics_Model);
|
|
||||||
|
|
||||||
-- multi_Sphere
|
-- multi_Sphere
|
||||||
--
|
--
|
||||||
the_multi_Sphere_Model : constant openGL.Model.capsule.lit_colored_textured.view
|
-- the_multi_Sphere_Model : constant openGL.Model.capsule.lit_colored_textured.view
|
||||||
:= openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
|
-- := openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
|
||||||
Height => 0.0,
|
-- Height => 0.0,
|
||||||
Color => (palette.Green, Opaque),
|
-- Color => (palette.Green, Opaque),
|
||||||
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
|
-- Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
|
||||||
|
--
|
||||||
the_multi_Sphere_physics_Model : constant physics.Model.view
|
-- the_multi_Sphere_physics_Model : constant physics.Model.view
|
||||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.multi_Sphere,
|
-- := physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.multi_Sphere,
|
||||||
Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
-- Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
||||||
[ 0.5, 0.0, 0.0]),
|
-- [ 0.5, 0.0, 0.0]),
|
||||||
Radii => new gel.math.Vector' (1 => 0.5,
|
-- Radii => new gel.math.Vector' (1 => 0.5,
|
||||||
2 => 0.5)),
|
-- 2 => 0.5)),
|
||||||
Mass => 1.0);
|
-- Mass => 1.0);
|
||||||
|
--
|
||||||
the_multi_Sphere : constant gel.Sprite.view
|
-- the_multi_Sphere : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
|
-- := gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
|
||||||
the_Applet.gui_World.all'Access,
|
-- the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
-- Origin_3D,
|
||||||
the_multi_Sphere_Model.all'Access,
|
-- the_multi_Sphere_Model.all'Access,
|
||||||
the_multi_Sphere_physics_Model);
|
-- the_multi_Sphere_physics_Model);
|
||||||
|
|
||||||
-- Hull
|
-- Hull
|
||||||
--
|
--
|
||||||
@@ -277,18 +279,17 @@ begin
|
|||||||
[-s, s, -s])),
|
[-s, s, -s])),
|
||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
the_Hull : constant gel.Sprite.view
|
the_Hull : constant gel.Sprite.view
|
||||||
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
|
:= gel.Sprite.forge.new_Sprite (Name => "demo.Hull",
|
||||||
the_Applet.gui_World.all'Access,
|
World => the_Applet.gui_World.all'Access,
|
||||||
Origin_3D,
|
graphics_Model => the_hull_Model.all'Access,
|
||||||
the_hull_Model.all'Access,
|
physics_Model => the_hull_physics_Model);
|
||||||
the_hull_physics_Model);
|
|
||||||
begin
|
begin
|
||||||
the_Applet.gui_World.add (the_Ball);
|
the_Applet.gui_World.add (the_Ball);
|
||||||
the_Applet.gui_World.add (the_Box);
|
the_Applet.gui_World.add (the_Box);
|
||||||
the_Applet.gui_World.add (the_Cone);
|
the_Applet.gui_World.add (the_Cone);
|
||||||
the_Applet.gui_World.add (the_Cylinder);
|
the_Applet.gui_World.add (the_Cylinder);
|
||||||
the_Applet.gui_World.add (the_Capsule);
|
the_Applet.gui_World.add (the_Capsule);
|
||||||
the_Applet.gui_World.add (the_multi_Sphere);
|
-- the_Applet.gui_World.add (the_multi_Sphere);
|
||||||
the_Applet.gui_World.add (the_Hull);
|
the_Applet.gui_World.add (the_Hull);
|
||||||
|
|
||||||
the_Ball .Site_is ([ x, y, 0.0]);
|
the_Ball .Site_is ([ x, y, 0.0]);
|
||||||
@@ -297,7 +298,7 @@ begin
|
|||||||
the_Capsule .Site_is ([ 0.0 + X, y, 0.0 + x]);
|
the_Capsule .Site_is ([ 0.0 + X, y, 0.0 + x]);
|
||||||
the_Cylinder .Site_is ([ 0.0, y, 4.4]);
|
the_Cylinder .Site_is ([ 0.0, y, 4.4]);
|
||||||
the_Hull .Site_is ([ 4.0, y, 4.4]);
|
the_Hull .Site_is ([ 4.0, y, 4.4]);
|
||||||
the_multi_Sphere.Site_is ([-4.0, y, 4.4]);
|
-- the_multi_Sphere.Site_is ([-4.0, y, 4.4]);
|
||||||
|
|
||||||
x := x + 2.0;
|
x := x + 2.0;
|
||||||
y := y + 2.0;
|
y := y + 2.0;
|
||||||
|
|||||||
@@ -20,22 +20,20 @@ is
|
|||||||
use gel.Math,
|
use gel.Math,
|
||||||
openGL.Palette;
|
openGL.Palette;
|
||||||
|
|
||||||
the_Applet : constant gel.Applet.gui_World.view := gel.forge.new_gui_Applet ("text sprite Demo",
|
the_Applet : constant gel.Applet.gui_World.view := gel.Forge.new_gui_Applet ("text sprite Demo",
|
||||||
space_Kind => physics.Bullet);
|
space_Kind => physics.Bullet);
|
||||||
|
|
||||||
the_Text_1 : constant gel.Sprite.view := gel.forge.new_text_Sprite (the_Applet.gui_World,
|
the_Text_1 : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
|
||||||
Origin_3D,
|
Text => "Howdy",
|
||||||
"Howdy",
|
Font => the_Applet.Font,
|
||||||
the_Applet.Font,
|
Color => dark_Green);
|
||||||
Green);
|
|
||||||
|
|
||||||
the_Text_2 : constant gel.Sprite.view := gel.forge.new_text_Sprite (the_Applet.gui_World,
|
the_Text_2 : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
|
||||||
Origin_3D,
|
Text => "Doody",
|
||||||
"Doody",
|
Font => the_Applet.Font,
|
||||||
the_Applet.Font,
|
Color => dark_Green);
|
||||||
Green);
|
text_2_Model : constant openGL.Model.text.lit_colored.view
|
||||||
text_1_Model : constant openGL.Model.text.lit_colored.view
|
:= openGL.Model.text.lit_colored.view (the_Text_2.graphics_Model);
|
||||||
:= openGL.Model.text.lit_colored.view (the_Text_1.graphics_Model);
|
|
||||||
begin
|
begin
|
||||||
the_Applet.gui_Camera.Site_is ([0.0, 0.0, 50.0]); -- Position the camera.
|
the_Applet.gui_Camera.Site_is ([0.0, 0.0, 50.0]); -- Position the camera.
|
||||||
the_Applet.enable_simple_Dolly (1); -- Enable user camera control via keyboards.
|
the_Applet.enable_simple_Dolly (1); -- Enable user camera control via keyboards.
|
||||||
@@ -43,15 +41,15 @@ begin
|
|||||||
the_Applet.gui_World.add (the_Text_1);
|
the_Applet.gui_World.add (the_Text_1);
|
||||||
the_Applet.gui_World.add (the_Text_2);
|
the_Applet.gui_World.add (the_Text_2);
|
||||||
|
|
||||||
the_Text_2.Site_is ([0.0, 10.0, 0.0]);
|
the_Text_2.Site_is ([0.0, -10.0, 0.0]);
|
||||||
|
|
||||||
while the_Applet.is_open
|
while the_Applet.is_open
|
||||||
loop
|
loop
|
||||||
if text_1_Model.Text = "Yay"
|
if text_2_Model.Text = "Yay"
|
||||||
then
|
then
|
||||||
text_1_Model.Text_is ("Howdy");
|
text_2_Model.Text_is ("Doody");
|
||||||
else
|
else
|
||||||
text_1_Model.Text_is ("Yay");
|
text_2_Model.Text_is ("Yay");
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
the_Applet.gui_World.evolve;
|
the_Applet.gui_World.evolve;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ is
|
|||||||
"../source/concrete",
|
"../source/concrete",
|
||||||
"../source/dolly",
|
"../source/dolly",
|
||||||
"../source/forge",
|
"../source/forge",
|
||||||
|
"../source/human",
|
||||||
"../source/joint",
|
"../source/joint",
|
||||||
"../source/applet",
|
"../source/applet",
|
||||||
"../source/applet/distributed",
|
"../source/applet/distributed",
|
||||||
|
|||||||
@@ -865,16 +865,19 @@ is
|
|||||||
the_Collision : ray_Collision := the_world_Info.World.cast_Ray (From => the_Camera.Site,
|
the_Collision : ray_Collision := the_world_Info.World.cast_Ray (From => the_Camera.Site,
|
||||||
To => Site_world_space);
|
To => Site_world_space);
|
||||||
begin
|
begin
|
||||||
declare
|
if the_Collision.near_Sprite /= null
|
||||||
click_Event : constant gel.Events.sprite_click_up_Event := (Sprite => the_Collision.near_Sprite.Id,
|
then
|
||||||
mouse_Button => the_Event.Button,
|
declare
|
||||||
world_Site => Site_world_space);
|
click_Event : constant gel.Events.sprite_click_up_Event := (Sprite => the_Collision.near_Sprite.Id,
|
||||||
begin
|
mouse_Button => the_Event.Button,
|
||||||
if the_Collision.near_Sprite /= null
|
world_Site => Site_world_space);
|
||||||
then
|
begin
|
||||||
the_Collision.near_Sprite.emit (click_Event);
|
if the_Collision.near_Sprite /= null
|
||||||
end if;
|
then
|
||||||
end;
|
the_Collision.near_Sprite.emit (click_Event);
|
||||||
|
end if;
|
||||||
|
end;
|
||||||
|
end if;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
when physics.Box2D =>
|
when physics.Box2D =>
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ with
|
|||||||
openGL.Model.line .colored,
|
openGL.Model.line .colored,
|
||||||
openGL.Model.segment_line,
|
openGL.Model.segment_line,
|
||||||
|
|
||||||
|
openGL.Palette,
|
||||||
openGL.texture_Set,
|
openGL.texture_Set,
|
||||||
|
|
||||||
physics.Model,
|
physics.Model,
|
||||||
@@ -129,6 +130,7 @@ is
|
|||||||
function new_circle_Sprite (in_World : in gel.World.view;
|
function new_circle_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
@@ -178,6 +180,7 @@ is
|
|||||||
return gel.Sprite.Forge.new_Sprite (Name,
|
return gel.Sprite.Forge.new_Sprite (Name,
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_graphics => True,
|
owns_graphics => True,
|
||||||
@@ -191,6 +194,7 @@ is
|
|||||||
function new_polygon_Sprite (in_World : in gel.World.view;
|
function new_polygon_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
@@ -232,6 +236,7 @@ is
|
|||||||
return gel.Sprite.Forge.new_Sprite (Name,
|
return gel.Sprite.Forge.new_Sprite (Name,
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_graphics => True,
|
owns_graphics => True,
|
||||||
@@ -245,6 +250,7 @@ is
|
|||||||
function new_rectangle_Sprite (in_World : in gel.World.view;
|
function new_rectangle_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
@@ -269,6 +275,7 @@ is
|
|||||||
return new_polygon_Sprite (in_World,
|
return new_polygon_Sprite (in_World,
|
||||||
Name,
|
Name,
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
Mass,
|
Mass,
|
||||||
Friction,
|
Friction,
|
||||||
Bounce,
|
Bounce,
|
||||||
@@ -288,6 +295,7 @@ is
|
|||||||
|
|
||||||
function new_ball_Sprite (in_World : in gel.World.view;
|
function new_ball_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Radius : in math.Real := 0.5;
|
Radius : in math.Real := 0.5;
|
||||||
lat_Count : in Positive := openGL.Model.sphere.default_latitude_Count;
|
lat_Count : in Positive := openGL.Model.sphere.default_latitude_Count;
|
||||||
@@ -297,7 +305,8 @@ is
|
|||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
||||||
is
|
is
|
||||||
use type openGL.lucid_Color;
|
use type openGL.lucid_Color,
|
||||||
|
openGL.asset_Name;
|
||||||
|
|
||||||
the_graphics_Model : openGL.Model.sphere.view;
|
the_graphics_Model : openGL.Model.sphere.view;
|
||||||
|
|
||||||
@@ -307,11 +316,19 @@ is
|
|||||||
begin
|
begin
|
||||||
if is_Lit -- TODO: Remaining combinations.
|
if is_Lit -- TODO: Remaining combinations.
|
||||||
then
|
then
|
||||||
the_graphics_Model := openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius,
|
if Texture /= openGL.null_Asset
|
||||||
lat_Count => lat_Count,
|
then
|
||||||
long_Count => long_Count,
|
the_graphics_Model := openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius,
|
||||||
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
|
lat_Count => lat_Count,
|
||||||
Image => Texture).all'Access;
|
long_Count => long_Count,
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
|
||||||
|
Image => Texture).all'Access;
|
||||||
|
else
|
||||||
|
the_graphics_Model := openGL.Model.sphere.lit_colored.new_Sphere (Radius,
|
||||||
|
lat_Count => lat_Count,
|
||||||
|
long_Count => long_Count,
|
||||||
|
Color => Color).all'Access;
|
||||||
|
end if;
|
||||||
else
|
else
|
||||||
if Color /= openGL.no_lucid_Color
|
if Color /= openGL.no_lucid_Color
|
||||||
then
|
then
|
||||||
@@ -323,6 +340,7 @@ is
|
|||||||
the_graphics_Model := openGL.Model.sphere.textured.new_Sphere (Radius,
|
the_graphics_Model := openGL.Model.sphere.textured.new_Sphere (Radius,
|
||||||
lat_Count => lat_Count,
|
lat_Count => lat_Count,
|
||||||
long_Count => long_Count,
|
long_Count => long_Count,
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
|
||||||
Image => Texture).all'Access;
|
Image => Texture).all'Access;
|
||||||
end if;
|
end if;
|
||||||
end if;
|
end if;
|
||||||
@@ -330,6 +348,7 @@ is
|
|||||||
return gel.Sprite.Forge.new_Sprite ("ball_Sprite",
|
return gel.Sprite.Forge.new_Sprite ("ball_Sprite",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -342,6 +361,7 @@ is
|
|||||||
|
|
||||||
function new_skysphere_Sprite (in_World : in gel.World.view;
|
function new_skysphere_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Radius : in math.Real := 1_000_000.0;
|
Radius : in math.Real := 1_000_000.0;
|
||||||
Texture : in openGL.asset_Name;
|
Texture : in openGL.asset_Name;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view
|
||||||
@@ -354,11 +374,13 @@ is
|
|||||||
begin
|
begin
|
||||||
the_graphics_Model := openGL.Model.sphere.textured.new_Sphere (Radius,
|
the_graphics_Model := openGL.Model.sphere.textured.new_Sphere (Radius,
|
||||||
lat_Count => 180,
|
lat_Count => 180,
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => Texture]),
|
||||||
Image => Texture,
|
Image => Texture,
|
||||||
is_Skysphere => True).all'Access;
|
is_Skysphere => True).all'Access;
|
||||||
return gel.Sprite.Forge.new_Sprite ("skysphere_Sprite",
|
return gel.Sprite.Forge.new_Sprite ("skysphere_Sprite",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -371,6 +393,7 @@ is
|
|||||||
|
|
||||||
function new_box_Sprite (in_World : in gel.World.view;
|
function new_box_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Colors : in box_Colors := [others => opengl.Palette.random_Color];
|
Colors : in box_Colors := [others => opengl.Palette.random_Color];
|
||||||
@@ -397,6 +420,7 @@ is
|
|||||||
:= gel.Sprite.Forge.new_Sprite ("demo.Box",
|
:= gel.Sprite.Forge.new_Sprite ("demo.Box",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_box_Model.all'Access,
|
the_box_Model.all'Access,
|
||||||
the_box_physics_Model,
|
the_box_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -411,6 +435,7 @@ is
|
|||||||
|
|
||||||
function new_box_Sprite (in_World : in gel.World.view;
|
function new_box_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name;
|
Texture : in openGL.asset_Name;
|
||||||
@@ -436,6 +461,7 @@ is
|
|||||||
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_box_Model.all'Access,
|
the_box_Model.all'Access,
|
||||||
the_box_physics_Model,
|
the_box_physics_Model,
|
||||||
owns_graphics => True,
|
owns_graphics => True,
|
||||||
@@ -450,6 +476,7 @@ is
|
|||||||
|
|
||||||
function new_billboard_Sprite (in_World : in gel.World.view;
|
function new_billboard_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -473,6 +500,7 @@ is
|
|||||||
:= gel.Sprite.forge.new_Sprite ("Billboard",
|
:= gel.Sprite.forge.new_Sprite ("Billboard",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_billboard_Model.all'Access,
|
the_billboard_Model.all'Access,
|
||||||
the_billboard_physics_Model,
|
the_billboard_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -487,6 +515,7 @@ is
|
|||||||
|
|
||||||
function new_billboard_Sprite (in_World : in gel.World.view;
|
function new_billboard_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Color : in openGL.lucid_Color;
|
Color : in openGL.lucid_Color;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
@@ -509,6 +538,7 @@ is
|
|||||||
:= gel.Sprite.forge.new_Sprite ("Billboard",
|
:= gel.Sprite.forge.new_Sprite ("Billboard",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_billboard_Model.all'Access,
|
the_billboard_Model.all'Access,
|
||||||
the_billboard_physics_Model,
|
the_billboard_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -523,6 +553,7 @@ is
|
|||||||
|
|
||||||
function new_arrow_Sprite (in_World : in gel.World.view;
|
function new_arrow_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 0.0;
|
Mass : in math.Real := 0.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -545,6 +576,7 @@ is
|
|||||||
:= gel.Sprite.forge.new_Sprite ("Arrow",
|
:= gel.Sprite.forge.new_Sprite ("Arrow",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model.all'Access,
|
the_graphics_Model.all'Access,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -559,6 +591,7 @@ is
|
|||||||
|
|
||||||
function new_line_Sprite (in_World : in gel.World.view;
|
function new_line_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 0.0;
|
Mass : in math.Real := 0.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -580,6 +613,7 @@ is
|
|||||||
:= gel.Sprite.forge.new_Sprite ("Line",
|
:= gel.Sprite.forge.new_Sprite ("Line",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model.all'Access,
|
the_graphics_Model.all'Access,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -594,6 +628,7 @@ is
|
|||||||
|
|
||||||
function new_segment_line_Sprite (in_World : in gel.World.view;
|
function new_segment_line_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 0.0;
|
Mass : in math.Real := 0.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -615,6 +650,7 @@ is
|
|||||||
:= gel.Sprite.forge.new_Sprite ("Line",
|
:= gel.Sprite.forge.new_Sprite ("Line",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model.all'Access,
|
the_graphics_Model.all'Access,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
@@ -632,6 +668,7 @@ is
|
|||||||
|
|
||||||
function new_text_Sprite (in_World : in gel.World.view;
|
function new_text_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Text : in String;
|
Text : in String;
|
||||||
Font : in openGL.Font.font_Id;
|
Font : in openGL.Font.font_Id;
|
||||||
Color : in openGL.Color := opengl.Palette.Black;
|
Color : in openGL.Color := opengl.Palette.Black;
|
||||||
@@ -642,12 +679,22 @@ is
|
|||||||
use Math;
|
use Math;
|
||||||
use type Physics.space_Kind;
|
use type Physics.space_Kind;
|
||||||
|
|
||||||
the_graphics_Model : constant openGL.Model.text.lit_colored.view
|
the_Texture : constant openGL.asset_Name := openGL.to_Asset ("assets/opengl/texture/Face1.bmp");
|
||||||
:= openGL.Model.text.lit_colored.new_Text (Text => Text,
|
|
||||||
|
-- the_graphics_Model : constant openGL.Model.text.lit_colored.view
|
||||||
|
-- := openGL.Model.text.lit_colored.new_Text (Text => Text,
|
||||||
|
-- Font => Font,
|
||||||
|
-- Color => (Color, openGL.Opaque),
|
||||||
|
-- texture_Details => openGL.texture_Set.to_Details ([1 => openGL.null_Asset]),
|
||||||
|
-- Centered => Centered);
|
||||||
|
|
||||||
|
the_graphics_Model : constant openGL.Model.Text.lit_colored.view
|
||||||
|
:= openGL.Model.Text.lit_colored.new_Text (Text => Text,
|
||||||
Font => Font,
|
Font => Font,
|
||||||
Color => (Color, openGL.Opaque),
|
Color => (Color, openGL.Opaque),
|
||||||
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.null_Asset]),
|
texture_Details => openGL.texture_Set.to_Details ([1 => the_Texture]),
|
||||||
Centered => Centered);
|
Centered => True);
|
||||||
|
|
||||||
the_physics_Model : physics.Model.view;
|
the_physics_Model : physics.Model.view;
|
||||||
begin
|
begin
|
||||||
if in_World.space_Kind = Physics.Box2d
|
if in_World.space_Kind = Physics.Box2d
|
||||||
@@ -673,6 +720,7 @@ is
|
|||||||
return gel.Sprite.Forge.new_Sprite ("text_Sprite",
|
return gel.Sprite.Forge.new_Sprite ("text_Sprite",
|
||||||
sprite.World_view (in_World),
|
sprite.World_view (in_World),
|
||||||
Site,
|
Site,
|
||||||
|
Spin,
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => True,
|
owns_Graphics => True,
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ is
|
|||||||
function new_circle_Sprite (in_World : in gel.World.view;
|
function new_circle_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
@@ -71,6 +72,7 @@ is
|
|||||||
function new_polygon_Sprite (in_World : in gel.World.view;
|
function new_polygon_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
@@ -84,6 +86,7 @@ is
|
|||||||
function new_rectangle_Sprite (in_World : in gel.World.view;
|
function new_rectangle_Sprite (in_World : in gel.World.view;
|
||||||
Name : in String;
|
Name : in String;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Friction : in math.Real := 0.5;
|
Friction : in math.Real := 0.5;
|
||||||
Bounce : in math.Real := 0.5;
|
Bounce : in math.Real := 0.5;
|
||||||
@@ -102,6 +105,7 @@ is
|
|||||||
|
|
||||||
function new_ball_Sprite (in_World : in gel.World.view;
|
function new_ball_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Radius : in math.Real := 0.5;
|
Radius : in math.Real := 0.5;
|
||||||
lat_Count : in Positive := openGL.Model.sphere.default_latitude_Count;
|
lat_Count : in Positive := openGL.Model.sphere.default_latitude_Count;
|
||||||
@@ -113,6 +117,7 @@ is
|
|||||||
|
|
||||||
function new_skysphere_Sprite (in_World : in gel.World.view;
|
function new_skysphere_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Radius : in math.Real := 1_000_000.0;
|
Radius : in math.Real := 1_000_000.0;
|
||||||
Texture : in openGL.asset_Name;
|
Texture : in openGL.asset_Name;
|
||||||
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
user_Data : in any_user_Data_view := null) return gel.Sprite.view;
|
||||||
@@ -122,6 +127,7 @@ is
|
|||||||
|
|
||||||
function new_box_Sprite (in_World : in gel.World.view;
|
function new_box_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Colors : in box_Colors := [others => opengl.Palette.random_Color];
|
Colors : in box_Colors := [others => opengl.Palette.random_Color];
|
||||||
@@ -130,6 +136,7 @@ is
|
|||||||
|
|
||||||
function new_box_Sprite (in_World : in gel.World.view;
|
function new_box_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name;
|
Texture : in openGL.asset_Name;
|
||||||
@@ -137,6 +144,7 @@ is
|
|||||||
|
|
||||||
function new_billboard_Sprite (in_World : in gel.World.view;
|
function new_billboard_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -144,6 +152,7 @@ is
|
|||||||
|
|
||||||
function new_billboard_Sprite (in_World : in gel.World.view;
|
function new_billboard_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Color : in openGL.lucid_Color;
|
Color : in openGL.lucid_Color;
|
||||||
Mass : in math.Real := 1.0;
|
Mass : in math.Real := 1.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
@@ -152,6 +161,7 @@ is
|
|||||||
|
|
||||||
function new_arrow_Sprite (in_World : in gel.World.view;
|
function new_arrow_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 0.0;
|
Mass : in math.Real := 0.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -161,6 +171,7 @@ is
|
|||||||
|
|
||||||
function new_line_Sprite (in_World : in gel.World.view;
|
function new_line_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 0.0;
|
Mass : in math.Real := 0.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -170,6 +181,7 @@ is
|
|||||||
|
|
||||||
function new_segment_line_Sprite (in_World : in gel.World.view;
|
function new_segment_line_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Mass : in math.Real := 0.0;
|
Mass : in math.Real := 0.0;
|
||||||
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
Size : in math.Vector_3 := [1.0, 1.0, 1.0];
|
||||||
Texture : in openGL.asset_Name := openGL.null_Asset;
|
Texture : in openGL.asset_Name := openGL.null_Asset;
|
||||||
@@ -181,6 +193,7 @@ is
|
|||||||
|
|
||||||
function new_text_Sprite (in_World : in gel.World.view;
|
function new_text_Sprite (in_World : in gel.World.view;
|
||||||
Site : in math.Vector_3 := math.Origin_3D;
|
Site : in math.Vector_3 := math.Origin_3D;
|
||||||
|
Spin : in math.Matrix_3x3 := math.Identity_3x3;
|
||||||
Text : in String;
|
Text : in String;
|
||||||
Font : in openGL.Font.font_Id;
|
Font : in openGL.Font.font_Id;
|
||||||
Color : in openGL.Color := opengl.Palette.Black;
|
Color : in openGL.Color := opengl.Palette.Black;
|
||||||
|
|||||||
@@ -408,12 +408,11 @@ is
|
|||||||
half_Extents => Size / 2.0),
|
half_Extents => Size / 2.0),
|
||||||
Mass => 1.0);
|
Mass => 1.0);
|
||||||
begin
|
begin
|
||||||
new_Sprite := gel.Sprite.Forge.new_Sprite ("Skin Sprite",
|
new_Sprite := gel.Sprite.Forge.new_Sprite (Name => "Skin Sprite",
|
||||||
gel.sprite.World_view (in_World),
|
World => gel.sprite.World_view (in_World),
|
||||||
math.Origin_3D,
|
graphics_Model => Model,
|
||||||
Model,
|
physics_Model => physics_Model,
|
||||||
physics_Model,
|
is_Kinematic => is_Kinematic);
|
||||||
is_Kinematic => is_Kinematic);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
new_Sprite.Site_is ([0.0, 0.0, 0.0]);
|
new_Sprite.Site_is ([0.0, 0.0, 0.0]);
|
||||||
|
|||||||
@@ -82,7 +82,8 @@ is
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure rebuild_Solid (Self : in out Item; at_Site : Vector_3)
|
procedure rebuild_Solid (Self : in out Item; at_Site : Vector_3;
|
||||||
|
and_Spin : in Matrix_3x3)
|
||||||
is
|
is
|
||||||
use Physics.Object;
|
use Physics.Object;
|
||||||
begin
|
begin
|
||||||
@@ -97,12 +98,14 @@ is
|
|||||||
Self.physics_Model.Restitution,
|
Self.physics_Model.Restitution,
|
||||||
at_Site,
|
at_Site,
|
||||||
Self.is_Kinematic));
|
Self.is_Kinematic));
|
||||||
|
Self.Solid.Spin_is (and_Spin);
|
||||||
end rebuild_Solid;
|
end rebuild_Solid;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure define (Self : access Item; World : in World_view;
|
procedure define (Self : access Item; World : in World_view;
|
||||||
at_Site : in Vector_3;
|
at_Site : in Vector_3;
|
||||||
|
and_Spin : in Matrix_3x3;
|
||||||
graphics_Model : access openGL. Model.item'Class;
|
graphics_Model : access openGL. Model.item'Class;
|
||||||
physics_Model : access physics.Model.item'Class;
|
physics_Model : access physics.Model.item'Class;
|
||||||
owns_Graphics : in Boolean;
|
owns_Graphics : in Boolean;
|
||||||
@@ -130,7 +133,7 @@ is
|
|||||||
if Self.physics_Model /= null
|
if Self.physics_Model /= null
|
||||||
then
|
then
|
||||||
Self.rebuild_Shape;
|
Self.rebuild_Shape;
|
||||||
Self.rebuild_Solid (at_Site);
|
Self.rebuild_Solid (at_Site, and_Spin);
|
||||||
end if;
|
end if;
|
||||||
end define;
|
end define;
|
||||||
|
|
||||||
@@ -225,7 +228,8 @@ is
|
|||||||
|
|
||||||
function to_Sprite (Name : in String;
|
function to_Sprite (Name : in String;
|
||||||
World : in World_view;
|
World : in World_view;
|
||||||
at_Site : in Vector_3;
|
at_Site : in Vector_3 := [0.0, 0.0, 0.0];
|
||||||
|
and_Spin : in Matrix_3x3 := Identity_3x3;
|
||||||
graphics_Model : access openGL. Model.item'Class;
|
graphics_Model : access openGL. Model.item'Class;
|
||||||
physics_Model : access physics.Model.item'Class;
|
physics_Model : access physics.Model.item'Class;
|
||||||
owns_Graphics : in Boolean;
|
owns_Graphics : in Boolean;
|
||||||
@@ -237,7 +241,7 @@ is
|
|||||||
return Self : Item := (lace.Subject_and_deferred_Observer.forge.to_Subject_and_Observer (Name)
|
return Self : Item := (lace.Subject_and_deferred_Observer.forge.to_Subject_and_Observer (Name)
|
||||||
with others => <>)
|
with others => <>)
|
||||||
do
|
do
|
||||||
Self.define (World, at_Site, graphics_Model, physics_Model, owns_Graphics, owns_Physics, is_Kinematic, user_Data);
|
Self.define (World, at_Site, and_Spin, graphics_Model, physics_Model, owns_Graphics, owns_Physics, is_Kinematic, user_Data);
|
||||||
end return;
|
end return;
|
||||||
end to_Sprite;
|
end to_Sprite;
|
||||||
|
|
||||||
@@ -245,7 +249,8 @@ is
|
|||||||
|
|
||||||
function new_Sprite (Name : in String;
|
function new_Sprite (Name : in String;
|
||||||
World : in World_view;
|
World : in World_view;
|
||||||
at_Site : in Vector_3;
|
at_Site : in Vector_3 := [0.0, 0.0, 0.0];
|
||||||
|
and_Spin : in Matrix_3x3 := Identity_3x3;
|
||||||
graphics_Model : access openGL. Model.item'Class;
|
graphics_Model : access openGL. Model.item'Class;
|
||||||
physics_Model : access physics.Model.item'Class;
|
physics_Model : access physics.Model.item'Class;
|
||||||
owns_Graphics : in Boolean := True;
|
owns_Graphics : in Boolean := True;
|
||||||
@@ -256,6 +261,7 @@ is
|
|||||||
Self : constant View := new Item' (to_Sprite (Name,
|
Self : constant View := new Item' (to_Sprite (Name,
|
||||||
World,
|
World,
|
||||||
at_Site,
|
at_Site,
|
||||||
|
and_Spin,
|
||||||
graphics_Model,
|
graphics_Model,
|
||||||
physics_Model,
|
physics_Model,
|
||||||
owns_Graphics,
|
owns_Graphics,
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ is
|
|||||||
|
|
||||||
procedure define (Self : access Item; World : in World_view;
|
procedure define (Self : access Item; World : in World_view;
|
||||||
at_Site : in Vector_3;
|
at_Site : in Vector_3;
|
||||||
|
and_Spin : in Matrix_3x3;
|
||||||
graphics_Model : access openGL. Model.item'Class;
|
graphics_Model : access openGL. Model.item'Class;
|
||||||
physics_Model : access physics.Model.item'Class;
|
physics_Model : access physics.Model.item'Class;
|
||||||
owns_Graphics : in Boolean;
|
owns_Graphics : in Boolean;
|
||||||
@@ -80,7 +81,8 @@ is
|
|||||||
is
|
is
|
||||||
function to_Sprite (Name : in String;
|
function to_Sprite (Name : in String;
|
||||||
World : in World_view;
|
World : in World_view;
|
||||||
at_Site : in Vector_3;
|
at_Site : in Vector_3 := [0.0, 0.0, 0.0];
|
||||||
|
and_Spin : in Matrix_3x3 := Identity_3x3;
|
||||||
graphics_Model : access openGL. Model.item'Class;
|
graphics_Model : access openGL. Model.item'Class;
|
||||||
physics_Model : access physics.Model.item'Class;
|
physics_Model : access physics.Model.item'Class;
|
||||||
owns_Graphics : in Boolean;
|
owns_Graphics : in Boolean;
|
||||||
@@ -90,7 +92,8 @@ is
|
|||||||
|
|
||||||
function new_Sprite (Name : in String;
|
function new_Sprite (Name : in String;
|
||||||
World : in World_view;
|
World : in World_view;
|
||||||
at_Site : in Vector_3;
|
at_Site : in Vector_3 := [0.0, 0.0, 0.0];
|
||||||
|
and_Spin : in Matrix_3x3 := Identity_3x3;
|
||||||
graphics_Model : access openGL. Model.item'Class;
|
graphics_Model : access openGL. Model.item'Class;
|
||||||
physics_Model : access physics.Model.item'Class;
|
physics_Model : access physics.Model.item'Class;
|
||||||
owns_Graphics : in Boolean := True;
|
owns_Graphics : in Boolean := True;
|
||||||
@@ -324,7 +327,8 @@ is
|
|||||||
--- Physics
|
--- Physics
|
||||||
--
|
--
|
||||||
procedure rebuild_Shape (Self : in out Item);
|
procedure rebuild_Shape (Self : in out Item);
|
||||||
procedure rebuild_Solid (Self : in out Item; at_Site : in Vector_3);
|
procedure rebuild_Solid (Self : in out Item; at_Site : in Vector_3;
|
||||||
|
and_Spin : in Matrix_3x3);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ with
|
|||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
-- gel.Model.box.colored,
|
-- gel.Model.box.colored,
|
||||||
openGL.Model.box.lit_colored_textured,
|
openGL.Model.box.lit_colored_textured,
|
||||||
|
openGL.texture_Set,
|
||||||
-- gel.cone_twist_Joint,
|
-- gel.cone_twist_Joint,
|
||||||
gel.Conversions,
|
gel.Conversions,
|
||||||
|
|
||||||
@@ -13,7 +14,7 @@ with
|
|||||||
|
|
||||||
opengl.Palette,
|
opengl.Palette,
|
||||||
opengl.Geometry.lit_textured_skinned,
|
opengl.Geometry.lit_textured_skinned,
|
||||||
opengl.Program .lit_textured_skinned,
|
opengl.Program .lit.textured_skinned,
|
||||||
|
|
||||||
float_math.Algebra.linear.d3,
|
float_math.Algebra.linear.d3,
|
||||||
ada.Strings.unbounded;
|
ada.Strings.unbounded;
|
||||||
@@ -157,7 +158,7 @@ is
|
|||||||
is
|
is
|
||||||
begin
|
begin
|
||||||
for Each in Self.bone_Transforms'Range loop
|
for Each in Self.bone_Transforms'Range loop
|
||||||
openGL.Program.lit_textured_skinned.view (Self.Program)
|
openGL.Program.lit.textured_skinned.view (Self.Program)
|
||||||
.bone_Transform_is (which => controller_joint_Id'Pos (Each) + 1,
|
.bone_Transform_is (which => controller_joint_Id'Pos (Each) + 1,
|
||||||
now => Self.bone_Transforms (Each));
|
now => Self.bone_Transforms (Each));
|
||||||
end loop;
|
end loop;
|
||||||
@@ -478,18 +479,18 @@ is
|
|||||||
Model => openGL.to_Asset ("assets/gel/collada/mh-human-dae.dae"),
|
Model => openGL.to_Asset ("assets/gel/collada/mh-human-dae.dae"),
|
||||||
-- model => gel.to_Asset ("assets/gel/collada/alfieri.dae"),
|
-- model => gel.to_Asset ("assets/gel/collada/alfieri.dae"),
|
||||||
Texture => openGL.null_Asset, -- gel.to_Asset ("assets/collada/gel-human-texture.tga"),
|
Texture => openGL.null_Asset, -- gel.to_Asset ("assets/collada/gel-human-texture.tga"),
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/gel/Face1.bmp")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
begin
|
begin
|
||||||
Self.bone_Sprites (the_Bone) := gel.Sprite.forge.new_Sprite (sprite_Name,
|
Self.bone_Sprites (the_Bone) := gel.Sprite.forge.new_Sprite (Name => sprite_Name,
|
||||||
gel.sprite.World_view (World),
|
World => gel.sprite.World_view (World),
|
||||||
Origin_3D,
|
graphics_Model => the_human_graphics_Model,
|
||||||
the_human_graphics_Model,
|
|
||||||
-- the_graphics_Model,
|
-- the_graphics_Model,
|
||||||
-- Model,
|
-- Model,
|
||||||
the_physics_Model,
|
physics_Model => the_physics_Model,
|
||||||
owns_graphics => True,
|
owns_graphics => True,
|
||||||
owns_physics => True,
|
owns_physics => True,
|
||||||
is_kinematic => is_Kinematic);
|
is_kinematic => is_Kinematic);
|
||||||
-- Self.bone_Sprites (the_Bone).is_Visible (True);
|
-- Self.bone_Sprites (the_Bone).is_Visible (True);
|
||||||
-- Self.bone_Sprites (the_Bone).is_Visible (True);
|
-- Self.bone_Sprites (the_Bone).is_Visible (True);
|
||||||
end;
|
end;
|
||||||
@@ -512,14 +513,13 @@ is
|
|||||||
texture_Name => openGL.null_Asset)));
|
texture_Name => openGL.null_Asset)));
|
||||||
begin
|
begin
|
||||||
-- raise program_Error with "TBD";
|
-- raise program_Error with "TBD";
|
||||||
Self.bone_Sprites (the_Bone) := gel.Sprite.forge.new_Sprite (sprite_Name,
|
Self.bone_Sprites (the_Bone) := gel.Sprite.forge.new_Sprite (Name => sprite_Name,
|
||||||
gel.sprite.World_view (World),
|
World => gel.sprite.World_view (World),
|
||||||
Origin_3D,
|
graphics_Model => the_graphics_Model,
|
||||||
the_graphics_Model,
|
physics_Model => the_physics_Model,
|
||||||
the_physics_Model,
|
owns_graphics => True,
|
||||||
owns_graphics => True,
|
owns_physics => True,
|
||||||
owns_physics => True,
|
is_kinematic => is_Kinematic);
|
||||||
is_kinematic => is_Kinematic);
|
|
||||||
-- Self.bone_Sprites (the_Bone).is_Visible (False);
|
-- Self.bone_Sprites (the_Bone).is_Visible (False);
|
||||||
-- Self.bone_Sprites (the_Bone).is_Visible (True);
|
-- Self.bone_Sprites (the_Bone).is_Visible (True);
|
||||||
end;
|
end;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
with
|
with
|
||||||
openGL.Model.any,
|
openGL.Model.any,
|
||||||
openGL.Model.box.colored,
|
openGL.Model.box.colored,
|
||||||
|
openGL.texture_Set,
|
||||||
-- openGL.Model.box.lit_colored_textured,
|
-- openGL.Model.box.lit_colored_textured,
|
||||||
-- gel.cone_twist_Joint,
|
-- gel.cone_twist_Joint,
|
||||||
gel.Conversions,
|
gel.Conversions,
|
||||||
@@ -13,7 +14,7 @@ with
|
|||||||
|
|
||||||
opengl.Palette,
|
opengl.Palette,
|
||||||
opengl.Geometry.lit_textured_skinned,
|
opengl.Geometry.lit_textured_skinned,
|
||||||
opengl.Program.lit_textured_skinned,
|
opengl.Program.lit.textured_skinned,
|
||||||
|
|
||||||
ada.Strings.unbounded,
|
ada.Strings.unbounded,
|
||||||
ada.unchecked_Deallocation,
|
ada.unchecked_Deallocation,
|
||||||
@@ -142,7 +143,7 @@ is
|
|||||||
begin
|
begin
|
||||||
for Each in Self.bone_Transforms'Range
|
for Each in Self.bone_Transforms'Range
|
||||||
loop
|
loop
|
||||||
openGL.Program.lit_textured_skinned.view (Self.Program)
|
openGL.Program.lit.textured_skinned.view (Self.Program)
|
||||||
.bone_Transform_is (which => controller_joint_Id'Pos (Each) + 1,
|
.bone_Transform_is (which => controller_joint_Id'Pos (Each) + 1,
|
||||||
now => Self.bone_Transforms (Each));
|
now => Self.bone_Transforms (Each));
|
||||||
end loop;
|
end loop;
|
||||||
@@ -577,14 +578,13 @@ is
|
|||||||
left => (colors => (others => (Cyan, Opaque))),
|
left => (colors => (others => (Cyan, Opaque))),
|
||||||
right => (colors => (others => (Magenta, Opaque)))));
|
right => (colors => (others => (Magenta, Opaque)))));
|
||||||
begin
|
begin
|
||||||
Self.bone_Sprites (the_Bone) := gel.Sprite.forge.new_Sprite (sprite_Name,
|
Self.bone_Sprites (the_Bone) := gel.Sprite.forge.new_Sprite (Name => sprite_Name,
|
||||||
gel.sprite.World_view (World),
|
World => gel.sprite.World_view (World),
|
||||||
Origin_3D,
|
graphics_Model => the_graphics_Model,
|
||||||
the_graphics_Model,
|
physics_Model => the_physics_Model,
|
||||||
the_physics_Model,
|
owns_graphics => True,
|
||||||
owns_graphics => True,
|
owns_physics => True,
|
||||||
owns_physics => True,
|
is_kinematic => is_Kinematic);
|
||||||
is_kinematic => is_Kinematic);
|
|
||||||
if the_display_Mode = Skin
|
if the_display_Mode = Skin
|
||||||
then
|
then
|
||||||
Self.bone_Sprites (the_Bone).is_Visible (False);
|
Self.bone_Sprites (the_Bone).is_Visible (False);
|
||||||
@@ -703,8 +703,9 @@ is
|
|||||||
--
|
--
|
||||||
declare
|
declare
|
||||||
the_human_graphics_Model : aliased openGL.Model.any.view
|
the_human_graphics_Model : aliased openGL.Model.any.view
|
||||||
:= openGL.Model.any.new_Model (Model => to_Asset (model_Name.all),
|
:= openGL.Model.any.new_Model (Model => to_Asset (model_Name.all),
|
||||||
Texture => openGL.null_Asset, -- gel.to_Asset ("assets/collada/gel-human-texture.tga"),
|
Texture => openGL.null_Asset, -- gel.to_Asset ("assets/collada/gel-human-texture.tga"),
|
||||||
|
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("./assets/opengl/texture/wooden-crate.jpg")]),
|
||||||
Texture_is_lucid => False);
|
Texture_is_lucid => False);
|
||||||
|
|
||||||
the_physics_Model : constant standard.physics.Model.view
|
the_physics_Model : constant standard.physics.Model.view
|
||||||
@@ -713,14 +714,13 @@ is
|
|||||||
Mass => 1.0,
|
Mass => 1.0,
|
||||||
is_Tangible => False);
|
is_Tangible => False);
|
||||||
begin
|
begin
|
||||||
Self.skin_Sprite := gel.Sprite.forge.new_Sprite ("human.skin_Sprite",
|
Self.skin_Sprite := gel.Sprite.forge.new_Sprite (Name => "human.skin_Sprite",
|
||||||
gel.sprite.World_view (World),
|
World => gel.sprite.World_view (World),
|
||||||
Origin_3D,
|
graphics_Model => the_human_graphics_Model,
|
||||||
the_human_graphics_Model,
|
physics_Model =>the_physics_Model,
|
||||||
the_physics_Model,
|
owns_graphics => True,
|
||||||
owns_graphics => True,
|
owns_physics => True,
|
||||||
owns_physics => True,
|
is_kinematic => is_Kinematic);
|
||||||
is_kinematic => is_Kinematic);
|
|
||||||
if the_display_Mode = Bones
|
if the_display_Mode = Bones
|
||||||
then
|
then
|
||||||
Self.skin_Sprite.is_Visible (False);
|
Self.skin_Sprite.is_Visible (False);
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
with any_math.any_Algebra.any_linear.any_d3;
|
||||||
with
|
with
|
||||||
gel.Events,
|
gel.Events,
|
||||||
|
|
||||||
@@ -112,6 +113,7 @@ is
|
|||||||
the_Sprite := gel.Sprite.forge.new_Sprite (+the_Pair.sprite_Name,
|
the_Sprite := gel.Sprite.forge.new_Sprite (+the_Pair.sprite_Name,
|
||||||
sprite.World_view (the_World),
|
sprite.World_view (the_World),
|
||||||
get_Translation (the_Pair.Transform),
|
get_Translation (the_Pair.Transform),
|
||||||
|
get_Rotation (the_Pair.Transform),
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => False,
|
owns_Graphics => False,
|
||||||
@@ -565,6 +567,8 @@ is
|
|||||||
Self. physics_Models,
|
Self. physics_Models,
|
||||||
gel.World.view (Self));
|
gel.World.view (Self));
|
||||||
-- log ("*** gel.world.client.is_a_Mirror.add sprite ~ " & the_Sprite.Name'Image);
|
-- log ("*** gel.world.client.is_a_Mirror.add sprite ~ " & the_Sprite.Name'Image);
|
||||||
|
|
||||||
|
-- the_Sprite.Spin_is (z_Rotation_from (to_Radians (90.0)));
|
||||||
Self.add (the_Sprite);
|
Self.add (the_Sprite);
|
||||||
end loop;
|
end loop;
|
||||||
end;
|
end;
|
||||||
|
|||||||
@@ -110,6 +110,7 @@ is
|
|||||||
the_Sprite := gel.Sprite.forge.new_Sprite ("2Sprite" & the_Pair.sprite_Id'Image,
|
the_Sprite := gel.Sprite.forge.new_Sprite ("2Sprite" & the_Pair.sprite_Id'Image,
|
||||||
sprite.World_view (the_World),
|
sprite.World_view (the_World),
|
||||||
get_Translation (the_Pair.Transform),
|
get_Translation (the_Pair.Transform),
|
||||||
|
get_Rotation (the_Pair.Transform),
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => False,
|
owns_Graphics => False,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
with any_math.any_Algebra.any_linear.any_d3;
|
||||||
with
|
with
|
||||||
gel.Events,
|
gel.Events,
|
||||||
|
|
||||||
@@ -105,6 +106,7 @@ is
|
|||||||
the_Sprite := gel.Sprite.forge.new_Sprite ("Sprite" & the_Pair.sprite_Id'Image,
|
the_Sprite := gel.Sprite.forge.new_Sprite ("Sprite" & the_Pair.sprite_Id'Image,
|
||||||
sprite.World_view (the_World),
|
sprite.World_view (the_World),
|
||||||
get_Translation (the_Pair.Transform),
|
get_Translation (the_Pair.Transform),
|
||||||
|
get_Rotation (the_Pair.Transform),
|
||||||
the_graphics_Model,
|
the_graphics_Model,
|
||||||
the_physics_Model,
|
the_physics_Model,
|
||||||
owns_Graphics => False,
|
owns_Graphics => False,
|
||||||
|
|||||||
Reference in New Issue
Block a user