Editing User:Hippieindamakin87
From BRL-CAD
User account "Hippieindamakin87" is not registered. Please check if you want to create/edit this page.
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 3: | Line 3: | ||
===Abstract=== | ===Abstract=== | ||
− | I wish to implement a library/routine which computes a B-rep from the given CSG and further does a B-rep on B-rep evaluation generating a resultant (new) B-rep. The library evaluates the B-rep using lazy rational arithmetic such that the tolerances are taken care of with minimal error. Numerical errors are handled at an algorithm-independent level, which is an original exact arithmetic that performs only the necessary precise computations. LiDIA | + | I wish to implement a library/routine which computes a B-rep from the given CSG and further does a B-rep on B-rep evaluation generating a resultant (new) B-rep. The library evaluates the B-rep using lazy rational arithmetic such that the tolerances are taken care of with minimal error. Numerical errors are handled at an algorithm-independent level, which is an original exact arithmetic that performs only the necessary precise computations.The kernel runs on LiDIA and the data structures are handled by MAPC.(C++ library for manipulating algebraically defined points and curves) |
===Proposal=== | ===Proposal=== | ||
− | we assume rational polyhedral solids | + | we assume rational polyhedral solids that are polyhedral solids which are represented by their boundaries, in which the coordinates of the vertices and the coefficients of the defining face plane equations are all available as rational numbers, regardless of the way in which these numbers are represented. A rational solid is always numerically consistent; for instance, each vertex-coordinate triple satisfies the plane equation of each incident face. |
− | The B-rep is made up of two lists | + | The B-rep is made up of two lists one for edges and one for faces. |
− | |||
− | |||
To be valid, the B-rep must satisfy the following three conditions: | To be valid, the B-rep must satisfy the following three conditions: | ||
Line 22: | Line 20: | ||
For some of the lower-level routines, the algorithms based on floating-point arithmetic are susceptible to failure. These include sign-evaluation of geometric predicates, orientation of points with respect to curves, and component classification. We refer to the resulting set of routines as kernel routines. The efficiency and reliability of the overall evaluation is governed by these routines. | For some of the lower-level routines, the algorithms based on floating-point arithmetic are susceptible to failure. These include sign-evaluation of geometric predicates, orientation of points with respect to curves, and component classification. We refer to the resulting set of routines as kernel routines. The efficiency and reliability of the overall evaluation is governed by these routines. | ||
Some of the efficient algorithms to implement the kernel routines use exact arithmetic. | Some of the efficient algorithms to implement the kernel routines use exact arithmetic. | ||
− | Kernel routines that shall be used are | + | Kernel routines that shall be used are Multivariate Sturm Sequences and Multipolynomial resultants. |
− | |||
− | |||
*'''Multivariate Sturm Sequences''' | *'''Multivariate Sturm Sequences''' | ||
− | Sturm theorem is a procedure to evaluate distinct real roots of a polynomial. Given two polynomials(in our case the equations of the planes/curves),we can define another polynomial which is a combination of these polynomials(volume polynomial in the case of curves). Here the calculations can be done by approximating the resultant polynomial as a univariate sequence in one of the variables and then solving the sequence | + | Sturm theorem is a procedure to evaluate distinct real roots of a polynomial. Given two polynomials(in our case the equations of the planes/curves),we can define another polynomial which is a combination of these polynomials(volume polynomial in the case of curves). Here the calculations can be done by approximating the resultant polynomial as a univariate sequence in one of the variables and then solving the sequence w.r.t the remaining variables. |
*'''Comparision of algebraic points ''' | *'''Comparision of algebraic points ''' | ||
Line 55: | Line 51: | ||
====Challenges of the B-rep evaluation==== | ====Challenges of the B-rep evaluation==== | ||
'''Exact data structures and algorithms:''' | '''Exact data structures and algorithms:''' | ||
− | MAPC provides routines for handling polynomials (K_POLYs), algebraic plane curves (K_CURVEs), and both 1D points (K_POINT1Ds) and 2D points (K_POINT2Ds) with algebraic coordinates. It includes routines for determining the topology of algebraic plane curves over a limited domain and intersecting two algebraic plane curves. | + | MAPC provides routines for handling polynomials (K_POLYs), algebraic plane curves (K_CURVEs), and both 1D points (K_POINT1Ds) and 2D points (K_POINT2Ds) |
+ | with algebraic coordinates. It includes routines for determining the topology of algebraic plane curves over a limited domain and intersecting two algebraic plane curves. | ||
'''Point inversion:''' | '''Point inversion:''' | ||
Line 61: | Line 58: | ||
'''Curve correspondance:''' | '''Curve correspondance:''' | ||
− | Curve correspondence refers to finding the orientation of a curve in one patch domain | + | Curve correspondence refers to finding the orientation of a curve in one patch domain relative to the same curve represented in the domain of another patch. |
− | + | ===Proposed approach=== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |