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

82 lines
1.8 KiB
Ada

package collada.Library.controllers
--
-- Models a collada 'controllers' library, which is a collection of controllers.
--
is
type Inputs_view is access all Library.Inputs;
type int_Array_view is access all int_Array;
----------
--- Joints
--
type Joints is
record
Inputs : Inputs_view;
end record;
------------------
--- vertex_Weights
--
type vertex_Weights is
record
Count : Natural;
Inputs : Inputs_view;
v_Count : int_Array_view;
v : int_Array_view;
end record;
function joint_Offset_of (Self : in vertex_Weights) return math.Index;
function weight_Offset_of (Self : in vertex_Weights) return math.Index;
--------
--- Skin
--
type Skin is
record
main_Source : Text;
bind_shape_Matrix : float_Array (1 .. 16);
Sources : library.Sources_view;
Joints : controllers.Joints;
vertex_weights : controllers.vertex_Weights;
end record;
function Weights_of (Self : in Skin) return access float_Array;
function bind_shape_Matrix_of (Self : in Skin) return Matrix_4x4;
function bind_Poses_of (Self : in Skin) return Matrix_4x4_array;
function joint_Names_of (Self : in Skin) return Text_array;
--------------
--- Controller
--
type Controller is
record
Name : Text;
Id : Text;
Skin : controllers.Skin;
end record;
type Controller_array is array (Positive range <>) of Controller;
type Controller_array_view is access Controller_array;
----------------
--- Library Item
--
type Item is
record
Contents : Controller_array_view;
end record;
end collada.Library.controllers;