File: multiwindows1.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 (51 lines) | stat: -rw-r--r-- 1,523 bytes parent folder | download | duplicates (2)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""
Example of drawing objects on different windows
and/or subwindows within the same window.
We split the main window in many subwindows and draw
somethingon specific windows numbers.
Then open an independent window and draw a shape on it.
"""
from vedo import *

##########################################################################
# this is one instance of the class Plotter with 5 raws and 5 columns
plt1 = Plotter(shape=(5,5), axes=0)

# set a different background color for a specific subwindow (the last one)
plt1.background([0.8, 0.9, 0.9], at=24)

# load the meshes and give them a name
a = Mesh(dataurl+"shuttle.obj")
b = Mesh(dataurl+"cessna.vtk").c("red")
c = Mesh(dataurl+"porsche.ply")

# show a Text2D in each renderer
for i in range(25):
    plt1.at(i).show(f"renderer\nnr.{i}")

plt1.at( 6).show(a)
plt1.at(23).show(b)
plt1.at(24).show(c)


##########################################################################
# declare a second independent instance of the class Plotter
# shape can also be given as a string, e.g.:
# shape="2/6" means 2 renderers above and 6 below
# shape="3|1" means 3 renderers on the left and one on the right

s = Mesh(dataurl+'mug.ply')

# Set the position of the horizontal of vertical splitting [0,1]:
#settings.window_splitting_position = 0.5

plt2 = Plotter(pos=(500, 250), shape='2/6')

for i in range(len(plt2.renderers)):
    s2 = s.clone(deep=False).color(i)
    plt2.at(i).show(s2, f'renderer #{i}')

printc(__doc__)
plt2.interactive()
plt2.close()
plt1.close()