note
	description: "[
		Widget representing the brown land of the Southern Marshall Islands
		]"
	author: "Jimmy J. Johnson"

class
	MARSHALLS_SOUTH_WIDGET

inherit

	LOCATION_WIDGET
		redefine
			build_widgets,
			build_land
		end

create
	default_create

feature {NONE} -- Initialization

	build_widgets
			-- Add widgets to Current
		do
			Precursor {LOCATION_WIDGET}	-- calls `build_land'
				-- Remove `text_widget'
			prune_all (text_widget)
				-- Make adjustments
			scale_widget (land, 0.07)
			rotate_widget (land, 13.0)
			translate_widget (Current, 78, -139)
		end

	build_land
			-- Add `land' to Current and create the polygons.
		do
			Precursor {LOCATION_WIDGET}
				-- Put polygons representing land into the `land'
--			land.extend (kajalein_south)
--			land.extend (maloelap_south)
			land.extend (mili_atoll)
			land.extend (butaritari_atoll)
			land.extend (abalng_island)
			land.extend (tarawa_island)
			land.extend (majana_island)
			land.extend (kuna_island)
			land.extend (aranuka_island)
			land.extend (abemama_island)
			land.extend (nonouti_island)
			land.extend (tabiteuea_island)
			land.extend (onotoa_island)
			land.extend (beru_island)
			land.extend (jaluit_atoll)
		end

