lace_physics_0.1.0_d1cb6621/source/physics-object.adb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
with
     ada.unchecked_Deallocation;

package body physics.Object
is

   procedure free (Self : in out View)
   is
      procedure deallocate is new ada.unchecked_Deallocation (Item'Class, View);
   begin
      if Self /= null then
         Self.destruct;
      end if;

      deallocate (Self);
   end free;



   protected
   body safe_Dynamics
   is

      procedure set (To : in Matrix_4x4)
      is
      begin
         Dynamics := To;
      end set;

      function get return Matrix_4x4
      is
      begin
         return Dynamics;
      end get;

      procedure set_Spin (To : in Matrix_3x3)
      is
         use linear_Algebra_3D;
      begin
         set_Rotation (Dynamics, To);
      end set_Spin;

      function get_Spin return Matrix_3x3
      is
         use linear_Algebra_3D;
      begin
         return get_Rotation (Dynamics);
      end get_Spin;

      procedure set_Site (To : in Vector_3)
      is
         use linear_Algebra_3D;
      begin
         set_Translation (Dynamics, To);
      end set_Site;

      function get_Site return Vector_3
      is
         use linear_Algebra_3D;
      begin
         return get_Translation (Dynamics);
      end get_Site;

   end safe_Dynamics;


end physics.Object;