Add initial prototype.

This commit is contained in:
Rod Kay
2022-07-31 17:34:54 +10:00
commit 54a53b2ac0
1421 changed files with 358874 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
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;