1. Field
The described technology relates to systems and methods of editing graphical information representing a polygonal data object.
2. Description of the Related Technology
Polygonal model data is created with, for example, a 3-D CAD software tool by, for example, a designer. The polygonal model or polygonal mesh includes discrete data points describing one or more surfaces or objects. The polygonal (or geometric) model, or data object, includes a number of geometries, such as vertices, edges, and faces. Polygonal models are convenient for design work at least because they define the surface or object with a degree of detail convenient for the designer to work with. The shape of the surface or object is defined by the data points, and the surface between the data points is perceived, but is not necessarily represented in the data. This allows for the CAD system to function quicker because of a significantly reduced data set representing the surface or object, while providing the designer enough detail to manipulate to achieve a desired design.
The polygonal data may be edited by a designer according to the designer's purposes. For example, the designer may add features to the object represented by the polygonal data using mesh operations. In addition, to create smooth, natural looking objects, a smoothing algorithm may be used to modify the polygonal data. For example, a Catmull-Clark algorithm or a Loop subdivision algorithm may be performed on the polygonal data. The smoothing algorithm modifies the polygonal data by, for example, adding vertices and repositioning existing vertices. Thus, the smoothing algorithm generates a modified object.
Typically the polygonal data is shown on a display with the smoothed object. as the designer edits the polygonal data in the design process, the smoothed object is updated to show the result of the designers edit.
In the editing process, much time may be used in precisely placing or moving each vertex. For 3-dimensional modeling, there are three degrees of freedom, but displays are 2 dimensional. Therefore, for each placement of a vertex, verification that the vertex is properly placed requires viewing the placed vertex and surrounding geometries from two or more different viewing perspectives.
One aspect includes a method of producing an electronic geometric model with a computer system. The method includes accessing electronic data, where the data includes polygonal data defining a surface. The method also includes receiving a first indication from a user, where the first indication indicates that a portion of the control mesh is to be modified, and in response to a first indication, automatically calculating a surface in a region including the portion. The method also includes receiving a second indication from the user, wherein the second indication indicates a location of a geometry, and in response to the second indication, graphically representing the location in a perspective viewable to the user, and calculating a position of the geometry based on the location in the perspective and on the calculated surface, wherein the position is on the calculated surface.
Various aspects and features of methods and systems are described herein with reference to the accompanying drawings, which show certain exemplary embodiments. The described embodiments may be modified in various ways, without departing from the spirit or scope of the present invention or inventions. In addition, the described embodiments have multiple features and aspects, no single one of which is solely responsible for the desirable characteristics of the embodiments. Furthermore, no single feature or aspect is essential to practicing the methods and systems described herein. Furthermore, various features and aspects of the embodiments may be combined in embodiments not specifically described.
Various inventive aspects of certain embodiments of methods and systems for generating and graphically rendering smoothed polygonal data objects are discussed. The methods and systems access polygonal data which describe discrete points of a geometric object. The methods and systems use a smoothing algorithm, such as, but not limited to, a Catmull-Clark or Loop subdivision algorithm to smooth the geometric object. The smoothed version of the polygonal data may be simultaneously displayed with a representation of the polygonal data. A designer may modify the polygonal data using a CAD software tool. As the polygonal data is modified, the smoothed version may be automatically updated in response to the modification of the polygonal data.
For example, the methods and systems may access electronic data which describes polygonal data object 1, such as that represented in
In this example, the surface described by the geometries of
During the modification, the designer controls the placement or modification of the vertices 3 so that the desired flow lines are produced. During the modification, the designer also controls the placement or modification of the vertices 3 so that the vertices 3 do not adversely affect the surface of the object because of being inadvertently placed inappropriately in a dimension unperceived by the designer. To prevent undesired modification of the surface shape, the designer must uses great care. To move a vertex, the designer makes many small movements and observes the results of the movements from each of two or more perspectives. Accordingly, the process is time consuming and prone to producing surfaces with undesired topology.
For improved designs, in some embodiments, the computer system constrains the placement of vertices to a calculated surface. Such constraint prevents placement of vertices in locations which would adversely affect the shape of the object.
The computer system uses locations of nearby geometries, such as vertices, edges, and faces, to generate the surface according to, for example, a curve fitting algorithm, such as a linear extrapolation or a higher order fitting algorithm. The perimeter of the generated surface may be G0, G1, or G2 continuous with the data object 20. The surface generation algorithm is not limited. In some embodiments, one or more aspects of the methods of generating surfaces as described in U.S. patent application Ser. No. 13/027,092, entitled “methods and Systems for generating Continuous Surfaces from Polygonal Data,” filed on Feb. 14, 2011 and incorporated herein by reference is used. Any surface generation algorithm may be used.
In some embodiments, the computer system automatically selects the nearby geometries to use for generating the surface. For example, the designer may provide an indication as to which geometries are to be modified, and, in response to the indication, the computer system may select geometries of the polygonal data object which are near the geometries to be modified, and generate the surface based on the selected geometries.
In some embodiments, the geometries to be modified are included in the selected geometries. For example, the faces 40 of
In some embodiments, the computer system selects geometries which are adjacent to the geometries to be modified. For example, the faces 41 of
In some embodiments, in the process of selecting geometries for generating the surface, the computer system may determine that the data object includes a sudden significant topological change. For example, if a gradient along a path from the geometries to be modified is greater than a threshold, the computer system may not include the geometries of the topological change.
In some embodiments, the designer may select or exclude certain geometries. in some embodiments, the designer may provide an indication to the computer system to exclude certain geometries for generating the surface. For example, for data objects which include a sudden drastic topological change, if geometries which are to be modified are near the topological change, the designer may indicate to the computer system to not use the geometries forming the change. The designer may include or exclude geometries for various other reasons.
The various aspects, process, and actions discussed herein may be performed sequentially or in parallel. For example, a system capable of parallel processing may divide certain procedures among the available processing devices. In addition, the various aspects, processes, and actions may be performed automatically or algorithmically by the computer system according to a program running on the computer system.
While various aspects, processes, actions and systems have been described as being included in the embodiments discussed, the various aspects, processes, actions, and system can be practiced with certain modification. For example, the sequential order of the various aspects, processes, and actions may be modified. In addition, certain aspects, processes, and actions may be omitted, and other aspects, processes, and actions may be added.