There are a couple ways to approach this using VisAD.
One is to use visad.bom.CurveManipulationRendererJ3D,
which enables the user to draw and edit continuous
curves. See the main() method in that class for an
example of how to use it. The curves are returned as
Gridded2DSets with manifold dimension = 1.
Another approach is to use
visad.bom.PointManipulationRendererJ3D, which enables
the user to click on individual points (this sounds
more like what you want), which are returned as
RealTuples with 2 components (again, see the main()
method of this class for an example of use). Your
application would have to use the sequence of user-
selected points to construct a Gridded2DSet with
manifold dimension = 1. Actually, you'd construct a
new Gridded2DSet each time the user clicked on a new
point. Your application would probably also need to
provide a way for users to delete points, or perhaps
delete the whole path. To do this, you might display
the Gridded2DSet (i.e., the current path) and also
display the user-selected points using
visad.bom.PickManipulationRendererJ3D, to enable
users to select points for deletion.
On Tue, 21 Mar 2006, Stuart Maclean wrote:
> A gui I am working on will need an 'ocean-based route planning' feature.
> At the crudest level, this will mean clicking on some canvas to define
> 'waypoints', and joining the points to build a 'route' for some vehicle
> to follow. I expect the usual drag/drop features will be required.
> Maybe the user could identify (via some click gesture) two or more
> 'points' and have the app infer and show some properties of the 'route'
> between the points selected, e.g. distance, bearing etc
> Would visad be a good candidate for this functionality? I have looked a
> bit at the DirectManipulationRenderers, but nothing further. I'm
> worried that it wont support any 'lines between the points'.
> Has anyone any experience with this type of feature? I would very much
> like to use visad since the app as a whole would be an IDV like one.
> Any comments appreciated.
> Stuart Maclean