10 likes | 76 Views
Surface. Curve. Point. Surface. 2 : Surfaces overlap 1 : Surfaces are tangent along a curve 0 : Surfaces are tangent at a point. 1 : A curve lies on a surface 0 : A curve is tangent to a surface at a point. 0 : A point lies on a surface. Curve. 1 : Curves overlap
E N D
Surface Curve Point Surface 2: Surfaces overlap 1: Surfaces are tangent along a curve 0: Surfaces are tangent at a point 1: A curve lies on a surface 0: A curve is tangent to a surface at a point 0: A point lies on a surface Curve 1: Curves overlap 0: Curves intersect tangentially 0: A point lies on a curve Point 0: Points coincide ACM Symposium on Solid Modelling and Applications SM’04 Handling Degeneracies in Exact Boundary Evaluation John Keyser Koji Ouchi Texas A&M University http://research.cs.tamu.edu/keyser/geom/ Goal Develop robust boundary evaluation Input: A CSG tree of solids in B-rep + a tolerance Output: A degeneracy-free solid in B-rep • Robust = exact + degeneracy-free • We are free to adjust the surfaces of input solids within a tolerance • Maintain the designer’s intent • Use exact computation in order to eliminate numerical errors • No intentional degeneracy occurs • Input degeneracies are removed by numerical perturbation • Every surface of the output solid is parallel to some surface of the degenerate solid (or artificially added) Detecting Degeneracies Degeneracies are detected by checking irregular intersections • Use exact computation of surfaces/curves and points (polynomials and algebraic numbers) • The library MAPC for manipulate algebraic points and curves using Sylvester resultant and the box-hit algorithm • The library ERUR for computing the rational univariate reduction of a polynomial system using the toric resultants Table: Types of degeneracies The entries show degeneracies between surfaces, curves and points. The order of each degenerate intersections involved in bold: (points 0, curves 1, surfaces 2) Removing Degeneracies Degeneracies are removed by expansion / contraction ofprimitives • Perturb the surfaces of primitives inward / outward depending on the operations applied to them • The perturbation information at the root is propagated to the leaves A B: expand both A and B A B: contract both A and B A B: expand A, contract B • Every surface of the output solid is parallel to some surface of the degenerate solid in order to catch the designer’s intent • Thus, exact computation is required • But, there are some shortcomings: An example of degeneracy that cannot be removed Undesirable small faces are created Real World Example • Examples from a Bradley Fighting Vehicle developed by the Army Research Lab Cargo hatch is a join of 11 solids, 4 of them have degeneracies Commander hatch is a join of 5 solids, 1 of them has a degeneracy Engine is a join of 13 solids, 3 of them have degeneracies • The perturbed versions run slower than the unperturbed versions, and require more exact computation than floating-point filters For Cargo hatch, the run-time increases 38% and the ratio of exact computation increases from 6.4% to 7.4% For Commander hatch, the run-time increases 633% and the ratio of exact computation increases from 3.7% to 7.9% For Engine, the run-time increases 24% and the ratio of exact computation increases from 3.6% to 4.5% Cargo hatch Commander hatch Engine Work supported in part by NSF ITR award CCR-0220047 and NSF/DARPA CARGO award DMS-0138446 Bradley models provided courtesy of Army Research Lab