8.7 CONFIGURATION
A major advance realized with the introduction of the graphical user interface was
that the designer could easily guide the user to a set of action choices appropriate for
the current situation. If the user is not allowed to connect two objects, then the Connect
command in the edit menu appears dimmed when those objects are selected. If
an object can be colored only red or green but not blue, then only the red and green
color choices will appear in a color palette when that object is selected. Extending this
notion on a larger, broader, and more industrial scale is the concept of configuration.
Configuration constrains the user to an allowed set of operations that can be per-formed
on a set of data objects or within a given data object, as a form of specification,
according to the current situation. The situation might be defined completely within
the application, such as the arrangement of data objects in the scene, or by external
circumstances, such as product availability or even the day of the week. These are often
expressed as rules. Simple rules might be to restrict a given parameter to a range. More
convoluted ones might say that you can buy a desk or chair with any color, but if you
30.
30
Page 31
32
178 CHAPTER 8 MANIPULATION
want the special discount then both items must be ordered in black and it must be
Thursday. The results of rules can be exclusive— in which you cannot do something—
or inclusive— in which you must do something. For example, in connecting objects
together, configuration rules might allow only certain kinds of objects to be connected
and, if a particular combination of objects occurs, then extra objects might be added
automatically. In the office furniture example, connecting brackets might be separate
orderable items. When a modular desk is attached to a panel, no bracket is needed;
but when two desks are attached, brackets are required and will be added to the order
to assure a correct and complete product assembly.
This chapter has already mentioned a number of areas where configuration may
be useful in 3D manipulation. In terms of external manipulation, configuration can
constrain which objects can be snapped, attached, grouped together, and how. In
terms of internal manipulation, configuration can play a major role in guiding the
user's specification of an object. Incorporating configuration concepts into the user
interface is not an all-or-nothing proposition. There is a wide range of possibilities.
In the last few years, the concept of configuration has matured into a separate
technology that is helping to drive sales automation and mass customization applications.
A configuration model defines the rules and allowed values for assembling a system
and specifying its data objects. A configuration engine uses the model to track user
actions, to provide currently valid choices, and to offer explanations of why certain
choices are not available, or others are recommended. For example, in an application
for ordering a sport-utility vehicle, if the customer wants chrome wheels then only the
"super" and "super duper" vehicle models are valid choices. If the customer also
chooses the 20-liter V-16 Terminator engine, then only the super duper model is recommended,
and the "afterburner" and "cryogenic cooler" option packages are also
required. The user might ask why the lower cost models are not recommended (dis-commended),
and the system would say that with the Terminator engine the more
reasonably priced models will break down.
You may ask what this scenario has do with 3D user interfaces. In next-generation
applications, 3D will provide the way to make visualization and manipulation of complex
data more compelling and intuitive. Configuration will make the manipulation
easier for the user to perform effectively and accurately. The ultimate goal of configuration
is to prevent the user from specifying a product that can't be ordered or designing
a system that can't be implemented. In the sports-utility vehicle example, as the
user selects wheel and engine options, the specification is validated and the choices are
seen immediately, in 3D, as they would appear on the actual vehicle. If, instead, the
application is dealing with modifications to a chemical plant, as the user specifies processing
capacities and space allowances, equipment satisfying those requirements
would be presented. Selecting a piece of equipment would make it appear in a model
of the plant, where the user can optimize its layout and finalize its hookup in 3D, just
as if he or she were in the actual plant.
8.8 SUMMARY
Relational feedback elements address the needs of directly manipulating objects in a
3D scene. Elements such as feelers, outlines, and skirts allow the user to better see the
3D relationships of objects on a 2D display; tic mark and ruler elements assist the user
in precisely placing objects; and snap elements aid in connecting objects together.
PTF is an offshoot of dynamic feedback that combines visual and audio feedback
with discontinuities in eye-hand control as a substitute for tactile feedback, which is
lacking in a POCS. PTF drag comes in several flavors, including marked, sticky, snap,
and solid. Simulation of real object dynamics in the form of strong and weak drag grip
could further enhance the tactile-like feel of the user's 3D experience.
An important aspect of direct manipulation involves getting objects together and
keeping them together, as defined by snapping and attachment techniques. Snapping
conveniently gets the objects together and attachment makes their connections persistent.
Physical forms of attachment are gluing and sticking, the logical form is linking,
and a special form is anchoring.
Specification is the internal manipulation of data objects, which comes in the
form of dumb and smart shapes. Configuration refers to the notion of guided and
constrained manipulation, which is becoming an important technology for next-generation
applications, 3D and otherwise.
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.