|
|
|
|
Paths
|
|
The API cross references
give an immediate access to relevant interfaces and classes.
|
|
Path
A path is a hierarchical data structure used to update
box structure
and selection path.
The rank is the logical order of the node in the
target (box structure or selection path). Each node
may contain operations. These operations are used
via a multiple dispatch scheme during
path visiting .
Linear path is just a lighter implementation used
when we know the path is a simple one (for exemple,
when generating pointing events).
|
|
|
|
Path Visiting
Our path
visiting scheme is a variation of the standard
visitor design pattern. In fact, the
multiple dispatch
occurs between the operations of the modification path,
the visitor and eventually the target (box structure or selection
path), not directly between the path and the visitor.
According to the context of use, we can
update the selection path
with a selection path visitor, or
update the box structure.
A path visitor incremental
used in an interactive context
compute the damaged area for an optimal refresh.
|
|
|
|
Here is a simple vision of the multiple dispatch occurring
when visiting a modification path .
We iterate in parallel through each hierarchical structure
(boxes,
selection path,
modification path).
For a given level, we iterate over the
path operations and make them accept the current visitor.
When the operation accepts, it callbacks the visitor
with encoding the type of the operation in the method
signature. For example, an InsertGlyph operation will
callback the insertGlyph method of the visitor, whereas
a shrink operation will callback the shrinkSelection
method. A particular visitor may implement
various behaviour
for a given callback.
|
|
|
|
API Cross References
- Interfaces:
- Classes:
- Exceptions:
|
|
|
|
|
|
|
|
|
|