Support of Constructive Solid Geometry in the SolidKit Library
From Solid Graphics Wiki
(Difference between revisions)
m |
|||
(3 intermediate revisions not shown.) | |||
Line 1: | Line 1: | ||
This article discuss [http://en.wikipedia.org/wiki/Constructive_solid_geometry Constructive solid geometry] (CSG) support for triangle meshes in the [[SolidKit Library]]. | This article discuss [http://en.wikipedia.org/wiki/Constructive_solid_geometry Constructive solid geometry] (CSG) support for triangle meshes in the [[SolidKit Library]]. | ||
- | {{warning | Be sure you understand the | + | {{warning | Be sure you understand the SolidKit Library limitations regarding it's Costructive Solid Geometry features <u>before you buy</u> the library. You are strongly encouraged to use the [[SolidKit Library Demo]] to try out the CSG features before your purchase. }} |
- | *The '' | + | *The ''SolidKit Library'' supports boolean operations on [[triangle mesh]]es (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. All input shapes for CSG operations must be non self intersecting and must use [http://en.wikipedia.org/wiki/Right-hand_rule right-hand coordinate system] (or must be converted from left-hand to right-hand coordinate system before a CSG Operation is performed). |
*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. | *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 | + | *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 == | == See Also == | ||
Line 14: | Line 14: | ||
*[[CSGOperation class]] | *[[CSGOperation class]] | ||
*[[Shape class]] | *[[Shape class]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Current revision
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. All input shapes for CSG operations must be non self intersecting 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).
- 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