Difference between revisions of "NURBS Booleans"

From BRL-CAD
(surface/surface)
 
(new layout, add references)
Line 1: Line 1:
 +
=NURBS Intersections=
 +
 +
{| border=1 align="right"
 +
!Impact
 +
!Difficulty
 +
|-
 +
|high
 +
|hard
 +
|}
 +
 
Non-Uniform Rational B-Splines are the dominant geometric representation format in Computer Aided Design.  BRL-CAD's support for these primitives is relatively recent, and while we can raytrace them we do not have the ability to perform operations such as surface/surface intersection calculations.  These abilities are fundamental to a wide variety of editing operations and essential to the process of converting implicit-primitive based boolean geometry trees to evaluated NURBS models.
 
Non-Uniform Rational B-Splines are the dominant geometric representation format in Computer Aided Design.  BRL-CAD's support for these primitives is relatively recent, and while we can raytrace them we do not have the ability to perform operations such as surface/surface intersection calculations.  These abilities are fundamental to a wide variety of editing operations and essential to the process of converting implicit-primitive based boolean geometry trees to evaluated NURBS models.
  
 
This task would target the problem of implementing an algorithm to calculate surface/surface intersection for general NURBS surfaces.  These guys implemented something very similar although their implementation was not robust: http://www.cs.unc.edu/~geom/CSG/boole.html These guys followed that work and implemented a robust solution, but killed performance: http://www.cs.unc.edu/~geom/ESOLID/ You will need to be very careful about tolerances and tolerance tracking without resorting to fixed-precision arithmetic. There are a variety of other research papers on the surface/surface intersection problem - students interested in this topic should discuss it with developers on the IRC channel or via email.
 
This task would target the problem of implementing an algorithm to calculate surface/surface intersection for general NURBS surfaces.  These guys implemented something very similar although their implementation was not robust: http://www.cs.unc.edu/~geom/CSG/boole.html These guys followed that work and implemented a robust solution, but killed performance: http://www.cs.unc.edu/~geom/ESOLID/ You will need to be very careful about tolerances and tolerance tracking without resorting to fixed-precision arithmetic. There are a variety of other research papers on the surface/surface intersection problem - students interested in this topic should discuss it with developers on the IRC channel or via email.
  
Requirements:
+
==References==
 +
 
 +
* src/librt/primitives/brep
 +
* src/librt/primitives/bspline
 +
* src/other/openNURBS
 +
* src/librt/opennurbs_ext.*
 +
* include/opennurbs_ext.h
 +
* include/raytrace.h
 +
* include/rtgeom.h
 +
 
 +
==Requirements==
  
 
*Familiarity with C++
 
*Familiarity with C++
 
*Solid mathematical foundations
 
*Solid mathematical foundations
 
Difficulty: high
 

Revision as of 08:30, 24 March 2011

NURBS Intersections

Impact Difficulty
high hard

Non-Uniform Rational B-Splines are the dominant geometric representation format in Computer Aided Design. BRL-CAD's support for these primitives is relatively recent, and while we can raytrace them we do not have the ability to perform operations such as surface/surface intersection calculations. These abilities are fundamental to a wide variety of editing operations and essential to the process of converting implicit-primitive based boolean geometry trees to evaluated NURBS models.

This task would target the problem of implementing an algorithm to calculate surface/surface intersection for general NURBS surfaces. These guys implemented something very similar although their implementation was not robust: http://www.cs.unc.edu/~geom/CSG/boole.html These guys followed that work and implemented a robust solution, but killed performance: http://www.cs.unc.edu/~geom/ESOLID/ You will need to be very careful about tolerances and tolerance tracking without resorting to fixed-precision arithmetic. There are a variety of other research papers on the surface/surface intersection problem - students interested in this topic should discuss it with developers on the IRC channel or via email.

References

  • src/librt/primitives/brep
  • src/librt/primitives/bspline
  • src/other/openNURBS
  • src/librt/opennurbs_ext.*
  • include/opennurbs_ext.h
  • include/raytrace.h
  • include/rtgeom.h

Requirements

  • Familiarity with C++
  • Solid mathematical foundations