184
Generic algorithm Specialization for curves Specialization for surfaces An algebraic geometric modeler Algebraic methods for geometric modeling Julien Wintz PhD defense, Sophia-Antipolis, May 5th 2008 Julien Wintz Algebraic methods for geometric modeling

Algebraic methods for geometric modeling

  • Upload
    dokhanh

  • View
    229

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Algebraic methods for geometric modeling

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Generic algorithmSpecialization for curves

Specialization for surfacesAn algebraic geometric modeler

Julien Wintz Algebraic methods for geometric modeling