Difference between revisions of "NURBS Booleans"

(new layout, add references)
(Update NURBS Boolean task)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=NURBS Intersections=
+
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.
  
{| border=1 align="right"
+
This task would build on work done in previous GSoC projects to make existing functionality robust and fast. 
!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.
+
=References=
 
+
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/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
  
==Requirements==
+
* http://brlcad.org/wiki/User:Phoenix/GSoc2013/Reports
 +
 
 +
=Requirements=
  
 
*Familiarity with C++
 
*Familiarity with C++
 
*Solid mathematical foundations
 
*Solid mathematical foundations

Latest revision as of 08: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