    deferred class
    	EV_MODEL_ROTATED_ELLIPTIC

    General
    	cluster: interface
    	description:
    		"rotated elliptic is defined by 4 points:

    		p0-----------p1
    		|             |
    		|             |
    		|    center   |
    		|             |
    		|             |
    		p3-----------p2

    		p0.x = point_a.x and p0.y = point_a.y
    		p2.x = point_b.x and p2.y = point_b.y

    		radius1 is half of the distance between p0 and p1
    		radius2 is half of the distance between p0 and p3
    		center is in the middle of the line from p0 to p2

    		"

    Ancestors
    	EV_MODEL_ATOMIC*
    	EV_MODEL_DOUBLE_POINTED*

    Action sequences
    	conforming_pick_actions: EV_NOTIFY_ACTION_SEQUENCE
    	drop_actions: EV_PND_ACTION_SEQUENCE
    	pick_actions: EV_PND_START_ACTION_SEQUENCE
    	pointer_button_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_button_release_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_double_press_actions: EV_POINTER_BUTTON_ACTION_SEQUENCE
    	pointer_enter_actions: EV_NOTIFY_ACTION_SEQUENCE
    	pointer_leave_actions: EV_NOTIFY_ACTION_SEQUENCE
    	pointer_motion_actions: EV_POINTER_MOTION_ACTION_SEQUENCE

    Queries
    	accept_cursor: EV_POINTER_STYLE
    	angle: REAL_64
    	are_events_sended_to_group: BOOLEAN
    	bounding_box: EV_RECTANGLE
    	dashed_line_style: BOOLEAN
    	deny_cursor: EV_POINTER_STYLE
    	foreground_color: EV_COLOR
    	group: EV_MODEL_GROUP
    	has_capture: BOOLEAN
    	id: INTEGER_32
    	id_object (an_id: INTEGER_32): IDENTIFIED
    	is_center_valid: BOOLEAN
    	is_hashable: BOOLEAN
    	is_in_group: BOOLEAN
    	is_in_world: BOOLEAN
    	Is_rotatable: BOOLEAN
    	Is_scalable: BOOLEAN
    	is_sensitive: BOOLEAN
    	is_show_requested: BOOLEAN
    	Is_transformable: BOOLEAN
    	line_width: INTEGER_32
    	object_id: INTEGER_32
    	pebble: ANY
    	pebble_function: FUNCTION [ANY, TUPLE, ANY]
    	Pi: REAL_64
    	point_a: EV_COORDINATE
    	point_a_x: INTEGER_32
    	point_a_x_relative: INTEGER_32
    	point_a_y: INTEGER_32
    	point_a_y_relative: INTEGER_32
    	point_b: EV_COORDINATE
    	point_b_relative: EV_COORDINATE
    	point_b_x: INTEGER_32
    	point_b_x_relative: INTEGER_32
    	point_b_y: INTEGER_32
    	point_b_y_relative: INTEGER_32
    	point_count: INTEGER_32
    	point_relative: EV_COORDINATE
    	pointer_style: EV_POINTER_STYLE
    	position_on_figure (a_x, a_y: INTEGER_32): BOOLEAN
    	radius1: INTEGER_32
    	radius2: INTEGER_32
    	target_name: STRING_GENERAL
    	world: EV_MODEL_WORLD
    	x: INTEGER_32
    	y: INTEGER_32

    Commands
    	center_invalidate
    	disable_capture
    	disable_dashed_line_style
    	disable_events_sended_to_group
    	disable_sensitive
    	enable_capture
    	enable_dashed_line_style
    	enable_events_sended_to_group
    	enable_sensitive
    	hide
    	remove_pebble
    	rotate (an_angle: REAL_64)
    	rotate_around (an_angle: REAL_64; ax, ay: INTEGER_32)
    	scale (a_scale: REAL_64)
    	scale_abs (a_scale: REAL_64)
    	scale_x (a_scale_x: REAL_64)
    	scale_x_abs (a_scale_x: REAL_64)
    	scale_y (a_scale_y: REAL_64)
    	scale_y_abs (a_scale_y: REAL_64)
    	set_accept_cursor (a_cursor: EV_POINTER_STYLE)
    	set_deny_cursor (a_cursor: EV_POINTER_STYLE)
    	set_foreground_color (a_color: EV_COLOR)
    	set_line_width (a_width: INTEGER_32)
    	set_pebble (a_pebble: [like pebble] ANY)
    	set_pebble_function (a_function: FUNCTION [ANY, TUPLE, ANY])
    	set_point_a_position (ax, ay: INTEGER_32)
    	set_point_a_position_relative (ax, ay: INTEGER_32)
    	set_point_b_position (ax, ay: INTEGER_32)
    	set_point_b_position_relative (ax, ay: INTEGER_32)
    	set_pointer_style (a_cursor: [like pointer_style] EV_POINTER_STYLE)
    	set_radius1 (radius: INTEGER_32)
    	set_radius2 (radius: INTEGER_32)
    	set_target_name (a_name: STRING_GENERAL)
    	set_x (a_x: INTEGER_32)
    	set_x_y (a_x, a_y: INTEGER_32)
    	set_y (a_y: INTEGER_32)
    	show
    	transform (a_transformation: EV_MODEL_TRANSFORMATION)