Support of Constructive Solid Geometry in the SolidKit Library

From Solid Graphics Wiki

Jump to: navigation, search

This article discuss Constructive solid geometry (CSG) support for triangle meshes in the SolidKit Library.

Be sure you understand the SolidKit Library limitations regarding it's Costructive Solid Geometry features before you buy the library. You are strongly encouraged to use the SolidKit Library Demo to try out the CSG features before your purchase.
  • The SolidKit Library supports boolean operations on triangle meshes (triangulated polyhedrons). In order for the operation to be successful - the meshes must represent closed surfaces of a solid 3D objects (for example cubes or spheres).
  • The surfaces must be closed without holes which would allow to "see inside the object". From mesh topology perspective - each mesh edge must be part of exactly two mesh's triangles where triangles orientation along the edge are running in oposite direction of each other.
  • Vertices of each mesh triangle must be oriented in counterclockwise order when viewed from outside of object's volume and must use right-hand coordinate system (or must be converted from left-hand to right-hand coordinate system before a CSG Operation is performed).
  • Two vertices in the same input surface/object must not be the same (two or more vertices from the same input surface must not use the same coordinates). For example let's say that A and B are input objects of a CSG operation. Then two vertices from object A cannot have same coordinates, two vertices from object B cannot have the same coordinates, but a vertex from object A can have the same coordinates as a vertex in object B.
  • All input shapes for CSG operations must be non self intersecting
  • CSG operations on triangle meshes where at least one of the mesh's edges is part of more than two triangles are not supported. Rusult of CSG operation using such triangle mesh is undefined.
  • due to limited precision of computer's common floating point types - it is not guaranteed that the SolidKit library will be able to calculate a CSG operation on two otherwise correctly-defined triangle meshes. This limitation should affect less than 1% of CSG operations on average sized (~500 triangles) meshes. Please try out the SolidKit Library Demo to evaluate whether this limitation is acceptable for needs of your applications before you decide to buy the library.

See Also










Personal tools