On Algebraic Decoding of Algebraic-Geometric and Cyclic Codes
Algebraic methods for geometric modeling
Transcript of Algebraic methods for geometric modeling
![Page 1: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/1.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Algebraic methods for geometric modeling
Julien Wintz
PhD defense, Sophia-Antipolis, May 5th 2008
Julien Wintz Algebraic methods for geometric modeling
![Page 2: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/2.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Domain
• Solids• Constructive representation• Boundary representation
• Curves and surfaces• Linear representations• Non-linear representations
CSG
• Primitive solids
• Boolean operations
• Rigid motions
B-Rep
• Vertices
• Edges
• Faces
Julien Wintz Algebraic methods for geometric modeling
![Page 3: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/3.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Domain
• Solids• Constructive representation• Boundary representation
• Curves and surfaces• Linear representations• Non-linear representations
Linear representations
• Meshes
• Inaccurate approximation
• Huge amount of data
Non-linear representations
• Parametric or implicit
• Accurate approximation
• Compact
Julien Wintz Algebraic methods for geometric modeling
![Page 4: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/4.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Problem
• Perform boolean operations on curves and surfaces
• Describe resulting shapes by their boundary
Julien Wintz Algebraic methods for geometric modeling
![Page 5: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/5.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Problem
• Perform boolean operations on curves and surfaces
• Describe resulting shapes by their boundary
f1 f2 f3
f4
f5
f6
f7 f8
f9
f10f11 f12
l1
l2
l3
l4 l5
Figure: an arrangement of lines.
Julien Wintz Algebraic methods for geometric modeling
![Page 6: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/6.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Problem
• Perform boolean operations on curves and surfaces
• Describe resulting shapes by their boundary
• Representation difficult to manipulate• Topology• Intersection• Self-intersection
• Need of algebraic tools• Polynomial solving• Algebraic numbers• Resultants
Julien Wintz Algebraic methods for geometric modeling
![Page 7: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/7.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Problem
• Perform boolean operations on curves and surfaces
• Describe resulting shapes by their boundary
• Representation difficult to manipulate• Topology• Intersection• Self-intersection
• Need of algebraic tools• Polynomial solving• Algebraic numbers• Resultants
Julien Wintz Algebraic methods for geometric modeling
![Page 8: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/8.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Previous work
Bibliography
G.E. Collins. Quantifier Elimination for Real Closed Fields by Cylindrical Algebraic Decomposition. 1976.
J.L. Bentley and T.A. Ottmann. Algorithms for reporting and counting geometric intersections. 1979.. . . . . .
L. Gonzalez-Vega and I. Necula. Efficient topology determination of [. . . ] algebraic plane curves. 2002.
V. Milenkovic and E. Sacks. An approximate arrangement algorithm for semi-algebraic curves. 2006.
Iddo Hanniel and Ron Wein. Computation of Arrangements of Bezier Curves. 2007.
Sweep
• Focuses on critical points
• Implies projection
• Non adaptive scheme
• Does not easily extend to higherdimension
Subdivision
• Detects critical points
• Avoids projection
• Adaptive scheme
• Extends easily to higherdimension
Julien Wintz Algebraic methods for geometric modeling
![Page 9: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/9.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Previous work
Bibliography
G.E. Collins. Quantifier Elimination for Real Closed Fields by Cylindrical Algebraic Decomposition. 1976.
J.L. Bentley and T.A. Ottmann. Algorithms for reporting and counting geometric intersections. 1979.. . . . . .
L. Gonzalez-Vega and I. Necula. Efficient topology determination of [. . . ] algebraic plane curves. 2002.
V. Milenkovic and E. Sacks. An approximate arrangement algorithm for semi-algebraic curves. 2006.
Iddo Hanniel and Ron Wein. Computation of Arrangements of Bezier Curves. 2007.
Sweep
• Focuses on critical points
• Implies projection
• Non adaptive scheme
• Does not easily extend to higherdimension
Subdivision
• Detects critical points
• Avoids projection
• Adaptive scheme
• Extends easily to higherdimension
Julien Wintz Algebraic methods for geometric modeling
![Page 10: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/10.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Approach
• Generic algorithm• Many dimensions• Heterogeneous• Static or dynamic• Subdivision scheme
• Abstract algorithm• Generic algorithm produces local problems• Isolation: Subdivision criteria• Solving: Local treatment
Julien Wintz Algebraic methods for geometric modeling
![Page 11: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/11.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Validation
• Specialization for curves• Non singular configurations• Singular configurations
• Specialization for surfaces• 2-dimensional strata• 1-dimensional strata• 0-dimensional strata
• Implementation within Axel
Julien Wintz Algebraic methods for geometric modeling
![Page 12: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/12.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 13: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/13.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 14: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/14.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic incremental randomized dynamic algorithm
generic: works for different natures of objects.
incremental: objects are processed one by one.
randomized: data are inserted in random order.
semi-dynamic: new objects can be inserted.
Julien Wintz Algebraic methods for geometric modeling
![Page 15: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/15.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic incremental randomized dynamic algorithm
generic: works for different natures of objects.
incremental: objects are processed one by one.
randomized: data are inserted in random order.
semi-dynamic: new objects can be inserted.
Julien Wintz Algebraic methods for geometric modeling
![Page 16: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/16.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic incremental randomized dynamic algorithm
generic: works for different natures of objects.
incremental: objects are processed one by one.
randomized: data are inserted in random order.
semi-dynamic: new objects can be inserted.
Julien Wintz Algebraic methods for geometric modeling
![Page 17: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/17.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic incremental randomized dynamic algorithm
generic: works for different natures of objects.
incremental: objects are processed one by one.
randomized: data are inserted in random order.
semi-dynamic: new objects can be inserted.
Julien Wintz Algebraic methods for geometric modeling
![Page 18: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/18.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 19: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/19.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Subdivision
Input: an object oOutput: a list of regionscreate an quadtree Q ;create a list of cells C ;C ← root(Q) ;while C 6= ∅ do
c = pop(C) ;if regular(o, c) thenQ ← topology(o, c) ;
elseC ← subdivide(o, c) ;
end
endreturn fusion(Q) ;
Figure: Regular cells.
Figure: Subdivision algorithm.
Julien Wintz Algebraic methods for geometric modeling
![Page 20: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/20.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Subdivision
The following operations remain to be clarified:
regularity: the specific operation which checks if regions can becomputed from an object within a cell of thesubdivision, i.e. if the object is regular in the cell.
subdivide: the generic operation which subdivides a cell into fourchildren, saving computation effort.
topology: the specific operation which computes regions in aregular cell.
fusion: the generic operation which merges regions stored ineach leave node of the tree.
Julien Wintz Algebraic methods for geometric modeling
![Page 21: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/21.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Subdivision
The following operations remain to be clarified:
regularity: the specific operation which checks if regions can becomputed from an object within a cell of thesubdivision, i.e. if the object is regular in the cell.
subdivide: the generic operation which subdivides a cell into fourchildren, saving computation effort.
topology: the specific operation which computes regions in aregular cell.
fusion: the generic operation which merges regions stored ineach leave node of the tree.
Julien Wintz Algebraic methods for geometric modeling
![Page 22: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/22.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Subdivision
The following operations remain to be clarified:
regularity: the specific operation which checks if regions can becomputed from an object within a cell of thesubdivision, i.e. if the object is regular in the cell.
subdivide: the generic operation which subdivides a cell into fourchildren, saving computation effort.
topology: the specific operation which computes regions in aregular cell.
fusion: the generic operation which merges regions stored ineach leave node of the tree.
Julien Wintz Algebraic methods for geometric modeling
![Page 23: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/23.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Subdivision
The following operations remain to be clarified:
regularity: the specific operation which checks if regions can becomputed from an object within a cell of thesubdivision, i.e. if the object is regular in the cell.
subdivide: the generic operation which subdivides a cell into fourchildren, saving computation effort.
topology: the specific operation which computes regions in aregular cell.
fusion: the generic operation which merges regions stored ineach leave node of the tree.
Julien Wintz Algebraic methods for geometric modeling
![Page 24: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/24.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Subdivision
The following operations remain to be clarified:
regularity: the specific operation which checks if regions can becomputed from an object within a cell of thesubdivision, i.e. if the object is regular in the cell.
subdivide: the generic operation which subdivides a cell into fourchildren, saving computation effort.
topology: the specific operation which computes regions in aregular cell.
fusion: the generic operation which merges regions stored ineach leave node of the tree.
Julien Wintz Algebraic methods for geometric modeling
![Page 25: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/25.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Regularity
Figure: Allowed configurations of a cell of subdivision.
Given the representation of an object:
• compute the intersection of the object with the cell
• define and compute (x|y)-critical points
• define and compute singular points
Julien Wintz Algebraic methods for geometric modeling
![Page 26: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/26.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Subdivide
A subdivision cell
in a quadtree 1. Vertical inheritance 2. Horizontal inheritance
Figure: Inheriting computed information.
Julien Wintz Algebraic methods for geometric modeling
![Page 27: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/27.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Topology
f1
f2
f1
f2
Figure: Generic scheme to compute a region from information on theborder of a subdivision cell.
Julien Wintz Algebraic methods for geometric modeling
![Page 28: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/28.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 29: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/29.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 30: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/30.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 31: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/31.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 32: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/32.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 33: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/33.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 34: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/34.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 35: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/35.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Fusion
Input: a node n of the quadtreeOutput: a list of regionsif isLeaf(n) then
return merge(n) ;elseL1 = fusion(n.ne) ∪fusion(n.nw) ;L2 = fusion(n.se) ∪fusion(n.sw) ;return merge(L1 ∪ L2) ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 36: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/36.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 37: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/37.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
The region segmentation
1
23
4
56
7
8
9
1
2
3
4 56 7
8
9
1 2 3 4 5 6 7 8 9
Figure: Building the region segmentation.
Julien Wintz Algebraic methods for geometric modeling
![Page 38: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/38.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Querying the segmentations
Input: two segmentation nodes n1 and n2
Output: a list of bounding boxescreate a list of bounding boxes L ;if !intersects(n1, n2) then
return L ;endif isLeaf(n1) and isLeaf(n2) then
L � intersect(n1, n2) ;else if isLeaf(n1) and !isLeaf(n2) then
L � query(n1, left(n2)) ;L � query(n1, right(n2)) ;
else if !isLeaf(n1) and isLeaf(n2) thenL � query( left(n1), n2) ;L � query(right(n1), n2) ;
elseL � query(left(n1), left(n2)) ;L � query(left(n1), right(n2)) ;L � query(right(n1), left(n2)) ;L � query(right(n1), right(n2)) ;
return L ;
Figure: The segmentation query.
Julien Wintz Algebraic methods for geometric modeling
![Page 39: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/39.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 40: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/40.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Conflicting regions
......
...... ......
f1 f2
......
Figure: Updating the augmented influence graph.
• Resolved by computing the intersection of conflicting regions
• Append it to the graph, as a child of corresponding nodes
Julien Wintz Algebraic methods for geometric modeling
![Page 41: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/41.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 42: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/42.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 43: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/43.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 44: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/44.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 45: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/45.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 46: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/46.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 47: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/47.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 48: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/48.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 49: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/49.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 50: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/50.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
Julien Wintz Algebraic methods for geometric modeling
![Page 51: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/51.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
A generic boolean operation
• Walk-about on theborder of regions
• Computingintersection points
• Computing navigationinformation
• Computing theresulting region
f1
f2
f1 ∩ f2
Julien Wintz Algebraic methods for geometric modeling
![Page 52: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/52.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Computing regionsLocating conflictsUpdating regions
Demonstration
Julien Wintz Algebraic methods for geometric modeling
![Page 53: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/53.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 54: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/54.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Specialization
Generic algorithm
• Global problem
• Any representation
Specific algorithm
• Local problem
• One representation
Curve Arrangement
Implicit Curve Arrangement Parametric Curve Arrangement Linear Curve Arrangement
Julien Wintz Algebraic methods for geometric modeling
![Page 55: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/55.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Specialization
Characterize the situation:
• Empty cells
• Non-singular cells
• Singular cells
Julien Wintz Algebraic methods for geometric modeling
![Page 56: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/56.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Specialization
Characterize the situation:
• Empty cells
• Non-singular cells
• Singular cells
Julien Wintz Algebraic methods for geometric modeling
![Page 57: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/57.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Specialization
Characterize the situation:
• Empty cells
• Non-singular cells
• Singular cells
Julien Wintz Algebraic methods for geometric modeling
![Page 58: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/58.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Specialization
Characterize the situation:
• Empty cells
• Non-singular cells
• Singular cells
Julien Wintz Algebraic methods for geometric modeling
![Page 59: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/59.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 60: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/60.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Definitions
Monomial basis
We denote by fk(x, y) ∈ R[x, y] the polynomial defining theimplicit curve corresponding to the object ok.
Bernstein basis
The specific operations will be performed on the Bernsteinrepresentation of fk on D = [a, b]× [c, d]:
fk(x, y) =
dx,k∑i=0
dy,k∑j=0
bki,j Bi
dx,k(x; a, b) Bj
dy,k(y; c, d),
where Bid(x;u, v) =
(di
)(x− u)i(v − x)d−i (v − u)−d.
Julien Wintz Algebraic methods for geometric modeling
![Page 61: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/61.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Definitions
Critical points
Solve with multivariate subdivision solver:{fk(x, y) = 0
∂xfk(x, y) = 0and
{fk(x, y) = 0
∂yfk(x, y) = 0
Singular points
Solve with multivariate subdivision solver:fk(x, y) = 0
∂xfk(x, y) = 0∂yfk(x, y) = 0
Julien Wintz Algebraic methods for geometric modeling
![Page 62: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/62.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Definitions
Curve-Cell intersection points
Solve with univariate subdivision solver:
• f(x, ymin) and f(x, ymax) in x.
• f(xmin, y) and f(xmax, y) in y.
Curve-Curve intersection points
Solve with multivariate subdivision solver:{fk(x, y) = 0fl(x, y) = 0
Julien Wintz Algebraic methods for geometric modeling
![Page 63: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/63.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: non singular cells
(a) Empty cell (b) One branch (c) Many branches
Julien Wintz Algebraic methods for geometric modeling
![Page 64: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/64.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: non singular cells
Definition
A domain D is x-regular (resp. y-regular) for C if C is smooth in Dand it has no vertical (resp. horizontal) tangents. This isalgebraically formulated as the following condition:Z(f, ∂yf) ∩ D = ∅ (resp. Z(f, ∂xf) ∩ D = ∅).
Proposition
Let C = Z(f). If D is a x-regular domain, the topology of C in Dis uniquely determined by its intersection C ∩ ∂D with theboundary of D.
Julien Wintz Algebraic methods for geometric modeling
![Page 65: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/65.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: non singular cells
Definition
For a point p ∈ C ∩ ∂D, we define its x-index.
+ if C enters D locally: there exists a local left (resp. right)tangent lying outside (resp. inside) D.
- if C exits D locally: there exists a local left (resp. right)tangent lying inside (resp. outside) D.
+- if C is tangent to D and does not enter it locally: C − {p}locally lies outside C.
-+ if C is tangent to D and does not exit it locally: C ⊂ D.
Julien Wintz Algebraic methods for geometric modeling
![Page 66: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/66.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: non singular cells
Lemma
If C is x-regular in D, then a branch of C ∩D connects a point p ofx-index + to a point q of x-index −, such that xp < xq.
+
+
+
+
−
−
−
−
+−
−+
Julien Wintz Algebraic methods for geometric modeling
![Page 67: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/67.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 68: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/68.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
+! ! +
+
!
Julien Wintz Algebraic methods for geometric modeling
![Page 69: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/69.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
p1
p2
p3p4p5p6
Julien Wintz Algebraic methods for geometric modeling
![Page 70: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/70.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
p2
p3
Julien Wintz Algebraic methods for geometric modeling
![Page 71: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/71.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
p2
p3
Julien Wintz Algebraic methods for geometric modeling
![Page 72: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/72.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
p1
p2
p3p4
Julien Wintz Algebraic methods for geometric modeling
![Page 73: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/73.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
p1
p2
p3p4
Julien Wintz Algebraic methods for geometric modeling
![Page 74: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/74.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
p1
p2
p3p4p5p6
Julien Wintz Algebraic methods for geometric modeling
![Page 75: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/75.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: non singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
index(C ∩ ∂D) ;L � order(C ∩ ∂D) ;while L 6= ∅ do
choose(p, q) ;B ← b = [p, q] ;L = L \ p ;L = L \ q ;
end
p1
p2
p3p4p5p6
Julien Wintz Algebraic methods for geometric modeling
![Page 76: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/76.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: singular cells
(d) Isolated points (e) Self-intersection
Julien Wintz Algebraic methods for geometric modeling
![Page 77: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/77.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: singular cells
Definition
A domain D is simply singular for C if S ∩ D = {p} and if thenumber n of half branches of C at the singular point p is equal to#(∂D ∩ C), the number of points of C on the boundary of D.
Proposition
Let D be a simply singular domain. The topology of D is conic,i.e. for any point p in the inside D, Z(f)∩D can be deformed intop ? (∂D ∩ C).
How to count the number of branches ?
Julien Wintz Algebraic methods for geometric modeling
![Page 78: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/78.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: singular cells
Definition
A domain D is simply singular for C if S ∩ D = {p} and if thenumber n of half branches of C at the singular point p is equal to#(∂D ∩ C), the number of points of C on the boundary of D.
Proposition
Let D be a simply singular domain. The topology of D is conic,i.e. for any point p in the inside D, Z(f)∩D can be deformed intop ? (∂D ∩ C).
How to count the number of branches ?
Julien Wintz Algebraic methods for geometric modeling
![Page 79: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/79.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria: singular cells
Definition (Topological degree)
The topological degree of F at p relative to D, denoted bydeg[F,D, p], is defined by
deg[F,D, p] =∑
x∈D:F (x)=p
sign (det(JF (x)))
Theorem (Khimshiashvili)
Suppose that p is the only root of ∇f = 0 in D. Then the numberN of real half branches at p of the curve defined by f(x, y) = f(p)is
N = 2 (1− deg[∇f,D, p])
Julien Wintz Algebraic methods for geometric modeling
![Page 80: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/80.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
Q = {C ∩ ∂D} ;forall qi ∈ Q doB ← [s, qi] ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 81: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/81.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
Q = {C ∩ ∂D} ;forall qi ∈ Q doB ← [s, qi] ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 82: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/82.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
Q = {C ∩ ∂D} ;forall qi ∈ Q doB ← [s, qi] ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 83: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/83.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
Q = {C ∩ ∂D} ;forall qi ∈ Q doB ← [s, qi] ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 84: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/84.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
Q = {C ∩ ∂D} ;forall qi ∈ Q doB ← [s, qi] ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 85: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/85.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
Q = {C ∩ ∂D} ;forall qi ∈ Q doB ← [s, qi] ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 86: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/86.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Topology: singular cells
Input: an algebraic curve C anda domain D
Output: the set B of branches ofC in D
Q = {C ∩ ∂D} ;forall qi ∈ Q doB ← [s, qi] ;
end
Julien Wintz Algebraic methods for geometric modeling
![Page 87: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/87.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Demonstration
Julien Wintz Algebraic methods for geometric modeling
![Page 88: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/88.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 89: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/89.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Definitions
Polynomial rational curve
A uniform rational polynomial curve is defined by the formula
c(t) =
{x(t)y(t)
where x : R[t] 7→ R and y : R[t] 7→ R are differentiable functionsevaluated to obtain the image of t ∈ R[t] by c in R2 as the pointpt = (x(t), y(t)).
Julien Wintz Algebraic methods for geometric modeling
![Page 90: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/90.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Definitions
B-Spline curve
A B-Spline curve is defined by the formula
c(t) =n∑
i=0
piBi,k,t(t)
The complete representation of a B-spline curve consists of:
n The number of vertices
k The order
t The knot vector: t = (t1, t2, . . . , tn+k)
p The control points: pd,i, d = 1 . . . dim, i = 1 . . . n
Julien Wintz Algebraic methods for geometric modeling
![Page 91: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/91.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Definitions
Critical points
Solve with univariate subdivision solver:
• x′(t) = 0
• y′(t) = 0
Self-intersection points
Solve with multivariate subdivision solver:{x(t)− x(s) = 0y(t)− y(s) = 0
Julien Wintz Algebraic methods for geometric modeling
![Page 92: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/92.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Definitions
Curve-Curve intersection points
Solve with multivariate subdivision solver:{xk(s) = xl(t)yk(s) = yl(t)
Curve-Cell intersection points
• y(t)− ymin = 0, xmin ≤ x(t) ≤ xmax
• y(t)− ymax = 0, xmin ≤ x(t) ≤ xmax
• x(t)− xmin = 0, ymin ≤ y(t) ≤ ymax
• x(t)− xmax = 0, ymin ≤ y(t) ≤ ymax
Julien Wintz Algebraic methods for geometric modeling
![Page 93: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/93.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria and topology computation
• Check that C ∩ ∂D = ∅
• Check that there is at most one critical point.
• Check that #(C ∩ ∂D) = 2.
• Check that there is at most one self-intersectionpoint s.
• Check that #(C ∩ ∂D) = ?(s).
Julien Wintz Algebraic methods for geometric modeling
![Page 94: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/94.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria and topology computation
• Check that C ∩ ∂D = ∅
• Check that there is at most one critical point.
• Check that #(C ∩ ∂D) = 2.
• Check that there is at most one self-intersectionpoint s.
• Check that #(C ∩ ∂D) = ?(s).
Julien Wintz Algebraic methods for geometric modeling
![Page 95: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/95.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria and topology computation
• Check that C ∩ ∂D = ∅
• Check that there is at most one critical point.
• Check that #(C ∩ ∂D) = 2.
• Check that there is at most one self-intersectionpoint s.
• Check that #(C ∩ ∂D) = ?(s).
Julien Wintz Algebraic methods for geometric modeling
![Page 96: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/96.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Regularity criteria and topology computation
• Check that C ∩ ∂D = ∅
• Check that there is at most one critical point.
• Check that #(C ∩ ∂D) = 2.
• Check that there is at most one self-intersectionpoint s.
• Check that #(C ∩ ∂D) = ?(s).
Julien Wintz Algebraic methods for geometric modeling
![Page 97: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/97.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit curvesParametric curves
Demonstration
Julien Wintz Algebraic methods for geometric modeling
![Page 98: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/98.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 99: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/99.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Specialization
Generic algorithm
• Global problem
• Any representation
Specific algorithm
• Local problem
• One representation
Surface Arrangement
Implicit Surface Arrangement Parametric Surface Arrangement Linear Surface Arrangement
Julien Wintz Algebraic methods for geometric modeling
![Page 100: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/100.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Specialization
Characterize the situation:
• Near a 2-dimensional stratum, the topology is the same as ahyperplane
• Near a 1-dimensional stratum, the topology is the same as a cylinder
• Near a 0-dimensional stratum, the topology is the same as a cone
Julien Wintz Algebraic methods for geometric modeling
![Page 101: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/101.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Specialization
Characterize the situation:
• Near a 2-dimensional stratum, the topology is the same as ahyperplane
• Near a 1-dimensional stratum, the topology is the same as a cylinder
• Near a 0-dimensional stratum, the topology is the same as a cone
Julien Wintz Algebraic methods for geometric modeling
![Page 102: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/102.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Specialization
Characterize the situation:
• Near a 2-dimensional stratum, the topology is the same as ahyperplane
• Near a 1-dimensional stratum, the topology is the same as a cylinder
• Near a 0-dimensional stratum, the topology is the same as a cone
Julien Wintz Algebraic methods for geometric modeling
![Page 103: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/103.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Specialization
Characterize the situation:
• Near a 2-dimensional stratum, the topology is the same as ahyperplane
• Near a 1-dimensional stratum, the topology is the same as a cylinder
• Near a 0-dimensional stratum, the topology is the same as a cone
Julien Wintz Algebraic methods for geometric modeling
![Page 104: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/104.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 105: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/105.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Monomial basis
We denote by fk(x, y, z) ∈ R[x, y, z] the polynomial defining the implicitsurface corresponding to the object ok.
Bernstein basis
The specific operations will be performed on the Bernstein representationof fk on D = [a, b]× [c, d]× [e, f ]:
fk(x, y, z) =
dx,k∑i=0
dy,k∑j=0
dz,k∑k=0
bki,j,k Bi
dx,k(x; a, b) Bj
dy,k(y; c, d)Bk
dz,k(z; e, f)
where Bid(x;u, v) =
(di
)(x− u)i(v − x)d−i (v − u)−d.
Julien Wintz Algebraic methods for geometric modeling
![Page 106: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/106.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Critical points
Solve with multivariate subdivision solver:8<:fk(x, y, z) = 0
∂yfk(x, y, z) = 0∂zfk(x, y, z) = 0
8<:fk(x, y, z) = 0
∂xfk(x, y, z) = 0∂zfk(x, y, z) = 0
8<:fk(x, y, z) = 0
∂xfk(x, y, z) = 0∂yfk(x, y, z) = 0
Singular points
Solve with multivariate subdivision solver:8>><>>:fk(x, y, z) = 0
∂xfk(x, y, z) = 0∂yfk(x, y, z) = 0∂zfk(x, y, z) = 0
Julien Wintz Algebraic methods for geometric modeling
![Page 107: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/107.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Surface-Cell intersection curves
Variable substitution:
• f(x, ymin, z) and f(x, ymax, z) in x, z.
• f(xmin, y, z) and f(xmax, y, z) in y, z.
• f(x, y, zmin) and f(x, y, zmax) in x, y.
Surface-Surface intersection curves
The spatial implicit curve:{fk(x, y, z) = 0fl(x, y, z) = 0
Julien Wintz Algebraic methods for geometric modeling
![Page 108: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/108.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Definition (Polar variety)
The polar variety Pf of a surface S defined by the polynomialequation f(x, y, z) = 0 cuts the surface at the points ofself-intersection and the points that have vertical tangents:{
f(x, y, z) = 0∂zf(x, y, z) = 0
Julien Wintz Algebraic methods for geometric modeling
![Page 109: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/109.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Spatial implicit curves
Let C be a curve of R3 defined by f(x, y, z) and g(x, y, z).
Examine the tangent vector field:
t = 5(f) ∧5(g) =
∣∣∣∣∣∣ex ey ez
∂xf ∂yf ∂zf∂xg ∂yg ∂zg
∣∣∣∣∣∣Remark
Singularities on the curve can be easily deduced, as t vanishes atthose points.
Julien Wintz Algebraic methods for geometric modeling
![Page 110: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/110.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Spatial implicit curves
Julien Wintz Algebraic methods for geometric modeling
![Page 111: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/111.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Spatial implicit curves
Julien Wintz Algebraic methods for geometric modeling
![Page 112: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/112.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Regularity: 2-dimensional stratum
• Check each facet for 2-dimensional regularity:• empty cell• regular cell with one curve segment
• Check that the polar variety P does not intersect D(P ∩ D = ∅).
Julien Wintz Algebraic methods for geometric modeling
![Page 113: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/113.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Regularity: 1-dimensional stratum
• Check each facet for 2-dimensional regularity:• regular cell with one curve segment• star shaped singularity with two curve segments
• Check that the polar variety P features only one regularbranch in D (P ∩ D 6= ∅).
Julien Wintz Algebraic methods for geometric modeling
![Page 114: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/114.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Regularity: 0-dimensional stratum
!z(P) = Resz(f, !zf)
• Check each facet for 2-dimensional regularity:
• empty cell• regular cell with one curve segment
• Check that the polar variety features only one singular point in D.
• Compute the projection Πz(P) = Resz(f, ∂zf)
• Check that Πz(P) is 2-regular
Julien Wintz Algebraic methods for geometric modeling
![Page 115: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/115.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Topology
Julien Wintz Algebraic methods for geometric modeling
![Page 116: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/116.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 117: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/117.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Polynomial rational surface
A uniform rational polynomial surface is defined by the formula
s(u, v) =
x(u, v)y(u, v)z(u, v)
where x : R[u, v] 7→ R, y : R[u, v] 7→ R and z : R[u, v] 7→ R aredifferentiable functions evaluated to obtain the image of (u, v) ∈ R[u, v]by s in R3 as the point pt = (x(u, v), y(u, v), z(u, v)).
Julien Wintz Algebraic methods for geometric modeling
![Page 118: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/118.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
B-Spline surface
A B-Spline surface is defined by the formula
s(u, v) =
n1Xi=1
n2Xj=1
pi,jBi,k1,u(u)Bj,k2,v(v)
The complete representation of a B-spline surface consists of:
d The dimension of the underlying Euclidean space
n1 The number of vertices with respect to the first parameter
n2 The number of vertices with respect to the second parameter
k1 The order of the B-spline surface in the first parameter
k2 The order of the B-spline surface in the second parameter
u The knot vector of the B-spline surface wrt. the first parameter
v The knot vector of the B-spline surface wrt. the second parameter
p The control points of the B-spline surface
Julien Wintz Algebraic methods for geometric modeling
![Page 119: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/119.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Surface - Cell edges intersection points
vxi,yj = {(x(s, t), y(s, t), z(s, t)) ∈ D | (s, t) ∈ Dp, x(u, v) = xi, y(u, v) = yi}vxi,zj = {(x(s, t), y(s, t), z(s, t)) ∈ D | (s, t) ∈ Dp, x(u, v) = xi, z(u, v) = zi}vyi,zj = {(x(s, t), y(s, t), z(s, t)) ∈ D | (s, t) ∈ Dp, y(u, v) = yi, z(u, v) = zi}
where xi ∈ {xmin, xmax}, yi ∈ {ymin, ymax} and zi ∈ {zmin, zmax}.
Surface - Cell faces intersection curves
exi = {(y(s, t), z(s, t)) | (s, t) ∈ Dp, x(s, t) = xi}eyi = {(x(s, t), z(s, t)) | (s, t) ∈ Dp, y(s, t) = yi}ezi = {(x(s, t), y(s, t)) | (s, t) ∈ Dp, z(s, t) = zi}
where xi ∈ {xmin, xmax}, yi ∈ {ymin, ymax} and zi ∈ {zmin, zmax}.
Julien Wintz Algebraic methods for geometric modeling
![Page 120: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/120.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Tangent vectors
Tu(u, v) =
∂ux(u, v)∂uy(u, v)∂uz(u, v)
Tv(u, v) =
∂vx(u, v)∂vy(u, v)∂vz(u, v)
Normal vector
N(u, v) = Tu(u, v) ∧ Tv(u, v)
Julien Wintz Algebraic methods for geometric modeling
![Page 121: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/121.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Critical points
{Ny(u, v) = 0Nz(u, v) = 0
{Nx(u, v) = 0Nz(u, v) = 0
{Nx(u, v) = 0Ny(u, v) = 0
Singular points Nx(u, v) = 0Ny(u, v) = 0Nz(u, v) = 0
Julien Wintz Algebraic methods for geometric modeling
![Page 122: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/122.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Intersection and Self-intersection
• Sampling methods • Algebraic methods• Analytic method• Sweeping method• Subdivision method
Sampling methods Work on approximations
Algebraic methods Work on the representation
Analytic methods Heavy computational costSweeping methods Numerical errors at events
Subdivision methods Filters computations
Julien Wintz Algebraic methods for geometric modeling
![Page 123: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/123.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Intersection and Self-intersection
• Sampling methods • Algebraic methods• Analytic method• Sweeping method• Subdivision method
Sampling methods Work on approximations
Algebraic methods Work on the representation
Analytic methods Heavy computational costSweeping methods Numerical errors at events
Subdivision methods Filters computations
Julien Wintz Algebraic methods for geometric modeling
![Page 124: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/124.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Intersection and Self-intersection
• Sampling methods • Algebraic methods• Analytic method• Sweeping method• Subdivision method
Sampling methods Work on approximations
Algebraic methods Work on the representation
Analytic methods Heavy computational costSweeping methods Numerical errors at events
Subdivision methods Filters computations
Julien Wintz Algebraic methods for geometric modeling
![Page 125: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/125.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Intersection and Self-intersection
• Sampling methods • Algebraic methods• Analytic method• Sweeping method• Subdivision method
Sampling methods Work on approximations
Algebraic methods Work on the representation
Analytic methods Heavy computational costSweeping methods Numerical errors at events
Subdivision methods Filters computations
Julien Wintz Algebraic methods for geometric modeling
![Page 126: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/126.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Intersection and Self-intersection
• Sampling methods • Algebraic methods• Analytic method• Sweeping method• Subdivision method
Sampling methods Work on approximations
Algebraic methods Work on the representation
Analytic methods Heavy computational costSweeping methods Numerical errors at events
Subdivision methods Filters computations
Julien Wintz Algebraic methods for geometric modeling
![Page 127: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/127.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Implicit surfacesParametric surfaces
Definitions
Intersection and Self-intersection
• Sampling methods • Algebraic methods• Analytic method• Sweeping method• Subdivision method
Sampling methods Work on approximations
Algebraic methods Work on the representation
Analytic methods Heavy computational costSweeping methods Numerical errors at events
Subdivision methods Filters computations
Julien Wintz Algebraic methods for geometric modeling
![Page 128: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/128.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 129: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/129.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
An algebraic geometric modeling environment
Julien Wintz Algebraic methods for geometric modeling
![Page 130: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/130.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 131: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/131.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Julien Wintz Algebraic methods for geometric modeling
![Page 132: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/132.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Points.
Julien Wintz Algebraic methods for geometric modeling
![Page 133: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/133.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Pointsets.
Julien Wintz Algebraic methods for geometric modeling
![Page 134: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/134.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Planes.
Julien Wintz Algebraic methods for geometric modeling
![Page 135: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/135.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Clipping planes.
Julien Wintz Algebraic methods for geometric modeling
![Page 136: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/136.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Piecewise linear curves.
Julien Wintz Algebraic methods for geometric modeling
![Page 137: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/137.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Implicit curves.
Julien Wintz Algebraic methods for geometric modeling
![Page 138: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/138.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Rational curves.
Julien Wintz Algebraic methods for geometric modeling
![Page 139: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/139.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: B-spline curves.
Julien Wintz Algebraic methods for geometric modeling
![Page 140: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/140.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Piecewise linear surfaces.
Julien Wintz Algebraic methods for geometric modeling
![Page 141: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/141.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Implicit surfaces.
Julien Wintz Algebraic methods for geometric modeling
![Page 142: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/142.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: Rational surfaces.
Julien Wintz Algebraic methods for geometric modeling
![Page 143: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/143.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Objects
• Points
• Planes
• Curves
• Surfaces
Figure: B-spline surfaces.
Julien Wintz Algebraic methods for geometric modeling
![Page 144: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/144.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 145: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/145.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Implicit curves topology.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 146: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/146.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Implicit surfaces topology.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 147: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/147.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Implicit curves intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 148: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/148.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Parametric curves intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 149: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/149.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Implicit surfaces intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 150: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/150.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Rational surfaces intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 151: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/151.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: B-spline surfaces intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 152: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/152.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Implicit curve self-intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 153: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/153.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Parametric curve self-intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 154: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/154.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Parametric surface self-intersection.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 155: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/155.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Implicit curves arrangement.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 156: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/156.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Critical point and derivative curves.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 157: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/157.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Approximation by rational patches.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 158: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/158.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Tools
Figure: Approximation by rational patches.
• Topology
• Intersection
• Self-intersection
• Arrangement
• Differentialgeometry
• Interpolation
• Approximation
Julien Wintz Algebraic methods for geometric modeling
![Page 159: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/159.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 160: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/160.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 161: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/161.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 162: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/162.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 163: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/163.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 164: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/164.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 165: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/165.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 166: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/166.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 167: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/167.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Graphical User Interface
Julien Wintz Algebraic methods for geometric modeling
![Page 168: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/168.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
File Interface
A B-spline curve.
<axl>
<curve type="bspline" name="bsc1">
<dimension >3</dimension >
<number >10</number >
<order >4</order >
<knots >0 0 0 0 1 2 3 4 5 6 7 7 7 7</knots >
<points >
0 0 0 1 0 0.5 1 1 1 0 1 1.5 0 0 2
1 0 2.5 1 1 3 0 1 3.5 0 0 4 1 0 4.5
</points >
</curve >
</axl>
Julien Wintz Algebraic methods for geometric modeling
![Page 169: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/169.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Script Interface
Creating a B-spline curve.
var white = new Color (255, 255, 255) ;
Viewer.setBackgroundColor(white) ;
Camera.setPosition (0.0, 1.0, 0.0) ;
var p1 = new Point (0.0 0.0 0.0) ;
var p2 = new Point (1.0 0.0 0.5) ;
...
var p8 = new Point (0.0 1.0 3.5) ;
var p9 = new Point (0.0 0.0 4.0) ;
var p10 = new Point (1.0 0.0 4.5) ;
var curve = ToolManager.interpolate () ;
ObjectManager.addObject(curve) ;
Julien Wintz Algebraic methods for geometric modeling
![Page 170: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/170.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Outline
1 Generic algorithmComputing regionsLocating conflictsUpdating regions
2 Specialization for curvesImplicit curvesParametric curves
3 Specialization for surfacesImplicit surfacesParametric surfaces
4 An algebraic geometric modelerUser perspectiveDeveloper perspective
Julien Wintz Algebraic methods for geometric modeling
![Page 171: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/171.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Framework
Input / Output
Graphical User Interface
Virtual Layer
Plugins Kernel
3rd party libraries Mathemagix modules
Figure: Axel’s internal architecture.
Julien Wintz Algebraic methods for geometric modeling
![Page 172: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/172.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Virtual hierarchy of objects
Object
Curve Surface
ParametricCurve ImplicitCurve ParametricSurface ImplicitSurface
PolynomialCurve PolynomialSurface BSplineSurfaceBSplineCurve
Figure: Virtual hierarchy of objects.
Julien Wintz Algebraic methods for geometric modeling
![Page 173: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/173.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Virtual hierarchy of tools
Intersection
Intersection<Curve>
Intersection<Surface>
Intersection<ParametricCurve>
Intersection<ImplicitCurve>
Intersection<ParametricSurface>
Intersection<ImplicitSurface>
Intersection<PolynomialCurve>
Intersection<PolynomialSurface>
Intersection<BSplineSurface>
Intersection<BSplineCurve>
Figure: Virtual hierarchy of tools.
Julien Wintz Algebraic methods for geometric modeling
![Page 174: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/174.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Kernel system
Algebraic Kernel
• Univariate polynomials
• Multivariate polynomials
• Univariate bernstein solvers
• Multivariate bernstein solvers
• Embeds Mathemagix
Geometric Kernel
• Topology
• Intersection
• Approximation
• Embeds Sisl
Julien Wintz Algebraic methods for geometric modeling
![Page 175: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/175.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
Plugin system
• Extend main application functionnalities
• Define new objects
• Define new tools
• Glue external libraries
• Hardware connection
Julien Wintz Algebraic methods for geometric modeling
![Page 176: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/176.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
User perspectiveDeveloper perspective
A virtual modeling environment
Julien Wintz Algebraic methods for geometric modeling
![Page 177: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/177.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Summary
• Generic algorithm using a subdivision scheme
• Specialization for curves• Efficient topology• Efficient arrangement
• Specialization for surfaces• Hints for implicit surfaces• Hints for parametric surfaces
• Proof of concept implementation• Modular architecture of objects• Modular architecture of tools
Julien Wintz Algebraic methods for geometric modeling
![Page 178: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/178.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Outlook
• Generic boolean operators
• Generic Voronoi diagrams
• Generic trimming procedures
Julien Wintz Algebraic methods for geometric modeling
![Page 179: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/179.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Outlook
• Generic boolean operators
• Generic Voronoi diagrams
• Generic trimming procedures
Julien Wintz Algebraic methods for geometric modeling
![Page 180: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/180.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Outlook
• Generic boolean operators
• Generic Voronoi diagrams
• Generic trimming procedures
R1
R2
C1
C2
R1
R2
C1
C2
C3
Julien Wintz Algebraic methods for geometric modeling
![Page 181: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/181.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Outlook
• Generic boolean operators
• Generic Voronoi diagrams
• Generic trimming procedures
R1
R2
C1
C2
C3R1
3
R23
R1
R2
R3
C1
C2
C3
Julien Wintz Algebraic methods for geometric modeling
![Page 182: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/182.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Outlook
• Generic boolean operators
• Generic Voronoi diagrams
• Generic trimming procedures
Julien Wintz Algebraic methods for geometric modeling
![Page 183: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/183.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Outlook
• Generic boolean operators
• Generic Voronoi diagrams
• Generic trimming procedures
Julien Wintz Algebraic methods for geometric modeling
![Page 184: Algebraic methods for geometric modeling](https://reader031.fdocuments.us/reader031/viewer/2022012923/58a2df0a1a28aba5548b7f44/html5/thumbnails/184.jpg)
Generic algorithmSpecialization for curves
Specialization for surfacesAn algebraic geometric modeler
Julien Wintz Algebraic methods for geometric modeling