Eiffel Media API
Overview Cluster Class Classes Index      Previous Next      Top Features

em.goof.force

Class EM_GOOF_CENTRAL_GRAVITY


Direct ancestors

EM_GOOF_CENTRAL_FORCE

Creation

Features

Invariants

indexing

description

An EM_GOOF_CENTRAL_FORCE that represents gravity and therefor uses masses
in the 'object_dependant_factor'.

date

$Date: 2005/10/23 09:39:25 $

revision

$Revision: 1.4 $

class

EM_GOOF_CENTRAL_GRAVITY

inherit

EM_GOOF_CENTRAL_FORCE

create

make (a_center: EM_VECTOR_2D a_strength: DOUBLE)

-- Make gravity

require
a_center_not_void: a_center /= void
ensure
center_set: center = a_center
strength_set: strength = a_strength

feature {EM_GOOF_FORCE, EM_GOOF_PHYSICS} -- Initialization

make (a_center: EM_VECTOR_2D a_strength: DOUBLE)

-- Make gravity

require
a_center_not_void: a_center /= void
ensure
center_set: center = a_center
strength_set: strength = a_strength

feature {EM_GOOF_FORCE, EM_GOOF_PHYSICS} -- Properties

center: EM_VECTOR_2D

-- Center to witch the force leads

-- (From EM_GOOF_CENTRAL_FORCE)

set_center (a_center: EM_VECTOR_2D)

-- Set center

-- (From EM_GOOF_CENTRAL_FORCE)

require
a_center_not_void: a_center /= void
ensure
center_set: center = a_center
set_strength (a_strength: DOUBLE)

-- Set strength

-- (From EM_GOOF_CENTRAL_FORCE)

ensure
strength_set: strength = a_strength
strength: DOUBLE

-- Strength of force

-- (From EM_GOOF_CENTRAL_FORCE)

feature {EM_GOOF_FORCE, EM_GOOF_PHYSICS} -- Processing

is_force_applicable (object: EM_GOOF_PHYSICABLE): BOOLEAN

-- Does the force apply to this object

-- (From EM_GOOF_UNARY_FORCE)

require
object_not_void: object /= void
object_dependant_factor (object: EM_GOOF_PHYSICABLE): DOUBLE

-- Object dependant factor in the gravity equasion (the mass)

-- (From EM_GOOF_CENTRAL_FORCE)

require
object_not_void: object /= void
process (objects: DS_LINKED_LIST[EM_GOOF_OBJECT])

-- Apply force to all physicables

-- (From EM_GOOF_FORCE)

require
is_objects: objects /= void
process_object (object: EM_GOOF_PHYSICABLE)

-- Apply force to this object

-- (From EM_GOOF_UNARY_FORCE)

require
object_not_void: object /= void

invariant

center_not_void: center /= void

-- From ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)

end