82 lines
1.8 KiB
Ada
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;
|