60 lines
1.4 KiB
Ada
60 lines
1.4 KiB
Ada
package body any_Math.any_Geometry
|
|
is
|
|
|
|
function Image (Self : in Triangle) return String
|
|
is
|
|
begin
|
|
return "(" & Vertex_Id'Image (Self (1)) & ","
|
|
& Vertex_Id'Image (Self (2)) & ","
|
|
& Vertex_Id'Image (Self (3)) & ")";
|
|
end Image;
|
|
|
|
|
|
|
|
function Image (Self : in Triangles) return String
|
|
is
|
|
Result : String (1 .. 1024);
|
|
Last : Standard.Natural := 0;
|
|
begin
|
|
for Each in Self'Range
|
|
loop
|
|
declare
|
|
Id_Image : constant String := Image (Self (Each));
|
|
begin
|
|
Result (Last + 1 .. Last + Id_Image'Length) := Id_Image;
|
|
Last := Last + Id_Image'Length;
|
|
end;
|
|
end loop;
|
|
|
|
return Result (1 .. Last);
|
|
|
|
exception
|
|
when Constraint_Error =>
|
|
declare
|
|
Ellipsis : constant String := " ...";
|
|
begin
|
|
Result (Result'Last - ellipsis'Length + 1 .. Result'Last) := ellipsis;
|
|
return Result (1 .. Last);
|
|
end;
|
|
end Image;
|
|
|
|
|
|
|
|
function Image (Self : in Model) return String
|
|
is
|
|
begin
|
|
return Self.Triangles.Image;
|
|
end Image;
|
|
|
|
|
|
|
|
function Image (Self : in Model_Triangles) return String
|
|
is
|
|
begin
|
|
return "Triangle_Count =>" & standard.Positive'Image (Self.Triangle_Count)
|
|
& Image (Self.Triangles);
|
|
end Image;
|
|
|
|
|
|
end any_Math.any_Geometry;
|