File: mouseclick2.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 (28 lines) | stat: -rw-r--r-- 827 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
"""Add an observer to specific objects in a scene"""
from vedo import *

# -----------------------
def func(obj, name=None):
    printc("Plotter callback", c="m")

# -----------------------
def ftxt(obj, ename):
    printc("Text2D callback", obj.__class__.__name__, ename, c="y")
    obj.color(np.random.rand() * 10)

# -----------------------
def fmsh(obj, ename):
    printc("Mesh callback", obj.__class__.__name__, ename, c="b")
    msh.color(np.random.rand() * 10)


msh = Mesh(dataurl + "spider.ply")
cid2 = msh.add_observer("pick", fmsh)

txt = Text2D("CLICK ME", pos="bottom-center", s=3, bg="yellow5").pickable()
cid1 = txt.add_observer("pick", ftxt)

plt = Plotter()
# plt.add_observer("mouse click", func)  ### SAME AS:
# plt.add_callback("mouse click", func, enable_picking=False)
plt.show(txt, msh, __doc__).close()