Files
lace/2-low/collada/source/collada-library-animations.adb
2022-07-31 17:34:54 +10:00

79 lines
1.7 KiB
Ada

package body collada.Library.animations
is
-----------
--- Utility
--
function "+" (From : in ada.Strings.unbounded.unbounded_String) return String
renames ada.Strings.unbounded.to_String;
-------------
--- Animation
--
function Source_of (Self : in Animation;
source_Name : in String) return Source
is
use ada.Strings.unbounded;
begin
for i in Self.Sources'Range
loop
if Self.Sources (i).Id = source_Name (source_Name'First+1 .. source_Name'Last)
then
return Self.Sources (i);
end if;
end loop;
declare
null_Source : Source;
begin
return null_Source;
end;
end Source_of;
function find_Inputs_of (Self : in Animation; for_Semantic : in Semantic) return access float_Array
is
the_Input : constant Input_t := find_in (Self.Sampler.Inputs.all, for_Semantic);
begin
if the_Input = null_Input
then
return null;
end if;
declare
the_Source : constant Source := Source_of (Self, +the_Input.Source);
begin
return the_Source.Floats;
end;
end find_Inputs_of;
function Inputs_of (Self : in Animation) return access float_Array
is
begin
return find_Inputs_of (Self, for_Semantic => Input);
end Inputs_of;
function Outputs_of (Self : in Animation) return access float_Array
is
begin
return find_Inputs_of (Self, for_Semantic => Output);
end Outputs_of;
function Interpolations_of (Self : in Animation) return access float_Array
is
begin
return find_Inputs_of (Self, for_Semantic => Interpolation);
end Interpolations_of;
end collada.Library.animations;