advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

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.6 SPECIFICATION

So far the discussion has addressed only forms of manipulation that involve the relationship of data objects with other data objects, such as attachments, or with their surroundings, such as feelers. In a sense, these interactions were external to the data objects themselves. A different form of manipulation involves changes within individual data objects, such as changes to a data object's makeup, state, or attributes. These internal forms of object manipulation are called specification.

Specification is an important aspect of many design applications, especially those involving product selection. With the advent of computerized manufacturing, customers have more choices and greater flexibility in specifying standard products. Depending on how a manufacturer organizes product options and how the application exposes those options to a customer, the user might select a different kind of product from a catalog of available product models, or the user might specify individual parameter values and option choices for the product.

Closely related to specification is the concept of configuration, where the designer constrains the specification of an object to allowable values, perhaps through the use of rules. Configuration for the purpose of specification and other forms of manipulation is discussed in section 8. 7.

8.6.1 Dumb shapes

The simplest form of specification is to choose a different object of the same general class. For example, the user may like the placement of a desk in an office layout but not the type of the desk. Perhaps the desk should have the drawers on the left instead of the right, or it should have a computer keyboard tray. The user chooses a different desk and it is immediately instantiated in the scene replacing the old one. A new 3D model changes the appearance of the desk and has new descriptive feedback changing its identity, such as a model number callout. This is called dumb shape specification because the individual data objects are static and immutable. With dumb shapes the user can't change just a part of an object; instead, the whole object must be changed, with the new data object replacing an existing one in the scene.

Although rather simple for the designer to implement and easy for the user to comprehend, dumb shape specification has significant drawbacks. It does not lend itself to direct in-scene manipulation, which is often more intuitive than indirect methods; and the need to represent every combination of options with a separate object can be impractical. For example, if a product has 10 options and each option has five mutually exclusive choices, then the data catalog would have to contain 50 versions of the same basic object. If, instead, the choices are inclusive, then permutations must be considered and catalog size can become a serious problem.

8.6.2 Smart shapes

An alternative approach to dumb shape specification is to make the objects dynamically adjustable. As the user specifies option choices and parameter values, the data object reshapes itself accordingly. This is called smart shape specification because the data objects are dynamic and changeable. Smart shapes lend themselves to direct manipulation and avoid the combinatorial explosion problem of dumb shapes. Smart shapes are most readily supported by 3D platforms that provide for "parametric modeling," where the model geometry can be constructed to directly parallel the product specification parameters. You may be wondering what is the difference between a smart shape and a constrained assembly of objects. As with a dumb shape, a smart shape refers to a single data object, or logical entity, which may be modeled as an assembly of individual components or objects, or as a single parameterized object model. In other words, shape here refers to the entity whose parameters are being specified, not necessarily to the manner in which it is constructed.

As with other forms of manipulation, smart shape specification can occur directly or indirectly. Direct smart shape manipulation can offer a more intuitive feel than indirect manipulation. For example, to move a desk's drawers from the right side of the desk to the left side, the user might simply drag them to the desired position. Similarly, if a larger desk is needed, the user might drag a corner to resize it. For direct shape manipulation to work well, the objects must be intelligent enough to keep the arrangement of their internal components consistent and valid. For example, when the drawers are slid from one side to the other, they should snap into place on the right or the left and not be allowed to remain in some intermediate position; and, while the desk is being stretched, the drawers should be kept flush against the side of the desk even though that side might be the one being adjusted.

Other forms of direct shape manipulation can be nongeometric in nature, dealing with visual or even non-visual attributes of the object. For example, to change the color or finish of a desk, the user might select a desk surface and choose a new finish from a palette of finish swatches. The new finish would appear immediately on the selected surface. Nonvisual options such as connecting braces and electrical cableways might be selected automatically when the user connects two desks together or attaches a lighting fixture, but this is getting into configuration, a separate subject. Figure 8. 17 shows an example of a 3D configurator in an e-commerce application.

Indirect forms of smart shape manipulation might be desirable in certain situations. If the specification requires precision, such as the exact dimensions of a desk, then a dialog box with entry fields or radio buttons might be preferable to direct in-scene resizing. If the specification is somewhat complicated, then a more aggressive technique such as a wizard might be useful. For industrial-strength applications, configuration techniques might be used to handle guided selection, to constrain the avail-able choices, and to validate the overall specification.


Figure 8. 17 In this 3D configurator, the user can select a surface, apply a valid finish, and see the result on the 3D desk model. (Courtesy of TechniCon Corporation)

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.

 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 34
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

IBM Brings Developers Into the Cloud
Apache at 10: You Can't Buy Us
Microsoft's CodePlex Foundation Moving Forward
Apple Claims 100,000 Apps, Google Analyzes Them
Nokia Latest to Play Opera Mobile 10 Browser
PayPal Opens Up Payment Platform to Devs
Ubuntu Linux 9.10 'Karmic Koala' Starts Its Climb
IBM Links Rational Developer Tools, Tivoli Apps
Libraries Give Vista Apps a Windows 7 Look
Ubuntu: The 'Default Alternative' to Windows?

Delivering Web-based Embedded Fonts in CSS 3
Adobe Helps PHP Developers Create Rich Internet Applications
Java Developers Finding a Home at Adobe Flex
Virtualization Delivers a Dynamic Infrastructure
Consuming XML Web Services in iPhone Applications
Build a More Agile Business with IBM
POJO-Based Solutions for LDAP Access: One Good, One Better
IBM Offers Enhanced Measurement and Management for Energy Usage
IBM Helps Transformation to an Information-Based Enterprise
Top Five Touch UI-Related Design Guidelines

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs