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

em.goof.force

Class EM_GOOF_CENTRAL_FORCE


Direct ancestors

EM_GOOF_GENERAL_FORCE

Known direct descendants

EM_GOOF_CENTRAL_GRAVITY

Features

Invariants

indexing

description

An EM_GOOF_FORCE that pulls towards (or from) a fixed 'center' with a 'srength'.

date

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

revision

$Revision: 1.5 $

deferred class

EM_GOOF_CENTRAL_FORCE

inherit

EM_GOOF_GENERAL_FORCE

feature {EM_GOOF_FORCE, EM_GOOF_PHYSICS} -- Properties

center: EM_VECTOR_2D

-- Center to witch the force leads

set_center (a_center: EM_VECTOR_2D)

-- Set center

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

-- Set strength

ensure
strength_set: strength = a_strength
strength: DOUBLE

-- Strength of 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

-- the object dependant factor in the force equasion (mass in case of gravity)

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