Reviews : Java Books : 3D User Interfaces with Java 3D :


Title: 3D User Interfaces with Java 3D
ISBN: 1884777902
US Price: $49.95
© Manning Publications Co.

8.2.6 Rulers

Figure 8. 11 An example of a ruler showing the distance between the tar-get object and the nearest neighboring object

A ruler provides quantitative spatial measurement, such as a graduated scale or a numerical readout. The most common form of ruler is a linear dimension such as in a mechanical drawing, with end marks and arrows showing the extent of the measurement, and a numerical callout showing the value. Other variations include dimensioning for angle, area, and radius of curvature. Rulers can measure the host object itself, such as the dimensions of its bounding box; or they can measure the spatial relationship between the host object and its surrounding objects, as a quantitative feeler. For example, while an object is being dragged, the distance between the host object and its neighboring objects might appear, as shown in figure 8. 11.

Rulers can also be used as tools without a predefined host object. The user selects a particular tool from a toolbox depending on the kind of measurement needed, and snaps the ends of it to the objects to be measured. A familiar metaphor is a tape measure, where the user snaps one end to an object and moves the other end around in the world to measure distance. A similar scheme can be used for tools that measure angle, area, and volume.

Often rulers are dynamic, stretching as the host object is manipulated, and with the numerical callout updating continuously. They can also be passive, like a traditional ruler with tic marks. For example, static rulers might be placed alongside the edges of the floor in the office layout example to assist the user in placing furniture. Doing the real ruler one better, live tic marks on the ruler might indicate the position and extent of the currently selected target object.

8.2.7 Snaps

In design applications some assembly is often required, but arbitrary attachment of objects is often not allowed. In these cases, feedback is needed on an object to tell the user that other objects can be attached to it, and to indicate where and how the attachment can be made. Feedback elements that provide this hybrid of relational and control feedback are called snaps. The most common form of snap element is the snap point, which is a point position on or near the host object that is often represented by a small graphic symbol, such as a dot or ball. Figure 8.12 shows a desk with several snap points. Notice that the "hidden" one in the middle appears smaller than


Figure 8. 12 Snap points indicate points on an object where object snapping and attachment can occur. (Courtesy of Tech-niCon Corporation)
the other two because of X-ray overlay. Snaps can also be associated with higher dimensional geometric elements, such as 1D snap edges and 2D snap faces.

Different forms of attachment require different forms of snap feedback. Typed attachments are selective about with whom they will partner, and oriented snaps impose a particular geometry on the connected objects. Each requires a different representation in the form of visual and audio snap elements so the user can easily tell them apart and get a sense for what will happen as a result of the attachment. For example, typed snaps may take male and female forms to indicate which attachments go together, and oriented snaps may use indicators to show the orientation that the attachment will impose.

Two important concepts in manipulation, attachment and snapping, were touched on here. These will be discussed at greater length and from other perspectives in later sections. Because of its common use in other 2D and 3D applications, the term "snaps" was chosen to name this form of feedback element although it is needed for all forms of attachment, not just snapping.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.