File: boolean.py

package info (click to toggle)
vedo 2025.5.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,404 kB
  • sloc: python: 64,792; javascript: 1,932; xml: 437; sh: 139; makefile: 6
file content (33 lines) | stat: -rw-r--r-- 1,363 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from vedo import *

# Enable depth peeling for rendering transparency
settings.use_depth_peeling = True

# Declare an instance of the Plotter class with 2 rows and 2 columns of renderers,
# and disable interactive mode, so that the program can continue running
plt = Plotter(shape=(2, 2), interactive=False, axes=3)

# Create two sphere meshes
s1 = Sphere(pos=[-0.7, 0, 0]).c("red5",0.5)
s2 = Sphere(pos=[0.7, 0, 0]).c("green5",0.5)

# Show the spheres on the first renderer, and display the docstring as the title
plt.at(0).show(s1, s2, __doc__)

# Perform a boolean intersection operation between the two spheres,
# set the color to magenta, and show the result on the second renderer
b1 = s1.boolean("intersect", s2).c('magenta')
plt.at(1).show(b1, "intersect", resetcam=False)

# Perform a boolean union operation between the two spheres,
# set the color to blue, add a wireframe, and show the result on the third renderer
b2 = s1.boolean("plus", s2).c("blue").wireframe(True)
plt.at(2).show(b2, "plus", resetcam=False)

# Perform a boolean difference operation between the two spheres,
# compute the normals, add a scalarbar, and show the result on the fourth renderer
b3 = s1.boolean("minus", s2).compute_normals().add_scalarbar(c='white')
plt.at(3).show(b3, "minus", resetcam=False)

# Enable interactive mode, and close the plot
plt.interactive().close()