note
	description: "[
		A star widget
		]"
	author: "Jimmy J. Johnson"

class
	STAR

inherit

	FONT_AND_COLOR_CONSTANTS
		undefine
			default_create
		end

	EV_MODEL_POLYGON
		redefine
			default_create
		end

create
	default_create

feature {NONE} -- Initialization

	default_create
			-- Create an intance
		do
			Precursor {EV_MODEL_POLYGON}
			build_widgets
		end

	build_widgets
			-- Create the widget
		local
			d: REAL_64			-- the diameter of a circle that fits in box
			r: REAL_64			-- the radius of above circle
			r_small: REAL_64	-- the radius of a smaller circle
			a: REAL_64 			-- the current angle around a circle
			delta_a: REAL_64	-- the amount to change `ang' as we go around circle
			i: INTEGER
			ax, ay: REAL_64
			p: EV_COORDINATE
		do
			d := 200
			r := d / 2.0
			r_small := r / 3.0
			delta_a := (2.0 * Pi) / (points_on_star_count * 2.0)
			a := 0
			from i := 1
			until i > points_on_star_count * 2
			loop
				if i \\ 2 = 1 then
					ax := delta_x (a, r_small)
					ay := delta_y (a, r_small)
				else
					ax := delta_x (a, r)
					ay := delta_y (a, r)
				end
				create p.make_precise (ax, ay)
				extend_point (p)
				a := a + delta_a
				i := i + 1
			end
				-- Rotate star and move it to the center of its system.
			rotate (0.3)
			set_background_color (White)
			set_foreground_color (White)
		end

feature -- Basic operations


feature {NONE} -- Implementation

	points_on_star_count: INTEGER = 5
			-- The number of points the star has

invariant


end
