|
Claims  |
|
|
What is claimed is:
1. A method for manipulating an object displayed in three-dimensional
representation on a computer controlled display system having a computer
and a display coupled to the computer, comprising the steps of:
a) providing a user actuated input controller signal for selectively
positioning a reference indicator on the display;
b) positioning the reference indicator over the displayed object and
signaling the computer to activate a control movement mode;
c) providing on the display a three-dimensional representation of a
bounding region including at least two portions which specify respective
predefined control movement types, one of said types being rotation around
an axis parallel to the portion which specifies rotation around that axis;
d) positioning the reference indicator over one of said portions;
e) signaling the computer to activate a predefined control movement type
specified by the portion of the bounding region under the reference
indicator, and while the reference indicator is over said portion,
repositioning the reference indicator to define a movement of the
specified type; and
f) re-displaying the displayed object in accordance with the defined
movement of the specified type.
2. The method of claim 1 wherein the three-dimensional representation of a
bounding region is a generally rectilinear bounding box, and wherein the
step of re-displaying further comprises re-displaying the bounding box in
accordance with the defined movement of the predefined control movement
type.
3. The method of claim 1 wherein the bounding region is reduced in size
relative to the displayed object.
4. The method of claim 1 wherein the input controller signal is from a
mouse.
5. The method of claim 4 wherein the reference indicator is a pointer
displayed on the display.
6. The method of claim 5 wherein the step of signaling the computer to
activate the control movement mode includes the step of activating a
switch.
7. The method of claim 6 wherein the step of activating a switch comprises
pressing a button on the mouse.
8. The method of claim 6 wherein the step of signaling the computer to
activate a predefined control movement type includes the step of
activating a switch.
9. The method of claim 8 wherein the step of activating a switch comprises
pressing a button on the mouse.
10. The method of claim 1 further comprising, in step (e), after signaling
the computer to activate a predefined control movement type, changing the
shape of the reference indicator and thus indicating, to a user of the
method, a type and direction of available object manipulations.
11. The method of claim 1 wherein the portion of the bounding region is an
active zone.
12. The method of claim 1 wherein the portion of the bounding region
defines a handle which graphically distinguishes said portion from the
remainder of the bounding region.
13. The method of claim 12 wherein the handle indicates, to a user of the
method, a type and direction of available object manipulations.
14. The method of claim 12 wherein the handle extends outwardly from the
bounding region such that the outwardly extending handle presents an
appearance of being available to be selected by the reference indicator.
15. The method of claim 12 wherein the handle is shaped like a rod.
16. The method of claim 12 wherein the handle is shaped like a cube.
17. The method of claim 12 wherein the handle is shaped like an arrow.
18. The method of claim 1 wherein the portion of the bounding region is an
image of a hand.
19. The method of claim 18 wherein the hand indicates to a user of the
method a type and direction of available object manipulations.
20. The method of claim 18 wherein the hand looks like a human hand.
21. The method of claim 20 wherein the hand appears to be grabbing the
three-dimensional representation of a bounding region.
22. The method of claim 18 wherein the hand looks like a mechanical hand.
23. The method of claim 22 wherein the hand appears to be grabbing the
three-dimensional representation of a bounding region.
24. The method of claim 1 wherein the predefined control movement type is a
translation of the displayed object.
25. The method of claim 24 wherein the translation of the displayed object
is along model space coordinate axes.
26. The method of claim 25 wherein the translation of the displayed object
in model space is parallel to a plane of a face of the bounding region.
27. The method of claim 25 wherein the translation of the displayed object
in model space is perpendicular to a plane of a face of the bounding
region.
28. The method of claim 24 wherein the translation of the displayed object
is performed by determining a difference in model space between a position
of the reference indicator when the translation operation was activated
and a current position of the reference indicator, and transforming the
difference into scaled and rotated coordinates using a scale transform and
a rotate transform, and adding the transformed difference to a translation
transform to create a new translation transform, and wherein re-displaying
the displayed object on the video display is in accordance with the scale
transform, the rotate transform and the new translation transform.
29. The method of claim 24 wherein translation of the displayed object is
parallel to a plane of a face of the bounding region and is limited to a
predefined range of translation manipulations.
30. The method of claim 1 wherein the axis of rotation of the displayed
object is parallel to model space coordinate axes.
31. The method of claim 30 wherein the rotation of the displayed object in
model space is around an axis of the bounding region.
32. The method of claim 31 wherein the axis of rotation is a center line of
the bounding region.
33. The method of claim 31 wherein the axis of rotation is an edge of the
bounding region.
34. The method of claim 33 wherein the axis of rotation is around a
bounding region edge opposite from the portion of the bounding region
under the reference indicator.
35. The method of claim 30 wherein the axis of rotation is outside of the
bounding region.
36. The method of claim 1 wherein the rotation of the displayed object is
performed by transforming a position of the reference indicator when the
rotation operation was activated by a scale transform, and transforming a
current position of the reference indicator by the scale transform and
determining an angle created thereby versus a center point of the
displayed object, and concatenating a rotation matrix of the angle into a
rotation transform to create a new rotation transform, and wherein
re-displaying the displayed object on the video display is in accordance
with the scale transform, the new rotation transform and a translation
transform.
37. The method of claim 1 wherein a second of the predefined control
movement types is a scaling of the displayed object.
38. The method of claim 37 wherein the scaling of the displayed object is
along model space coordinate axes.
39. The method of claim 38 wherein the scaling in model space is parallel
to a plane of a face of the bounding region.
40. The method of claim 38 wherein the scaling is homogenous.
41. The method of claim 37 wherein the scaling of the displayed object is
performed by determining a ratio of a position of the reference indicator
versus an origin of the bounding region when the scaling operation was
activated and a current-position of the reference indicator versus the
origin of the bounding region and multiplying the ratio with a scale
transform to create a new scale transform and wherein re-displaying the
displayed object on the video display is in accordance with the new scale
transform, a rotate transform and a translation transform.
42. The method of claim 41 wherein scaling of the displayed object is
parallel to a plane of a face of the bounding region and is limited to a
predefined range of scaling manipulations.
43. A method for manipulating an object displayed in three-dimensional
representation on a computer controlled video display system having a
computer, a video display and a mouse, comprising the steps of:
a) selecting the displayed object by using the mouse to position a pointer
over the displayed object and pressing a button on the mouse;
b) displaying a three-dimensional representation of a bounding box having
at least two active zones which specify respective available movement
types, one of said types being rotation around an axis parallel to the
zone which specifies rotation around that axis, when the displayed object
is selected;
c) defining a movement of a type predefined by one of the active zones by
using the mouse to position the pointer over an active zone, pressing the
button on the mouse, and, while the pointer is over the active zone,
repositioning the pointer with the mouse; and
d) re-displaying the bounding box and the displayed object in accordance
with the defined movement.
44. The method of claim 43 wherein the available movement types further
comprise translation and scaling.
45. The method of claim 44 wherein if the predefined movement type is
translation then the translation of the displayed object and the bounding
box is performed by determining a difference in model space between a
position of the pointer when the pointer was positioned over the active
zone and the mouse button was pressed and a current position of the
pointer, and transforming the difference into scaled and rotated
coordinates using a scale transform and a rotate transform and adding the
transformed difference to a translation transform to create a new
translation transform, and wherein re-displaying the bounding box and the
displayed object is in accordance with the scale transform, the rotate
transform and the new translation transform.
46. The method of claim 44 wherein if the predefined movement type is
rotation then the rotation of the displayed object and the bounding box is
performed by transforming a position of the pointer when the pointer was
positioned over the active zone and the mouse button was pressed by a
scale transform and transforming a current position of the pointer by the
scale transform and determining an angle created thereby versus a center
point of the displayed object and concatenating a rotation matrix of the
angle into a rotation transform to create a new rotation transform, and
wherein re-displaying the displayed object and the bounding box on the
video display is in accordance with the scale transform, the new rotation
transform and a translation transform.
47. The method of claim 44 wherein if the predefined movement type is
scaling then the scaling of the displayed object and the bounding box is
performed by determining a ratio of a position of the pointer versus an
origin of the bounding box when the pointer was positioned over the active
zone and the mouse button was pressed and a current position of the
pointer versus the origin of the bounding box and multiplying the ratio
with a scaling transform to create a new scaling transform and wherein
re-displaying the displayed object and the bounding box on the video
display is in accordance with the new scaling transform, a rotate
transform and a translation transform.
48. An apparatus for manipulating an object displayed in three-dimensional
representation on a computer controlled display system having a computer
and a display coupled to the computer, the apparatus comprising:
a) means for positioning a reference indicator over the displayed object
and signaling the computer to activate a control movement mode;
b) means for generating on the display a three-dimensional representation
of a bounding region including at least two portions which specify
respective predefined control movement types, one of said types being
rotation around an axis parallel to the portion which specifies rotation
around that axis;
c) means for signaling the computer to activate a predefined control
movement type specified by a portion of the bounding region under the
reference indicator;
d) means for repositioning the reference indicator while the reference
indicator is over the portion of the bounding region to define a movement
of the predefined control movement type; and
e) means for re-displaying the displayed object in accordance with the
defined movement of the predefined control movement type.
49. The apparatus of claim 48 wherein the three-dimensional representation
of a bounding region is a generally rectilinear bounding box, and further
comprising means for re-displaying the bounding box in accordance with the
defined movement of the predefined control movement type.
50. The apparatus of claim 48 wherein the bounding region is reduced in
size relative to the displayed object.
51. The apparatus of claim 48 wherein the positioning means and the
repositioning means is a mouse.
52. The apparatus of claim 51 wherein the reference indicator is a pointer
displayed on the display.
53. The apparatus of claim 52 wherein the means for signaling the computer
to activate the control movement mode is a switch.
54. The apparatus of claim 53 wherein the switch is a button on the mouse.
55. The apparatus of claim 53 wherein the means for signaling the computer
to activate a predefined control movement type includes a switch.
56. The apparatus of claim 55 wherein the switch is a button on the mouse.
57. The apparatus of claim 48 wherein the means for signaling the computer
further comprises means for changing the shape of the reference indicator
when the computer has been signaled to activate a predefined control
movement type thus indicating to a user of the apparatus a type and
direction of available object manipulations.
58. The apparatus of claim 48 wherein the portion of the bounding region is
an active zone.
59. The apparatus of claim 48 wherein the portion of the bounding region
defines a handle which graphically distinguishes said portion from the
remainder of the bounding region.
60. The apparatus of claim 59 wherein the handle indicates, to a user of
the apparatus, a type and direction of available object manipulations.
61. The apparatus of claim 59 wherein the handle extends outwardly from the
bounding region such that the outwardly extending handle presents an
appearance of being available to be selected by the reference indicator.
62. The apparatus of claim 59 wherein the handle is shaped like a rod.
63. The apparatus of claim 59 wherein the handle is shaped like a cube.
64. The apparatus of claim 59 wherein the handle is shaped like a arrow.
65. The apparatus of claim 48 wherein the portion of the bounding region is
an image of a hand.
66. The apparatus of claim 65 wherein the hand indicates to a user of the
apparatus a type and direction of available object manipulations.
67. The apparatus of claim 65 wherein the hand looks like a human hand.
68. The apparatus of claim 67 wherein the hand appears to be grabbing the
three-dimensional representation of a bounding region.
69. The apparatus of claim 65 wherein the hand looks like a mechanical
hand.
70. The apparatus of claim 69 wherein the hand appears to be grabbing the
three-dimensional representation of a bounding region.
71. The apparatus of claim 48 wherein the predefined control movement type
is a translation of the displayed object.
72. The apparatus of claim 71 wherein the translation of the displayed
object is along model space coordinate axes.
73. The apparatus of claim 72 wherein the translation of the displayed
object in model space is parallel to a plane of a face of the bounding
region.
74. The apparatus of claim 72 wherein the translation of the displayed
object in model space is perpendicular to a plane of a face of the
bounding region.
75. The apparatus of claim 71 wherein the translation of the displayed
object is performed by determining a difference in model space between a
position of the reference indicator when the translation operation was
activated and a current position of the reference indicator and
transforming the difference into scaled and rotated coordinates using a
scale transform and a rotate transform and adding the transformed
difference to a translation transform to create a new translation
transform and wherein re-displaying the displayed object on the video
display is in accordance with the scale transform, the rotate transform
and the new translation transform.
76. The apparatus of claim 71 wherein translation of the displayed object
is parallel to a plane of a face of the bounding region and is limited to
a predefined range of translation manipulations.
77. The apparatus of claim 48 wherein the axis of rotation of the displayed
object is parallel to model space coordinate axes.
78. The apparatus of claim 77 wherein the rotation in model space of the
displayed object is around an axis of the bounding region.
79. The apparatus of claim 78 wherein the axis of rotation is a center line
of the bounding region.
80. The apparatus of claim 78 wherein the axis of rotation is an edge of
the bounding region.
81. The apparatus of claim 80 wherein the axis of rotation is around a
bounding region edge opposite from the portion of the bounding region
under the reference indicator.
82. The apparatus of claim 77 wherein the axis of rotation is outside of
the bounding region.
83. The apparatus of claim 48 wherein the rotation of the displayed object
is performed by transforming a position of the reference indicator when
the rotation operation was activated by a scale transform and transforming
a current position of the reference indicator by the scale transform and
determining an angle created thereby versus a center point of the
displayed object, and concatenating a rotation matrix of the angle into a
rotation transform to create a new rotation transform, and wherein
re-displaying the displayed object on the video display is in accordance
with the scale transform, the new rotation transform and a translation
transform.
84. The apparatus of claim 48 wherein a second of the predefined control
movement types is a scaling of the displayed object.
85. The apparatus of claim 84 wherein the scaling of the displayed object
is along model space coordinate axes.
86. The apparatus of claim 85 wherein the scaling in model space is
parallel to a plane of a face of the bounding region.
87. The apparatus of claim 84 wherein the scaling is homogenous.
88. The apparatus of claim 84 wherein the scaling of the displayed object
is performed by determining a ratio of a position of the reference
indicator versus an origin of the bounding region when the scaling
operation was activated and a current position of the reference indicator
versus the origin of the bounding region and multiplying the ratio with a
scale transform to create a new scale transform and wherein re-displaying
the displayed object on the video display is in accordance with the new
scale transform, a rotate transform and a translation transform.
89. The apparatus of claim 88 wherein scaling of the displayed object is
parallel to a plane of a face of the bounding region and is limited to a
predefined range of scaling manipulations.
90. An apparatus for manipulating an object displayed in three-dimensional
representation on a computer controlled video display system having a
computer, a video display and a mouse, the apparatus comprising:
a) means for selecting the displayed object by using the mouse to position
a pointer over the displayed object and pressing a button on the mouse;
b) means for displaying a three-dimensional representation of a bounding
box having at least two active zones which specify respective available
movement types, one of said types being rotation around an axis parallel
to the zone which specifies rotation around that axis, when the displayed
object is selected;
c) means for defining a movement of a type predefined by one of the active
zones by using the mouse to position the pointer over an active zone,
pressing the button on the mouse, and, while the pointer is over the
active zone, repositioning the pointer with the mouse; and
d) means for re-displaying the bounding box and the displayed object in
accordance with the defined movement.
91. The apparatus of claim 90 wherein the available movement types comprise
translation and scaling.
92. The apparatus of claim 91 wherein if the predefined movement type is
translation then the translation of the displayed object and the bounding
box is performed by a means for determining a difference in model space
between a position of the pointer when the pointer was positioned over the
active zone and the mouse button was pressed and a current position of the
pointer, and transforming the difference into scaled and rotated
coordinates using a scale transform and a rotate transform and adding the
transformed difference to a translation transform to create a new
translation transform, and wherein re-displaying the bounding box and the
displayed object is in accordance with the scale transform, the rotate
transform and the new translation transform.
93. The apparatus of claim 91 wherein if the predefined movement type is
rotation then the rotation of the displayed object and the bounding box is
performed by a means for transforming a position of the pointer when the
pointer was positioned over the active zone and the mouse button was
pressed by a scale transform and transforming a current position of the
pointer by the scale transform and determining an angle created thereby
versus a center point of the displayed object and concatenating a rotation
matrix of the angle into a rotation transform to create a new rotation
transform and wherein re-displaying the displayed object and the bounding
box on the video display is in accordance with the scale transform, the
new rotation transform and a translation transform.
94. The apparatus of claim 91 wherein if the predefined movement type is
scaling then the scaling of the displayed object and the bounding box is
performed by a means for determining a ratio of a position of the pointer
versus an origin of the bounding box when the pointer was positioned over
the active zone and the mouse button was pressed and a current position of
the pointer versus the origin of the bounding box and multiplying the
ratio with a scaling transform to create a new scaling transform, and
wherein re-displaying the displayed object and the bounding box on the
video display is in accordance with the new scaling transform, a rotate
transform and a translation transform. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF THE INVENTION
The present invention relates to the field of manipulation of 3-D objects
on computer displays. More specifically, the present invention relates to
the field of manipulation of a 3-D object displayed on a computer display
with kinesthetic feedback to the user directing the manipulation.
BACKGROUND OF THE INVENTION
Many prior art computer systems include computer controlled display systems
which utilize bit-mapped displays which typically present a graphic image
to the user of the computer system. In these computer controlled display
systems, a bit-mapped image appears on a display means, such as a cathode
ray tube (CRT) or liquid crystal display (LCD); the bit-mapped image is
typically generated and stored in a frame buffer which acts as a memory
for the display system. In these display systems, the user typically
interacts with the computer system by manipulating a cursor control means,
such as a mouse. The user uses the mouse to position a cursor on the
bit-mapped image to select options which are displayed under the control
of the computer system on the display means.
Advances in computer graphics have extended the range of capabilities for
the user. Objects can now be displayed in three-dimensional (3-D)
representation, for example in wireframe, solid and/or shaded forms.
While 3-D trackball input controller devices (or other 3+ dimensional input
controller devices) have been utilized for manipulating objects displayed
in 3-D representation, they are generally complex and expensive.
Various techniques utilizing two-dimensional (2-D) input controllers such
as a mouse have been developed for manipulating objects displayed in 3-D
representation.
A known technique utilizes graphically displayed X, Y, and Z sliders which
are adjusted by the user (for example, with an input controller such as a
mouse) to indicate the amount of rotation about each axis independently.
Typically, only one slider is adjusted at any given time.
Another known technique involves the menu selection of the axis about which
rotation is desired. An input controller such as a mouse is then moved in
one dimension to indicate the amount of rotation.
Still another technique involves holding down one of three buttons on a
mouse or a keyboard to select the axis of rotation, and then moving a
mouse in one dimension to indicate the amount of rotation.
A still further technique involves selecting the object by clicking on it
with the mouse pointer and again using the mouse pointer to drag a handle
on the selected object in order to move, re-shape, re-size, or rotate the
object. Oftentimes, with 3-D objects, only one or two dimensions can be
altered with any given handle and rotation only occurs around a central
point in a world 3-D space as opposed to rotation around the centerpoint
(or other axis) of the 3-D object itself (sometimes referred to as model
space).
An even further technique involves selecting a 3-D object by clicking on it
with the mouse pointer, using the mouse pointer to make a menu selection
as to a predefined type of movement option desired and again using the
mouse pointer to drag a handle on the selected object in order to define a
movement of the selected predefined type of movement. Typically, with 3-D
objects, only one predefined type of movement is available at a time in
what is commonly known as a modal form of operation.
An important consideration with known techniques for manipulating displayed
objects represented in 3-D form is the lack of kinesthetic correspondence
(or stimulus-response compatibility) between the movement of the input
controller device and the object movement or direction of object rotation.
That is, the required movement of the input controller device does not
provide the sense of directly manipulating the displayed object. Stated
differently, known techniques for manipulating displayed objects
represented in 3-D form typically lack direct manipulation kinesthetic
correspondence whereby the 3-D displayed object being manipulated
continuously moves (is continuously re-displayed) with the mouse
controlled pointer directing the manipulation so that the pointer may
remain on the same location of the displayed 3-D object throughout the
manipulation.
A still further consideration is the inherent limitation of the modal form
of 3-D object manipulation which further separates the user's expectations
regarding moving a real world 3-D object from the experience of moving an
image of the 3-D object on a computer display due to having to either
select between alternative manipulation modes and/or operate in different
windows each containing different views of the object to be manipulated.
SUMMARY AND OBJECTS OF THE INVENTION
An objective of the present invention is to provide an improved technique
for manipulating objects displayed in 3-D representation with 2-D input
controller devices which provides for kinesthetic correspondence between
input controller motion and displayed object movement.
Another objective of the present invention is to provide an improved
technique for intuitively manipulating displayed 3-D objects such that the
displayed 3-D object manipulation emulates physical 3-D object
manipulation.
A still further objective of the present invention is to provide an
improved technique for manipulation of displayed 3-D objects which
provides for de-coupled object rotation, both homogenous and
non-homogenous object scaling and object translation on a plane of the 3-D
space.
An even further objective of the present invention is to provide an
improved technique for manipulation of displayed 3-D objects which
provides for seamless transition from one type of object manipulation to
another type of object manipulation whereby explicit manipulation tools
need not be selected between the object manipulations.
Another objective of the present invention is to provide an improved
technique for manipulation of displayed 3-D objects which provides the
user with visual clues as to the manipulations available and to the means
to facilitate such manipulations.
The foregoing and other advantages are provided by a method for
manipulating an object displayed in three-dimensional representation on a
computer controlled display system having a computer and a display coupled
to the computer, the method comprising the steps of providing a user
actuated input controller for selectively positioning a reference
indicator on the display, positioning the reference indicator over the
displayed object and signaling the computer to activate a control movement
mode, providing a three-dimensional representation of a bounding region,
positioning the reference indicator over a portion of the bounding region
sensitive to the presence of the reference indicator, signaling the
computer to activate a predefined control movement type specified by the
sensitive portion of the bounding region under the reference indicator and
repositioning the reference indicator to define a movement of the
predefined control movement type, and re-displaying the displayed object
in accordance with the defined movement of the predefined control movement
type.
The foregoing and other advantages are provided by an apparatus for
manipulating an object displayed in three-dimensional representation on a
computer controlled display system having a computer and a display coupled
to the computer, the apparatus comprising means for positioning a
reference indicator over the displayed object and signaling the computer
to activate a control movement mode, means for generating a
three-dimensional representation of a bounding region, means for signaling
the computer to activate a predefined control movement type specified by
the sensitive portion of the bounding region under the reference indicator
and repositioning the reference indicator to define a movement of the
predefined control movement type, and means for re-displaying the
displayed object in accordance with the defined movement of the predefined
control movement type.
Other objects, features, and advantages of the present invention will be
apparent from the accompanying drawings and from the detailed description
which follows.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example and not limitation
in the figures of the accompanying drawings, in which like references
indicate similar elements, and in which:
FIG. 1 depicts a generalized block diagram of a computer system as might be
used by the present invention;
FIG. 2 depicts the object model coordinate system as used by the present
invention;
FIG. 3 depicts a 3-D representation of an object and some alternative
embodiments of an object surrounded by a bounding box;
FIG. 4 depicts the active zone layout of the preferred embodiment of the
present invention and some of the object and bounding box manipulations
supported by the present invention;
FIG. 5 is a flowchart depicting the sequence of steps preparing to handle a
user manipulation;
FIG. 6 is a flowchart depicting the translation manipulation sequence of
steps;
FIG. 7 is a flowchart depicting the rotation manipulation sequence of
steps;
FIG. 8 is a flowchart depicting the scaling manipulation sequence of steps;
FIG. 9 is a flowchart depicting the sequence of steps to re-display a
manipulated object and bounding box;
FIG. 10 depicts the transformation relationships of the present invention;
FIG. 11 depicts the further visual dues of a changing pointer as provided
by alternative embodiments of the present invention;
FIG. 12 depicts the further visual clues for a rotation manipulation as
provided by alternative embodiments of the present invention;
FIG. 13 depicts the further visual clues for a translation manipulation as
provided by alternative embodiments of the present invention;
FIG. 14 depicts the active zone layout and determination of which active
zone was selected by the user;
FIG. 15 depicts the indexing scheme of the active zone layout and
determination of which active zone was selected by the user;
FIG. 16 depicts the polarity of the selected bounding box face of the
present invention;
FIG. 17 depicts the translate-pull manipulation alternative embodiment of
the present invention;
FIG. 18 depicts the rotation manipulation determination of the preferred
embodiment of the present invention; and
FIG. 19 depicts the scaling manipulation determination of the preferred
embodiment of the present invention.
DETAILED DESCRIPTION
The present invention generally involves the manipulation of a computer
displayed object represented in three-dimensional form, and it would be
helpful to provide a brief discussion of the pertinent computer
environment. FIG. 1 is a generalized block diagram of an appropriate
computer system 10 which includes a CPU/memory unit 11 that generally
comprises a microprocessor, related logic circuitry, and memory circuits.
A keyboard 13 provides inputs to the CPU/memory unit 11, as does
two-dimensional input controller 15 which by way of example can be a
mouse, a 2-D trackball, a joystick, a stylus, a touch screen, a touch
tablet, etc. Disk drives 17, which can include fixed disk drives, are used
for mass storage of programs and data. Display output is provided by a
video display 19.
Referring now to FIG. 2, the object viewed on the video display 19 can be
referenced for convenience relative to an orthogonal coordinate system
(having X, Y and Z axes) called the model coordinate system (or model
space) that has its origin at the center of rotation of the object.
For ease of understanding, the following discussion will be in the context
of using a two-dimensional input controller 15 that is a mouse (used in
the preferred embodiment of the present invention), but it should be
readily appreciated by those skilled in the art that the disclosed
techniques can be implemented with other 2-D or 3-D (or even greater
numbers of dimensions) input controller devices.
A mouse controls the position of a mouse pointer (e.g., a reference
indicator such as a cursor) that is displayed on the video display. The
pointer is moved by moving the mouse over a flat surface, such as the top
of a desk, in the desired direction of movement of the pointer. Thus, the
two-dimensional movement of the mouse on the flat surface translates into
a corresponding two-dimensional movement of the mouse pointer on the video
display.
A mouse typically has one or more finger actuated control buttons. While
the control buttons can be utilized for different functions such as
selecting a menu option pointed to by the pointer, the disclosed invention
advantageously utilizes a single mouse button to select a 3-D object and
to trace the movement of the pointer along a desired path. Specifically,
the pointer is located at the desired starting location, the mouse button
is depressed to signal the computer to activate a control movement mode,
and the mouse is moved while maintaining the button depressed. After the
desired path has been traced, the mouse button is released. This procedure
is sometimes referred to as dragging the mouse pointer. It should be
appreciated that a predetermined key on a keyboard could also be utilized
to activate dragging the mouse pointer.
In the present invention, when a 3-D object displayed on a visual display
of a computer system is selected by the user, a 3-D "virtual box" or
"bounding box" appears on the visual display such that the bounding box
completely surrounds the 3-D object. One might view the bounding box as a
glass box enclosing the selected object. The bounding box thus signals the
user that the 3-D object has been selected. Further, the bounding box
allows for direct manipulation of the enclosed 3-D object as will be
explained below. Note that it is well within the scope of the present
invention to provide a bounding region having a shape other than a
generally rectangular or box shape. Such a bounding region could be of any
of a great number of shapes including oblong, oval, ovoid, conical, cubic,
cylindrical, polyhedral, spherical, etc.
Direct manipulation of the 3-D object, which manipulation generally
comprises moving, scaling, or rotating the object, can be accomplished in
different ways depending upon which embodiment of the present invention
the user has chosen and which implementation is supported by a given
computer system.
Referring now to FIG. 3, a 3-D representation of an object 301, in this
case a wing back chair, is shown as displayed on the visual display of a
computer system. When the user selects chair 301, by moving the mouse
until the pointer 302 is on the chair and clicking on the chair by
pressing the mouse button (or using a keyboard equivalent), the chair is
surrounded by a bounding box 303. Alternative embodiments include a
bounding box 305 with hands, a bounding box 307 with handles, and a
bounding box 309 with active zones (or hot zones), as is explained more
fully below.
In the preferred embodiment of the present invention, the bounding box 303,
which appears as a result of the user selecting the 3-D object 301 and as
was stated above, is a 3-D transparent box which completely surrounds the
selected 3-D object 301. The bounding box 303 is thus, at a minimum, a
visual clue to the user that the 3-D object has been selected.
With the bounding box 305 with hands embodiment, the user is given further
clues as to what manipulations are possible with the selected object. Not
only is the user informed that the 3-D object 301 has been selected, but
the user is also given indications as to what manipulation operations
might be possible with the selected object. The top hand 311 of the
bounding box 305 appears to be pulling the bounding box up (or pushing
down or both) and thus indicates to the user that the 3-D object can be
lifted. The hands 313 around the base of the bounding box 305 appear to be
pushing or pulling the bounding box around in a circle and thus indicate
to the user that this 3-D object can be spun around if so desired.
A similar situation exists with the bounding box 307 with handles. Again,
the user is given clues as to what manipulation operations might be
possible with the selected object. The top handle 315 of the bounding box
307 appears to be available for grabbing and pulling the bounding box up
(and/or pushing the bounding box down) and thus tells the user that the
3-D object can be lifted up or down. The handles 317 around the base of
the bounding box 307 appear to be available for pushing or pulling the
bounding box around in a circle and thus tell the user that this 3-D
object can be spun around if so desired.
With the bounding box 309 with active zones, the user is given different
clues (and, as will be explained below, some of these clues are user
selectable to thus lessen any visual clutter which may exist with the
visible active zones). Again, the bounding box tells the user that the 3-D
object has been selected. Further, additional lines on the bounding box
tell the user that there are different active, or hot, zones available to
be used.
Placement of manipulation controls directly on the bounding box in
positions which mirror those places one would touch a similarly shaped
object in the real, physical world makes interaction with the displayed
3-D object more intuitive. In the preferred embodiment of the present
invention, the location of the rotation controls along the edges of the
bounding box (where two faces meet) provides users with particularly
intuitive rotation control based on the user's real world experiences. It
is common to turn real world objects by grabbing onto a good "hand-hold"
such as an exposed corner and pushing or pulling the objects around in a
desired direction. The edges of a real box shaped object thus function as
hand holds for rotation. Similarly, the edges of the bounding box function
as intuitive "cursor holds" for rotation. Users intuitively "push" or
"pull" on the edges of the displayed bounding box with the reference
pointer to achieve object rotation.
Still further embodiments of the present invention would further support
spring-loaded object manipulations (as is explained below) by providing
additional manipulation clues to the user. FIG. 11 shows the pointer
changing to a curved arrow indicating rotation manipulations in the case
of a rotation active zone selection, to crossed arrows indicating the
plane of movement in the case of a translation active zone selection and
to an enlarging arrow indicating that dimensions are to be affected in the
case of a scaling active zone selection. FIG. 12 shows a selected object's
bounding box 1201 of an alternate embodiment of the present invention
displaying a circle 1203 (or ellipse when the object and bounding box are
in a perspective view) when a rotation active zone is selected to thus
indicate the rotation possibilities with a given rotation active zone. The
displayed circle 1203 could further display a curved arrow 1205 around a
portion of the circumference of the displayed circle 1203 to thus signal
the user as to the manipulations possible with the selected, rotation
active zone. Similarly, with translation manipulations, FIG. 13 shows a
translucent plane 1301 which would be displayed to thus indicate the plane
of translation available with a given selected translation active zone.
Again, with spring-loaded active zones (further explained below), whenever
the user stops pressing the mouse button the manipulation icon or rotation
circle would no longer be displayed and the original pointer would again
be displayed.
Referring now to FIG. 4, a bounding box with active zones 401 is shown. It
should be appreciated by one with ordinary skill in the art of the present
invention that although the preferred embodiment of the present invention
utilizes a bounding box represented as a wireframe with no back lines
visible and with the object remaining visible within the bounding box
(e.g., bounding box 309 in FIG. 3), the back lines of the bounding box
could also be displayed or the bounding box could even be displayed as a
solid (no back faces or lines visible) with the object inside either
visible (a transparent solid bounding box), not visible (an opaque solid
bounding box), visible yet faint or greyed out (a translucent solid
bounding box), etc., all as alternative embodiments which could be user
selectable. Note, however, that no object is shown within the bounding box
in the figure so as to avoid any potential visual clutter (which option
could be user selectable in a still further alternative embodiment of the
present invention).
In the preferred embodiment of the present invention, each face of the
bounding box with active zones 401 is divided into 9 active zones.
Clicking the pointer in any one of these active zones and dragging will
result in moving, rotating, or scaling the bounding box (along with the
3-D object within the bounding box) depending upon which active zone is
selected.
The bounding box 401 with active zones allows various paradigms for 3-D
object manipulation. To scale the 3-D object the user grabs a corner of
the bounding box and pulls. To rotate the 3-D object the user grabs an
edge of the bounding box and turns the bounding box. To move (translate)
the 3-D object the user grabs a face of the bounding box and slides the
bounding box.
And again, with a bounding box, the user need not worry about where within
an active zone to grab a particular 3-D object (regardless of object
shape) in order to perform any one of the desired manipulations because
the bounding box provides a consistent user interface across all object
shapes. For example, if the 3-D object is a floor lamp, the user need not
worry about whether it is "proper" to pick up the lamp by the shade, the
base, or the pole. This is because the bounding box consistently defines
the available actions and means to perform those actions. In other words,
when faced with individual objects of varying shapes and contours, each
user has a different idea of how the object should be "touched" with the
reference pointer in order to directly manipulate the object. By allowing
the user to control any object by directly manipulating the object's 3-D
bounding box upon selection, the user need only learn how to interact with
that one simple box shape. This provides for a consistent approach and
interface to controlling any object shape. Furthermore, the interface is
reinforced by each object manipulation.
Still further, the use of a 3-D bounding box improves user perception of
the virtual 3-D scre | | |