feature {NONE} -- Implementation

	kajalein_south: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (0, 0))
			Result.extend_point (create {EV_COORDINATE}.make_precise (13.333333333333343, 0.59259259259259522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (25.18518518518519, -2.3703703703703667))
			Result.extend_point (create {EV_COORDINATE}.make_precise (45.925925925925895, 2.0740740740740762))
			Result.extend_point (create {EV_COORDINATE}.make_precise (63.407407407407391, 1.7777777777777786))
			Result.extend_point (create {EV_COORDINATE}.make_precise (82.962962962962933, 20.148148148148138))
			Result.extend_point (create {EV_COORDINATE}.make_precise (83.555555555555543, 29.925925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (88, 40.888888888888886))
			Result.extend_point (create {EV_COORDINATE}.make_precise (84.444444444444457, 46.222222222222214))
			Result.extend_point (create {EV_COORDINATE}.make_precise (84.148148148148152, 57.481481481481467))
			Result.extend_point (create {EV_COORDINATE}.make_precise (67.851851851851848, 47.407407407407405))
			Result.extend_point (create {EV_COORDINATE}.make_precise (68.148148148148152, 34.666666666666657))
			Result.extend_point (create {EV_COORDINATE}.make_precise (61.333333333333343, 26.074074074074076))
			Result.extend_point (create {EV_COORDINATE}.make_precise (51.851851851851848, 21.629629629629626))
			Result.extend_point (create {EV_COORDINATE}.make_precise (40, 23.703703703703702))
			Result.extend_point (create {EV_COORDINATE}.make_precise (32.296296296296276, 19.555555555555557))
			Result.extend_point (create {EV_COORDINATE}.make_precise (20.444444444444457, 17.18518518518519))
			Result.extend_point (create {EV_COORDINATE}.make_precise (11.851851851851848, 8))
		end

	maloelap_south: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (362.07407407407402, 38.81481481481481))
			Result.extend_point (create {EV_COORDINATE}.make_precise (375.7037037037037, 38.81481481481481))
			Result.extend_point (create {EV_COORDINATE}.make_precise (390.81481481481478, 45.037037037037038))
			Result.extend_point (create {EV_COORDINATE}.make_precise (397.92592592592587, 50.370370370370367))
			Result.extend_point (create {EV_COORDINATE}.make_precise (403.55555555555554, 56.888888888888886))
			Result.extend_point (create {EV_COORDINATE}.make_precise (396.74074074074065, 63.999999999999986))
			Result.extend_point (create {EV_COORDINATE}.make_precise (396.74074074074065, 78.81481481481481))
			Result.extend_point (create {EV_COORDINATE}.make_precise (382.81481481481478, 69.629629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (373.03703703703695, 54.81481481481481))
		end

	mili_atoll: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (445.03703703703695, 285.92592592592587))
			Result.extend_point (create {EV_COORDINATE}.make_precise (455.7037037037037, 283.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (464.88888888888891, 281.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (468.44444444444446, 285.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (480.59259259259261, 285.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (484.44444444444446, 292.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (483.55555555555554, 305.18518518518522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (488.59259259259261, 316.74074074074076))
			Result.extend_point (create {EV_COORDINATE}.make_precise (488, 319.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (482.66666666666663, 311.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (478.22222222222217, 307.25925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (470.81481481481478, 304.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (464.88888888888891, 305.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (461.92592592592587, 301.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (458.07407407407402, 302.22222222222217))
			Result.extend_point (create {EV_COORDINATE}.make_precise (454.22222222222217, 299.55555555555554))
			Result.extend_point (create {EV_COORDINATE}.make_precise (450.96296296296282, 302.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (446.22222222222217, 301.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (446.81481481481478, 291.55555555555554))
			Result.extend_point (create {EV_COORDINATE}.make_precise (445.03703703703695, 291.55555555555554))
		end

	butaritari_atoll: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (534.51851851851848, 553.77777777777771))
			Result.extend_point (create {EV_COORDINATE}.make_precise (540.74074074074065, 558.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (553.77777777777783, 559.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (557.33333333333326, 557.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560, 545.77777777777771))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.48148148148141, 543.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (564.44444444444446, 544))
			Result.extend_point (create {EV_COORDINATE}.make_precise (564.74074074074065, 546.66666666666663))
			Result.extend_point (create {EV_COORDINATE}.make_precise (562.37037037037021, 547.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.18518518518499, 555.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (557.62962962962956, 559.11111111111109))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560.8888888888888, 560.5925925925925))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.18518518518499, 565.92592592592587))
			Result.extend_point (create {EV_COORDINATE}.make_precise (554.96296296296282, 568.2962962962963))
			Result.extend_point (create {EV_COORDINATE}.make_precise (555.25925925925924, 573.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (549.33333333333326, 573.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (545.18518518518499, 575.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (541.62962962962956, 579.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (538.37037037037032, 577.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (538.37037037037032, 571.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (536.29629629629619, 569.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (535.40740740740739, 564.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (533.03703703703695, 557.33333333333326))
		end

	abalng_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (542.22222222222217, 679.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (549.92592592592587, 672.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (555.25925925925924, 674.66666666666663))
			Result.extend_point (create {EV_COORDINATE}.make_precise (566.81481481481478, 688))
			Result.extend_point (create {EV_COORDINATE}.make_precise (567.11111111111109, 692.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (561.48148148148141, 695.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (554.07407407407402, 691.55555555555543))
			Result.extend_point (create {EV_COORDINATE}.make_precise (552.8888888888888, 686.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (548.44444444444446, 682.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (544.29629629629619, 682.96296296296282))
		end

	tarawa_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (560, 704.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560.8888888888888, 711.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (577.77777777777783, 728))
			Result.extend_point (create {EV_COORDINATE}.make_precise (566.81481481481478, 731.25925925925912))
			Result.extend_point (create {EV_COORDINATE}.make_precise (562.37037037037021, 734.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (557.33333333333326, 731.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (553.48148148148141, 732.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (553.77777777777783, 725.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (552.59259259259261, 717.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (555.25925925925924, 707.85185185185185))
		end

	majana_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (563.25925925925924, 759.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (569.77777777777783, 766.22222222222217))
			Result.extend_point (create {EV_COORDINATE}.make_precise (566.81481481481478, 768))
			Result.extend_point (create {EV_COORDINATE}.make_precise (565.03703703703695, 775.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (562.07407407407402, 778.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (556.14814814814804, 772.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (560.59259259259261, 763.55555555555543))
		end

	kuna_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (595.25925925925924, 827.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (599.11111111111109, 828.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (601.48148148148141, 831.70370370370358))
			Result.extend_point (create {EV_COORDINATE}.make_precise (605.33333333333326, 833.48148148148141))
			Result.extend_point (create {EV_COORDINATE}.make_precise (599.70370370370358, 836.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (597.92592592592587, 832.29629629629619))
		end

	aranuka_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (609.48148148148141, 835.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (615.40740740740739, 835.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (619.85185185185173, 833.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (622.81481481481478, 838.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (619.85185185185173, 844.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (616.59259259259261, 843.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (615.70370370370358, 840.59259259259238))
		end

	abemama_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (631.11111111111109, 816.8888888888888))
			Result.extend_point (create {EV_COORDINATE}.make_precise (633.77777777777783, 815.11111111111097))
			Result.extend_point (create {EV_COORDINATE}.make_precise (635.25925925925924, 810.66666666666663))
			Result.extend_point (create {EV_COORDINATE}.make_precise (641.18518518518499, 808.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (645.92592592592587, 813.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (649.18518518518499, 821.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (648.59259259259261, 826.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (642.07407407407402, 826.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (637.92592592592587, 822.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (636.74074074074065, 820.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (632.59259259259261, 819.85185185185185))
		end

	nonouti_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (665.48148148148141, 911.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (672, 898.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (675.85185185185173, 902.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (683.55555555555543, 902.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (693.33333333333326, 908.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (695.11111111111109, 914.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (696.8888888888888, 928.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (691.25925925925924, 924.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (685.62962962962956, 925.62962962962956))
			Result.extend_point (create {EV_COORDINATE}.make_precise (682.07407407407402, 927.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (679.70370370370358, 924.44444444444434))
			Result.extend_point (create {EV_COORDINATE}.make_precise (672.8888888888888, 919.99999999999977))
			Result.extend_point (create {EV_COORDINATE}.make_precise (671.40740740740739, 916.74074074074065))
		end

	tabiteuea_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (711.40740740740739, 954.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (715.25925925925924, 953.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (718.81481481481478, 956.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (725.33333333333326, 965.33333333333314))
			Result.extend_point (create {EV_COORDINATE}.make_precise (727.40740740740739, 968.59259259259238))
			Result.extend_point (create {EV_COORDINATE}.make_precise (726.81481481481478, 973.03703703703695))
			Result.extend_point (create {EV_COORDINATE}.make_precise (732.14814814814804, 974.22222222222194))
			Result.extend_point (create {EV_COORDINATE}.make_precise (735.70370370370358, 978.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (751.70370370370358, 986.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (753.18518518518499, 994.96296296296282))
			Result.extend_point (create {EV_COORDINATE}.make_precise (744, 994.66666666666652))
			Result.extend_point (create {EV_COORDINATE}.make_precise (737.77777777777783, 995.55555555555532))
			Result.extend_point (create {EV_COORDINATE}.make_precise (729.18518518518499, 989.92592592592575))
			Result.extend_point (create {EV_COORDINATE}.make_precise (728, 982.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (721.77777777777783, 979.55555555555532))
			Result.extend_point (create {EV_COORDINATE}.make_precise (720.59259259259261, 972.74074074074065))
			Result.extend_point (create {EV_COORDINATE}.make_precise (714.66666666666663, 963.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (712.29629629629619, 961.18518518518522))
		end

	onotoa_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (789.92592592592575, 1015.7037037037035))
			Result.extend_point (create {EV_COORDINATE}.make_precise (796.14814814814792, 1016.2962962962961))
			Result.extend_point (create {EV_COORDINATE}.make_precise (795.55555555555543, 1020.4444444444443))
			Result.extend_point (create {EV_COORDINATE}.make_precise (800.59259259259238, 1024.5925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (801.4814814814813, 1029.333333333333))
			Result.extend_point (create {EV_COORDINATE}.make_precise (796.74074074074065, 1032.5925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (794.07407407407402, 1026.6666666666665))
			Result.extend_point (create {EV_COORDINATE}.make_precise (789.33333333333326, 1025.1851851851852))
			Result.extend_point (create {EV_COORDINATE}.make_precise (790.81481481481455, 1020.4444444444443))
		end

	beru_island: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (829.62962962962956, 970.07407407407402))
			Result.extend_point (create {EV_COORDINATE}.make_precise (831.40740740740739, 968.29629629629619))
			Result.extend_point (create {EV_COORDINATE}.make_precise (839.70370370370358, 978.37037037037021))
			Result.extend_point (create {EV_COORDINATE}.make_precise (839.40740740740739, 979.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (837.03703703703695, 977.7777777777776))
			Result.extend_point (create {EV_COORDINATE}.make_precise (832.59259259259238, 978.07407407407402))
		end

	jaluit_atoll: EV_MODEL_POLYGON
			-- Make the polygon
		attribute
			create Result
				-- Points generated by Grabber application
			Result.extend_point (create {EV_COORDINATE}.make_precise (234.96296296296291, 283.25925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (237.03703703703698, 278.81481481481478))
			Result.extend_point (create {EV_COORDINATE}.make_precise (242.6666666666666, 277.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (248.29629629629628, 287.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (254.81481481481475, 299.85185185185185))
			Result.extend_point (create {EV_COORDINATE}.make_precise (261.92592592592587, 300.14814814814815))
			Result.extend_point (create {EV_COORDINATE}.make_precise (265.77777777777783, 308.74074074074076))
			Result.extend_point (create {EV_COORDINATE}.make_precise (261.03703703703695, 311.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (259.55555555555554, 321.18518518518522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (253.9259259259259, 327.40740740740739))
			Result.extend_point (create {EV_COORDINATE}.make_precise (246.81481481481475, 324.14814814814804))
			Result.extend_point (create {EV_COORDINATE}.make_precise (244.74074074074068, 317.33333333333326))
			Result.extend_point (create {EV_COORDINATE}.make_precise (236.14814814814807, 310.51851851851848))
			Result.extend_point (create {EV_COORDINATE}.make_precise (237.9259259259259, 305.18518518518522))
			Result.extend_point (create {EV_COORDINATE}.make_precise (237.9259259259259, 299.25925925925924))
			Result.extend_point (create {EV_COORDINATE}.make_precise (239.70370370370367, 292.14814814814815))
			Result.extend_point (create {EV_COORDINATE}.make_precise (238.5185185185185, 287.11111111111109))
		end

invariant

--	correct_location: attached target_imp implies location = vitp.marshalls_south

end
