CS计算机代考程序代写 ————————————————————————-

————————————————————————-
— GLOBE_3D – GL – based, real – time, 3D engine

— Copyright (c) Gautier de Montmollin/Rod Kay 2007
— CH – 8810 Horgen
— SWITZERLAND
— Permission granted to use this software, without any warranty,
— for any purpose, provided this copyright note remains attached
— and unmodified if sources are distributed further.
————————————————————————-

pragma Warnings (Off);
pragma Style_Checks (Off);

with GL, GL.Geometry, GL.Skins, GL.skinned_Geometry;

package GLOBE_3D.Sprite is

— a ‘Visual’ which consists of multiple GL.skinned_Geometrys

type Sprite (max_Geometrys : Positive) is new Visual with
record
skinned_Geometrys : GL.skinned_geometry.skinned_Geometrys (1 .. max_Geometrys);
skinned_geometry_Count : Natural := 0;

— private:
is_Transparent : Boolean := False;
face_Count : Natural := 0;
Bounds : GL.geometry.Bounds_record;
end record;

type p_Sprite is access all Sprite’Class;
type p_sprite_Grid is array (Positive range <>, Positive range <>) of p_Sprite;

procedure destroy (o : in out Sprite);

procedure set_Alpha (o : in out Sprite; Alpha : in GL.Double);
function is_Transparent (o : in Sprite) return Boolean;

function skinned_Geometrys (o : in Sprite) return GL.skinned_geometry.skinned_Geometrys;

procedure add (o : in out Sprite; Geometry : access GL.geometry.Geometry_t’Class;
Skin : access GL.skins.Skin’Class);

procedure Pre_calculate (o : in out Sprite);

procedure Display (
o : in out Sprite;
clip : in Clipping_data
);

function face_Count (o : in Sprite) return Natural;
function Bounds (o : in Sprite) return GL.geometry.Bounds_record;

end GLOBE_3D.Sprite;