Patent Publication Number: US-2004046760-A1

Title: System and method for interacting with three-dimensional data

Description:
TECHNICAL FIELD OF THE INVENTION  
       [0001] This invention, in general, relates to the visual presentation of three-dimensional data. More specifically, the invention relates to a page-based presentation tool for presenting synchronized three-dimensional and two-dimensional images and walkthrough features.  
       BACKGROUND OF THE INVENTION  
       [0002] Engineers, architects and graphic designers are increasingly using computer aided drafting tools and three-dimensional graphics programs. These tools have had a great impact on industries such as engineering design, the automobile industry, architecture, graphic design, game design, video production, and interior design, among others. These programs have been used for designing manufactured parts, designing buildings, used for training videos, visual elements in video production, mock-ups of interior design or building placement, and other uses. However, these programs typically lack a method for presenting their output in a traditional format.  
       [0003] Typical three-dimensional graphics tools allow for the output of movies, images, or sets of images. A designer might provide an angle, vantage point, and/or path. The program may then generate an image or movie associated with the vantage point or path. However, these formats are limiting in that they lack interactivity. A subsequent viewer has no control over the path of the movie or the vantage point of the image.  
       [0004] On the other hand, traditional presentation tools present material in a slide-based format and permit the inclusion of certain graphics objects. Typically, these presentation tools allow for a slide-by-slide or page-by-page presentation of material. Some elements within the slides may be provided with dynamic attributes. Typical presentation tools permit the inclusion of movies and two-dimensional graphic formats. However, they lack the ability to include interactive three-dimensional formats and further lack the ability to interact with three-dimensional environments. Moreover, these traditional tools lack a means of synchronizing data objects and providing interactivity between objects.  
       [0005] Other presentation formats, such as Web pages, also present a page-by-page means of presenting information. Hereto, attributes of text and traditional two-dimensional images may be provided with some form of dynamic characteristic. However, typically, there lacks an ability to interact with three-dimensional objects, synchronization between two data objects, control of data objects with buttons and other objects.  
       [0006] As such, many three-dimensional graphics tools and presentation tools suffer from deficiencies in providing interactivity with three-dimensional data. Many other problems and disadvantages of the prior art will become apparent to one skilled in the art after comparing such prior art with the present invention as described herein.  
       SUMMARY OF THE INVENTION  
       [0007] Aspects of the invention may also be found in a walkthrough object within the presentation. The walk-through object may permit a first person view of a three-dimensional data and interactivity with the view. Interaction with the first person view may cause interaction with other objects or changes in visual characteristics of other objects including the movement of icons about a two-dimensional object, the movement of icons within a third person view and other visual characteristics in text, two-dimensional, and three-dimensional objects, among others. The method may also include a method for determining when an actor associated with the first person view collides with objects. The method may also include methods for preventing the collision and methods for determining which objects may be climbed.  
       [0008] Another aspect of the invention may be found in a method for preventing collisions in a first person view. As an actor associated with the first person view approaches objects as seen in the walkthrough view, calculations are made based on a radius or bubble about the actor. These calculations determine a bubble vector that is added to the desired heading vector to determine a new vector that may prevent collision.  
       [0009] Further aspects of the invention are found in a method for determining whether an actor associated with a first person view may climb an object. The object may be, for example, a stairway or step or some other three-dimensional feature. The height of an object approached by the actor is tested to determine whether the height of the object is less than a percentage height termed “knee height” of the actor. If the height of the object is less than the knee height, the actor may climb the object, effectively making the foot height of the actor the same as the object height. The method may include a further test where when the object is below the knee height, the system may seek an object that would collide with the top of the actor if the actor were to step up on the collision object. However, if the height is greater than the percentage of the actor&#39;s height, a collision may occur and the system may utilize the bubble vector to aid in avoiding the collision.  
       [0010] Aspects of the invention may also be found in a method for synchronizing two types of graphic data. The method may be used, for example, to synchronize a three-dimensional architecture data with a two-dimensional floor plan. In another exemplary embodiment, the method may be used to synchronize a three-dimensional CAD drawing with a two-dimensional schematic drawing. However, the method may be used for synchronizing two three-dimensional data to two-dimensional data or various combinations, among others. The method may include displaying a first panel or object with a view of the first data displaying a second panel or object with a view of the second data and displaying in the second object an icon having a corresponding position with an actor associated with the first data. The icon may also include an indication of direction. Interaction with one object may dynamically manifest itself in the second object. This dynamic manifestation may include the movement of an icon, the replacement of data associated with one of the objects, among others. To accomplish the method, three points are selected in one data set, three points are selected in a second data set, and a transform matrix is generated.  
       [0011] The transform matrix may be generated by first aligning a first point in each of the data sets, associating a second point in one data set with the other data set, and associating a third data point in the one set with a third data point in the second set. To generate the transform matrix, the method may recalculate the relationship between the data points and the first data points for both sets of data and determining a vector in each set of data between the new origin or first data point and the second data point in each data set. The method may then rotate about a vector normal to or the cross product vector of the two vectors, thereby aligning the second data point and scaling to align the two points.  
       [0012] The method may further include steps for aligning the third points wherein the point on a line between the first and second points that is closest to the three-dimensional point is found, a vector from this point to the third point is computed and the angle between the two third points is determined. The system is then rotated about or through that angle and scaled to align the third point.  
       [0013] Additional aspects of the invention may be found in a method for displaying three dimensional data in a sectional view. A bounding box about an actor is determined. Objects within the bounding box having a substantially horizontal normal vector are displayed as lines.  
     
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
     [0014] For a more complete understanding of the present invention and advantages thereof, reference is now made to the following description taken in conjunction with the accompanying drawings in which like reference numbers indicate like features and wherein:  
     [0015]FIG. 1 is a schematic block diagram depicting a creation tool, according to the invention;  
     [0016]FIG. 2 is a schematic block diagram depicting a viewer according to the invention;  
     [0017]FIG. 3 is a schematic block diagram depicting an operable file according to the invention;  
     [0018]FIGS. 4A and 4B are pictorials depicting an exemplary embodiment of the system;  
     [0019]FIG. 5 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1;  
     [0020]FIG. 6 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1;  
     [0021]FIG. 7 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 2;  
     [0022]FIG. 8 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1;  
     [0023]FIG. 9 is a block flow diagram of an exemplary method for use by the system of FIG. 1;  
     [0024]FIG. 10 is a pictorial of an exemplary embodiment of the system as seen in FIG. 1;  
     [0025]FIG. 11 is a pictorial of an exemplary embodiment of the system as seen in FIG. 1;  
     [0026]FIGS. 12A, 12B,  12 C and  12 D are schematic diagrams depicting a system according to the invention;  
     [0027]FIG. 13 is a block flow diagram of an exemplary method for use by the systems of FIG. 1 and FIG. 2;  
     [0028]FIG. 14 is a block flow diagram depicting an exemplary method for use by the systems as seen in FIG. 1 and FIG. 2;  
     [0029]FIG. 15 is a block flow diagram depicting an exemplary method for use by the systems as seen in FIG. 1 and FIG. 2;  
     [0030]FIG. 16 is a block flow diagram depicting an exemplary method for use by the systems as seen in FIG. 1 and FIG. 2;  
     [0031]FIGS. 17 through 26 are pictorials depicting the system as seen in FIG. 1 and FIG. 2;  
     [0032]FIG. 27 is a block flow diagram depicting an exemplary method for use by the systems of FIG. 1 and FIG. 2;  
     [0033]FIG. 28 is a block flow diagram depicting an exemplary method for use by the systems of FIG. 1 and FIG. 2;  
     [0034]FIG. 29 is a block flow diagram depicting an exemplary method for use by the systems of FIG. 1 and FIG. 2;  
     [0035]FIG. 30 is a block flow diagram depicting an exemplary method for use by the systems of FIG. 1 and FIG. 2;  
     [0036]FIGS. 31A and 31B are schematic diagrams depicting an exemplary embodiment of two data sources;  
     [0037]FIGS. 32A and 32B are schematic diagram depicting the alignment of two points;  
     [0038]FIGS. 33A, 33B,  33 C,  33 D and  33 E are schematic diagrams depicting the alignment of a second set of points;  
     [0039]FIG. 34 is a block flow diagram depicting an exemplary method for use by the systems as seen in FIG. 1 and FIG. 2;  
     [0040]FIGS. 35A, 35B,  35 C and  35 D are pictorials depicting the alignment of a third set of points;  
     [0041]FIG. 36 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1 and FIG. 2;  
     [0042]FIG. 37 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1 and FIG. 2;  
     [0043]FIG. 38 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1;  
     [0044]FIG. 39 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1;  
     [0045]FIG. 40 is a block flow diagram depicting an exemplary embodiment for use by the systems as seen in FIG. 1 and FIG. 2;  
     [0046]FIG. 41 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1; and  
     [0047]FIG. 42 is a pictorial depicting an exemplary embodiment of the system as seen in FIG. 1.  
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
     [0048] As the reliance in three-dimensional graphic tools and CAD systems increases, new methods are required to make presentations of the resulting models. The present invention includes a presentation tool for presenting a page-by-page or slide-by-slide presentation having interactive three-dimensional objects. The tool allows for walk-throughs and orbit views of three-dimensional data and synchronization between three-dimensional and two-dimensional.  
     [0049]FIG. 1 is a schematic block diagram depicting the system  10  according to the invention. The system may include file operating instructions  12 , importing/exporting instructions  14 , object instructions  16 , data  18 , models  20 , pages  22 , synchronization tool  25 , recording tools  26 , clipping tools  28 , instructions  30 , operable files  32  and master pages  34 . The pages  22  may include object instances  24 . However, each of these elements may or may not be included, together, separately, or in various combinations, among others.  
     [0050] The system  10  is implemented as a software program. The program may be written in various languages and combinations of languages. These languages may include C+, C, Visual Basic, and Java, among others. Further, the system  10  may take advantage of various software libraries including open GL and Direct 3D, among others.  
     [0051] The file operating instructions  12  may provide functionality including Open, Save, Save As, Close, and Exit, among others. These instructions control the interaction with presentations, operable files, data, and models, among others.  
     [0052] The importing/exporting instructions  14  may function to enable the importing of various models and image formats. Further, it may permit the exporting of operable files, movies, models and packages. For example, a package may include a viewer, an operable file, model data, and other associated data. In this manner, presentations may be distributed in packages or on auto-run CDs without requiring preinstalled software.  
     [0053] The importing and exporting instructions  14  may also enable the interpretation of various file formats including formats for three-dimensional data, two-dimensional data, image files, text, spreadsheets, compression formats, databases, vector drawings, and movie formats, among others. These formats may be found with extensions such as DWG, IDW, IDV, IAM, PRT, GCD, CMP, DXF, DWF, JPEG, GIF, PNG, PLT, HGL, HPG, PRN, PCL, IGES, MI, DGN, CEL, EPS, DRW, FRM, ASM, SDP, SDPC, SDA, PKG, BDL, PAR, DFT, SLDPRT, SLDASM, SLDDRW, SAB, SAT, STP, STL, VDA, WRL, CG4, ODA, MIL, GTX, HRF, CIT, COT, RLE, RGB, TIF, PICT, GBR, PDF, AI, SDW, CMX, PPT, WMF, WPG, VSD, IFF, CDR, DBX, IMG, MAC, NRF, PCX, PPM, PR, TGA, ICO, XWD, Fax formats, SAM, STY, DOC, WRI, LTR, WS, DBF, DB, PX, WK*, XLS, WKQ, ARC, LZH, ZIP, CGM, AVI, MPG, QSM, QSD, Bitmap, RTF, TXT, and ASCII, among others.  
     [0054] The object instructions  16  may function to permit the insertion of objects into a page and provide those objects with functionality. The objects may be included as part of the program itself or may be functional files such as DLL files that are accessed by the program  10 . These object instructions  16  may include instructions for objects such as orbital views, walkthrough views, sectional views, two-dimensional image objects, two-dimensional vector drawing objects, text, shapes, line, buttons, and movies, among others.  
     [0055] The data  18  may include various preference parameters associated with the program  10 , preference and setup parameters associated with the objects  16  or the object instances  24 , other data associated with the pages  22 , operable files  32 , master pages  34 , among others.  
     [0056] The models  20  may include imported three-dimensional, two-dimensional and other models. These models may be associated with object instances  24 .  
     [0057] Pages  22  may take the form of slides, pages or panels that may be viewed within a window of a browser or viewer, printed on a physical page, or output as an image or file, among others. Associated with the pages  22  are object instances  24 . These object instances  24  may be objects having an associated object instruction  16  and established parameters characteristics, associated models  20 , and functionality, among others. The object instances  24  may be arranged on pages  22  to provide functionality and a visual appearance to pages  22 . Further, these object instances  24  may interact with one another and the pages to provide greater functionality. For example, the object instance  24  may be a button, three-dimensional walkthrough, three-dimensional orbital view, sectional view, two-dimensional image or vector drawing, text, movie, or imported file, among others. Buttons may be programmed to switch pages, change visual characteristics of objects, or initiate a function. Other data sets and visual formats may also be linked or synchronized such as a two-dimensional image object with a three-dimensional walkthrough object, text objects with a three-dimensional walkthrough object, or a three-dimensional walkthrough object with a three-dimensional orbital view object, among others.  
     [0058] Additional tools such as the synchronization tool  25 , recording tool  26 , the clipping tool  28  or other tools such as optimization tools may be used to provide additional functionality to various object instances  24  and pages  22 . For example, the synchronization tool  25  enables users to synchronize two or more data sources. An exemplary synchronization method may be seen in FIG. 28. The recording tool  26  may permit a sequence of events associated with an object or set of objects to be recorded and subsequently replayed. The recording tool may be tied to object instances  24  such as buttons or walk through views or orbital views, among others. The recording tool  26  may also include smoothing and transition functions to make visual presentations more aesthetic.  
     [0059] In another example, a clipping tool  28  may provide the ability to clip part of a three-dimensional object or data set. The clipping tool  28  may also be tied to various object instances  24  such as three-dimensional objects and buttons.  
     [0060] The functionality applied to the creation tool  10 , the interaction between pages and objects and other tools, and other functionality may be accomplished through instructions  30 . These instructions  30  may take various forms including scripts and programming languages mentioned above, among others.  
     [0061] The creation tool  10  may also interact with an operable file  32 . Once a presentation is prepared and saved, it may become an operable file  32 . This operable file may be shared among users of the program and computers having associated viewer to replay the interactions set up by the creation tool  10 . The operable file may also store the pages and object instances for later modification. The operable file may also include models, data, the pages, the master page  34  and at least parts of the object instructions  16 .  
     [0062] In addition, the creation tool  10  may permit the creation of a master page  34 . The master page  34  may function to provide a common visual characteristic among all the pages  22  that subscribe to the master page  34 .  
     [0063] Examples of an embodiment of the creation tool  10  may be seen in FIGS. 4A and 4B. However, the creation tool may have some, all or none of these elements. These elements may be included together, separately, or in various combinations, among others.  
     [0064]FIG. 2 is an exemplary embodiment of a viewer  50 . The viewer  50  may include interpreting functions  54  for interpreting an operable file  52 . The operable file, for example, may be created in a creation tool  10  and distributed among a set of users. The viewer  50  functions to permit viewing and interaction with the operable file  52  while limiting certain editing functions. The viewer  50  may therefore be a smaller program enabling easy distribution. The viewer may also include network interactivity instructions  56 . These network interactivity instructions  56  may enable interactions with a presentation performed in one viewer to be mimicked by another remotely located viewer. For example, copies of a presentation may be opened in two remotely located viewers. The viewers may then be linked. Using a protocol, the two viewers  50  may communicate to synchronize interactivity with the presentation. The network interactivity instructions  56  may also be included with the creation tool.  
     [0065] The viewer  50  may be programmed using various languages including those described above. In addition, a viewer  50  may be a stand-alone program or a plug-in for presentation software or browsers.  
     [0066]FIG. 3 depicts an operable file  70 . The operable file is created in the creation tool  10  and stores the pages, object instances and various data and models associated with the pages and object instances. The operable file  70  may include some or all of the object instructions  72 , data  74 , models  76 , pages  78  and a master page  80 . The object instances  72  may be objects defined in the creation tool that are associated with the model or data and one or more pages  78 . The object instances  72  carry with them the information and functionality required for interpretation in either the creation tool or a viewer.  
     [0067] Data and models  76  may take various forms including preferences, location of object instances on pages, three-dimensional models, two-dimensional image data, two-dimensional vector data, text, shape objects, and other data associated with object instances  72  and pages  78  and master page  80 .  
     [0068] Pages  78  may have object instances  72  distributed about the page to provide a visual appearance and interactivity. These pages may also comply with a master page  80 . A master page  80  may hold instructions for the placement of common element objects and visual appearance of various pages ascribing to the master page  80 .  
     [0069]FIGS. 4A and 4B depict exemplary embodiments of the creation tool. In the creation tool, a page  92  may be developed by placement of various graphic elements and objects about the page. Opening, Closing, Saving and Printing and other functions associated with the creation of a page and the functionality of the object associated with the page may be controlled by a control panel  93  which provides access to file operating instructions, import/export instructions, preference data, and various tools for establishing functionality of objects and overall presentation functionality for the set of pages. The presentation tool may include an Edit button  94  and a Live button  96 . Selection of one or the other establishes the mode of operation of the presentation tool. If the Edit button  94  is activated, objects may be placed on a page, arranged, and have parameters associated with object instances edited. Further, the Edit mode may enable various functionalities to be added to the page or pages  92 . In live mode  96 , the program may function to display the functionality and provide interactivity with the object&#39;s functionality provided to pages  92  through the editing mode.  
     [0070] The presentation creation tool may also provide an overview tab  98 . In this exemplary embodiment, the overview tab  98  presents a tree view of pages and files associated with objects and object instances. The pages may include a listing of pages. The files may include models, two-dimensional data files, two-dimensional image files, vector files, text, and other files associated with the objects and the pages.  
     [0071] The creation tool may also include a create tab which provides access to objects which may be placed about the page  92 . FIG. 4B shows a listing  102  of various objects that may be placed about page  92 . The objects  104  may be associated with models or other data and provided with preferences to form instances of the model objects that are arranged about the page or pages  92 . These objects  104  may be part of the overall program. Alternately, the objects may exist as external libraries that are imported into the program. In one exemplary embodiment, objects may be added to the program as DLLs. If a presentation containing an unknown object were to be opened, the program may seek a corresponding object DLL or ignore the object without losing the functionality of other known object instances in the presentation.  
     [0072] Once a set of pages with various object instances and models and data associated with the pages are established, the pages may be saved along with the models and object instances to a separate file. Further, models associated with the objects may be exported.  
     [0073]FIG. 5 is an exemplary embodiment of the creation tool with a set of pages or presentation presented in edit mode. In this example, the overview tab is selected showing the presentation with a set of pages and files associated with objects within those pages. About the page  110  are placed various graphic text elements and buttons. In this case, the presentation has been saved as a presentation file and may be exported for viewing within a viewer.  
     [0074]FIG. 6 depicts the same page  110  in live mode. In this case, interactivity with the buttons is enabled as seen through the depression of button  112 . Using the edit and live modes, users may jump between editing objects on the page and, in live mode, testing the functionality of those objects. The file may then be exported as a presentation file and opened in a viewer. FIG. 7 shows the page opened in a viewer. In this case, the button may be activated as would in the live mode within the creation tool.  
     [0075]FIG. 8 depicts the insertion of an object within a page  110  in edit mode. Once the object is located on the page  110 , preferences and properties for the object  112  may be edited. In this case, a three-dimensional model may be connected to an orbit object. In the orbit properties panel  114 , a model tab may be selected. Subsequently, a model may be imported using the imports model button  116  or a model may be selected from existing models using a pull-down menu  118 . In addition to associating a model with an object, various other settings such as style, other visual characteristics, object size and object placement may be manipulated. Each object type may have various visual characteristics uniquely associated with that object type. In this case, for example, the visual characteristics of the sky may be set as seen in a setting panel  120 . Visual characteristics may include rendering characteristics (hidden line, photo realism, cartoon, watercolor, oil painting, motion blur, blur, noise, pencil, charcoal, map pencil), actor properties, terrain, changing parts, viewing position, viewing orientation, focal point, shadows, sky settings, lighting settings, camera angles, material characteristics (color, displacement map, reflectivity, transparency, reflection map, and texture) for three-dimensional objects; rendering characteristics (hidden line, photo realism, cartoon, watercolor, oil painting, motion blur, blur, noise, pencil, charcoal, map pencil), zoom, pan, sharpness, associated image or data, for two-dimensional objects; font, color, and size for text objects; color, shape, size, width, height, and thickness for lines and shapes; and transparency/opacity, visibility, motion, layer control, past transformations, size, position, orientation, location, color, shape, angle, mode, and meta data for all objects, among others. Visual characteristics may vary between objects. In addition, various objects may require differing parameters and associated data files, among others.  
     [0076]FIG. 9 depicts an exemplary method for use by the system as seen in FIG. 1. Much like the example in FIG. 8, an object type may be selected and inserted into a page as seen in blocks  132  and  134 . The object type may, for example, be a three-dimensional object, a two-dimensional object, various text and shaped objects, among others. During insertion, as seen in block  134 , the object may be placed in a location on the page and sized. Then, the object may be associated with a model as seen in a block  136 . For example, a three-dimensional walkthrough object would need to be associated with a three-dimensional model. In another example, a two-dimensional vector object would need to be associated with a vector drawing. Subsequently, the properties of the object may be adjusted as seen in a block  138 . These properties may include location, size, visual characteristics and other characteristics associated with the object, among others.  
     [0077] Once an object or set of objects has been placed in a page, the page may be tested in a live mode. FIG. 10 depicts the presentation as seen in FIG. 5 in live mode. In this example, a walkthrough button has been activated and the presentation has moved to page  2 . On page  2  is a walkthrough object  154  that has been associated with a model. The walkthrough object displays a first person view of a three-dimensional data with various characteristics associated with the preferences and properties of the object  154 . The user may interact with the object  154  to walk through or proceed through the three-dimensional data as one would if you were walking through a region represented by the three-dimensional data.  
     [0078]FIG. 11 depicts the object  154  after the first person view has been directed to advance towards the door. This may be accomplished by rendering a region of the three-dimensional model that would be seen from that location looking in the indicated direction. However, the object may be presented by selectively rendering all or part of the three-dimensional model.  
     [0079] In one exemplary embodiment, the user may interact with the walkthrough object using a mouse or other graphic input device. For example, holding a left mouse button with movement of the mouse may permit rotation about the vantage point, double-clicking the left mouse button may permit jumping to a point indicated, and holding a right mouse button with movement of the mouse may permit advancing and rotation of the vantage point. Double-clicking the left mouse button may move the vantage point to the location indicated by the mouse. A collision detection method may be used to determine the location of the vantage point.  
     [0080] Presenting a walk-through object presents various complications associated with avoiding objects or preventing walk through of virtually solid objects depicted in the three-dimensional model. FIG. 12A depicts an actor associated with the first person view approaching an object with which the actor may collide, termed collider. The creation tool or viewer may function to establish a bubble cylinder and boundary cylinder about the actor position. If the collider were to touch the bounding cylinder, the actor is deemed to have collided with the collider. FIG. 12B depicts the collider crossing into the bubble cylinder. As the collider crosses into the bubble cylinder, a bubble vector is created. A bubble vector is added to the heading vector to create a new direction for the movement of the actor. In this way, the actor may avoid collisions.  
     [0081] The system may also permit an actor to climb objects. These objects may be stairs, steps, curbs, stools or other objects that meet a height requirement. FIG. 12C shows an actor having an actor height and some percentage of the actor height or specification of a knee height. A system may establish algorithms that permit an actor to walk on objects that are lower than the knee height and collide with objects that are greater than the knee height, as seen in FIG. 12D.  
     [0082]FIG. 13 depicts an exemplary method for establishing a new position and preventing collisions. As seen in block  172 , the system may determine the velocity of the actor. The velocity may be a function of interactions with the user or other parameters associated with the actor. From this velocity, a heading vector may be established, as seen in  174 .  
     [0083] The system may then determine a bubble vector based on the presence of colliders within the bubble boundary. This calculation may take into account, for example, the closest collider to the boundary cylinder. Alternately, the bubble vector may have a set magnitude or be determined using various algorithms and sets of collider points, among others. An algorithm for altering the bubble vector may be seen in FIG. 16.  
     [0084] Once the heading vector, bubble vector and position are determined, the potential new position may be calculated as seen in a block  178 . With this potential new position, the system may check for collisions as seen in a block  180 . The collision may be the presence of a collider object within the boundary cylinder of the actor. An exemplary method for checking for a collision may be seen in FIG. 14.  
     [0085] If no collision is detected the bubble vector may be decreased for subsequent moves, as seen in a block  184  and the future position planned, as seen in a block  189 . However, if a collision is detected, the actor may be reset to the previous position, as seen in a block  186 , and the bubble vector may be increased, as seen in a block  188 . The system may then replan the position as seen in a block  189 . This may include restarting with block  172  or checking for a subsequent collision as seen in a block  180 , among others.  
     [0086]FIG. 14 depicts a method for checking for a collision. As seen in block  192 , a boundary box is determined for the actor in the new position. A boundary box may be used in place of a cylinder to accelerate calculations. However, a cylinder may alternately be used. If necessary, the boundary box is scaled as seen in block  194 . In one embodiment, the size of the boundary box may be preset. Alternately, the size of the boundary box may be set in accordance with the boundary bubble, bubble vector, or some other parameter. The knee position of the actor may be calculated as seen in block  196 . The knee position may for example be determined as a percentage of the actor&#39;s height or a set height, among others.  
     [0087] The radius of the actor is determined and compared with nearby objects, termed colliders, as seen in blocks  198  and  200 . The radius of the actor may be a set parameter or may be varied in accordance with an algorithm. For each of the colliders, the system may determine a point closest to the eye and a point closest to the knee positions. The determination of the closest point may be a substitute for determining all points along a line or edge. The list of colliders and/or points on the colliders may then be sorted by distance as seen in block  208 . From this list, the system determines whether a collision occurs and if the object may be climbed. For each of the points, the system checks the height of the point with that of the knee. If the height is less than the knee, the actor may be permitted to climb the object. Climbing may be accomplished by dropping the actor on the new point or setting the vertical location of the actor&#39;s lowest point equal to that of the height of the object. In this exemplary method, the system continues to test subsequent colliders.  
     [0088] If, however, the height of the object is greater than the knee location, a collision is possible. In this case, the height of the object may be set equal to the eye height as seen in block  214 . The distance to the eye may then be computed as seen in block  216 . Alternately, the horizontal distance may be determined. If this distance is within the boundary cylinder, the system records a collision and notifies other routines of the event as seen in blocks  218  and  220 . Alternately, if the distance is not within the boundary cylinder, the system continues to test potential collision points.  
     [0089]FIG. 15 depicts an exemplary method for planning a position as seen in block  189  of FIG. 13. In this exemplary method, the new position is tentatively set as seen in block  232 . A boundary box is created from the knee to the feet to aid in determining potential objects that require climbing. The system then tests for potential colliders and finds those closest to the feet as seen in blocks  236  and  238 . The system then determines the highest point within the radius of the actor as seen in block  240 .  
     [0090] A test may be made to determine is an object is within the radius of the actor. If an object is, the actor may climb the object providing no head collisions occur. To test for head collisions, the model is tested for colliders about the head region as seen in blocks  248  and  250 . Using the points closest to the head, the system tests for a collision as seen in block  252 . If a collision occurs, the location of the actor is set to the previous location as seen in block  256 . If no collision occurs, the program proceeds as seen in block  254 . Proceeding may be accomplished by setting the vertical location of the lowest point on the actor equal to that of the highest point in the actor&#39;s radius.  
     [0091] If no objects are within the radius, the actor may be dropped. In some cases, the highest point at the new position may be below the previous vertical location. In this case the actor will move down. An algorithm may be established for dropping the actor to the new location. For example, the actor may be moved down by a body height of the actor for each frame or cycle through the calculations.  
     [0092]FIG. 16 depicts another method for providing movement and adjusting the bubble vector. In this method, the actor is moved in accordance with the heading and bubble vectors as seen in block  272 . The bubble cylinder or boundary boxes are expanded to test for upcoming collisions as seen in block  274 . If a collision is likely to occur, the bubble vector may be adjusted to prevent the collision as seen in block  278 . However, if no collision is likely to occur, the bubble vector may be decreased as seen in block  280 . The adjustment or decreasing of the bubble vector may be accomplished by changing the vector by a set amount, a percentage of the magnitude, or by a calculated quantity, among others.  
     [0093]FIG. 17 depicts an exemplary embodiment of an orbit view  314 . In this exemplary presentation, a page including the orbit view may be reached sequentially or through the selection of a button  316 . The orbit view  314  may also be termed a third person view. The system permits buttons and various objects to manipulate other objects such as a view or vantage point within a third person view. In this example, a set of buttons  312  may be used to alter the orbit view object. Also, as will be discussed in more detail in relation to FIG. 23, buttons may have various characteristics such as mouse-over image swapping, and naming characteristics. Further, functionality may be associated with the buttons.  
     [0094] In this example, movement of a mouse over the button induces an image swapping. FIG. 18 shows the swapped image  312 . In this case, the swapped image is a sharpened version of the blurred image seen in FIG. 17. Upon selection of the button, the view in the orbital view changes. FIG. 19 depicts the new orbital view. In this case, the new vantage point depicts an image similar to that of the button  312 . However, various button appearances may be envisaged.  
     [0095] The orbital view may also be manipulated through mouse interactivity. For example, double clicking a mouse button may set a focal point for the orbital view and holding a mouse button while moving the mouse may facilitate orbiting about the focal point. The focal point may be selected by seeking a collider object indicated by the mouse pointer.  
     [0096] In orbital views, various visual appearances may be provided to transition between views. These transitional appearances may include, direct path translations, circuitous paths translations, accelerating or decelerating translations, slide, fade, spliced image translations, and three-dimensional effects, among others. However, various algorithms for transitioning between views may be envisaged.  
     [0097] In another exemplary embodiment, a two dimensional object may be manipulated with a button or functional characteristics associated with text. As seen in FIG. 20, a two-dimensional object  334  may be arranged on a page. This two-dimensional object may be an image, vector drawing, or two-dimensional slice of a three-dimensional model, among others. If a button  332  is selected, the view of the two-dimensional object may be altered. For example, the system may pan or zoom to show a new vantage of the image. However, various manipulations may be envisaged. FIG. 21 depicts the visual appearance of the two-dimensional object. In this case, the button  332  denoting Lobby is selected and the two-dimensional object zoomed in on a specified view of the Lobby area.  
     [0098]FIG. 22 depicts the placement of a button. In this case, the button  342  is a replica of another button. When inserted, the button  342  has a handle  344  extending vertically from a center point. This handle may be used to rotate the button. In addition, the button may be resized by manipulation of corner tabs associated with the button. Further, the properties of the button may be established in a properties panel  346 . These properties may include visual appearance, size, location, lettering characteristics, name, shape, and associated functionality. In an action tab, functionality may be applied to the button  342  using a pull-down menu  348 . In this exemplary embodiment, the functionality of the button may include enabling and manipulating camera selection, initiating commands, sending email, moving between pages, exiting the program, initiating another presentation, manipulating objects, and altering visual characteristics of objects, among others. These visual characteristics may include rendering characteristics (hidden line, photo realism, cartoon, watercolor, oil painting, motion blur, blur, noise, pencil, charcoal, map pencil), actor properties, terrain, changing parts, viewing position, viewing orientation, focal point, shadows, sky settings, lighting settings, camera angles, material characteristics (color, displacement map, reflectivity, transparency, reflection map, and texture) for three-dimensional objects; rendering characteristics (hidden line, photo realism, cartoon, watercolor, oil painting, motion blur, blur, noise, pencil, charcoal, map pencil), zoom, pan, sharpness, associated image or data, for two-dimensional objects; font, color, and size for text objects; color, shape, size, width, height, and thickness for lines and shapes; and transparency/opacity, visibility, motion, layer control, past transformations, size, position, orientation, location, color, shape, angle, mode, and meta data for all objects, among others. For example, a button may initiate a shadow for a specified time of day in a three-dimensional object. The chosen functionality may also affect the button characteristics. For example, the label text of the button may reflect the time of day for an associated shadow. In another example, the label of the text of the button may reflect a page to which the button directs the presentation. However, various functionalities may be envisaged in relations to various objects. Further, functionality may be introduced with the introduction of additional object types.  
     [0099] Another feature of the system is the synchronization between two data sets. FIG. 24 is an exemplary embodiment of a synchronization between a three-dimensional walkthrough  352  and a two-dimensional floor plan  354 . On the two-dimensional floor plan is an icon  356  representative of an actor associated with the first person view of the walkthrough object. As seen in FIG. 25, if the view in the walkthrough is manipulated, for example, through advancing the actor, the position and indicated direction of the icon on the two-dimensional floor plan is altered accordingly. Similarly, if the icon were manipulated, the view in the walkthrough may be altered accordingly.  
     [0100]FIG. 26 depicts the addition of an orbital view. A walkthrough view  362  and two-dimensional object  364  are provided. The icon  366  is presented in the two-dimensional view in accordance with the position of the actor associated with the first person view. In addition, an orbital view  370  is provided which shows the first person actor  367 . In this case, more than one object may be synchronized with another data set.  
     [0101] This example also depicts another actor  368 . The system may permit multiple actors to be established. The first person system may jump from actor to actor and the other associated objects may react accordingly.  
     [0102] Other examples include synchronizing a two-dimensional aerial photo with a two-dimensional landscaping plan, a schematic drawing with a CAD data, and a three-dimensional graphic data of an empty house with a three-dimensional graphic data of a furnished house, among other. Further, the system may permit a transparent overlay of data on another data. For example, a transparent two-dimensional map over a three-dimensional graphic data. In another exemplary embodiment, a two-dimensional data may be synchronized and integrated within three-dimensional data. For example, a two-dimensional image or vector drawing of a landscaping may be integrated or synchronized with a three-dimensional data of a building. In this manner, two data sets may be synchronized and displayed in the same view. However, various embodiments and usages may be envisaged for synchronized data sets.  
     [0103]FIG. 27 depicts an exemplary method for synchronizing data sets. In the method  390 , a first data objects is displayed as seen in block  392 . Similarly, a second data set is displayed as seen in block  394 . An icon that corresponds with a position in the first data set is then displayed in the second data set as seen in block  396 . In addition, for certain types of data sets, an icon may be displayed in the presentation of the first data set.  
     [0104]FIG. 28 depicts an exemplary method for synchronizing data sets. In this method  410 , a three-dimensional data set is synchronized with a two-dimensional data set. However, a similar method may be applied to synchronize two three-dimensional data sets or two two-dimensional data sets.  
     [0105] A three-dimensional data set is selected as seen in block  412 . In addition, a two-dimensional data set is selected as seen in block  414 . Three points in each data set are selected as seen in block  416 . Each point corresponds with a data point in the other data set. A transformation matrix may be established that permits translation of coordinates between data sets as seen in block  418 . In this manner, manipulations of one data set may be presented in a relation to a second data set. In addition, the system may permit swapping of data sets based on manipulation in one data set. For example, a floor plan image may be swapped based on vertical location of an actor in a walkthrough view. If the translation matrix occurs on a horizontal two-dimensional plane, the height dimension may be used to key image swapping and other visual characteristics.  
     [0106] The transform matrix may be developed through the alignment of data points. FIGS. 29, 30, and  34  depict exemplary methods for building the transform matrix. In FIG. 29, the first point in the three-dimensional data is used as an origin point as seen in block  422 . Using this new origin, the three points may be aligned as seen in blocks  424 ,  426 , and  428 . Using this alignment, the data may be translated as seen in block  430 .  
     [0107]FIG. 30 provides more detail for aligning the first and second points. The first points in each data set are established as the origin points as seen in block  442 . In this manner, they are aligned. To align the second points, vectors are calculated from the origin points to the two second points. These vectors define a plane. From the two vectors, the normal vector of the plane may be calculated as seen in block  446 . An angle between the vectors is then calculated and the data sets are rotated about the normal vector to align the vectors as seen in blocks  448  and  450 . Then, the vectors may be scaled to align the second data points as seen in block  452 .  
     [0108]FIGS. 31A and 31B depict a pictorial of the two data sets. FIG. 31A depicts a two-dimensional data set  470  with a first  372 , second  374 , and third  376  data point. FIG. 31B depicts a three-dimensional data set  390  with a first  392 , second  394 , and third  396  data point.  
     [0109]FIGS. 32A and 32B depict the alignment of the first points of the data sets. FIG. 32A depicts the association of the first data points  372  and  392 , respectively. Upon subtraction of the other points and establishment of the first points as the origin in each data set, the points are aligned as seen in FIG. 32B.  
     [0110]FIGS. 33A, 33B,  33 C,  33 D, and  33 E depict the alignment of the second data points. Once the first points are aligned, the vectors to the second points may be determined as seen in FIG. 33A. The normal vector is computed as shown in FIG. 33B. Then, the angle between the vectors is determined as seen in FIG. 33C. At least one of the systems is then rotated about the normal vector, aligning the vectors as seen in FIG. 33D. The set may then be scaled to align the points as seen in FIG. 33E.  
     [0111] To align the third points, a new set of vectors may be determined and the system rotated and scaled in another dimensional or along another basis vector. FIG. 34 depicts an exemplary method for aligning the third points. In this method  510 , the vectors between the first and second points are used as seen in block  512 . The closest point along the vectors to the third points is determined as seen in block  514 . Vectors are then calculated from this point to the third points as seen in block  516 . The vectors will have an angle between them and form a normal vector in the direction of the vector between the first and second points. At least one of the data sets may be rotated and scaled to align the third points as seen in blocks  520  and  522 . In this manner, the transform matrix may be determined as seen in block  524 .  
     [0112]FIGS. 35A, 35B,  35 C and  35 D depict the alignment of the third data points. FIG. 35A depicts the determination of the vectors from the closest point on the lines between the first and second points to the third data points. FIG. 35B depicts the angle between the two vectors. Rotating about the vectors between the first and second points aligns the vectors as seen in FIG. 35C. Then, scaling aligns the points as seen in FIG. 35D.  
     [0113] In this manner, a transform matrix may be developed for synchronizing two data sources. These data sources may be two-dimensional or three-dimensional or a combination. In addition, another dimension may be used and tied to additional functionality such as image or drawing swapping, or orbital position changing, among others.  
     [0114] The system may also include various specialty tools. One example of these tools is the recording tool. FIG. 36 depicts the recording tool  550 . The recording tool may be used to record a series or sequence of events. In this example, the recording tool may record a sequence of orbital views. These views may be tied to button functionality. Further, the activation of the replay of the sequence may be tied to buttons. If this embodiment of a recording were to be replayed, the orbital view would change through a series of vantage points, transitioning with a specified algorithm or visual appearance. However, various events and uses for a recording tool may be envisaged.  
     [0115] Another exemplary tool is a clipping tool. The clipping tool may clip or remove a part of an image or data set. In an exemplary embodiment, a three-dimensional data set  355  is presented in FIG. 37. Activation of the clipping tool as seen in FIG. 38, effectively removes a city block from the three-dimensional data set  355 . However, the clipping tool may be used to dissect buildings, CAD objects, and images, among others. Further, the clipping tool may be used along any plane.  
     [0116] A similar visual effect may be seen in the sectional object. The section object provides a floor plan-like or schematic-like view of some features in three-dimensional data set. An example of the sectional view may be seen in FIG. 39. The sectional view object shows the substantially vertical walls of the model seen in orbital view  555  in FIG. 37.  
     [0117]FIG. 40 depicts an exemplary method for creating sectional views. In the method  570 , a bounding box is created using the actor&#39;s vertical values and the extreme x and y values of the object. The system then selects all faces that lie within the box and whose normal vectors are within a specified degree from horizontal. This effectively finds all walls and vertical surfaces with some allowance for angled walls and nearly vertical surfaces. The system then draws these surfaces as lines and not filled triangles as seen in block  576 .  
     [0118] Other objects may be inserted into a page of the presentation tool. These objects may include movies  590  as seen in FIG. 41. Further, these objects may be controlled by buttons  592  and objects within the presentation.  
     [0119] The system may also permit text objects to be placed over image and three-dimensional objects. For example, a text object with a transparent background  612  may be placed over an image object  610  as seen in FIG. 42. In other embodiments, the text object may be placed over three-dimensional objects and interactive two-dimensional objects. Further the visual characteristics of the text may be programmed to change in accordance with user interaction with an associated object.  
     [0120] As such, a system and method for displaying three-dimensional data is described. In view of the above detailed description of the present invention and associated drawings, other modifications and variations will now become apparent to those skilled in the art. It should also be apparent that such other modifications and variations may be effected without departing from the spirit and scope of the present invention as set forth in the claims which follow.