642 lines
22 KiB
Plaintext
642 lines
22 KiB
Plaintext
note
|
|
description: "[
|
|
A base class for building the Japanese or US flag
|
|
]"
|
|
author: "Jimmy J. Johnson"
|
|
|
|
class
|
|
FLAG
|
|
|
|
inherit
|
|
|
|
FONT_AND_COLOR_CONSTANTS
|
|
undefine
|
|
default_create
|
|
end
|
|
|
|
DIMABLE
|
|
redefine
|
|
default_create
|
|
end
|
|
|
|
EV_MODEL_WORLD
|
|
redefine
|
|
default_create,
|
|
create_interface_objects
|
|
end
|
|
|
|
create
|
|
make
|
|
|
|
create {FLAG}
|
|
list_make
|
|
|
|
feature {NONE} -- Initialization
|
|
|
|
default_create
|
|
-- Set up Current
|
|
do
|
|
Precursor {DIMABLE}
|
|
Precursor {EV_MODEL_WORLD}
|
|
build_widgets
|
|
end
|
|
|
|
make (a_location: like location)
|
|
-- Set up Current
|
|
do
|
|
location_imp := a_location
|
|
default_create
|
|
end
|
|
|
|
create_interface_objects
|
|
-- Create attributes
|
|
do
|
|
Precursor {EV_MODEL_WORLD}
|
|
create field
|
|
create border.make (width, height, border_size)
|
|
background_coordinates := [create {EV_COORDINATE}, create {EV_COORDINATE}]
|
|
create background
|
|
create charge
|
|
create rising_sun
|
|
create canton
|
|
create canton_imp
|
|
create stars.make
|
|
end
|
|
|
|
build_widgets
|
|
-- Create the widget and associate it with `a_location'
|
|
do
|
|
build_field
|
|
build_us_charge
|
|
build_japanese_charge
|
|
build_canton
|
|
build_border
|
|
scale (0.07)
|
|
end
|
|
|
|
build_border
|
|
-- Add the border on top of other widgets in Current
|
|
do
|
|
extend (border)
|
|
end
|
|
|
|
build_field
|
|
-- Create the flags background
|
|
local
|
|
p1, p2: EV_COORDINATE
|
|
do
|
|
create field
|
|
extend (field)
|
|
-- create p1.make_precise (0.0, 0.0)
|
|
-- create p2.make_precise (width, height)
|
|
create p1.make_precise (border_size, border_size)
|
|
create p2.make_precise (width - border_size, height - border_size)
|
|
create background.make_with_points (p1, p2)
|
|
-- Save the points
|
|
background_coordinates := [p1, p2]
|
|
field.extend (background)
|
|
end
|
|
|
|
build_us_charge
|
|
-- Build the `charge', sizing it relative to the `background' rectangle.
|
|
-- Create the red stripes. (The white is background.)
|
|
local
|
|
i: INTEGER
|
|
x1, y1, x2, y2: REAL_64
|
|
h: REAL_64
|
|
stripe: EV_MODEL_POLYGON
|
|
do
|
|
create charge
|
|
field.extend (charge)
|
|
x1 := background_coordinates.point_1.x + 2
|
|
y1 := background_coordinates.point_1.y + 2
|
|
x2 := background_coordinates.point_2.x - 2
|
|
y2 := background_coordinates.point_2.y - 2
|
|
h := (y2 - y1) / 13
|
|
from i := 1
|
|
until i > 13
|
|
loop
|
|
if i \\ 2 = 1 then
|
|
create stripe
|
|
stripe.extend_point (create {EV_COORDINATE}.make_precise (x1, y1 + (i - 1) * h))
|
|
stripe.extend_point (create {EV_COORDINATE}.make_precise (x2, y1 + (i - 1) * h))
|
|
stripe.extend_point (create {EV_COORDINATE}.make_precise (x2, y1 + i * h))
|
|
stripe.extend_point (create {EV_COORDINATE}.make_precise (x1, y1 + i * h))
|
|
charge.extend (stripe)
|
|
end
|
|
i := i + 1
|
|
end
|
|
end
|
|
|
|
build_japanese_charge
|
|
-- Create the sun and rays for the Japanese flag
|
|
local
|
|
p1: EV_MODEL_POLYGON
|
|
os: REAL_64
|
|
clipper: POLYGON_CLIPPER
|
|
ang, ang_step: REAL_64
|
|
mid: EV_COORDINATE
|
|
ray: EV_MODEL_POLYGON
|
|
do
|
|
build_rising_sun
|
|
rising_sun.scale_x (1.8)
|
|
rising_sun.scale_y (1.4)
|
|
field.extend (rising_sun)
|
|
-- Must move the charge a bit to line up with the background
|
|
rising_sun.set_x_y (165, 100)
|
|
-- center_widget_on_other (rising_sun, field)
|
|
-- create japanese_charge
|
|
-- field.extend (japanese_charge)
|
|
-- -- Build the `japanese_charge' inside a square so the angles at which the rays
|
|
-- -- radiate from the sun can be uniformly spaced around a circle. After
|
|
-- -- the rays are build the `charge' is scaled to match the flag's `width'
|
|
-- -- and `height'.
|
|
-- -- Create a polygon slightly smaller than the `field'
|
|
-- os := width / 10.0
|
|
-- create p1
|
|
-- p1.extend_point (create {EV_COORDINATE}.make_precise (os, os))
|
|
-- p1.extend_point (create {EV_COORDINATE}.make_precise (width - os, os))
|
|
-- p1.extend_point (create {EV_COORDINATE}.make_precise (width - os, width - os))
|
|
-- p1.extend_point (create {EV_COORDINATE}.make_precise (os, width - os))
|
|
-- -- Each of the 16 "rays" immenating from the sun is built as a triangle centered
|
|
-- -- at the midpoint, extending beyond the boundaries of `p1'. Each ray is then
|
|
-- -- clipped against `p1'
|
|
-- create clipper
|
|
-- ang := (2.0 * Pi) / 16.0
|
|
-- create mid.make_precise (width / 2.0, width / 2.0)
|
|
-- from i := 1
|
|
-- until i > 16
|
|
-- loop
|
|
-- create ray.default_create
|
|
-- ray.extend_point (mid)
|
|
-- ax := delta_x (ang * i, width)
|
|
-- ay := delta_y (ang * i, width)
|
|
-- ray.extend_point (create {EV_COORDINATE}.make_precise (ax, ay))
|
|
-- ax := delta_x (ang * (i + 1), width)
|
|
-- ay := delta_y (ang * (i + 1), width)
|
|
-- ray.extend_point (create {EV_COORDINATE}.make_precise (ax, ay))
|
|
-- ray := clipper.clipped (ray, p1)
|
|
-- field.extend (ray)
|
|
-- i := i + 1
|
|
-- end
|
|
end
|
|
|
|
-- build_canton
|
|
-- -- Create the union on US flag.
|
|
-- -- This contains the [50] stars (should be 48).
|
|
-- local
|
|
-- p1, p2: EV_COORDINATE
|
|
-- s: STAR
|
|
-- i, j: INTEGER
|
|
-- a, b: REAL_64
|
|
-- c, d: REAL_64
|
|
-- e, f, g, h: REAL_64
|
|
-- k: REAL_64
|
|
-- ax, ay: REAL_64
|
|
-- t: EV_MODEL_TRANSFORMATION
|
|
-- do
|
|
-- create t.make_zero
|
|
-- create canton
|
|
-- field.extend (canton)
|
|
-- a := height
|
|
-- b := width
|
|
-- c := a * 7/13
|
|
-- d := b * 2/5
|
|
-- e := c / 10
|
|
-- f := c / 10
|
|
-- g := d / 12
|
|
-- h := d / 12
|
|
-- k := a * 0.0616
|
|
-- create p1.make_precise (0.0, 0.0)
|
|
-- create p2.make_precise (d, c)
|
|
---- create canton_imp.make_with_points (p1, p2)
|
|
---- create canton_imp
|
|
-- canton_imp.extend_point (create {EV_COORDINATE}.make_precise (0.0, 0.0))
|
|
-- canton_imp.extend_point (create {EV_COORDINATE}.make_precise (d, 0.0))
|
|
-- canton_imp.extend_point (create {EV_COORDINATE}.make_precise (d, c))
|
|
-- canton_imp.extend_point (create {EV_COORDINATE}.make_precise (0.0, c))
|
|
-- canton.extend (canton_imp)
|
|
-- -- A star is created, scaled and then its center point is moved to
|
|
-- -- (0, 0). From there the star is positioned based on the algorithm.
|
|
-- -- Add the 6 x 5 set of stars
|
|
-- from i := 1
|
|
-- until i > 6
|
|
-- loop
|
|
-- ax := (i - 1) * (2 * h) + g
|
|
-- from j := 1
|
|
-- until j > 5
|
|
-- loop
|
|
-- create s
|
|
---- s.set_target (location)
|
|
-- s.scale (0.0616)
|
|
-- canton.extend (s)
|
|
-- stars.extend (s)
|
|
-- t.translate (-s.dot.point.x, -s.dot.point.y)
|
|
-- s.transform (t)
|
|
-- ay := (j - 1) * (2 * f) + e
|
|
-- t.translate (ax, ay)
|
|
-- s.transform (t)
|
|
-- j := j + 1
|
|
-- end
|
|
-- i := i + 1
|
|
-- end
|
|
-- -- Add the remaining stars, the 5 x 4 set
|
|
-- from i := 1
|
|
-- until i > 5
|
|
-- loop
|
|
-- ax := i * (2 * h) - h + g
|
|
-- from j := 1
|
|
-- until j > 4
|
|
-- loop
|
|
-- create s
|
|
---- s.set_target (location)
|
|
-- s.scale (0.0616)
|
|
-- canton.extend (s)
|
|
-- t.translate (-s.dot.point.x, -s.dot.point.y)
|
|
-- s.transform (t)
|
|
-- ay := j * (2 * f) - f + e
|
|
-- t.translate (ax, ay)
|
|
-- s.transform (t)
|
|
-- j := j + 1
|
|
-- end
|
|
-- i := i + 1
|
|
-- end
|
|
-- end
|
|
|
|
build_canton
|
|
-- Create the 48-star union on US flag.
|
|
-- The dimensions were estimated based on the 50-star version.
|
|
local
|
|
-- p1, p2: EV_COORDINATE
|
|
s: STAR
|
|
i, j: INTEGER
|
|
a, b: REAL_64
|
|
c, d: REAL_64
|
|
e, f, g, h: REAL_64
|
|
k: REAL_64
|
|
ax, ay: REAL_64
|
|
marg: REAL_64 -- margin to account for boarder
|
|
t: EV_MODEL_TRANSFORMATION
|
|
x1, y1, x2, y2: REAL_64
|
|
do
|
|
create t.make_zero
|
|
create canton
|
|
field.extend (canton)
|
|
x1 := background_coordinates.point_1.x + 2
|
|
y1 := background_coordinates.point_1.y + 2
|
|
x2 := background_coordinates.point_2.x - 2
|
|
y2 := background_coordinates.point_2.y - 2
|
|
|
|
-- a := height - 2 * border_size
|
|
-- b := width - 2 * border_size
|
|
a := y2 - y1
|
|
b := x2 - x1
|
|
c := a * 7/13
|
|
d := b * 2/5
|
|
e := c / 7 -- divided by number of rows + 1
|
|
f := c / 7 -- divided by number of rows + 1
|
|
g := d / 9 -- divided by number of columns + 1
|
|
h := d / 9 -- divided by number of columns + 1
|
|
k := a * 0.0616
|
|
-- create p1.make_precise (0.0, 0.0)
|
|
-- create p2.make_precise (d, c)
|
|
-- Create the blue background for the stars
|
|
canton_imp.extend_point (create {EV_COORDINATE}.make_precise (x1, y1))
|
|
canton_imp.extend_point (create {EV_COORDINATE}.make_precise (x1 + d, y1))
|
|
canton_imp.extend_point (create {EV_COORDINATE}.make_precise (x1 + d, y1 + c))
|
|
canton_imp.extend_point (create {EV_COORDINATE}.make_precise (x1, y1 + c))
|
|
canton.extend (canton_imp)
|
|
-- A star is created, scaled and then its center point is moved to
|
|
-- (0, 0). From there the star is positioned based on the algorithm.
|
|
-- Add the 6 x 5 set of stars
|
|
from i := 1
|
|
until i > 8
|
|
loop
|
|
-- ax := (i - 1) * (2 * h) + g
|
|
-- ax := (i - 1) * h + g/2
|
|
ax := x1 + (i - 1) * h + g
|
|
from j := 1
|
|
until j > 6
|
|
loop
|
|
create s
|
|
s.scale (0.0616)
|
|
canton.extend (s)
|
|
stars.extend (s)
|
|
-- t.translate (-s.dot.point.x, -s.dot.point.y)
|
|
-- s.transform (t)
|
|
s.set_x_y (0, 0)
|
|
-- ay := (j - 1) * (2 * f) + e
|
|
-- ay := (j - 1) * f + e/2
|
|
ay := y1 + (j - 1) * f + e
|
|
t.translate (ax, ay)
|
|
s.transform (t)
|
|
j := j + 1
|
|
end
|
|
i := i + 1
|
|
end
|
|
end
|
|
|
|
feature -- Access
|
|
|
|
location: LOCATION
|
|
-- The location (e.g. a PORT or a chart) to which
|
|
-- this marker belongs
|
|
require
|
|
has_location: has_location
|
|
do
|
|
check attached location_imp as loc then
|
|
Result := loc
|
|
end
|
|
end
|
|
|
|
set_location (a_location: like location)
|
|
-- Change the `location'
|
|
do
|
|
location_imp := a_location
|
|
end
|
|
|
|
feature {NONE} -- Implementation
|
|
|
|
location_imp: detachable like location
|
|
-- Implementation for `location'
|
|
|
|
feature -- Status report
|
|
|
|
has_location: BOOLEAN
|
|
-- Has a location been assigned?
|
|
do
|
|
Result := attached location_imp
|
|
end
|
|
|
|
is_outlined: BOOLEAN
|
|
-- Should the outline of the flag show?
|
|
-- If yes, change the foreground color to show a line around Current.
|
|
|
|
is_flat: BOOLEAN
|
|
-- Should Current be drawn as a flat picture?
|
|
|
|
feature -- Status setting
|
|
|
|
show_outline
|
|
-- Make the outline of the flag visible
|
|
do
|
|
is_outlined := true
|
|
end
|
|
|
|
hide_outline
|
|
-- Make the outline of the flag NOT visible
|
|
do
|
|
is_outlined := false
|
|
end
|
|
|
|
set_flat
|
|
-- Cause the widget to be painted as a flat tile
|
|
do
|
|
is_flat := True
|
|
paint
|
|
end
|
|
|
|
set_raised
|
|
-- Cause the widget to be painted as a 3-d tile
|
|
do
|
|
is_flat := False
|
|
paint
|
|
end
|
|
|
|
feature -- Basic operations
|
|
|
|
-- set_dimming_level (a_level: INTEGER)
|
|
-- -- Change the `dimming_level'
|
|
-- do
|
|
-- Precursor {DIMABLE} (a_level)
|
|
-- paint
|
|
-- end
|
|
|
|
paint
|
|
-- Set the colors of the sub-widgets
|
|
do
|
|
paint_field
|
|
paint_charge
|
|
paint_canton
|
|
paint_border
|
|
if is_flat then
|
|
border.hide
|
|
else
|
|
border.show
|
|
end
|
|
if location.is_allied then
|
|
field.show
|
|
charge.show
|
|
canton.show
|
|
rising_sun.hide
|
|
elseif location.nationality = {NATIONALITY_CONSTANTS}.japanese then
|
|
field.show
|
|
rising_sun.show
|
|
charge.hide
|
|
canton.hide
|
|
else
|
|
field.hide
|
|
charge.hide
|
|
canton.hide
|
|
rising_sun.hide
|
|
border.hide
|
|
end
|
|
end
|
|
|
|
feature {NONE} -- Implementation
|
|
|
|
paint_border
|
|
-- Set the color for the `border'
|
|
do
|
|
border.set_color (adjusted_color (White))
|
|
end
|
|
|
|
paint_field
|
|
-- Paint the `field'
|
|
local
|
|
c: EV_COLOR
|
|
do
|
|
c := us_flag_white_color
|
|
background.set_background_color (adjusted_color (c))
|
|
-- Set color for boarder around the background if shown.
|
|
-- This is just the line around the flag on the OA Charts.
|
|
if is_outlined then
|
|
if location.nationality = {NATIONALITY_CONSTANTS}.japanese then
|
|
c := japanese_unit_color
|
|
else
|
|
c := us_unit_color
|
|
end
|
|
end
|
|
background.set_foreground_color (adjusted_color (c))
|
|
end
|
|
|
|
paint_charge
|
|
-- Paint the `charge'
|
|
do
|
|
from charge.start
|
|
until charge.exhausted
|
|
loop
|
|
if attached {EV_MODEL_POLYGON} charge.item as s then
|
|
s.set_foreground_color (adjusted_color (US_flag_red_color))
|
|
s.set_background_color (adjusted_color (US_flag_red_color))
|
|
end
|
|
rising_sun.set_foreground_color (adjusted_color (Japanese_unit_color))
|
|
rising_sun.set_background_color (adjusted_color (Japanese_unit_color))
|
|
charge.forth
|
|
end
|
|
end
|
|
|
|
paint_canton
|
|
-- Paint the canton area (and stars)
|
|
local
|
|
s: STAR
|
|
do
|
|
canton_imp.set_background_color (adjusted_color (US_flag_blue_color))
|
|
canton_imp.set_foreground_color (adjusted_color (US_flag_blue_color))
|
|
-- Must paint each star (to dim or brighten them)
|
|
from stars.start
|
|
until stars.off
|
|
loop
|
|
s := stars.item
|
|
s.set_background_color (adjusted_color (white))
|
|
s.set_foreground_color (adjusted_color (white))
|
|
stars.forth
|
|
end
|
|
end
|
|
|
|
feature {NONE} -- Implementation
|
|
|
|
frozen height: REAL_64 = 200.0
|
|
-- The span of a flag down the side parallel to the flagpole
|
|
|
|
-- width: REAL_64 = 380.0
|
|
width: REAL_64 = 330.0
|
|
-- The span of the flag along the side at right angles to the flagpole
|
|
|
|
ratio: REAL_64
|
|
-- The ratio of the `width' / `height' (1.9 for US flags)
|
|
|
|
background_coordinates: TUPLE [point_1: EV_COORDINATE; point_2: EV_COORDINATE]
|
|
-- The corner points for the `background'.
|
|
-- Used EV_COORDINATE to be more precise (i.e. REAL_64, not INTEGER_32)
|
|
|
|
background: EV_MODEL_RECTANGLE
|
|
-- The background of Current (usually white)
|
|
|
|
border: BORDER
|
|
-- The borders around the `field', giving a raised appearance
|
|
|
|
border_size: REAL_64
|
|
-- Ratio of the size of the `border' to `width'
|
|
do
|
|
Result:= (height.min (width)) / 20
|
|
end
|
|
|
|
canton: EV_MODEL_WORLD
|
|
-- The upper hoist (left) quarter (contains the field of stars in US flag)
|
|
|
|
charge: EV_MODEL_WORLD
|
|
-- A figure or symbol appearing on the flag
|
|
|
|
rising_sun: EV_MODEL_POLYGON
|
|
-- The red sun and rays on the Japanese flag
|
|
|
|
field: EV_MODEL_WORLD
|
|
-- The top container for Current
|
|
|
|
canton_imp: EV_MODEL_POLYGON
|
|
-- The rectangle to make a blue canton
|
|
|
|
stars: LINKED_SET [STAR]
|
|
-- Keep track of all the stars in Current, so they can be dimmed
|
|
-- when `set_dimming_level' is called
|
|
|
|
build_rising_sun
|
|
-- Make the polygon
|
|
do
|
|
create rising_sun
|
|
-- Points generated by Grabber application
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0, 0))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (32.395061728395063, 39.308641975308639))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (35.358024691358025, 37.728395061728392))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (38.913580246913575, 35.55555555555555))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (20.938271604938265, 1.7777777777777786))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (33.777777777777771, 1.7777777777777786))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (43.851851851851848, 33.777777777777764))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (46.617283950617285, 33.58024691358024))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (49.97530864197531, 32.79012345679012))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (47.407407407407412, 1.5802469135802468))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (58.66666666666665, 1.9753086419753103))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (56.888888888888879, 33.185185185185176))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (59.851851851851841, 32.987654320987652))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (64.395061728395063, 33.975308641975303))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (74.074074074074048, 1.3827160493827169))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (87.111111111111114, 1.7777777777777786))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (69.925925925925895, 35.950617283950614))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (72.296296296296276, 37.92592592592591))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (74.271604938271594, 40.296296296296291))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (107.25925925925924, 0.98765432098765338))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (130.17283950617283, 1.1851851851851851))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (78.81481481481481, 44.444444444444436))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (80.790123456790099, 47.012345679012341))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (82.370370370370352, 50.962962962962955))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (168.09876543209876, 1.3827160493827169))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (167.90123456790118, 30.024691358024683))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (85.333333333333314, 55.506172839506164))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (85.925925925925895, 58.074074074074055))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (85.925925925925895, 62.222222222222207))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (167.90123456790118, 54.716049382716044))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (168.09876543209876, 76.246913580246883))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (85.925925925925895, 68.938271604938251))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (85.53086419753086, 72.098765432098759))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (85.135802469135797, 75.851851851851848))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (167.3086419753086, 100.34567901234567))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (166.71604938271602, 130.56790123456787))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (83.160493827160479, 80.592592592592581))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (81.382716049382708, 83.160493827160479))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (79.407407407407391, 85.728395061728378))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (130.56790123456787, 128.59259259259255))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (107.06172839506172, 129.38271604938268))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (75.259259259259238, 89.679012345679013))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (72.691358024691368, 92.049382716049365))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (69.53086419753086, 94.024691358024654))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (87.308641975308632, 128.98765432098762))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (74.074074074074048, 129.18518518518516))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (64.592592592592581, 96.395061728395035))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (61.432098765432094, 97.185185185185162))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (57.283950617283942, 97.185185185185162))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (60.049382716049372, 128.79012345679007))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (47.999999999999993, 128.79012345679007))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (50.37037037037036, 97.382716049382708))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (47.407407407407412, 97.185185185185162))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (44.049382716049372, 95.999999999999972))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (34.172839506172842, 128.98765432098762))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (19.950617283950621, 129.18518518518516))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (38.716049382716044, 94.024691358024654))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (35.358024691358025, 92.839506172839464))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (32.592592592592588, 90.469135802469111))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.39506172839506704, 128.59259259259255))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.39506172839506704, 109.43209876543207))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (28.839506172839513, 85.925925925925895))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (26.074074074074076, 83.358024691357997))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (24.493827160493822, 79.999999999999972))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.19753086419753174, 93.03703703703701))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.19753086419753174, 82.172839506172807))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (21.728395061728399, 75.061728395061692))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (21.728395061728399, 71.703703703703695))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (21.925925925925924, 68.34567901234567))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.39506172839506704, 70.123456790123441))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.39506172839506704, 61.234567901234563))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (21.728395061728399, 62.617283950617271))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (21.333333333333336, 59.061728395061728))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (22.320987654320987, 56.493827160493829))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.19753086419753174, 49.185185185185176))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0.39506172839506704, 37.530864197530853))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (24.691358024691361, 50.567901234567891))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (26.271604938271594, 47.012345679012341))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (28.444444444444436, 44.049382716049379))
|
|
rising_sun.extend_point (create {EV_COORDINATE}.make_precise (0, 20.938271604938272))
|
|
end
|
|
|
|
end
|