An
Selectable
object is supposed to be able to compute its projection on the screen
according to the
Camera
settings (viewport, viewpoint, etc).
The
View
provides a mean to update the projection of all
Selectable
held by the
scene's
Graph
. Indeed, interaction sources such as an
AWTAbstractMouseSelector
are supposed to call {@link view.project()} to query an update of all
Selectable
objects'
projections.
Projection implementation is rather fast but one should consider projecting only when required,
i.e. when the actual scene's Graph projection changes, which is: - when view point changes - when
view scaling changes - when the objects data (shape) changes
So the user is responsible of handling appropriate calls to view.project()