text: the present invention facilitates the selection of entities obscured by other entities displayed on a computer screen . a 3d cad system that implements the present invention enables an engineer to temporarily hide obscuring entities , thus making other entities visible and easy to select using a commonly used selection technique to which he or she is accustomed . fig1 shows a computerized modeling system 100 that includes a cpu 102 , a crt 104 , a keyboard input device 106 , a mouse input device 108 , and a storage device 110 . the cpu 102 , crt 104 , keyboard 106 , mouse 108 , and storage device 110 can include commonly available computer hardware devices . for example , the cpu 102 can include a pentium - based processor . the mouse 108 may have conventional left and right buttons that the user may press to issue a command to a software program being executed by the cpu 102 . as an alternative or in addition to the mouse 108 , the computerized modeling system 100 can include a pointing device such as a trackball , touch - sensitive pad , or pointing device and buttons built into the keyboard 106 . those of ordinary skill in the art appreciate that the same results described herein with reference to a mouse device can be achieved using another available pointing device . other appropriate computer hardware platforms are suitable as will become apparent from the discussion that follows . such computer hardware platforms are preferably capable of operating the microsoft windows nt , windows 98 , windows 2000 , windows xp , windows me , unix , linux , or mac os operating systems . additional computer processing units and hardware devices ( e . g ., video and printer devices ) may be included in the computerized modeling system 100 . furthermore , the computerized modeling system 100 may include network hardware and software thereby enabling communication to a hardware platform 112 . computerized modeling system 100 may also be connected to a computer network for facilitating communication between numerous computer systems ( e . g ., a hardware platform 112 that includes a cpu and a storage system , among other computer components ). computer - aided design ( cad ) modeling software may be stored on the storage device 110 and is loaded into and executed by the cpu 102 . the modeling software allows an engineer to create and modify a 3d model and implements aspects of the invention described herein . the cpu 102 uses the crt 104 to display a 3d model and other aspects thereof as described later in more detail . using the keyboard 106 and the mouse 108 , the design engineer can enter and modify data associated with the 3d model . the cpu 102 accepts and processes input from the keyboard 106 and mouse 108 . the cpu 102 processes the input along with the data associated with the 3d model and makes corresponding and appropriate changes to that which is displayed on the crt 104 as instructed by the modeling software . fig2 shows a window 202 displayed on the crt 104 and generated by the cad modeling software . the window 202 is a conventional computer - generated window that can be programmed by one of ordinary skill in the art using conventional , commercially available , software programming tools , such as those available from microsoft corporation of redmond , wash . a computer - generated 3d model 204 is displayed within a modeling portion 206 of the window 202 . a design engineer can construct and modify the 3d model 204 in a conventional manner . the surfaces of the 3d model 204 can be displayed , or the 3d model 204 can be displayed using solid lines and dashed lines to show visible edges and hidden edges , respectively , of the 3d model . implementations also may include other window areas , such as a list of features 208 , which helps the engineer visualize and manipulate the model 204 shown in the modeling portion 206 . in one embodiment , the modeling system is a solid modeling system that may be used to model an assembly of solid model components . the 3d model 204 may be an assembly of parts , where each part is comprised of entities such as faces , edges , and vertices . an engineer may select one part in the assembly to reposition the part or modify an attribute , for example . the engineer may also select one or more entities in one or more parts , for example , to create a parametric relationship between two or more entities or change the dimensions of an entity . as shown in fig2 , only the entities that are positioned in the front outer portion of the 3d model 204 are visible . to select one or more parts or entities that are concealed from the engineer , the engineer must have the ability to select concealed objects . to facilitate the selection of concealed objects , the present invention temporarily hides obscuring objects so that previously hidden objects become visible and selectable using the customary point - and - click selection technique whereby the engineer places the cursor on an object and presses a mouse button to indicate the selection of that object . fig3 shows a flowchart of a selection procedure 300 that facilitates the selection of obscured entities by removing faces . the selection procedure 300 begins when the cad system receives instructions to enable the selection of obscured entities and awaits further input ( step 302 ). by way of non - limiting example , instructing the cad system thus may be initiated when the engineer chooses an item from a user interface menu or an icon from a user interface toolbar . the procedure 300 continues when further input is received and then determines whether the input is generated by the right mouse button ( step 304 ), and if so , determines whether the cursor position is over a face ( step 306 ). a determination that the input is generated by the right mouse button and the cursor position is over a face causes the procedure 300 to make the face positioned immediately beneath the cursor location invisible ( step 308 ), and thereby causes entities behind the face to become visible . other embodiments of the present invention can implement alternative means for revealing entities initially hidden . in one embodiment , rather than only one face becoming invisible , the entire part in which the face belongs may become invisible . other embodiments can make the face or the entire part transparent but perceivable . generally , an implementation of the present invention may modify a visibility state ( e . g ., by modifying a visibility attribute ), of an obscuring face or an obscuring part so that previously obscured entities become discernible . by way of non - limiting example , a display override can be used to ensure that a value of a property , such as a transparency value , prevails over other related properties until such display override is removed . moreover , an implementation may enable the engineer to specify whether an entity should be made completely invisible or rendered with some degree of transparency . additionally , rather than modifying a visibility attribute , an embodiment of the present invention can remove the obscuring entity from a display list or a display structure used for the construction of a 3d model and programmed by one of ordinary skill in the art . the entity that the engineer wishes to select may or may not be visible after the removal of an outer face . thus , the present invention enables additional faces to become invisible by simply permitting the engineer to point the cursor at another face and click the right mouse button . so long as the system continues to receive input from the right mouse button ( tested in step 304 ) and recognizes that the input was generated while the cursor is located over a face ( tested in step 306 ), the system makes the face positioned immediately beneath the cursor invisible ( step 308 ). when procedure 300 determines that the input was not generated by the right mouse button , the procedure 300 determines whether the input was generated by the left mouse button ( step 310 ). if the determination is made that input is received from the left mouse button , procedure 300 then determines whether the cursor is located over an entity in the model ( step 312 ). input generated by the left mouse button while the cursor is over an entity indicates that the entity is the previously obscured entity that the engineer wishes to select . in the next step , the system designates that entity as the selected entity ( step 314 ). subsequently , all faces that were made invisible in order to reveal other entities revert to their former visibility state ( step 316 ) before the procedure completes ( step 318 ). the determination that one of the mouse buttons generated input while the cursor points to an entity causes that entity to become invisible or to be selected for a subsequent operation . therefore , if the input was not generated by either mouse button , the procedure 300 completes ( step 318 ). likewise , if the input was generated by one of the mouse buttons when the cursor location was not over an entity , the procedure completes ( step 318 ). fig4 a through 4d illustrate a model 400 during different steps in a process that enables the selection of obscured objects . referring now to fig4 a , the model 400 is shown after the cad system is enabled to select obscured objects . an outer face 402 is located beneath a cursor 404 . the outer face 402 is selected , as made evident by the highlighted border 406 of the outer face 402 . fig4 b shows model 400 with the outer face 402 removed ( and therefore , not shown ) to reveal the face 408 . model 400 takes on the appearance shown in fig4 b after the cad system determines that the right mouse button was pressed while the cursor 404 was positioned over the outer face 402 . referring now to fig4 c , the revealed face 408 is selected for a subsequent operation . to provide visual feedback that the revealed face 408 has indeed been selected , the edges 410 of the revealed face 408 are highlighted . as previously described with reference to procedure 300 , the revealed face 408 can be selected for a subsequent operation when a determination is made that input was generated by the left mouse button while the cursor is located over the revealed face 408 . fig4 d shows model 400 after the revealed face 408 was selected . the outer face 402 is visible because , as previously described , faces that became invisible revert to their previous visibility state . moreover , as shown in fig4 d , the edges 410 of the revealed face 408 remain highlighted so that the revealed face 408 remains discernable for subsequent operations . the present invention also permits the selection of more than one revealed entity for a subsequent operation . in one embodiment , input data other than the input data heretofore discussed ( i . e ., input received from the left or right mouse button while the cursor is located over an entity ), instructs the cad system to make a multiple selection of revealed entities . the input sequence may be comprised of the combination of input generated by a keyboard component ( e . g ., the control key ) and input generated by a mouse button while the cursor is located over an entity . by way of non - limiting example , multiple entities may be selected for a subsequent operation when the control key and left mouse button are pressed contemporaneously while the cursor is positioned over an entity . referring now to fig5 , a multiple selection of revealed entities is shown . revealed face 408 is selected as is a second revealed face 512 . the multiple selection of revealed entities shown in fig5 occurs when the present invention receives contemporaneous input from the left mouse button and control key while the cursor is over revealed face 408 , then receives further contemporaneous input from the left mouse button and the control key while the cursor is over revealed face 512 . once the cad system is commanded to enable the selection of obscured entities , entities can be removed and selected for a subsequent operation in any order . by way of non - limiting example , once a revealed entity is selected , additional faces can be removed to reveal another entity to select for a subsequent operation . as shown in fig5 , face 514 beneath cursor 404 obscures one or more additional entities and can be removed as shown in fig6 . the 3d cad system determines whether to remove or select the entity pointed to by the cursor based on the analysis of an input sequence . as previously discussed , contemporaneous input received from the control key and the left mouse button while the cursor is positioned over an entity causes an additional entity to be added to the selection . an additional entity is removed from the model when the 3d cad system receives input from the right mouse button while the cursor is positioned over an entity . as previously discussed with reference to fig3 , faces revert to a previous visibility state once an entity is selected . however , an implementation of the present invention may only restore the faces that were hidden when input is received that commands the 3d cad system to restore those faces . by way of non - limiting example , faces may revert to their previous visibility state after the 3d cad system receives contemporaneous input from the control key and right mouse button . additionally , another specific input stream may instruct the 3d cad system to complete the selection process . referring now to fig6 , the model 400 has face 514 removed ( shown in fig5 ) in addition to face 402 ( shown in fig4 a ). as shown in fig6 , edge 614 , which is revealed when face 514 is removed , is selected in addition to face 408 and face 512 . a further enhancement to the present invention enables two adjacent faces to be removed when a common edge or common vertex of the adjacent faces is designated for removal . by way of non - limiting example , after an entity identified as a common edge of two adjacent faces is designated for removal , the present invention automatically removes the two adjacent faces that share the common edge . thus , more than one entity can be removed simultaneously without further user interaction . the present invention offers several advantages to users of 3d cad systems . a key advantage is the ability for the engineer to view the actual objects he or she wishes to select , as is done with non - obscured objects . other advantages include the ability to use standard point - and - click selection techniques using a pointing device , such as a mouse , and the use of standard visual aids such as dynamic highlighting for visual cues to aid in the selection of obscured objects as is done with non - obscured objects . a further advantage is that by pointing a cursor at an object and pressing a button associated with a pointing device , and without re - initiating the procedure that enables the selection of obscured entities , more than one obscuring object can be removed from the modeling portion of a window ( or made transparent ) and more than one obscured object can be selected . moreover , the engineer does not need to predict where the obscured object is positioned in the modeling portion of a window so that the object or a representation thereof can appear in a list of entities presented to the engineer ; rather , the engineer can select the rendered object directly and not be forced to select an indirect representation of the object ( e . g ., the name of the object in a dialog box ). additionally , the engineer does not need to consider a number of unwanted objects , possibly one at a time , before being presented and considering the desired object . implementations may change the order in which operations are performed . furthermore , depending on the needs of an implementation , particular operations described herein may be implemented as a combined operation , eliminated , added to , or otherwise rearranged . for example , a menu selection to enable the selection of obscured entities may not be necessary in some implementations ; rather , contemporaneous input from the mouse and the keyboard devices may cause the selection techniques described herein to be enabled , and such input may also cause an entity to become invisible . moreover , in fig3 , step 316 may be omitted , meaning that entities that became invisible will not revert to their initial state of visibility upon selection of an entity . alternatively , the present invention may permit the engineer to determine when entities should be restored to their original visibility state and allow the engineer to instruct the system to do so . although the foregoing description disclosed that the selected entities are depicted by highlighting the edges of the selected entities , other visual cues may also distinguish a selected object . by way of non - limiting example , a cad system may highlight a selected face by modifying the color of the selected face or a selected object may blink on and off to alert the engineer that the object is selected . the present invention may also implement filtering techniques familiar to one of ordinary skill in the art , such that only one or more specific types of objects can be selected . for example , a selection filter may be set to allow an engineer to pick only edges in a 3d model thereby preventing the accidental selection of other objects such as a face , a vertex , a dimension , or a sketch entity , even if those objects are very close in proximity to an edge . furthermore , an implementation of the present invention may allow for other user interactions than those described while entities are being removed and selected for a further operation . by way of non - limiting example , input may be generated by the keyboard and processed in such a way as to cause the 3d model to be rotated , without exiting the procedure described with reference to fig3 thereby allowing a user to continue selecting objects . additionally , although the embodiment described herein describes a cad modeling system used by engineers , other computer applications can attain enhanced capabilities from the present invention and users of those other systems can benefit from the improved ease of use of such systems . as an example , computer animation and styling systems can gain advantages from implementing the selection methods described herein . consider that a styling system primarily renders surfaces , and that outer surfaces or facets thereof may obscure inner surfaces or facets thereof . an implementation of the present invention can enable outer surface objects to be removed to reveal inner surface objects .