Hosted by
|
with Real_Numbers; use Real_Numbers;
with Real_Vectors; use Real_Vectors;
package Lines is
type Line is abstract tagged record
To : Vector;
Length : Real := 0.0;
end record;
type Line_Access is access all Line'Class;
function Length
(Start : in Vector;
This : access Line)
return Real
is abstract;
procedure Scale
(This : access Line;
Factor : in Real)
is abstract;
procedure Translate
(This : access Line;
Offset : in Vector)
is abstract;
function Way_Point
(Start : in Vector;
This : access Line;
Part : in Real)
return Vector
is abstract;
function To_SVG
(This : access Line;
Tolerance : in Real)
return String
is abstract;
function To_Postscript
(This : access Line;
Tolerance : in Real)
return String
is abstract;
end Lines;
|