Source code for compas.geometry.booleans
from __future__ import print_function
from __future__ import absolute_import
from __future__ import division
from compas.plugins import pluggable
__all__ = [
'boolean_union_mesh_mesh',
'boolean_difference_mesh_mesh',
'boolean_intersection_mesh_mesh',
]
[docs]@pluggable(category='booleans')
def boolean_union_mesh_mesh(A, B):
"""Compute the boolean union of two triangle meshes.
Parameters
----------
A : (list, list)
The vertices and faces of mesh A.
B : (list, list)
The vertices and faces of mesh B.
Returns
-------
tuple
The vertices and the faces of the boolean union.
Examples
--------
>>> from compas.geometry import Box, Sphere
>>> from compas.geometry import boolean_union_mesh_mesh
>>> from compas.geometry import trimesh_remesh
>>> from compas.datastructures import Mesh
>>> box = Box.from_width_height_depth(2, 2, 2)
>>> box = Mesh.from_shape(box)
>>> box.quads_to_triangles()
>>> sphere = Sphere([1, 1, 1], 1)
>>> sphere = Mesh.from_shape(sphere, u=30, v=30)
>>> sphere.quads_to_triangles()
>>> A = box.to_vertices_and_faces()
>>> B = sphere.to_vertices_and_faces()
>>> B = trimesh_remesh(B, 0.3, 10)
>>> V, F = boolean_union_mesh_mesh(A, B)
>>> union = Mesh.from_vertices_and_faces(V, F)
"""
raise NotImplementedError
[docs]@pluggable(category='booleans')
def boolean_difference_mesh_mesh(A, B):
"""Compute the boolean difference of two triangle meshes.
Parameters
----------
A : (list, list)
The vertices and faces of mesh A.
B : (list, list)
The vertices and faces of mesh B.
Returns
-------
tuple
The vertices and the faces of the boolean difference.
"""
raise NotImplementedError
[docs]@pluggable(category='booleans')
def boolean_intersection_mesh_mesh(A, B):
"""Compute the boolean intersection of two triangle meshes.
Parameters
----------
A : (list, list)
The vertices and faces of mesh A.
B : (list, list)
The vertices and faces of mesh B.
Returns
-------
tuple
The vertices and the faces of the boolean intersection.
"""
raise NotImplementedError