Modeling at more than one level of resolution
First Claim
1. A method for modeling one or more physical objects on a computer system having a processor, a memory, a persistent storage system, at least one input device, and at least one output device, the method and a model being stored on a computer-readable media, the method comprising:
- representing the model at multiple levels of resolution wherein a first surface of the model is represented at multiple levels of resolution, the first surface comprising zero or more zero-cells, zero or more one-cells and one or more two cells, including the steps of;
partitioning the first surface with one or more boundaries, each level of resolution having a subset of the boundaries;
partitioning the first surface into ni nodes at resolution level-i using the level-i subset of boundaries;
associating each level-i+1 node with a unique level-i node;
associating with each level-i node the level-i+1 nodes associated to the node;
associating with each level-i node a subset of vertices that are critical at resolution level i;
designating each node at resolution level d a leaf node;
associating each simplex to a unique leaf node; and
associating with each leaf node the simplices associated to that leaf node; and
wherein each node except the leaf nodes has a subtree, further comprising splitting the original tree into new trees and associating each new tree with a new cell;
presenting the model to the at least one output device; and
performing an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces bound said volume of the model, determining the surfaces that lie within a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, computer system and computer program are disclosed for representing a first surface at multiple levels of resolution. The first surface is partitioned into nodes with one or more boundaries, each level of resolution having a subset of the boundaries. A second surface may be classified against the first surface. Surfaces and the model may be decimated. Portions of the surfaces may be loaded from persistent memory on demand and removed when no longer required.
233 Citations
172 Claims
-
1. A method for modeling one or more physical objects on a computer system having a processor, a memory, a persistent storage system, at least one input device, and at least one output device, the method and a model being stored on a computer-readable media, the method comprising:
-
representing the model at multiple levels of resolution wherein a first surface of the model is represented at multiple levels of resolution, the first surface comprising zero or more zero-cells, zero or more one-cells and one or more two cells, including the steps of;
partitioning the first surface with one or more boundaries, each level of resolution having a subset of the boundaries;
partitioning the first surface into ni nodes at resolution level-i using the level-i subset of boundaries;
associating each level-i+1 node with a unique level-i node;
associating with each level-i node the level-i+1 nodes associated to the node;
associating with each level-i node a subset of vertices that are critical at resolution level i;
designating each node at resolution level d a leaf node;
associating each simplex to a unique leaf node; and
associating with each leaf node the simplices associated to that leafnode; and
wherein each node except the leaf nodes has a subtree, further comprising splitting the original tree into new trees and associating each new tree with a new cell;
presenting the model to the at least one output device; and
performing an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces bound said volume of the model, determining the surfaces that lie within a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 15, 16, 17, 18, 21, 22)
associating with a level-i node the list of simplices which is the union of all simplices associated with the level-i+1 nodes associated to the level-i node.
-
-
3. The method of claim 2 further comprising assigning the subset of boundaries for each node the boundary of the union of the simplices associated with that node.
-
4. The method of claim 3 wherein the nodes form an original tree and each node is assigned a unique key.
-
5. The method of claim 4 further comprising:
assigning to each vertex in a leaf node the key corresponding to that leaf node.
-
6. The method of claim 5 further comprising:
storing the representation of a second surface in the computer-readable media, the second surface having nodes, leaf nodes, vertices, critical vertices and simplices.
-
7. The method of claim 6 further comprising:
-
determining which leaf nodes of the first surface intersect the leaf nodes of the second surface;
determining the intersecting simplices from the first and second surfaces from the simplices associated to the intersecting leaf nodes.
-
-
8. The method of claim 5, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising:
-
building a list of critical vertices from the tree nodes of the complete node front;
removing from the list those vertices identified to one- or zero-cell vertices;
adding to the list all zero-cell vertices from the model which lie in the first surface;
adding to the list the defined collection of one-cell vertices;
recording the collection of one-cell edges; and
tessellating the surface to respect the list of vertices and the recorded one-cell edges.
-
-
9. The method of claim 8 further comprising:
requiring the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
10. The method of claim 1 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
14. The method of claim 1 further comprising:
storing for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
15. The method of claim 14 wherein storing the list of critical vertices comprises:
-
storing a vertex descriptor for each vertex;
storing a parameter value for each vertex; and
storing an image value for each vertex.
-
-
16. The method of claim 15 further comprising loading on demand from persistent storage into memory that portion of the first surface required and removing from memory that portion of the first surface not required.
-
17. The method of claim 16 wherein a tree node is loaded from persistent storage on demand and is removed from memory when no longer required.
-
18. The method of claim 17 wherein the simplices associated with a tree leaf node are loaded from persistent storage on demand and removed from memory when no longer required.
-
21. The method of claim 1, further comprising filling a hole in the first surface with a tile.
-
22. The method of claim 21 further comprising parameterizing the first surface, wherein the first surface has one or more terminating contours and is tessellated into triangles, wherein parameterizing comprises
repeating until reaching all terminating contours and all triangles have been processed: -
if an annulus of triangles around the boundary of the remaining triangles of the first surface with the hole filled cannot be identified because of an obstruction;
refining the obstruction by adding exterior edges until the obstruction is absorbed into the annulus;
constructing a parameterization of the annulus.
-
-
11. A method for modeling one or more physical objects on a computer having a processor, a memory, a persistent storage system, at least one input device, and at least one output device, the method and a model being stored on a computer-readable media, the method comprising:
-
representing the model at multiple levels of resolution wherein a first surface of the model is represented at multiple levels of resolution, the first surface comprising zero or more zero-cells, zero or more one-cells and one or more two cells, including the steps of;
partitioning the first surface with one or more boundaries, each level of resolution having a subset of the boundaries;
wherein each node except the leaf nodes has a subtree, further comprising splitting the original tree into new trees and associating each new tree with a new cell; and
performing an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces bound said volume of the model, determining the surfaces that lie within a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (12, 13)
splitting the simplices of the first surface along the intersection curve;
forming new simplices by tessellating the split simplices to respect the macro-topology of one-cells and zero-cells passing through the original simplices;
building a new tree for each new cell;
assigning each new simplex to the leaf node of the tree created for the new cell to the which the new simplex belongs;
for each leaf node of each new tree, migrating each simplex in the original tree which is connected to a new simplex in the new tree leaf node and which lies in the same tree leaf node as the new simplex;
determining the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
determining the coarsest level node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
19. A method for modeling one or more physical objects on a computer system having a processor, a memory, a persistent storage system, at least one input device, and at least one output device, the method and a model being stored on a computer-readable media, the method representing the model on one of the output devices, the method comprising:
-
representing a first surface at multiple levels of resolution, the first surface comprising zero or more zero-cells, zero or more one-cells and one or more two cells, including the steps of;
partitioning the first surface with one or more boundaries, each level of resolution having a subset of the boundaries; and
parameterizing the first surface, wherein the first surface has one or more terminating contours and is tessellated into triangles, wherein parameterizing comprises if the first surface is not of Euler Characteristic 1;
cutting the first surface into patches, each patch being of Euler Characteristic 1; and
perform an operation using the model as input, the operation selected from the set including rendering the first surface, displaying the first surface, displaying at least one aspect of the first surface, displaying the topology of the first surface with respect to other surfaces, determining whether the surface bounds a volume and displaying an indication of the surface which bounds said volume, determining whether the surface lies within a volume and displaying an indication of the surface which bounds said volume, determining fluid flow between compartments of a model which the first surface is a part of, and analyzing geological properties of a geological formation modeled by the first surface. - View Dependent Claims (20)
repeating until reaching all terminating contours and all triangles have been processed: if an annulus of triangles around the boundary of the remaining triangles in a patch cannot be identified because of an obstruction;
refining the obstruction by adding exterior edges until the obstruction is absorbed into the annulus;
constructing a parameterization of the annulus.
-
-
23. A computer system for modeling one or more physical objects on a computer system having a processor, a data storage system, at least one input device, and at least one output device, the first surface being stored on the data storage system, the computer system comprising:
-
means for partitioning the first surface with one or more boundaries, each level of resolution having a subset of the boundaries;
means for partitioning the first surface into ni nodes at resolution level-i using the level-i subset of boundaries;
means for associating each level-i+1 node with a unique level-i node;
means for associating with each level-i node the level-i+1 nodes associated to the node;
means for associating with each level-i node a subset of vertices that are critical at resolution level i;
means for designating each node at resolution level d a leaf node;
means for associating each simplex to a unique leaf node;
means for associating with each leaf node the simplices associated to that leaf node;
wherein each node except the leaf nodes has a subtree, further comprising means for splitting the original tree into new trees and associating each new tree with a new cell; and
means for performing an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces bound said volume of the model, determining the surfaces that lie within a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 37, 38, 39, 40, 41, 42, 43, 44)
if the first surface is not of Euler Characteristic 1: means for cutting the first surface into patches, each patch being of Euler Characteristic 1.
-
-
25. The computer system of claim 24, wherein the means for parameterizing comprises
means for repeating until reaching all terminating contours and all triangles have been processed: -
if an annulus of triangles around the boundary of the remaining triangles in a patch cannot be identified because of an obstruction;
means for refining the obstruction by adding exterior edges until the obstruction is absorbed into the annulus;
means for constructing a parameterization of the annulus.
-
-
26. The computer system of claim 23, further comprising
means for filling a hole in the first surface with a tile. -
27. The computer system of claim 23 further comprising:
means for associating with a level-i node the list of simplices which is the union of all simplices associated with the level-i+1 nodes associated to the level-i node.
-
28. The computer system of claim 27 further comprising means for assigning the subset of boundaries for each node the boundary of the union of the simplices associated with that node.
-
29. The computer system of claim 28 wherein the nodes form an original tree and each node is assigned a unique key.
-
30. The computer system of claim 29 further comprising:
means for assigning to each vertex in a leaf node the key corresponding to that leaf node.
-
31. The computer system of claim 30 further comprising:
means for storing the representation of a second surface in the computer-readable media, the second surface having nodes, leaf nodes, vertices, critical vertices and simplices.
-
32. The computer system of claim 31 further comprising:
-
means for determining which leaf nodes of the first surface intersect the leaf nodes of the second surface;
means for determining the intersecting simplices from the first and second surfaces from the simplices associated to the intersecting leaf nodes.
-
-
36. The computer system of claim 30, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising:
-
means for building a list of critical vertices from the tree nodes of the complete node front;
means for removing from the list those vertices identified to one- or zero-cell vertices;
means for adding to the list all zero-cell vertices from the model which lie in the first surface;
means for adding to the list the defined collection of one-cell vertices;
means for recording the collection of one-cell edges; and
means for tessellating the surface to respect the list of vertices and the recorded one-cell edges.
-
-
37. The computer system of claim 36 further comprising:
means for requiring the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
38. The computer system of claim 23 further comprising:
means for maintaining in a persistent storage a geometrical representation of the first surface.
-
39. The computer system of claim 23 further comprising:
means for storing for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
40. The computer system of claim 39 wherein the means for storing the list of critical vertices comprises:
-
means for storing a vertex descriptor for each vertex, means for storing a parameter value for each vertex, and means for storing an image value for each vertex.
-
-
41. The computer system of claim 40 further comprising means for loading on demand from persistent storage into memory that portion of the first surface required and means for removing from memory that portion of the first surface not required.
-
42. The computer system of claim 41 wherein the means for loading loads a tree node from persistent storage on demand and the means for removing removes a tree node from memory when it is no longer required.
-
43. The computer system of claim 42 wherein the means for loading loads simplices associated with a tree leaf node from persistent storage on demand and the means for removing removes simplices from memory when they are no longer required.
-
44. The computer system of claim 23, wherein the means for parameterizing comprises
means for repeating until reaching all terminating contours and all triangles have been processed: -
if an annulus of triangles around the boundary of the remaining triangles of the first surface with the hole filled cannot be identified because of an obstruction;
means for refining the obstruction by adding exterior edges until the obstruction is absorbed into the annulus;
means for constructing a parameterization of the annulus.
-
-
33. A computer system for modeling one or more physical objects on a computer system having a processor, a data storage system, at least one input device, and at least one output device, the first surface being stored on the data storage system, the computer system comprising:
-
means for partitioning the first surface with one or more boundaries, each level of resolution having a subset of the boundaries;
means for splitting the original tree into new trees and associating each new tree with a new cell; and
means for performing an operation using the first surface as input, the operation selected from the set including rendering the first surface, displaying the first surface, displaying at least one aspect of the first surface, displaying the topology of the first surface with respect to other surfaces, determining whether the first surface bound a volume, determining the surfaces that lie within a volume of the model and displaying an indication of which surfaces bound said volume of the model, determining fluid flow between compartments of the model and displaying an indication of which surfaces bound said volume of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (34, 35)
means for splitting the simplices of the first surface along the intersection curve;
means for forming new simplices by tessellating the split simplices to respect the macro-topology of one-cells and zero-cells passing through the original simplices;
means for building a new tree for each new cell;
means for assigning each new simplex to the leaf node of the tree created for the new cell to the which the new simplex belongs;
for each leaf node of each new tree, means for migrating each simplex in the original tree which is connected to a new simplex in the new tree leaf node and which lies in the same tree leaf node as the new simplex;
means for determining the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
means for determining the coarsest level node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
45. A computer program, residing on a computer-readable medium, comprising instructions for causing a computer, comprising a processor, a data storage system, at least one input device, and at least one output device, to model one ore more physical objects, the computer program comprising instructions for causing the computer to:
-
represent a first surface at multiple levels of resolution, the first surface comprising zero or more zero-cells, zero or more one-cells and one or more two cells, by;
partition the first surface with one or more boundaries, each level of resolution having a subset of the boundaries;
partition the first surface into ni nodes at resolution level-i using the level-i subset of boundaries;
associate each level-i+1 node with a unique level-i node;
associate with each level-i node the level-i+1 nodes associated to the node;
associate with each level-i node a subset of vertices that are critical at resolution level i;
designate each node at resolution level d a leaf node;
associate each simplex to a unique leaf node;
associate with each leaf node the simplices associated to that leaf node;
associate a subtree with each node except the leaf nodes; and
cause the computer to split the original tree into new trees and to associate each new tree with a new cell; and
perform an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining the surfaces that lie within a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 58, 59, 60, 66)
if the first surface is not of Euler Characteristic 1, instructions for causing the computer to: cut the first surface into patches, each patch being of Euler Characteristic 1.
-
-
47. The computer program of claim 46 wherein the instructions for causing the computer to parameterize the first surface comprise
instructions for causing the computer to repeat, until reaching all terminating contours and all triangles have been processed: -
if an annulus of triangles around the boundary of the remaining triangles in a patch cannot be identified because of an obstruction;
instructions for causing the computer to refine the obstruction by adding exterior edges until the obstruction is absorbed into the annulus;
instructions for causing the computer to construct a parameterization of the annulus.
-
-
48. The computer program of claim 45, further comprising instructions for causing the computer to
fill a hole in the first surface with a tile. -
49. The computer program of claim 45, further comprising instructions for causing the computer to:
associate with a level-i node the list of simplices which is the union of all simplices associated with the level-i+1 nodes associated to the level-i node.
-
50. The computer program of claim 49 further comprising instructions for causing the computer to assign the subset of boundaries for each node the boundary of the union of the simplices associated with that node.
-
51. The computer program of claim 50 wherein the nodes form an original tree and each node is assigned a unique key.
-
52. The computer program of claim 51 further comprising instructions for causing the computer to:
assign to each vertex in a leaf node the key corresponding to that leaf node.
-
53. The computer program of claim 52 further comprising instructions for causing the computer to:
store the representation of a second surface in the computer-readable media, the second surface having nodes, leaf nodes, vertices, critical vertices and simplices.
-
54. The computer program of claim 53 further comprising instructions for causing the computer to:
-
determine which leaf nodes of the first surface intersect the leaf nodes of the second surface; and
determine the intersecting simplices from the first and second surfaces from the simplices associated to the intersecting leaf nodes.
-
-
58. The computer program of claim 52, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising instructions for causing the computer to:
-
build a list of critical vertices from the tree nodes of the complete node front;
remove from the list those vertices identified to one- or zero-cell vertices;
add to the list all zero-cell vertices from the model which lie in the first surface;
add to the list the defined collection of one-cell vertices;
record the collection of one-cell edges; and
tessellate the surface to respect the list of vertices and the recorded one-cell edges.
-
-
59. The computer program of claim 58 further comprising instructions for causing the computer to:
require the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
60. The computer program of claim 45 further comprising instructions for causing the computer to:
maintain in a persistent storage a geometrical representation of the first surface.
-
66. The computer program of claim 48 wherein the instructions for causing the computer to parameterize the first surface comprise
instructions for causing the computer to repeat, until reaching all terminating contours and all triangles have been processed: -
if an annulus of triangles around the boundary of the remaining triangles of the first surface with the hole filled cannot be identified because of an obstruction;
instructions for causing the computer to refine the obstruction by adding exterior edges until the obstruction is absorbed into the annulus;
instructions for causing the computer to construct a parameterization of the annulus.
-
-
55. A computer program, residing on a computer-readable medium, comprising instructions for causing a computer, comprising a processor, a data storage system, at least one input device, and at least one output device, to model one or more physical objects, the computer program comprising instructions for causing the computer to:
-
represent a first surface at multiple levels of resolution, the first surface comprising zero or more zero-cells, zero or more one-cells and one or more two cells, by instructions to;
partition the first surface with one or more boundaries, each level of resolution having a subset of the boundaries; and
associate a subtree with each node except the leaf nodes split the original tree into new trees and to associate each new tree with a new cell; and
perform an operation using the model as input, the operation selected from the set including rendering the first surface, displaying the first surface, displaying at least one aspect of the first surface, displaying the topology of the first surface with respect to other surfaces, determining whether the surface bounds a volume and displaying an indication of which surfaces bound said volume, determining whether the surface lies within a volume and displaying an indication of which surfaces bound said volume, determining fluid flow between compartments of a model which the first surface is a part of, and analyzing geological properties of a geological formation modeled by the first surface. - View Dependent Claims (56, 57)
split the simplices of the first surface along the intersection curve;
form new simplices by tessellating the split simplices to respect the macro-topology of one-cells and zero-cells passing through the original simplices;
build a new tree for each new cell;
assign each new simplex to the leaf node of the tree created for the new cell to the which the new simplex belongs;
for each leaf node of each new tree, migrate each simplex in the original tree which is connected to a new simplex in the new tree leaf node and which lies in the same tree leaf node as the new simplex;
determine the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
determine the coarsest level node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrate that node to the new tree.
-
-
61. The computer program of claim further comprising instructions for causing the computer to:
-
store for each node a bounding box on a persistent storage device, and store for each node a list of critical vertices associated with that node on the persistent storage device. - View Dependent Claims (62, 63, 64, 65)
store a vertex descriptor for each vertex, store a parameter value for each vertex, and store an image value for each vertex.
-
-
63. The computer program of claim 62 further comprising instructions for causing the computer to load on demand from persistent storage into memory that portion of the first surface required and remove from memory that portion of the first surface not required.
-
64. The computer program of claim 63 wherein the computer program causes a tree node to be loaded from persistent storage on demand and to be removed from memory when no longer required.
-
65. The computer program of claim 64 wherein the computer program causes simplices associated with a tree leaf node to be loaded from persistent storage on demand and removed from memory when no longer required.
-
67. A method of constructing a geometric model, having a plurality of surfaces, on a computer having a processor, a memory, a persistent storage system, at least one input device, and at least one output device, comprising:
-
representing each surface of the model at at least one level of resolution;
representing a first surface at multiple levels of resolution;
using at least one operation, consisting of one or more Boolean operations, to classify the first surface into the model; and
performing an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces bound said volume of the model, determining the surfaces that lie within a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87)
decimating the model while preserving topology of the model.
-
-
69. The method of claim 68, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising:
-
building a list of critical vertices from the tree nodes of the complete node front;
removing from the list those vertices identified to one- or zero-cell vertices;
adding to the list all zero-cell vertices from the model which lie in the first surface;
adding to the list the defined collection of one-cell vertices;
recording the collection of one-cell edges; and
tessellating the surface to respect the list of vertices and the recorded one-cell edges.
-
-
70. The method of claim 69 further comprising:
-
determining a subset of vertices on the boundary of the first surface which are also on the boundary of the second surface;
determining a subset of vertices on the boundary of the second surface which are also on the boundary of the first surface; and
requiring the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
-
71. The method of claim 70 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
72. The method of claim 71 further comprising using a multiresolution representation to partially load the model.
-
73. The method of claim 67 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
74. The method of claim 73 further comprising loading on demand from persistent storage into memory that portion of the first surface required and removing from memory that portion of the first surface not required.
-
75. The method of claim 68 further comprising:
-
storing for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
-
76. The method of claim 70 wherein a tree node is loaded from persistent storage on demand and is removed from memory when no longer required.
-
77. The method of claim 67 further comprising using a multiresolution representation to partially load the model.
-
78. The method of claim 67, wherein the multiresolution representation is a tree having multiple levels of nodes and the first surface is a collection of triangles, the method further comprising:
-
associating with each level-i node a subset of vertices that are critical at resolution level i;
associating with each node a unique key;
associating each triangle to a unique leaf node;
associating with each leaf node the triangles associated to that leaf node; and
associating with a level-i node the list of triangles which is the union of all triangles associated with the level-i+1 nodes associated to the level-i node.
-
-
79. The method of claim 78 wherein the triangles associated with a tree leaf node are loaded from persistent storage on demand and removed from memory when no longer required.
-
80. The method of claim 67, further comprising:
-
storing a grid representation of the first surface, the grid representation being made up of grid cells;
forming a mesh representation of a portion of the first surface by triangulating a subset of the grid cells; and
inserting the first surface into the model.
-
-
81. The method of claim 67 further characterized by performing at least one operation from the set traversing the multiresolution representation, performing connected component analysis, incrementally updating the model.
-
82. The method of claim 81 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
83. The method of claim 82 further comprising using a multiresolution representation to partially load the model.
-
84. The method of claim 78 further comprising:
associating to each vertex in a leaf node the key corresponding to that leaf node.
-
85. The method of claim 84 further comprising:
-
storing a representation of a second surface in the persistent storage system, the second surface having nodes, leaf nodes, vertices, critical vertices and triangles;
using one or more Boolean operations to classify the second surface into the model.
-
-
86. The method of claim 85 further comprising:
-
determining which leaf nodes of the first surface intersect the leaf nodes of the second surface;
determining a set of intersecting triangles from the first and second surfaces from the triangles associated to the intersecting leaf nodes;
determining a complete node front that contains all the leaf nodes that have intersecting triangles.
-
-
87. The method of claim 86, the first surface having a macro-topology comprising zero or more zero-cells, zero or more one-cells, and one or more two-cells, wherein a zero-cell is a point, a one-cell is an edge, and a two-cell is a surface, the method further comprising:
-
splitting the triangles of the first surface along the intersection curve;
forming new triangles by tessellating the split triangles to respect the macro-topology of one-cells and zero-cells passing through the original triangles;
building a new tree for each new cell;
assigning each new triangle to the leaf node of the tree created for the new cell to which the new triangle belongs;
for each leaf node of each new tree, migrating each triangle in the original tree which is connected to a new triangle in the new tree leaf node and which lies in the same tree leaf node as the new triangle;
determining the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
determining a node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
88. A computer system operable to construct a geometric model, having a plurality of surfaces each represented at at least one level of resolution, the computer system comprising:
-
a processor, a memory, a persistent storage system, at least one input device, at least one output device, logic means for representing a first surface at multiple levels of resolution, and a logic means for using at least one operation, having at least one Boolean operation, to classify the first surface into the model; and
a means for performing an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model and displaying an indication of which surfaces bound said volume of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining the surfaces that lie within a volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104)
logic means for decimating the model while preserving topology of the model.
-
-
90. The computer system of claim 88 further characterized by having an operation selected from the set including traversing the multiresolution representation, performing connected component analysis, and incrementally updating the model.
-
91. The computer system of claim 90 further comprising logic means for using a multiresolution representation to partially load the model.
-
92. The computer system of claim 89, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising:
-
logic means for building a list of critical vertices from the tree nodes of the complete node front;
logic means for removing from the list those vertices identified to one- or zero-cell vertices;
logic means for adding to the list all zero-cell vertices from the model which lie in the first surface;
logic means for adding to the list the defined collection of one-cell vertices;
logic means for recording the collection of one-cell edges; and
logic means for tessellating the surface to respect the list of vertices and the recorded one-cell edges.
-
-
93. The computer system of claim 92 further comprising:
-
logic means for determining a subset of vertices on the boundary of the first surface which are also on the boundary of the second surface;
logic means for determining a subset of vertices on the boundary of the second surface which are also on the boundary of the first surface; and
logic means for requiring the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
-
94. The computer system of claim 89 further comprising:
-
logic means for storing a representation of a second surface in the computer-readable media, the second surface having nodes, leaf nodes, vertices, critical vertices and triangles;
logic means for performing one or more Boolean operations to classify the second surface into the model.
-
-
95. The computer system of claim 94 further comprising:
-
logic means for determining which leaf nodes of the first surface intersect the leaf nodes of the second surface;
logic means for determining a set of intersecting triangles from the first and second surfaces from the triangles associated to the intersecting leaf nodes;
logic means for determining a complete node front that contains all the leaf nodes that have intersecting triangles.
-
-
96. The computer system of claim 95, the first surface having a macro-topology comprising zero or more zero-cells, zero or more one-cells, and one or more two-cells, wherein a zero-cell is a point, a one-cell is an edge, and a two-cell is a surface, the computer system further comprising:
-
logic means for splitting the triangles of the first surface along the intersection curve;
logic means for forming new triangles by tessellating the split triangles to respect the macro-topology of one-cells and zero-cells passing through the original triangles;
logic means for building a new tree for each new cell;
logic means for assigning each new triangle to the leaf node of the tree created for the new cell to which the new triangle belongs;
logic means operable to for each leaf node of each new tree, migrating each triangle in the original tree which is connected to a new triangle in the new tree leaf node and which lies in the same tree leaf node as the new triangle;
logic means for determining the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
logic means for determining a node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
97. The computer system of claim 88, wherein the multiresolution representation is a tree having multiple levels of nodes and the first surface is a collection of triangles, the computer system further comprising:
-
logic means for associating with each level-i node a subset of vertices that are critical at resolution level i;
logic means for associating with each node a unique key;
logic means for associating each triangle to a unique leaf node;
logic means for associating with each leaf node the triangles associated to that leaf node; and
logic means for associating with a level-i node the list of triangles which is the union of all triangles associated with the level-i+1 nodes associated to the level-i node.
-
-
98. The computer system of claim 97 further comprising:
logic means for associating to each vertex in a leaf node the key corresponding to that leaf node.
-
99. The computer system of claim 97 further comprising logic means for loading the triangles associated with a tree leaf node from persistent storage on demand and logic means for removing the triangles associated with a tree leaf node from memory when no longer required.
-
100. The computer system of claim 88 further comprising:
logic means for maintaining in a persistent storage a geometrical representation of the first surface.
-
101. The computer system of claim 100 further comprising logic means for loading on demand from persistent storage into memory that portion of the first surface required and removing from memory that portion of the first surface not required.
-
102. The computer system of claim 100 logic means for loading a tree node from persistent storage on demand and logic means for removing a tree node from memory when no longer required.
-
103. The computer system of claim 88 further comprising:
logic means for storing for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
104. The computer system of claim 88, further comprising:
-
logic means for storing a grid representation of the first surface, the grid representation being made up of grid cells;
logic means for forming a mesh representation of a portion of the first surface by triangulating a subset of the grid cells; and
logic means for inserting the first surface into the model.
-
-
105. A computer readable medium comprising:
-
instructions executable by a computer, wherein the instructions direct the computer to construct a geometric model, having a plurality of surfaces each modeled at least one level of resolution, on a computer having a processor, a memory, a persistent storage system, at least one input device, at least one output device, and instructions to cause a first surface to be represented at multiple levels of resolution; and
instructions to use at least one Boolean operation to classify the first surface into the model; and
instructions to perform an operation using the model as input, the operation selected from the set including rendering the model, displaying the model, displaying at least one aspect of the model, displaying the topology of the model and displaying an indication of which surfaces bound said volume of the model, determining the surfaces that bound a volume of the model and displaying an indication of which surfaces lie within said volume of the model, determining the surfaces that lie within a volume of the model, determining fluid flow between compartments of the model, and analyzing geological properties of a geological formation modeled by the model. - View Dependent Claims (106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119)
maintaining in a persistent storage a geometrical representation of the first surface.
-
-
107. The computer readable medium of claim 106 further comprising:
instructions for loading on demand from persistent storage into memory that portion of the first surface required and removing from memory that portion of the first surface not required.
-
108. The computer readable medium of claim 106 comprising:
instructions selected from the set loading a tree node from persistent storage on demand, removing a tree node from memory when the tree node is no longer required, loading the triangles associated with a tree leaf node from persistent storage on demand, and removing a tree leaf node from memory when the tree leaf node is no longer required.
-
109. The computer readable medium of claim 105 further comprising:
instructions for decimating the model while preserving topology of the model.
-
110. The computer readable medium of claim 109, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising instructions to:
-
build a list of critical vertices from the tree nodes of the complete node front;
remove from the list those vertices identified to one- or zero-cell vertices;
add to the list all zero-cell vertices from the model which lie in the first surface;
add to the list the defined collection of one-cell vertices;
record the collection of one-cell edges; and
tessellate the surface to respect the list of vertices and the recorded one-cell edges.
-
-
111. The computer readable medium of claim 110 further comprising instructions to cause the computer to:
-
determine a subset of vertices on the boundary of the first surface which are also on the boundary of the second surface;
determine a subset of vertices on the boundary of the second surface which are also on the boundary of the first surface; and
require the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
-
112. The computer readable medium of claim 109 further comprising instructions to:
store for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
113. The computer readable medium of claim 105 further characterized by having an operation selected from the set including traversing the multiresolution representation, performing connected component analysis, incrementally updating the model.
-
114. The computer readable medium of claim 105 further comprising using a multiresolution representation to partially load the model.
-
115. The computer readable medium of claim 105, wherein the multiresolution representation is a tree having multiple levels of nodes and the first surface is a collection of triangles, the computer readable medium further comprises instructions operable to cause the computer to:
-
associate with each level-i node a subset of vertices that are critical at resolution level i;
associate with each node a unique key;
associate each triangle to a unique leaf node;
associate with each leaf node the triangles associated to that leaf node; and
associate with a level-i node the list of triangles which is the union of all triangles associated with the level-i+1 nodes associated to the level-i node.
-
-
116. The computer readable medium of claim 115 further comprising instructions to cause the computer to:
-
determine which leaf nodes of the first surface intersect the leaf nodes of the second surface;
determine a set of intersecting triangles from the first and second surfaces from the triangles associated to the intersecting leaf nodes;
determine a complete node front that contains all the leaf nodes that have intersecting triangles.
-
-
117. The computer readable medium of claim 116, the first surface having a macro-topology comprising zero or more zero-cells, zero or more one-cells, and one or more two-cells, wherein a zero-cell is a point, a one-cell is an edge, and a two-cell is a surface, further comprising instructions to cause the computer to:
-
split the triangles of the first surface along the intersection curve;
form new triangles by tessellating the split triangles to respect the macro-topology of one-cells and zero-cells passing through the original triangles;
build a new tree for each new cell;
assign each new triangle to the leaf node of the tree created for the new cell to which the new triangle belongs;
for each leaf node of each new tree, migrate each triangle in the original tree which is connected to a new triangle in the new tree leaf node and which lies in the same tree leaf node as the new triangle;
determine the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
determine a level node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
118. The computer readable medium of claim 105 further comprising instructions to cause the computer to:
-
store a representation of a second surface in the computer-readable media, the second surface having nodes, leaf nodes, vertices, critical vertices and triangles;
use one or more Boolean operations to classify the second surface into the model.
-
-
119. The computer readable medium of claim 105, further comprising instructions to cause the computer to:
-
store a grid representation of the first surface, the grid representation being made up of grid cells;
form a mesh representation of a portion of the first surface by triangulating a subset of the grid cells; and
insert the first surface into the model.
-
-
120. A method of constructing a geometric model, having a plurality of surfaces, on a computer having a processor, a memory, a persistent storage system, at least one input device, and at least one output device, comprising:
-
representing each surface of the model at at least one level of resolution, representing a first surface at multiple levels of resolution;
using at least one operation, consisting of one or more Boolean operations, to classify the first surface into the model; and
performing a display operation on the model to present at least one aspect of the model to a user. - View Dependent Claims (121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140)
decimating the model while preserving topology of the model.
-
-
122. The method of claim 121, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising:
-
building a list of critical vertices from the tree nodes of the complete node front;
removing from the list those vertices identified to one- or zero-cell vertices;
adding to the list all zero-cell vertices from the model which lie in the first surface;
adding to the list the defined collection of one-cell vertices;
recording the collection of one-cell edges; and
tessellating the surface to respect the list of vertices and the recorded one-cell edges.
-
-
123. The method of claim 122 further comprising:
-
determining a subset of vertices on the boundary of the first surface which are also on the boundary of the second surface;
determining a subset of vertices on the boundary of the second surface which are also on the boundary of the first surface; and
requiring the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
-
124. The method of claim 123 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
125. The method of claim 124 further comprising using a multiresolption representation to partially load the model.
-
126. The method of claim 121 further comprising:
-
storing for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
-
127. The method of claim 123 wherein a tree node is loaded from persistent storage on demand and is removed from memory when no longer required.
-
128. The method of claim 120, wherein the multiresolution representation is a tree having multiple levels of nodes and the first surface is a collection of triangles, the method further comprising:
-
associating with each level-i node a subset of vertices that are critical at resolution level i;
associating with each node a unique key;
associating each triangle to a unique leaf node;
associating with each leaf node the triangles associated to that leaf node; and
associating with a level-i node the list of triangles which is the union of all triangles associated with the level-i+1 nodes associated to the level-i node.
-
-
129. The method of claim 128 wherein the triangles associated with a tree leaf node are loaded from persistent storage on demand and removed from memory when no longer required.
-
130. The method of claim 128 further comprising:
associating to each vertex in a leaf node the key corresponding to that leaf node.
-
131. The method of claim 130 further comprising:
-
storing a representation of a second surface in the persistent storage system, the second surface having nodes, leaf nodes, vertices, critical vertices and triangles;
using one or more Boolean operations to classify the second surface into the model.
-
-
132. The method of claim 131 further comprising:
-
determining which leaf nodes of the first surface intersect the leaf nodes of the second surface;
determining a set of intersecting triangles from the first and second surfaces from the triangles associated to the intersecting leaf nodes;
determining a complete node front that contains all the leaf nodes that have intersecting triangles.
-
-
133. The method of claim 132, the first surface having a macro-topology comprising zero or more zero-cells, zero or more one-cells, and one or more two-cells, wherein a zero-cell is a point, a one-cell is an edge, and a two-cell is a surface, the method further comprising:
-
splitting the triangles of the first surface along the intersection curve;
forming new triangles by tessellating the split triangles to respect the macro-topology of one-cells and zero-cells passing through the original triangles;
building a new tree for each new cell;
assigning each new triangle to the leaf node of the tree created for the new cell to which the new triangle belongs;
for each leaf node of each new tree, migrating each triangle in the original tree which is connected to a new triangle in the new tree leaf node and which lies in the same tree leaf node as the new triangle;
determining the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
determining a node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
134. The method of claim 120 further characterized by performing at least one operation from the set traversing the multiresolution representation, performing connected component analysis, incrementally updating the model.
-
135. The method of claim 134 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
136. The method of claim 135 further comprising using a multiresolution representation to partially load the model.
-
137. The method of claim 120 further comprising using a multiresolution representation to partially load the model.
-
138. The method of claim 120 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
139. The method of claim 138 further comprising loading on demand from persistent storage into memory that portion of the first surface required and removing from memory that portion of the first surface not required.
-
140. The method of claim 120, further comprising:
-
storing a grid representation of the first surface, the grid representation being made up of grid cells;
forming a mesh representation of a portion of the first surface by triangulating a subset of the grid cells; and
inserting the first surface into the model.
-
-
141. A computer system operable to construct a geometric model, having a plurality of surfaces each represented at at least one level of resolution, the computer system comprising:
-
a processor, a memory, a persistent storage system, at least one input device, at least one output device, logic means for representing a first surface at multiple levels of resolution, and a logic means for using at least one operation, having at least one Boolean operation, to classify the first surface into the model; and
a display logic means for displaying at least one aspect of the model to a user. - View Dependent Claims (142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157)
logic means for decimating the model while preserving topology of the model.
-
-
143. The computer system of claim 142 further comprising:
-
logic means for storing a representation of a second surface in the computer-readable media, the second surface having nodes, leaf nodes, vertices, critical vertices and triangles;
logic means for performing one or more Boolean operations to classify the second surface into the model.
-
-
144. The computer system of claim 143 further comprising:
-
logic means for determining which leaf nodes of the first surface intersect the leaf nodes of the second surface;
logic means for determining a set of intersecting triangles from the first and second surfaces from the triangles associated to the intersecting leaf nodes;
logic means for determining a complete node front that contain s all the leaf nodes that have intersecting triangles.
-
-
145. The computer system of claim 144, the first surface having a macro-topology comprising zero or more zero-cells, zero or more one-cells, and one or more two-cells, wherein a zero-cell is a point, a one-cell is an edge, and a two-cell is a surface, the computer system further comprising:
-
logic means for splitting the triangles of the first surface along the intersection curve;
logic means for forming new triangles by tessellating the split triangles to respect the macro-topology of one-cells and zero-cells passing through the original triangles;
logic means for building a new tree for each new cell;
logic means for assigning each new triangle to the leaf node of the tree created for the new cell to which the new triangle belongs;
logic means operable to for each leaf node of each new tree, migrating each triangle in the original tree which is connected to a new triangle in the new tree leaf node and which lies in the same tree leaf node as the new triangle;
logic means for determining the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
logic means for determining a node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
146. The computer system of claim 142, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising:
-
logic means for building a list of critical vertices from the tree nodes of the complete node front;
logic means for removing from the list those vertices identified to one- or zero-cell vertices;
logic means for adding to the list all zero-cell vertices from the model which lie in the first surface, logic means for adding to the list the defined collection of one-cell vertices;
logic means for recording the collection of one-cell edges; and
logic means for tessellating the surface to respect the list of vertices and the recorded one-cell edges.
-
-
147. The computer system of claim 146 further comprising:
-
logic means for determining a subset of vertices on the boundary of the first surface which are also on the boundary of the second surface;
logic means for determining a subset of vertices on the boundary of the second surface which are also on the boundary of the first surface; and
logic means for requiring the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
-
148. The computer system of claim 141 further characterized by having an operation selected from the set including traversing the multiresolution representation, performing connected component analysis, and incrementally updating the model.
-
149. The computer system of claim 148 further comprising logic means for using a multiresolution representation to partially load the model.
-
150. The computer system of claim 141, wherein the multiresolution representation is a tree having multiple levels of nodes and the first surface is a collection of triangles, the computer system further comprising:
-
logic means for associating with each level-i node a subset of vertices that are critical at resolution level i;
logic means for associating with each node a unique key;
logic means for associating each triangle to a unique leaf node;
logic means for associating with each leaf node the triangles associated to that leaf node; and
logic means for associating with a level-i node the list of triangles which is the union of all triangles associated with the level-i+1 nodes associated to the level-i node.
-
-
151. The computer system of claim 150 further comprising:
logic means for associating to each vertex in a leaf node the key corresponding to that leaf node.
-
152. The computer system of claim 150 further comprising logic means for loading the triangles associated with a tree leaf node from persistent storage on demand and logic means for removing the triangles associated with a tree leaf node from memory when no longer required.
-
153. The computer system of claim 141 further comprising:
logic means for maintaining in a persistent storage a geometrical representation of the first surface.
-
154. The computer system of claim 153 logic means for loading a tree node from persistent storage on demand and logic means for removing a tree node from memory when no longer required.
-
155. The computer system of claim 153 further comprising logic means for loading on demand from persistent storage into memory that portion of the first surface required and removing from memory that portion of the first surface not required.
-
156. The computer system of claim 141 further comprising:
logic means for storing for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
157. The computer system of claim 141, further comprising:
-
logic means for storing a grid representation of the first surface, the grid representation being made up of grid cells;
logic means for forming a mesh representation of a portion of the first surface by triangulating a subset of the grid cells; and
logic means for inserting the first surface into the model.
-
-
158. A computer readable medium comprising instructions executable by a computer, wherein the instructions direct the computer to construct a geometric model, having a plurality of surfaces each modeled at at least one level of resolution, on a computer having a processor, a memory, a persistent storage system, at least one input device, at least one output device, and instructions to cause a first surface to be represented at multiple levels of resolution;
- and
instructions to use at least one Boolean operation to classify the first surface into the model;
to perform a display operation on the model that presents at least one aspect of the model to a user. - View Dependent Claims (159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172)
instructions for decimating the model while preserving topology of the model.
- and
-
160. The computer readable medium of claim 159, wherein a complete node front of the tree of the first surface and a collection of vertices on a boundary of the first surface are defined, further comprising instructions to:
-
build a list of critical vertices from the tree nodes of the complete node front;
remove from the list those vertices identified to one- or zero-cell vertices;
add to the list all zero-cell vertices from the model which lie in the first surface;
add to the list the defined collection of one-cell vertices;
record the collection of one-cell edges; and
tessellate the surface to respect the list of vertices and the recorded one-cell edges.
-
-
161. The computer readable medium of claim 160 further comprising instructions to cause the computer to:
-
determine a subset of vertices on the boundary of the first surface which are also on the boundary of the second surface;
determine a subset of vertices on the boundary of the second surface which are also on the boundary of the first surface; and
require the subset of vertices on the boundary of the first surface which are also on the boundary of the second surface to be the same as the subset of vertices on the boundary of the second surface which are also on the boundary of the first surface.
-
-
162. The computer readable medium of claim 159 further comprising instructions to:
store for each node a bounding box on a persistent storage device, and storing for each node a list of critical vertices associated with that node on the persistent storage device.
-
163. The computer readable medium of claim 158 further characterized by having an operation selected from the set including traversing the multiresolution representation, performing connected component analysis, incrementally updating the model.
-
164. The computer readable medium of claim 158 further comprising using a multiresolution representation to partially load the model.
-
165. The computer readable medium of claim 158, wherein the multiresolution representation is a tree having multiple levels of nodes and the first surface is a collection of triangles, the computer readable medium further comprises instructions operable to cause the computer to:
-
associate with each level-i node a subset of vertices that are critical at resolution level i;
associate with each node a unique key;
associate each triangle to a unique leaf node;
associate with each leaf node the triangles associated to that leaf node; and
associate with a level-i node the list of triangles which is the union of all triangles associated with the level-i+1 nodes associated to the level-i node.
-
-
166. The computer readable medium of claim 165 further comprising instructions to cause the computer to:
-
determine which leaf nodes of the first surface intersect the leaf nodes of the second surface;
determine a set of intersecting triangles from the first and second surfaces from the triangles associated to the intersecting leaf nodes;
determine a complete node front that contains all the leaf nodes that have intersecting triangles.
-
-
167. The computer readable medium of claim 166, the first surface having a macro-topology comprising zero or more zero-cells, zero or more one-cells, and one or more two-cells, wherein a zero-cell is a point, a one-cell is an edge, and a two-cell is a surface, further comprising instructions to cause the computer to:
-
split the triangles of the first surface along the intersection curve;
form new triangles by tessellating the split triangles to respect the macro-topology of one-cells and zero-cells passing through the original triangles;
build a new tree for each new cell;
assign each new triangle to the leaf node of the tree created for the new cell to which the new triangle belongs;
for each leaf node of each new tree, migrate each triangle in the original tree which is connected to a new triangle in the new tree leaf node and which lies in the same tree leaf node as the new triangle;
determine the neighbors of a tree node by finding all the keys of all the critical vertices in the node; and
determine a level node which is an ancestor of a key from the critical vertices in the migrated tree nodes and has not been split or migrated and migrating that node to the new tree.
-
-
168. The computer readable medium of claim 158 further comprising instructions to cause the computer to:
-
store a representation of a second surface in the computer-readable media, the second surface having nodes, leaf nodes, vertices, critical vertices and triangles;
use one or more Boolean operations to classify the second surface into the model.
-
-
169. The computer readable medium of claim 158 further comprising:
maintaining in a persistent storage a geometrical representation of the first surface.
-
170. The computer readable medium of claim 169 further comprising:
instructions for loading on demand from persistent storage into memory that portion of the first surface required and removing from memory that portion of the first surface not required.
-
171. The computer readable medium of claim 169 comprising:
instructions selected from the set loading a tree node from persistent storage on demand, removing a tree node from memory when the tree node is no longer required, loading the triangles associated with a tree leaf node from persistent storage on demand, and removing a tree leaf node from memory when the tree leaf node is no longer required.
-
172. The computer readable medium of claim 158, further comprising instructions to cause the computer to:
-
store a grid representation of the first surface, the grid representation being made up of grid cells;
form a mesh representation of a portion of the first surface by triangulating a subset of the grid cells; and
insert the first surface into the model.
-
Specification