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()