gel.demos: Update code to use new openGL updates.
This commit is contained in:
@@ -13,11 +13,20 @@ gprclean -r -P ../gel_demo.gpr -Xrestrictions=xgc -Xopengl_platform=egl -Xopengl
|
||||
## Build
|
||||
#
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
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.
|
||||
--
|
||||
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;
|
||||
gel_demo_Server.item.stop;
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ with
|
||||
openGL.Model.capsule.textured,
|
||||
openGL.Model.any,
|
||||
openGL.Model.terrain,
|
||||
openGL.texture_Set,
|
||||
openGL.IO,
|
||||
openGL.Light,
|
||||
openGL.Palette;
|
||||
@@ -35,11 +36,12 @@ is
|
||||
|
||||
procedure put_Line (Message : in String)
|
||||
is
|
||||
Text : constant gel.Sprite.view := gel.Forge.new_text_Sprite (the_Applet.gui_World,
|
||||
text_line_Site,
|
||||
Message,
|
||||
the_Applet.Font,
|
||||
White);
|
||||
Text : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
|
||||
Site => text_line_Site,
|
||||
Spin => Identity_3x3,
|
||||
Text => Message,
|
||||
Font => the_Applet.Font,
|
||||
Color => White);
|
||||
begin
|
||||
the_Applet.gui_World.add (Text);
|
||||
text_line_Site (2) := text_line_Site (2) - 2.0;
|
||||
@@ -83,13 +85,14 @@ is
|
||||
Scale => 10.0);
|
||||
|
||||
the_terrain_Model : constant openGL.Model.terrain.view
|
||||
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
||||
Row => 1,
|
||||
Col => 1,
|
||||
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
||||
color_Map => terrain_Texture,
|
||||
Tiling => (s => (0.0, 1.0),
|
||||
t => (0.0, 1.0)));
|
||||
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
||||
Row => 1,
|
||||
Col => 1,
|
||||
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
||||
color_Map => terrain_Texture,
|
||||
texture_Details => texture_Set.to_Details ([1 => terrain_Texture]),
|
||||
Tiling => (s => (0.0, 1.0),
|
||||
t => (0.0, 1.0)));
|
||||
|
||||
the_terrain_physics_Model : constant physics.Model.view
|
||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.heightfield,
|
||||
@@ -97,11 +100,10 @@ is
|
||||
height_Range => [0.0, 200.0]),
|
||||
Scale => [hs, 1.0, hs]);
|
||||
the_Terrain : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Terrain",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_terrain_Model,
|
||||
the_terrain_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Terrain",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_terrain_Model,
|
||||
physics_Model => the_terrain_physics_Model);
|
||||
begin
|
||||
-- Setup the applet.
|
||||
--
|
||||
@@ -163,11 +165,10 @@ begin
|
||||
Mass => 1.0);
|
||||
|
||||
the_Box : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_box_Model.all'Access,
|
||||
the_box_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_box_Model.all'Access,
|
||||
physics_Model => the_box_physics_Model);
|
||||
|
||||
-- Ball
|
||||
--
|
||||
@@ -177,36 +178,37 @@ begin
|
||||
Mass => 1.0);
|
||||
|
||||
the_ball_Model : constant openGL.Model.sphere.textured.view
|
||||
:= openGL.Model.sphere.textured.new_Sphere (Radius => 0.5,
|
||||
Image => openGL.to_Asset ("assets/gel/texture/earth_map.bmp"));
|
||||
:= openGL.Model.sphere.textured.new_Sphere (Radius => 0.5,
|
||||
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
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Ball",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_ball_Model,
|
||||
the_ball_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ball",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_ball_Model,
|
||||
physics_Model => the_ball_physics_Model);
|
||||
|
||||
-- Cone
|
||||
--
|
||||
the_cone_Model : constant openGL.Model.any.view
|
||||
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("assets/gel/model/unit_cone.obj"),
|
||||
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);
|
||||
|
||||
the_cone_physics_Model : constant physics.Model.view
|
||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cone),
|
||||
Mass => 1.0);
|
||||
the_Cone : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Cone",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_cone_Model.all'Access,
|
||||
the_cone_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cone",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_cone_Model.all'Access,
|
||||
physics_Model => the_cone_physics_Model);
|
||||
-- Capsule
|
||||
--
|
||||
the_capsule_Model : constant openGL.Model.capsule.textured.view
|
||||
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
||||
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"));
|
||||
|
||||
the_capsule_physics_Model : constant physics.Model.view
|
||||
@@ -216,33 +218,32 @@ begin
|
||||
Height => 1.0),
|
||||
Mass => 1.0);
|
||||
the_Capsule : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Capsule",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_capsule_Model.all'Access,
|
||||
the_capsule_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Capsule",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_capsule_Model.all'Access,
|
||||
physics_Model => the_capsule_physics_Model);
|
||||
|
||||
-- multi_Sphere
|
||||
--
|
||||
the_multi_Sphere_Model : constant openGL.Model.capsule.textured.view
|
||||
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
||||
Height => 0.0,
|
||||
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,
|
||||
Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
||||
[ 0.5, 0.0, 0.0]),
|
||||
Radii => new gel.math.Vector' (1 => 0.5,
|
||||
2 => 0.5)),
|
||||
Mass => 1.0);
|
||||
|
||||
the_multi_Sphere : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_multi_Sphere_Model.all'Access,
|
||||
the_multi_Sphere_physics_Model);
|
||||
-- the_multi_Sphere_Model : constant openGL.Model.capsule.textured.view
|
||||
-- := openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
||||
-- Height => 0.0,
|
||||
-- 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,
|
||||
-- Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
||||
-- [ 0.5, 0.0, 0.0]),
|
||||
-- Radii => new gel.math.Vector' (1 => 0.5,
|
||||
-- 2 => 0.5)),
|
||||
-- Mass => 1.0);
|
||||
--
|
||||
-- the_multi_Sphere : constant gel.Sprite.view
|
||||
-- := gel.Sprite.forge.new_Sprite (Name => "demo.multi_Sphere",
|
||||
-- World => the_Applet.gui_World.all'Access,
|
||||
-- graphics_Model => the_multi_Sphere_Model.all'Access,
|
||||
-- physics_Model => the_multi_Sphere_physics_Model);
|
||||
|
||||
-- Hull
|
||||
--
|
||||
@@ -264,24 +265,23 @@ begin
|
||||
[ s, s, -s],
|
||||
[-s, s, -s])));
|
||||
the_Hull : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_hull_Model.all'Access,
|
||||
the_hull_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Hull",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_hull_Model.all'Access,
|
||||
physics_Model => the_hull_physics_Model);
|
||||
begin
|
||||
the_Applet.gui_World.add (the_Ball);
|
||||
the_Applet.gui_World.add (the_Box);
|
||||
the_Applet.gui_World.add (the_Cone);
|
||||
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_Ball .Site_is ([ x, y, 0.0]);
|
||||
the_Box .Site_is ([ 0.0, y, -2.5]);
|
||||
the_Cone .Site_is ([ 0.0, y, 0.0]);
|
||||
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]);
|
||||
|
||||
x := x + 2.0;
|
||||
|
||||
@@ -102,13 +102,14 @@ begin
|
||||
--- Ball
|
||||
--
|
||||
the_Ball : constant gel.Sprite.view
|
||||
:= gel.Forge.new_circle_Sprite (in_World => the_Applet.World,
|
||||
Site => [0.0, 0.0],
|
||||
Mass => 1.0,
|
||||
:= gel.Forge.new_circle_Sprite (Name => "Ball",
|
||||
in_World => the_Applet.World,
|
||||
Site => [0.0, 0.0, 0.0],
|
||||
Mass => 0.2,
|
||||
Bounce => 1.0,
|
||||
Friction => 0.0,
|
||||
Radius => 0.5,
|
||||
Color => Grey,
|
||||
Color => (Grey, openGL.Opaque),
|
||||
Texture => openGL.to_Asset ("assets/opengl/texture/Face1.bmp"));
|
||||
|
||||
court_Width : constant := 30.0;
|
||||
@@ -140,8 +141,9 @@ begin
|
||||
the_Player : Player renames the_Players (Id);
|
||||
score_Site : constant Vector_2 := Site + [0.0, court_Height / 2.0 + 0.8];
|
||||
begin
|
||||
the_Player.Paddle := gel.Forge.new_rectangle_Sprite (the_Applet.World,
|
||||
Site => Site,
|
||||
the_Player.Paddle := gel.Forge.new_rectangle_Sprite (in_World => the_Applet.World,
|
||||
Name => "Paddle" & Id'Image,
|
||||
Site => Vector_3 (Site & 0.0),
|
||||
Mass => 0.0,
|
||||
Bounce => 1.0,
|
||||
Friction => 0.0,
|
||||
@@ -149,17 +151,22 @@ begin
|
||||
Height => 3.0,
|
||||
Color => Red);
|
||||
|
||||
the_Player.score_Text := gel.Forge.new_text_Sprite (the_Applet.World,
|
||||
Origin_3D,
|
||||
" 0",
|
||||
the_Applet.Font,
|
||||
Green);
|
||||
the_Player.score_Text := gel.Forge.new_text_Sprite (in_World => the_Applet.World,
|
||||
Site => Origin_3D,
|
||||
Text => " 0",
|
||||
Font => the_Applet.Font,
|
||||
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.
|
||||
|
||||
the_Applet.World.add (the_Player.Paddle);
|
||||
the_Applet.World.add (the_Player.score_Text);
|
||||
|
||||
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;
|
||||
|
||||
|
||||
@@ -170,8 +177,9 @@ begin
|
||||
Height : in Real)
|
||||
is
|
||||
the_Wall : constant gel.Sprite.view
|
||||
:= gel.Forge.new_rectangle_Sprite (the_Applet.World,
|
||||
Site => Site,
|
||||
:= gel.Forge.new_rectangle_Sprite (in_World => the_Applet.World,
|
||||
Name => "Wall",
|
||||
Site => Vector_3 (Site & 0.0),
|
||||
Mass => 0.0,
|
||||
Bounce => 1.0,
|
||||
Friction => 0.0,
|
||||
@@ -269,7 +277,7 @@ begin
|
||||
declare
|
||||
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||
begin
|
||||
Light.Site_is ([0.0, -1000.0, 0.0]);
|
||||
Light.Site_is ([0.0, 0.0, 1.0]);
|
||||
the_Applet.Renderer.set (Light);
|
||||
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;
|
||||
end;
|
||||
end loop;
|
||||
|
||||
delay 1.0 / 60.0;
|
||||
end loop;
|
||||
|
||||
free (the_Applet);
|
||||
|
||||
@@ -50,12 +50,13 @@ is
|
||||
--
|
||||
the_Ball : constant gel.Sprite.view
|
||||
:= gel.Forge.new_circle_Sprite (in_World => the_Applet.World,
|
||||
Name => "Ball",
|
||||
Site => [0.0, 0.0, 0.0],
|
||||
Mass => 1.0,
|
||||
Mass => 0.2,
|
||||
Bounce => 1.0,
|
||||
Friction => 0.0,
|
||||
Radius => 0.5,
|
||||
Color => Grey,
|
||||
Color => (Grey, openGL.Opaque),
|
||||
Texture => openGL.to_Asset ("assets/opengl/texture/Face1.bmp"));
|
||||
--- Players
|
||||
--
|
||||
@@ -84,7 +85,8 @@ is
|
||||
stadium_Height / 2.0 + 0.8,
|
||||
0.0];
|
||||
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,
|
||||
Mass => 0.0,
|
||||
Bounce => 1.0,
|
||||
@@ -93,11 +95,14 @@ is
|
||||
Height => 3.0,
|
||||
Color => Red);
|
||||
|
||||
the_Player.score_Text := gel.Forge.new_text_Sprite (the_Applet.World,
|
||||
Origin_3D,
|
||||
" 0",
|
||||
the_Applet.Font,
|
||||
Green);
|
||||
the_Player.score_Text := gel.Forge.new_text_Sprite (in_World => the_Applet.World,
|
||||
Site => Origin_3D,
|
||||
Text => " 0",
|
||||
Font => the_Applet.Font,
|
||||
Color => Green,
|
||||
Size => ([1.0, 1.0, 1.0]));
|
||||
|
||||
|
||||
the_Player.score_Model := openGL.Model.text.view (the_Player.score_Text.graphics_Model);
|
||||
|
||||
the_Applet.World.add (the_Player.Paddle);
|
||||
@@ -114,14 +119,15 @@ is
|
||||
Height : in Real)
|
||||
is
|
||||
the_Wall : constant gel.Sprite.view
|
||||
:= gel.Forge.new_rectangle_Sprite (the_Applet.World,
|
||||
Site => Site,
|
||||
Mass => 0.0,
|
||||
Bounce => 1.0,
|
||||
Friction => 0.0,
|
||||
Width => Width,
|
||||
Height => Height,
|
||||
Color => Blue);
|
||||
:= gel.Forge.new_rectangle_Sprite (in_World => the_Applet.World,
|
||||
Name => "Wall",
|
||||
Site => Site,
|
||||
Mass => 0.0,
|
||||
Bounce => 1.0,
|
||||
Friction => 0.0,
|
||||
Width => Width,
|
||||
Height => Height,
|
||||
Color => Blue);
|
||||
begin
|
||||
the_Applet.World.add (the_Wall);
|
||||
end add_Wall;
|
||||
@@ -196,7 +202,7 @@ begin
|
||||
declare
|
||||
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||
begin
|
||||
Light.Site_is ([0.0, -1000.0, 0.0]);
|
||||
Light.Site_is ([0.0, 0.0, 1.0]);
|
||||
the_Applet.Renderer.set (Light);
|
||||
end;
|
||||
|
||||
@@ -280,6 +286,7 @@ begin
|
||||
if relaunch_Ball
|
||||
then
|
||||
the_Ball.Site_is ([0.0, 0.0, 0.0]);
|
||||
|
||||
declare
|
||||
the_Force : Vector_3 := [gel.Math.Random.random_Real (50.0, 200.0),
|
||||
gel.Math.Random.random_Real ( 5.0, 20.0),
|
||||
@@ -291,7 +298,8 @@ begin
|
||||
end if;
|
||||
|
||||
the_Ball.apply_Force (the_Force);
|
||||
end;
|
||||
end;
|
||||
|
||||
relaunch_Ball := False;
|
||||
end if;
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
with openGL.texture_Set;
|
||||
with
|
||||
gel.Applet.gui_World,
|
||||
gel.Window.setup,
|
||||
@@ -8,6 +9,7 @@ with
|
||||
|
||||
openGL.Model.any,
|
||||
openGL.Light,
|
||||
openGL.texture_Set,
|
||||
|
||||
ada.Calendar,
|
||||
ada.Text_IO,
|
||||
@@ -33,7 +35,8 @@ is
|
||||
|
||||
the_human_graphics_Model : constant openGL.Model.any.view
|
||||
:= 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);
|
||||
|
||||
the_human_physics_Model : constant physics.Model.view
|
||||
@@ -52,6 +55,7 @@ is
|
||||
the_cobra_graphics_Model : aliased constant openGL.Model.any.view
|
||||
:= openGL.Model.any.new_Model (Model => openGL.to_Asset ("./assets/oolite_cobra3.obj"),
|
||||
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);
|
||||
|
||||
the_cobra_physics_Model : constant physics.Model.view
|
||||
@@ -82,7 +86,7 @@ begin
|
||||
the_Human.Site_is ([0.0, 5.0, 0.0]); --
|
||||
|
||||
-- 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, 100.0, 0.0)); -- Position the camera.
|
||||
@@ -95,7 +99,7 @@ begin
|
||||
declare
|
||||
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
|
||||
begin
|
||||
Light.Site_is ([0.0, 1000.0, 1000.0]);
|
||||
Light.Site_is ([0.0, 15.0, 15.0]);
|
||||
the_Applet.Renderer.set (Light);
|
||||
end;
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
with
|
||||
openGL.Palette,
|
||||
|
||||
gel.Window.setup,
|
||||
gel.Applet.gui_world,
|
||||
gel.World,
|
||||
@@ -40,8 +42,10 @@ begin
|
||||
declare
|
||||
use ada.Calendar;
|
||||
|
||||
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (the_Applet.World (1),
|
||||
Mass => 1.0);
|
||||
the_Ball : constant gel.Sprite.view := gel.Forge.new_ball_Sprite (in_World => the_Applet.World (1),
|
||||
Mass => 1.0,
|
||||
is_Lit => False,
|
||||
Color => (openGL.Palette.Green, openGL.Opaque));
|
||||
|
||||
|
||||
type retreat_Sprite is new lace.Response.item with
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
with
|
||||
openGL.Palette,
|
||||
|
||||
gel.Window.setup,
|
||||
gel.Applet.gui_world,
|
||||
gel.World,
|
||||
@@ -40,8 +42,11 @@ begin
|
||||
declare
|
||||
use ada.Calendar;
|
||||
|
||||
the_Ball : constant gel.Sprite.view := gel.Forge.new_circle_Sprite (the_Applet.World (1),
|
||||
Mass => 1.0);
|
||||
the_Ball : constant gel.Sprite.view := gel.Forge.new_circle_Sprite (in_World => the_Applet.World (1),
|
||||
Name => "Ball",
|
||||
Mass => 1.0,
|
||||
Color => (openGL.Palette.Green, openGL.Opaque),
|
||||
Fill => False);
|
||||
|
||||
|
||||
type retreat_Sprite is new lace.Response.item with
|
||||
|
||||
@@ -6,7 +6,9 @@ with
|
||||
gel.Forge,
|
||||
|
||||
openGL.Model.any,
|
||||
openGL.Light.directional,
|
||||
openGL.texture_Set,
|
||||
openGL.Light,
|
||||
-- openGL.Light.directional,
|
||||
|
||||
ada.Calendar;
|
||||
|
||||
@@ -28,12 +30,13 @@ is
|
||||
--- Variables
|
||||
--
|
||||
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_2_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_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||
Texture_is_lucid => False);
|
||||
the_Rig : gel.Rig.item;
|
||||
next_render_Time : ada.calendar.Time;
|
||||
@@ -50,15 +53,20 @@ begin
|
||||
-- Set the lights position and ambient color.
|
||||
--
|
||||
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
|
||||
Light.ambient_Color_is ((255.0 / 255.0,
|
||||
153.0 / 255.0,
|
||||
102.0 / 255.0,
|
||||
1.0));
|
||||
Light.Site_is ((1000.0, 000.0, 1000.0));
|
||||
-- Light.ambient_Color_is ((255.0 / 255.0,
|
||||
-- 153.0 / 255.0,
|
||||
-- 102.0 / 255.0,
|
||||
-- 1.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;
|
||||
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ with
|
||||
|
||||
openGL.Model.any,
|
||||
openGL.Light,
|
||||
openGL.texture_Set,
|
||||
|
||||
ada.Calendar;
|
||||
|
||||
@@ -46,6 +47,7 @@ is
|
||||
Model => openGL.to_Asset ("./box_1_bone.dae"),
|
||||
-- Model => openGL.to_Asset ("./box_2_bone.dae"),
|
||||
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);
|
||||
the_Rig : aliased gel.Rig.item;
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ with
|
||||
|
||||
openGL.Model.any,
|
||||
openGL.Light,
|
||||
openGL.texture_Set,
|
||||
|
||||
ada.command_Line,
|
||||
ada.Calendar,
|
||||
@@ -54,6 +55,7 @@ begin
|
||||
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),
|
||||
Texture => openGL.null_Asset,
|
||||
texture_Details => openGL.texture_Set.to_Details ([1 => openGL.to_Asset ("assets/gel/Face1.bmp")]),
|
||||
Texture_is_lucid => False);
|
||||
next_render_Time : ada.calendar.Time := ada.calendar.Clock;
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@ with
|
||||
gel.Joint,
|
||||
|
||||
Physics,
|
||||
openGL.Palette;
|
||||
openGL.Palette,
|
||||
openGL.Light;
|
||||
|
||||
pragma unreferenced (gel.Window.sdl);
|
||||
|
||||
@@ -37,6 +38,15 @@ begin
|
||||
the_Applet.Renderer .Background_is (Grey);
|
||||
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_Applet.gui_World.add (the_Ground, and_Children => False);
|
||||
|
||||
@@ -44,8 +54,13 @@ begin
|
||||
--
|
||||
declare
|
||||
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_Balls : constant gel.Sprite.views := [1 .. ball_Count => new_circle_Sprite (the_Applet.gui_World, Name => "the_Balls", Mass => 1.0)];
|
||||
the_root_Ball : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
|
||||
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;
|
||||
new_Joint : gel.Joint .view;
|
||||
|
||||
@@ -6,6 +6,9 @@ with
|
||||
gel.World,
|
||||
gel.Camera,
|
||||
|
||||
openGL.Light,
|
||||
openGL.Palette,
|
||||
|
||||
Physics,
|
||||
|
||||
ada.Text_IO,
|
||||
@@ -41,7 +44,8 @@ is
|
||||
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,
|
||||
Mass => 0.0,
|
||||
Size => [20.0, 1.0, 20.0]);
|
||||
@@ -59,6 +63,15 @@ begin
|
||||
gui_World.add (the_Ball); -- Add ball.
|
||||
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
|
||||
loop
|
||||
|
||||
@@ -41,11 +41,10 @@ is
|
||||
half_Extents => [5.0, 0.25, 5.0]));
|
||||
|
||||
the_Ground : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Ground",
|
||||
gel.Sprite.World_view (the_Applet.gui_World),
|
||||
math.Origin_3D,
|
||||
the_ground_graphics_Model,
|
||||
the_ground_physics_Model);
|
||||
:= 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
|
||||
@@ -62,11 +61,10 @@ is
|
||||
Left => (Colors => [others => (Cyan, Opaque)]),
|
||||
Right => (Colors => [others => (Magenta, Opaque)])]);
|
||||
the_Box : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
||||
gel.Sprite.World_view (the_Applet.gui_World),
|
||||
math.Origin_3D,
|
||||
the_box_graphics_Model,
|
||||
the_box_physics_Model);
|
||||
:= 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.");
|
||||
@@ -79,7 +77,7 @@ begin
|
||||
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_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
|
||||
|
||||
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),
|
||||
Mass => 1.0);
|
||||
the_Box_1 : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Box.static.1",
|
||||
the_Applet.gui_World.all'Access,
|
||||
math.Origin_3d,
|
||||
the_box_Model.all'Access,
|
||||
the_static_box_physics_Model,
|
||||
owns_Graphics => False,
|
||||
owns_Physics => True);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.static.1",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_box_Model.all'Access,
|
||||
physics_Model => the_static_box_physics_Model,
|
||||
owns_Graphics => False,
|
||||
owns_Physics => True);
|
||||
|
||||
the_Box_2 : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Box.dynamic.2",
|
||||
the_Applet.gui_World.all'Access,
|
||||
math.Origin_3d,
|
||||
the_box_Model.all'Access,
|
||||
the_dynamic_box_physics_Model,
|
||||
owns_Graphics => False,
|
||||
owns_Physics => False);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.dynamic.2",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_box_Model.all'Access,
|
||||
physics_Model => the_dynamic_box_physics_Model,
|
||||
owns_Graphics => False,
|
||||
owns_Physics => False);
|
||||
|
||||
the_Box_3 : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Box.dynamic.3",
|
||||
the_Applet.gui_World.all'Access,
|
||||
math.Origin_3d,
|
||||
the_box_Model.all'Access,
|
||||
the_dynamic_box_physics_Model,
|
||||
owns_Graphics => True,
|
||||
owns_Physics => True);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box.dynamic.3",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_box_Model.all'Access,
|
||||
physics_Model => the_dynamic_box_physics_Model,
|
||||
owns_Graphics => True,
|
||||
owns_Physics => True);
|
||||
|
||||
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;
|
||||
@@ -101,7 +98,6 @@ begin
|
||||
the_Box_1.Site_is ([ 0.0, 0.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));
|
||||
|
||||
declare
|
||||
use math.Algebra.linear.d3;
|
||||
|
||||
@@ -47,26 +47,49 @@ begin
|
||||
-- Hinge
|
||||
--
|
||||
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_2 : constant gel.Sprite.view := new_circle_Sprite (the_Applet.gui_World, Name => "the_hinge_Box_2", mass => 1.0);
|
||||
the_hinge_Box_1 : constant gel.Sprite.view := new_circle_Sprite (in_World => the_Applet.gui_World,
|
||||
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;
|
||||
|
||||
Frame_A : constant math.Matrix_4x4 := math.Identity_4x4;
|
||||
Frame_B : 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;
|
||||
begin
|
||||
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_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_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;
|
||||
|
||||
-- -- DoF6
|
||||
|
||||
@@ -10,8 +10,10 @@ with
|
||||
openGL.Model.box.colored,
|
||||
openGL.Model.sphere.lit_colored_textured,
|
||||
openGL.Model.capsule.lit_colored_textured,
|
||||
openGL.Model.capsule.textured,
|
||||
openGL.Model.any,
|
||||
openGL.Model.terrain,
|
||||
openGL.texture_Set,
|
||||
openGL.IO,
|
||||
openGL.Light,
|
||||
openGL.Palette;
|
||||
@@ -90,13 +92,14 @@ is
|
||||
Scale => 2.0);
|
||||
|
||||
the_heightfield_Model : constant openGL.Model.terrain.view
|
||||
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
||||
Row => 1,
|
||||
Col => 1,
|
||||
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
||||
color_Map => terrain_Texture,
|
||||
Tiling => (s => (0.0, 1.0),
|
||||
t => (0.0, 1.0)));
|
||||
:= openGL.Model.terrain.new_Terrain (heights_Asset => terrain_Heights,
|
||||
Row => 1,
|
||||
Col => 1,
|
||||
Heights => openGL.Model.terrain.height_Map_view (gl_Heights),
|
||||
color_Map => terrain_Texture,
|
||||
texture_Details => texture_Set.to_Details ([1 => terrain_Texture]),
|
||||
Tiling => (s => (0.0, 1.0),
|
||||
t => (0.0, 1.0)));
|
||||
|
||||
the_heightfield_physics_Model : constant physics.Model.view
|
||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.heightfield,
|
||||
@@ -104,11 +107,10 @@ is
|
||||
height_Range => [0.0, 200.0]),
|
||||
Scale => [hs, 1.0, hs]);
|
||||
the_Heightfield : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_Heightfield_Model,
|
||||
the_Heightfield_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Heightfield",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_Heightfield_Model,
|
||||
physics_Model => the_Heightfield_physics_Model);
|
||||
begin
|
||||
-- Applet.
|
||||
--
|
||||
@@ -153,11 +155,10 @@ begin
|
||||
Mass => 1.0);
|
||||
|
||||
the_Box : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Box",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_box_Model.all'Access,
|
||||
the_box_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Box",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_box_Model.all'Access,
|
||||
physics_Model => the_box_physics_Model);
|
||||
|
||||
-- Ball
|
||||
--
|
||||
@@ -167,36 +168,37 @@ begin
|
||||
Mass => 1.0);
|
||||
|
||||
the_ball_Model : constant openGL.Model.sphere.lit_colored_textured.view
|
||||
:= openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius => 1.0,
|
||||
Image => openGL.to_Asset ("assets/gel/golf_green-16x16.tga"));
|
||||
:= openGL.Model.sphere.lit_colored_textured.new_Sphere (Radius => 1.0,
|
||||
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
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Ball",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_ball_Model,
|
||||
the_ball_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Ball",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_ball_Model,
|
||||
physics_Model => the_ball_physics_Model);
|
||||
|
||||
-- Cone
|
||||
--
|
||||
the_cone_Model : constant openGL.Model.any.view
|
||||
:= 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);
|
||||
|
||||
the_cone_physics_Model : constant physics.Model.view
|
||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.cone),
|
||||
Mass => 1.0);
|
||||
the_Cone : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Cone",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_cone_Model.all'Access,
|
||||
the_cone_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cone",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_cone_Model.all'Access,
|
||||
physics_Model => the_cone_physics_Model);
|
||||
-- Cylinder
|
||||
--
|
||||
the_cylinder_Model : constant openGL.Model.any.view
|
||||
:= 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);
|
||||
|
||||
the_cylinder_physics_Model : constant physics.Model.view
|
||||
@@ -205,17 +207,18 @@ begin
|
||||
Mass => 1.0);
|
||||
|
||||
the_Cylinder : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Cylinder",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_cylinder_Model.all'Access,
|
||||
the_cylinder_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Cylinder",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_cylinder_Model.all'Access,
|
||||
physics_Model => the_cylinder_physics_Model);
|
||||
-- Capsule
|
||||
--
|
||||
the_capsule_Model : constant openGL.Model.capsule.lit_colored_textured.view
|
||||
:= openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
|
||||
Height => 0.0,
|
||||
Color => (palette.Green, Opaque));
|
||||
the_capsule_Model : constant openGL.Model.capsule.textured.view
|
||||
:= openGL.Model.capsule.textured.new_Capsule (Radius => 0.5,
|
||||
Height => 2.0,
|
||||
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
|
||||
:= physics.Model.forge.new_physics_Model (shape_Info => (Kind => physics.Model.a_Capsule,
|
||||
@@ -224,34 +227,33 @@ begin
|
||||
Height => 1.0),
|
||||
Mass => 1.0);
|
||||
the_Capsule : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Capsule",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_capsule_Model.all'Access,
|
||||
the_capsule_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Capsule",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_capsule_Model.all'Access,
|
||||
physics_Model => the_capsule_physics_Model);
|
||||
|
||||
-- multi_Sphere
|
||||
--
|
||||
the_multi_Sphere_Model : constant openGL.Model.capsule.lit_colored_textured.view
|
||||
:= openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
|
||||
Height => 0.0,
|
||||
Color => (palette.Green, Opaque),
|
||||
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,
|
||||
Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
||||
[ 0.5, 0.0, 0.0]),
|
||||
Radii => new gel.math.Vector' (1 => 0.5,
|
||||
2 => 0.5)),
|
||||
Mass => 1.0);
|
||||
|
||||
the_multi_Sphere : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_multi_Sphere_Model.all'Access,
|
||||
the_multi_Sphere_physics_Model);
|
||||
-- the_multi_Sphere_Model : constant openGL.Model.capsule.lit_colored_textured.view
|
||||
-- := openGL.Model.capsule.lit_colored_textured.new_Capsule (Radius => 0.5,
|
||||
-- Height => 0.0,
|
||||
-- Color => (palette.Green, Opaque),
|
||||
-- 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,
|
||||
-- Sites => new physics.Vector_3_array' ([-0.5, 0.0, 0.0],
|
||||
-- [ 0.5, 0.0, 0.0]),
|
||||
-- Radii => new gel.math.Vector' (1 => 0.5,
|
||||
-- 2 => 0.5)),
|
||||
-- Mass => 1.0);
|
||||
--
|
||||
-- the_multi_Sphere : constant gel.Sprite.view
|
||||
-- := gel.Sprite.forge.new_Sprite ("demo.multi_Sphere",
|
||||
-- the_Applet.gui_World.all'Access,
|
||||
-- Origin_3D,
|
||||
-- the_multi_Sphere_Model.all'Access,
|
||||
-- the_multi_Sphere_physics_Model);
|
||||
|
||||
-- Hull
|
||||
--
|
||||
@@ -277,18 +279,17 @@ begin
|
||||
[-s, s, -s])),
|
||||
Mass => 1.0);
|
||||
the_Hull : constant gel.Sprite.view
|
||||
:= gel.Sprite.forge.new_Sprite ("demo.Hull",
|
||||
the_Applet.gui_World.all'Access,
|
||||
Origin_3D,
|
||||
the_hull_Model.all'Access,
|
||||
the_hull_physics_Model);
|
||||
:= gel.Sprite.forge.new_Sprite (Name => "demo.Hull",
|
||||
World => the_Applet.gui_World.all'Access,
|
||||
graphics_Model => the_hull_Model.all'Access,
|
||||
physics_Model => the_hull_physics_Model);
|
||||
begin
|
||||
the_Applet.gui_World.add (the_Ball);
|
||||
the_Applet.gui_World.add (the_Box);
|
||||
the_Applet.gui_World.add (the_Cone);
|
||||
the_Applet.gui_World.add (the_Cylinder);
|
||||
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_Ball .Site_is ([ x, y, 0.0]);
|
||||
@@ -297,7 +298,7 @@ begin
|
||||
the_Capsule .Site_is ([ 0.0 + X, y, 0.0 + x]);
|
||||
the_Cylinder .Site_is ([ 0.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;
|
||||
y := y + 2.0;
|
||||
|
||||
@@ -20,22 +20,20 @@ is
|
||||
use gel.Math,
|
||||
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);
|
||||
|
||||
the_Text_1 : constant gel.Sprite.view := gel.forge.new_text_Sprite (the_Applet.gui_World,
|
||||
Origin_3D,
|
||||
"Howdy",
|
||||
the_Applet.Font,
|
||||
Green);
|
||||
the_Text_1 : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
|
||||
Text => "Howdy",
|
||||
Font => the_Applet.Font,
|
||||
Color => dark_Green);
|
||||
|
||||
the_Text_2 : constant gel.Sprite.view := gel.forge.new_text_Sprite (the_Applet.gui_World,
|
||||
Origin_3D,
|
||||
"Doody",
|
||||
the_Applet.Font,
|
||||
Green);
|
||||
text_1_Model : constant openGL.Model.text.lit_colored.view
|
||||
:= openGL.Model.text.lit_colored.view (the_Text_1.graphics_Model);
|
||||
the_Text_2 : constant gel.Sprite.view := gel.Forge.new_text_Sprite (in_World => the_Applet.gui_World,
|
||||
Text => "Doody",
|
||||
Font => the_Applet.Font,
|
||||
Color => dark_Green);
|
||||
text_2_Model : constant openGL.Model.text.lit_colored.view
|
||||
:= openGL.Model.text.lit_colored.view (the_Text_2.graphics_Model);
|
||||
begin
|
||||
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.
|
||||
@@ -43,15 +41,15 @@ begin
|
||||
the_Applet.gui_World.add (the_Text_1);
|
||||
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
|
||||
loop
|
||||
if text_1_Model.Text = "Yay"
|
||||
if text_2_Model.Text = "Yay"
|
||||
then
|
||||
text_1_Model.Text_is ("Howdy");
|
||||
text_2_Model.Text_is ("Doody");
|
||||
else
|
||||
text_1_Model.Text_is ("Yay");
|
||||
text_2_Model.Text_is ("Yay");
|
||||
end if;
|
||||
|
||||
the_Applet.gui_World.evolve;
|
||||
|
||||
Reference in New Issue
Block a user