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.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
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%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

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, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs