throbber
OMAR TACT AAAA
`
`US 20050057497A1
`
`as) United States
`a2) Patent Application Publication 0) Pub. No.: US 2005/0057497 Al
`
`
` Kawahara (43) Pub. Date: Mar. 17, 2005
`
`(54) METHOD AND APPARATUS FOR
`MANIPULATING. TWO-DIMENSIONAL
`WINDOWSWITHIN A
`THREE-DIMENSIONAL DISPLAY MODEL
`
`(76)
`
`Inventor: Hideya Kawahara, Mountain View, CA
`(US)
`
`Correspondence Address:
`c/o A. RICHARD PARK, REG. NO. 41241
`PARK, VAUGHAN & FLEMING LLP
`2820 FIFTH STREET
`DAVIS, CA 95616 (US)
`:
`Appl. No.:
`10/663,609
`Appl.
`No
`663,
`Filed:
`Sep. 15, 2003
`
`21)
`(21)
`(22)
`
`Publication Classification
`
`CSL) Tt C0 eecccccceeecccssssssnseeeccessnsnnnnsecceesnnnees G09G 5/08
`
`(52) U.S. Che veessssssststsssssstststssistststsensietet 345/157
`
`(57)
`
`ABSTRACT
`
`One embodimentof the present invention provides a system
`that facilitates manipulating a 2D window within a three-
`dimensional
`(3D) display model. During operation,
`the
`system receives an input from a 2D pointing device, wherein
`the input specifies a 2D offset within a 2D display, and
`wherein the 2D display provides a view into the 3D display
`model. Next, the system uses the 2D offset to move a cursor
`to a position in the 2D display, and then determinesif the
`cursor overlaps a window within the 3D display model. If so,
`the system determines a 2D position of the cursor with
`respect to a 2D coordinate system for the window, and
`communicates this 2D position to an application associated
`with the window. This enables a user of the 2D pointing
`device to interact with the application.
`
`3D-DISPLAY MODEL
`102
`
`RAY 107
`<{TTT
`
`__
`
`WINDOW 108
`
`VIEWPOINT
`106
`
`2D DISPLAY 104
`
` WINDOW 110
`e‘1.’.:1‘‘’‘.‘.''‘‘.’‘.11'‘..‘‘..‘',..,'*e‘1.‘‘‘..’
`122 TEXTURE
`132
`MOUSE 136 BACK BUFFER 128
`
`(Xq,¥2, 25)
`
`XSERVER
`(XWINDOW MGR)
`
`(X,Y)
`
`3D SCENE
`' MANAGER
`134
`
`1
`
`APPLE 1021
`
`APPLE 1021
`
`1
`
`

`

`OLLMOCNIM
`
`col
`
`%ZzAx)
`
`US 2005/0057497 Al
`
`ANSOSde
`
`YAOVNVW:
`
`
`
`gelASNOW
`
`SYNLXSL
`
`cel
`
`L‘Sls
`
`Patent Application Publication Mar. 17,2005 Sheet 1 of 9
`
`go.MOCNM~~))©—rs|dTEeHELNEee>LOLAWY
`
`JAGOWAV1dSIG-0€
`
`vOlLAWIdSICGz
`
`LNIOdMAIA
`
`901
`
`(HOWMOGNIMX)
`
`daAdaSX
`
`ezh
`
`
`
`
`
`ezlYasdNngdHOVE
`
`2
`
`
`
`
`

`

`Patent Application Publication Mar. 17, 2005
`
`Sheet 2 of 9
`
`US 2005/0057497 Al
`
`START
`
`
`
`
`RECEIVE INPUT FROM 2D POINTING
`DEVICE
`302
`
`
`ROTATE OBJECTS WITHIN 3D |
`DISPLAY MODEL AROUND
`VIEWPOINT
`304
`
`
`
`FIG. 3
`
`START
`
`
`
`
`RECEIVE INPUT SPECIFYING A 2D
`OFFSET
`202
`
`USE 2D OFFSET TO MOVE CURSOR
`TO A POSITIONIN 2D DISPLAY
`204
`
`OVERLAP WINDOW?
`
`
`
`
`
`
`DETERMINE 2D POSITION OF
`CURSOR WITH RESPECTTO 2D
`
`
`COORDINATE SYSTEM OF WINDOW
`208
`
`
`
`COMMUNICATE2D POSITION TO
`
`APPLICATION ASSOCIATED WITH
`
`WINDOW
`210
`
`
`
`FIG. 2
`
`3
`
`

`

`Patent Application Publication Mar. 17,2005 Sheet 3 of 9
`
`US 2005/0057497 Al
`
`WINDOW
`403
`
`ICON
`413
`
`ICON
`414
`
`FIG. 4A
`
`2D DISPLAY 104
`
`2D DISPLAY 104 WINDOW 401
`
`we401
`
`WINDOW
`
`Se
`
`Ww
`
`WINDOW
`402
`
`FIG. 4B
`
`4
`
`

`

`Patent Application Publication Mar. 17,2005 Sheet 4 of 9
`
`US 2005/0057497 Al
`
`START
`
`
`
`
`RECEIVE COMMAND TO ROTATE
`WINDOWS
`420
`
`ROTATE WINDOWSSO THAT
`WINDOWS CONTENTS REMAIN
`VISIBLE WHILE WINDOWS OCCUPY
`LESS SPACE
`
`422
`
`DRAW TITLES ON SPINES OF
`WINDOWS
`424
`
`
`
`
`
`
`
`RECEIVE USER SELECTION OF
`
`WINDOW
`426
`
`
`MOVE WINDOW TO FRONT AND
`UNROTATE TO FACE USER
`
`428
`
`
`MOVE OTHER WINDOWSBACK TO
`ORIGINAL POSITIONS
`
`430
`
`
`
`
`
`END
`
`FIG. 4C
`
`5
`
`

`

`Patent Application Publication Mar. 17,2005 Sheet 5 of 9
`
`US 2005/0057497 Al
`
`WINDOW 501
`
`WINDOW
`502
`
`START
`
`RECEIVE COMMAND TO
`MINIMIZE WINDOW
`510
`
`
`
`
`
`
`TILT WINDOW SO THAT
`
`
`WINDOW CONTENTS
`REMAIN VISIBLE AND SPINE
`BECOMES VISIBLE
`512
`
`
`
`MOVE MINIMIZED WINDOW
`
`TO EDGE OF DISPLAY
`514
`
`FIG. 5C
`
`2D DISPLAY 104
`
`
`2D DISPLAY 104
`
`FIG. 5A
`
`WINDOW
`502
`
`pecseceorcococe
`
`WINDOW
`
`FIG. 5B
`
`6
`
`

`

`Patent Application Publication Mar. 17,2005 Sheet 6 of 9
`
`US 2005/0057497 Al
`
`COMMAND MOVES WINDOW
`CLOSE TO EDGE OF
`DISPLAY
`602
`
`
`
`
`
`
`
`
`
`
`RECEIVE SELECTION OF
`WINDOW
`606
`
`
`
`
`IN RESPONSE TO
`
`
`SELECTION, UNTILT
`WINDOW
`608
`
`TILT WINDOW SO CONTENT
`OF WINDOW REMAINS
`VISIBLE WHILE WINDOW
`OCCUPIES LESS SPACE
`604
`
`
`
`FIG. 6E
`
`601
`
`104
`
`+<—
`
`FIG. 6A
`
`FIG. 6B
`
`mn
`DI
`
`
`FIG. 6C
`
`601
`
`104
`
`®B
`
`
`
`MOUSE
`CURSOR
`
`FIG. 6D
`
`7
`
`

`

`Patent Application Publication Mar. 17, 2005
`
`Sheet 7 of 9
`
`US 2005/0057497 Al
`
`START
`
`RECEIVE COMMAND TO
`ROTATE WINDOW
`704
`
`
`
`
`
`
`
`ROTATE WINDOW SO THAT
`APPLICATION INFORMATION
`
`
`ON BACK SIDE IS VISIBLE
`
`706
`
`FIG. 7C
`
`ROTATE
`COMMAND
`
`FRONTSIDE
`
`FIG. 7A
`
`
`
`
`BACK SIDE
`
`APPLICATION
`INFORMATION
`702
`
`FIG. 7B
`
`8
`
`

`

`Patent Application Publication Mar. 17,2005 Sheet 8 of 9
`
`US 2005/0057497 Al
`
`START
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DETECT CURSOR CLOSE TO
`EDGE OF WINDOW
`812
`
`ROTATE WINDOW SO
`WINDOW CONTROLS ARE
`VISIBLE
`814
`
`RECEIVE COMMAND
`THROUGH WINDOW
`CONTROL
`
`ROTATE WINDOW BACK TO
`ORIGINAL ORIENTATION
`818
`
`
`
`816
`BUTTON 805
`
`FIG. 8A
`
`BUTTON802
`
`BUTTON 803
`
`FIG. 8C
`
`BUTTON 804
`
`FIG. 8B
`
`9
`
`

`

`Patent Application Publication Mar. 17,2005 Sheet 9 of 9
`
`US 2005/0057497 Al
`
`START
`
`
`
`RECEIVE GESTURE THROUGH
`POINTING DEVICE
`902
`
`MINIMIZE TOP-LEVEL WINDOW
`
`904
`
`START
`
`RECEIVE COMMAND FROM
`POINTING DEVICE TO THROW
`
`WINDOW
`
`4002
`
`
`
`
`THROW WINDOW
`
`1004
`
`
`
`
`
`
`
`
`
`RECEIVE CLICK ON ROOT WINDOW
`906
`
`FIG. 10
`
`RESTORE MINIMIZED WINDOW TO
`EXPANDED STATE
`908
`
`FIG. 9
`
`10
`
`10
`
`

`

`US 2005/0057497 Al
`
`Mar. 17, 2005
`
`METHOD AND APPARATUS FOR MANIPULATING
`TWO-DIMENSIONAL WINDOWSWITHIN A
`THREE-DIMENSIONAL DISPLAY MODEL
`
`RELATED APPLICATION
`
`[0001] The subject matter of this application is related to
`the subject matter in a co-pending non-provisional applica-
`tion entitled, “Enhancements for Manipulating Two-Dimen-
`sional Windows Within a Three-Dimensional Display
`Model,” by inventors Hideya Kawahara, Curtis J. Sasaki,
`Daniel J. Baigent and Yasuyo Okuda having Ser. No. TO BE
`ASSIGNED, andfiling date TO BE ASSIGNED(Attorney
`Docket No. SUN04-0196-JLM).
`BACKGROUND
`
`SUMMARY
`
`[0009] One embodimentof the present invention provides
`a system that facilitates manipulating a 2D window within a
`three-dimensional (3D) display model. During operation,
`the system receives an input from a 2D pointing device,
`wherein the input specifies a 2D offset within a 2D display,
`and wherein the 2D display provides a view into the 3D
`display model. Next, the system uses the 2D offset to move
`a cursor to a position in the 2D display, and then determines
`if the cursor overlaps a window within the 3D display
`model. If so, the system determines a 2D position of the
`cursor with respect
`to a 2D coordinate system for the
`window, and communicates this 2D position to an applica-
`tion associated with the window. This enables a user of the
`
`[0002]
`
`1. Field of the Invention
`
`2D pointing device to interact with the application.
`
`[0003] The present invention relates to user interfaces for
`computer systems. More specifically, the present invention
`relates to a method and an apparatusthat facilitates manipu-
`lating two-dimensional windows that are mapped into a
`three-dimensional display model.
`
`[0004]
`
`2. Related Art
`
`[0005] Today, most personal computers and other high-
`end devices support window-based graphical user interfaces
`(GUIs), which wereoriginally developed back in the 1970s.
`These window-based interfaces allow a user to manipulate
`windowsthrough a pointing device (such as a mouse), in
`much the same way that pages can be manipulated on a
`desktop. However, because of limitations on graphical pro-
`cessing power at the time windows were being developed,
`manyof the design decisions for windows were made with
`computational efficiency in mind. In particular, window-
`based systems providea very flat (two-dimensional) 2D user
`experience, and windows are typically manipulated using
`operations that keep modifications of display pixels to a
`minimum. Even
`today’s
`desktop
`environments
`like
`Microsoft Windows (distributed by the Microsoft Corpora-
`tion of Redmond, Wash.) include vestiges of design deci-
`sions made back then.
`
`In recent years, because of increasing computa-
`[0006]
`requirements of 3D applications, especially 3D
`tional
`games, the graphical processing power of personal comput-
`ers and other high-end devices has increased dramatically.
`For example,
`a middle range PC graphics card,
`the
`“GeForce2 GTS”distributed by the NVIDIA Corporation of
`Sunnyvale, Calif., provides a 3D rendering speed of 25
`million polygon-per-second, and Microsoft’s “Xbox” game
`console provides 125 million polygon-per-second. These
`numbers are significantly better than those of high-end
`graphics workstation in the early 1990’s, whichcosttens of
`thousands (and even hundreds of thousands) of dollars.
`
`[0007] As graphical processing power has increased in
`recent years, a number of 3D user interfaces have been
`developed. These 3D interfaces typically allow a user to
`navigate through and manipulate 3D objects. However,
`these 3D interfaces are mainly focused on exploiting 3D
`capabilities, while little attention has been given to support-
`ing existing, legacy window-based 2D applications within
`these 3D user interfaces.
`
`[0008] Hence, what needed is a method and an apparatus
`that supports legacy 2D window-based applications within a
`3D user interface.
`
`Ina variation on this embodiment, determining if
`[0010]
`the cursor overlaps a window within the 3D display model
`involves projecting a ray from a predefined viewpoint in the
`3D display model through the cursor, which is located in a
`rectangle representing the 2D display in the 3D display
`model,
`toward one or more windows in the 3D display
`model, and then determining if the ray intersects a window.
`
`Ina further variation, determining the 2D position
`(0011]
`of the cursor with respect to the 2D coordinate system of the
`window involvesfirst determining a 3D position where the
`ray intersects the window within the 3D display model, and
`then transforming the 3D position into a 2D position with
`respect to the 2D coordinate system for the window based
`uponthe size, position and orientation of the window within
`the 3D display model.
`
`Ina further variation, the size, position and orien-
`{0012]
`tation of the window within the 3D display model are
`specified by a numberofattributes of the window,including:
`a height, a width, an x-position, a y-position, a z-position, a
`first rotation around a vertical axis of the window, and a
`second rotation around a horizontal axis of the window.
`
`Ina variation on this embodiment, in response to
`{0013]
`another input from the 2D pointing device,
`the system
`changes a viewing angle for the 3D display model by
`rotating objects within the 3D display model around a
`predefined viewpoint.
`
`In a variation on this embodiment, if the cursor
`{0014]
`overlaps a given window,
`the given window becomes a
`selected window and appears opaque while other windows
`within the 3D display model appear translucent.
`
`Ina variation on this embodiment, if a commandis
`{0015]
`received to minimize a window, the window minimization
`operation is illustrated as an animation that moves the
`window toward a minimized position near a border of the 2D
`display while reducing the size of the window to its mini-
`mized size.
`
`Ina variation on this embodiment, if a commandis
`{0016]
`received to close a window, the window closing operation is
`illustrated as an animation that throws the window away by
`moving the window toward the background of the 3D
`display model and causing the window to fade away.
`
`Ina variation on this embodiment, if a commandis
`{0017]
`received to rotate all windows in the 3D display model, the
`system rotates all windowsin the 3D display model, so that
`windowsare viewed from an oblique angle through the 2D
`
`11
`
`11
`
`

`

`US 2005/0057497 Al
`
`Mar. 17, 2005
`
`display, whereby the contents of the windows remain vis-
`ible, while the windowsoccupyless space in the 2D display
`and are less likely to overlap each other.
`
`Ina further variation, when a window is rotated, a
`[0018]
`spine located on a side edge of the window becomesvisible,
`wherein the spine contains identification information for the
`window.
`
`Ina variation on this embodiment, upon receiving
`[0026]
`a predefined gesture through a pointing device, the system
`minimizes a top-level window in the 2D display, whereby
`repeating the predefined gesture causes subsequent top-level
`windows to be minimized.
`
`In a further variation, upon receiving a window
`[0027]
`restoration command, the system restores minimized win-
`dowsto their expandedstate.
`{0019] Ina further variation, whenauser selects one of the
`
`[0028]
`Ina variation on this embodiment,if the command
`rotated windows, the system movesthe selected window in
`is entered through a pointing device and the command
`front of the other windows. The system also unrotates the
`throws the window by moving the window quickly and
`selected window so it faces the user, and moves the other
`releasing it, the system “throws” the window by moving the
`windowsbackto their original positions and orientations.
`window in a continuous animated motion, which moves the
`window into the background of the 3D display model or
`minimizes the window.
`
`Ina variation on this embodiment, the 2D pointing
`[0020]
`device can include: a mouse, a track ball, a joystick, or a
`glide point.
`
`[0021] One embodimentof the present invention provides
`a system that facilitates manipulating a window within a
`three-dimensional (3D) display model, wherein the window
`provides a 2D user interface for a 2D application. During
`operation, the system displays a view into the 3D display
`model
`through a two-dimensional
`(2D) display. Upon
`receiving a command to manipulate the window within the
`3D display model,
`the system manipulates the window
`within the 3D display model so that the manipulation is
`visible within the 2D display.
`
`Ina variation on this embodiment,if the command
`[0022]
`movesthe window in close proximity to an edge of the 2D
`display, the system tilts the window so that the window
`appears at an oblique angle in the 2D display, whereby the
`contents of the window remain visible, while the window
`occupies less space in the 2D display andis less likely to
`overlap other windows.
`
`Ina variation on this embodiment, determining the
`[0023]
`2D position of the cursor with respect to the 2D coordinate
`system of the window involves determining a 3D position
`where the ray intersects the window within the 3D display
`model. It also involves transforming the 3D position in the
`3D display model into a corresponding 2D position with
`respect to the 2D coordinate system for the window based
`upon the size, position and orientation of the window within
`the 3D display model.
`
`Ina variation on this embodiment,if the command
`[0024]
`rotates the window so that the backside of the window is
`
`visible, the system displays information associated with the
`2D application on the backside of the window. This infor-
`mation can include: application version information, appli-
`cation settings, application parameters, application proper-
`ties, and notes associated with a file or a web pagethat is
`displayed in the window.In a further variation, the backside
`of the window can accept user input,
`including change
`settings, parameters, properties and/or notes.
`
`Ina variation on this embodiment,if the command
`[0025]
`is to minimize the window, manipulating the window
`involves: tilting the window so that a spine located on a side
`edge of the windowis visible and the contents of the window
`remains visible, wherein the spine contains identification
`information for the window. It also involves moving the
`minimized window to an edgeof the 2D display, wherein the
`operations of turning and moving the window are animated
`as a continuous motion.
`
`In a variation on this embodiment, receiving the
`[0029]
`command can involve: rotating the window so that window
`controls on the edge of the window become visible in
`response to a cursor moving close to an edge of a window;
`receiving the command through a window control; and then
`rotating the window backto its original orientation.
`
`BRIEF DESCRIPTION OF THE FIGURES
`
`[0030] FIG. 1 illustrates a 3D display model with sup-
`porting components in accordance with an embodiment of
`the present invention.
`
`[0031] FIG. 2 presents a flow chart illustrating how input
`from a pointing device is communicated to an application
`associated with a window in a 3D display model in accor-
`dance with an embodimentof the present invention.
`
`[0032] FIG. 3 presents a flow chart illustrating how input
`from a pointing device causes objects to rotate around a
`viewpoint in the 3D display model in accordance with an
`embodiment of the present invention.
`
`FIG.4Aillustrates an exemplary set of windowsin
`[0033]
`the 3D display model in accordance with an embodimentof
`the present invention.
`
`[0034] FIG. 4B illustrates how windowsare rotated in
`accordance with an embodimentof the present invention.
`
`[0035] FIG. 4C presents a flow chart of the process of
`rotating windowsin accordance with an embodimentof the
`present invention.
`
`[0036] FIG. 5A illustrates an exemplary window in the
`3D display model in accordance with an embodimentof the
`present invention.
`
`[0037] FIG. 5B illustrates how the exemplary window is
`minimized in accordance with an embodimentofthe present
`invention.
`
`[0038] FIG. 5C presents a flow chart of the process of
`minimizing a window in accordance with an embodiment of
`the present invention.
`
`[0039] FIG. 6A illustrates an exemplary window in the
`3D display model in accordance with an embodimentof the
`present invention.
`
`FIG.6B illustrates how a window is moved toward
`[0040]
`the edge of the display in accordance with an embodiment
`of the present invention.
`
`12
`
`12
`
`

`

`US 2005/0057497 Al
`
`Mar. 17, 2005
`
`[0041] FIG. 6C illustrates how a window is tilted in
`accordance with an embodimentof the present invention.
`
`[0042] FIG. 6D illustrates how a window is untilted in
`accordance with an embodimentof the present invention.
`
`[0043] FIG. 6E presents a flow chart of the process of
`minimizing windowsin accordance with an embodimentof
`the present invention.
`
`[0044] FIG. 7A illustrates an exemplary window in the
`3D display model in accordance with an embodimentof the
`present invention.
`
`[0045] FIG. 7B illustrates how the exemplary window is
`rotated to display application information on the backside of
`the window in accordance with an embodiment of the
`present invention.
`
`[0046] FIG. 7C presents a flow chart of the process of
`rotating a window in accordance with an embodimentof the
`present invention.
`
`[0047] FIG. 8A illustrates an exemplary window in the
`3D display model in accordance with an embodimentof the
`present invention.
`
`[0048] FIG. 8B illustrates how the exemplary window is
`rotated to reveal window controls on the edge of the window
`in accordance with an embodimentof the present invention.
`
`[0049] FIG. 8C presents a flow chart of the process of
`rotating a window to reveal window controls in accordance
`with an embodiment of the present invention.
`
`[0050] FIG. 9 presents a flow chart of the process of
`minimizing a top-level window in response to a gesture
`entered into a pointing device in accordance with an
`embodiment of the present invention.
`
`[0051] FIG. 10 presents a flow chart of the process of
`throwing a window in accordance with an embodiment of
`the present invention.
`
`DETAILED DESCRIPTION
`
`[0052] The following description is presented to enable
`any person skilled in the art to make and use the invention,
`and is provided in the context of a particular application and
`its requirements. Various modifications to the disclosed
`embodiments will be readily apparent to those skilled in the
`art, and the general principles defined herein may be applied
`to other embodiments and applications without departing
`from the spirit and scope of the present invention. Thus, the
`present inventionis not intendedto be limited to the embodi-
`ments shown, but
`is to be accorded the widest scope
`consistent with the principles and features disclosed herein.
`
`[0053] The data structures and code described in this
`detailed description are typically stored on a computer
`readable storage medium, which may be any device or
`medium that can store code and/or data for use by a
`computer system. This includes, but
`is not
`limited to,
`magnetic and optical storage devices such as disk drives,
`magnetic tape, CDs (compact discs) and DVDs (digital
`versatile discs or digital video discs), and computer instruc-
`tion signals embodied in a transmission medium (with or
`without a carrier wave upon which the signals are modu-
`lated). For example, the transmission medium may include
`a communications network, such as the Internet.
`
`[0054]
`
`3D Display Model
`
`[0055] FIG. 1 illustrates 3D display model 102 with
`supporting components in accordance with an embodiment
`of the present invention. Morespecifically, the top portion of
`FIG.3 illustrates 3D display model 102, which includes a
`number of 3D objects including window 110 and window
`112. Note that windows 108 and 110 are actually 3D objects
`which represent 2D windows. Hence, windows108 and 110
`can be moved and rotated within 3D display model 102,
`while they provide a 2D output and receive input for
`associated 2D applications. 3D display model 102 can
`additionally include a background (which is not shown).
`
`[0056] Windows 108 and 110 can be associated with a
`number of window attributes. For example, window 110 can
`include x, y, and z position attributes that specify the 3D
`position of the center of window 110 within 3D display
`model 102, as well as a rotation attributes that specify
`rotations of window 110 around horizontal and vertical axes.
`
`Window 110 can also be associated with scaling factor,
`translucency and shapeattributes.
`
`3D objects within 3D display model 102 are
`[0057]
`viewed from a viewpoint 106 through a 2D display 104,
`which is represented by a 2D rectangle within 3D display
`model 102. During the rendering process, various well-
`known techniques, such as ray tracing, are used to map
`objects from 3D display model 102 into corresponding
`locations in 2D display 104.
`
`[0058] The bottom portion of FIG. 1 illustrates some of
`the system components that make it possible to map 2D
`windowsinto 3D display model 102 in accordance with an
`embodimentof the present invention. Referring to FIG. 1,
`applications 114 and 116 are associated with windows 108
`and 110, respectively. A number of components are involved
`in facilitating this association. In particular, applications 114
`and 116 are associated with xclients 118 and 120, respec-
`tively. Xclients 118 and 120 in turn interact with xserver
`122, which includes an associated xwindow manager. These
`components worktogether to render output bitmaps 124 and
`126 for applications 114 and 116 to be displayed in windows
`108 and 110, respectively. These bitmaps 124 and 126 are
`maintained within back buffer 128.
`
`[0059] Code module 130 causes bitmaps 124 and 126 to
`be displayed on corresponding windows 108 and 110. More
`specifically, code module 130 retrieves bitmap 126 and
`coverts it into a texture 132, which is displayed on the front
`face of window 110. This is accomplished though interac-
`tions with 3D scene manager 134. Bitmap 124 is similarly
`mapped into window 108.
`
`3D scene manager 134 can also received input
`[0060]
`from a 2D pointing device, such as mouse 136, and can
`communicate this input to applications 114 and 116 in the
`following way. 3D scene manger 134first receives an input
`specifying a 2D offset from mouse 136 (step 202). Next, the
`system uses this 2D offset to move a cursor 109 to a new
`position (x,,y,) in 2D display 104 (step 204).
`
`[0061] The system then determines if cursor 109 overlaps
`a window in 3D display model 102 (step 206). This can be
`accomplished by projecting a ray 107 from viewpoint 106
`through cursor 109 and then determiningif the ray intersects
`a window.If there is no overlap, the process is complete.
`
`13
`
`13
`
`

`

`US 2005/0057497 Al
`
`Mar. 17, 2005
`
`[0062] Otherwise, if there is overlap, the system uses the
`3D position (X3,y,,z.) within display model 102 where ray
`107 intersects window 110, as well as attributes of window
`110, such as position and rotationattributes, to determine the
`2D position (x3,y) of this intersection with respect to a 2D
`coordinate system of window 110 (step 208). The system
`then communicates this 2D position (x;,y3) to application
`116, which is associated with window 110 (step 210).
`
`[0063] Various user inputs, for example through mouse
`136 or a keyboard, can be used to manipulate windows
`within 3D display model 102. Some of these manipulations
`are described below.
`
`[0064] Rotation Around Viewpoint
`
`[0065] FIG. 3 presents a flow chartillustrating how input
`from a pointing device causes objects to rotate around a
`viewpoint 106 in 3D display model 102 in accordance with
`an embodiment of the present invention. First, the system
`receives an input from a 2D pointing device indicating that
`a rotation is desired (step 302). For example, the system can
`receive a movement input from mouse 136. In response to
`this input,
`the system can rotate objects within the 3D
`display model around viewpoint 106, or alternatively around
`another point within 3D display model 102 (step 304). This
`rotational motion makes it easier for a user to identify
`window boundaries and also givesthe user a feeling of depth
`and space.
`
`[0066] Rotating Windows
`
`FIG.4Aillustrates an exemplary set of windowsin
`[0067]
`3D display model 102 in accordance with an embodimentof
`the present
`invention. This exemplary set of windows
`includes windows 401-404. In FIG. 4A, window 403 is
`partly obscured, and window 404 is completely obscured, by
`windows 401-402. Windows 401-404 are additionally asso-
`ciated with icons 411-414, respectively. However,
`icons
`411-412 are not visible in FIG. 4A because they are
`obscured by window 401.
`
`[0068] FIG. 4B illustrates how windows 401-404 are
`rotated in accordance with an embodimentof the present
`invention. In FIG. 4B, windows 401-404 are rotated so that
`they appear at an oblique angle, wherein the contents of the
`windows remain visible, while the windows occupy less
`space and are less likely to overlap each other. Note that
`windows 403 and 404 are now completely visible and icons
`411 and 412 are no longer obscured. Also note thattitles
`containing descriptive information appear on spines located
`on the edges of the windows 401-404.
`
`[0069] FIG. 4C presents a flow chart of the process of
`rotating windowsin accordance with an embodimentof the
`present invention. First, the system receives a pre-specified
`commandto rotate all of the windows. This command can be
`
`received from the pointing device, a keyboard, or some other
`input device (step 420). In response to this command, the
`system rotates windows 401-404 to an oblique angle so that
`the contents of the windows remain visible, while the
`windows occupy less space (step 422). The system also
`drawstitles on spines of the windows(step 424).
`
`[0070] Next, the system can receive a user selection of a
`window. For example, when the user moves cursor 109 over
`window 401, window 401is selected (step 426). In response
`to this user selection, the system movesthe selected window
`
`in front of all other windowsin 3D display model 102 and
`unrotates the selected window so that it faces the user (step
`428). The system also moves other windowsback to their
`original unrotated positions.
`In one embodiment of the
`present
`invention,
`the selected window appears opaque,
`while other windowsappear translucent.
`
`[0071] Minimizing Windows
`
`[0072] FIG. 5A illustrates exemplary windows 501-502 in
`the 3D display model 102, and FIG. 5B illustrates how
`window 501 is minimized in accordance with an embodi-
`
`mentof the present invention. Referring to the flow chart in
`FIG. 5C,the system first receives a command to minimize
`window 501 (step 510). For example, mouse 136 can be
`used to select a minimization button on window 501. In
`response to this minimization command, window 501 is
`tilted (and possibly reduced in size) so that the contents of
`window 501 remain visible, while window 501 occupiesless
`space (step 512). Tilting window 501 also causesa title on
`the spine of window 501 to become visible. At the same
`time, window 501 is moved toward an edge of the display
`(step 514).
`
`[0073] These operations take place through a continuous
`animation that starts with the original unminimized window
`and ends with the minimized window.This can be accom-
`
`plished by incrementally changing window parameters, such
`as position, rotation and scaling factor parameters. In this
`way,
`the user is better able to associate the minimized
`window with the original window.
`
`[0074] Once window 501 is minimized, another command
`from the user can cause the window to be maximizedsothat
`
`the window can be more easily viewed and so that the
`window can receive an input.
`
`[0075] Tilting Windows
`
`FIG.6Aillustrates an exemplary window in 601 in
`[0076]
`3D display model 102, and FIGS. 6B-6D illustrates how
`window 601 is tilted whenit is moved toward the edge of 2D
`display 104 in accordance with an embodiment of the
`present invention. Referring the flowchart in FIG. 6A, the
`system first receives a command to move the window to the
`edge of the display (step 602). For example, the user can use
`a pointing device to move window 601 so that it is near the
`edge of 2D display 104 (see FIG. 6B). When window 601
`is moved near the edge of 2D display 104, the system tilts
`window 601, so that the contents of window 601 remain
`visible, while window 601 occupies less space and is less
`likely to overlap other windows(step 604 see FIG. 6C).
`
`[0077] Next, the system can receive a selection of window
`601 by a user. For example, the user may move cursor 109
`near window 601 (step 606).
`In response to this user
`selection, the system can untilt the window 601 so that the
`user can see it better and can enter commands into the
`window(step 608, see FIG. 6D).
`
`[0078] Displaying Application Information on Back of
`Window
`
`[0079] FIG. 7A illustrates an exemplary window 701 in
`3D display model 102, and FIG.7B illustrates how window
`701 is rotated to display application information on the
`backside of window 701 in accordance with an embodiment
`of the present invention. Referring to the flow chart in FIG.
`7C, the system first receives a command (possibly through
`
`14
`
`14
`
`

`

`US 2005/0057497 Al
`
`Mar. 17, 2005
`
`a mouse or a keyboard) to rotate window 701 (step 704). In
`response to this command,the system rotates window 701 so
`that application information 702 on the backside of window
`701 becomesvisible (step 706). This application informa-
`tion can include application version information, application
`settings, application parameters, and application properties.
`It can also include notes associated with a file or a web page
`that is displayed in the window. In one embodimentof the
`present invention,
`the system allows the user to modify
`application information 702 on the backside of window 701.
`This enables the user to change application parameters, if
`necessary.
`
`[0080] Using Window Controls on Side of Window
`
`[0081] FIG. 8A illustrates an exemplary window 801 in
`3D display model 102, and FIG.8B illustrates how window
`801 is rotated to reveal window controls on the edge of the
`window in accordance with an embodimentof the present
`invention. Referring to the flow chart illustrated in FIG. 8C,
`the system first detects a cursor close to the edge of window
`801 (step 812). In response to detecting the cursor,
`the
`system rotates the window so that window controls on the
`edge of window 801are visible (step 814). For example, in
`FIG. 8B buttons 802-805 become visible. Note that
`in
`general other types of controls, such as pull-down menus,
`can be located on the edge of window 801. After the user
`enters a commandinto a window control(step 816), or after
`the user moves cursor 109 away from window 801,
`the
`system rotates window 801 back to its original orientation
`(step 818).
`
`[0082] Minimizing Top-Level Windows
`
`[0083] FIG. 9 presents a flow chartillustrating the process
`of minimizing a top-level window in response to a gesture
`inputted through a pointing device in accordance with an
`embodiment of the present
`invention. The system first
`receives a pre-defined gesture through a pointing device,
`such as mouse 136 (step 902). For example, the gesture can
`be a waving motion that causes cursor 109 to move in a
`specific pattern across 2D display 104. In response to this
`gesture, the system minimizes the top-level window (step
`904). As is indicated by the looping arrow in FIG. 9,
`repeating the predefined gesture causes subsequent top-level
`windowsto be minimized.
`
`[0084] Next, upon receiving a window restoration com-
`mand, such as a click on a special button on a root window
`(step 906), the system restores all minimized windowsto
`their expandedstate (step 908).
`
`[0085]

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket