Difference between revisions of "NURBS Booleans"

m (Starseeker moved page NURBS Intersections to NURBS Booleans: Work is now much more in boolean evals than intersections themselves)
(Update NURBS Boolean task)
 
Line 1: Line 1:
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 calculationsThese 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 are still developing the ability to perform operations such as subtraction and intersection between two solid NURBS Boundary Representations (Breps)This ability is 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/ (Note that while the papers are excellent references from which to get ideas, the source code from these efforts is not license compatible with BRL-CAD.) 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 build on work done in previous GSoC projects to make existing functionality robust and fast.
  
 
=References=
 
=References=
  
 +
* src/libbrep
 
* src/librt/primitives/brep
 
* src/librt/primitives/brep
* src/librt/primitives/bspline
 
 
* src/other/openNURBS
 
* src/other/openNURBS
* src/librt/opennurbs_ext.*
 
* include/opennurbs_ext.h
 
 
* include/raytrace.h
 
* include/raytrace.h
 
* include/rtgeom.h
 
* include/rtgeom.h
 +
 +
* http://brlcad.org/wiki/User:Phoenix/GSoc2013/Reports
  
 
=Requirements=
 
=Requirements=

Latest revision as of 07:58, 1 March 2014

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 are still developing the ability to perform operations such as subtraction and intersection between two solid NURBS Boundary Representations (Breps). This ability is 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 build on work done in previous GSoC projects to make existing functionality robust and fast.

References[edit]

  • src/libbrep
  • src/librt/primitives/brep
  • src/other/openNURBS
  • include/raytrace.h
  • include/rtgeom.h

Requirements[edit]

  • Familiarity with C++
  • Solid mathematical foundations