Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Smaller coros and bg color
  • Loading branch information
adam-urbanczyk committed Mar 12, 2025
commit 3bb10364f0d0e6e0add28f302a33f0ed574063ff
54 changes: 29 additions & 25 deletions cadquery/fig.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
vtkRenderer,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkActor,
vtkProp3D,
)

Expand Down Expand Up @@ -58,6 +57,10 @@ def __init__(self, port: int):
inter.SetInteractorStyle(vtkInteractorStyleTrackballCamera())
inter.SetRenderWindow(win)

# background
renderer.SetBackground(1, 1, 1)
renderer.GradientBackgroundOn()

# axes
axes = vtkAxesActor()
axes.SetDragable(0)
Expand Down Expand Up @@ -94,55 +97,56 @@ def __init__(self, port: int):
)

server.state.flush()
coro = server.start(
thread=True, exec_mode="coroutine", port=port, open_browser=True
)

self.server = server
self.loop = new_event_loop()

def _run():
def _run_loop():
set_event_loop(self.loop)
self.loop.run_forever()

self.thread = Thread(target=_run, daemon=True)
self.thread = Thread(target=_run_loop, daemon=True)
self.thread.start()

run_coroutine_threadsafe(coro, self.loop)
coro = server.start(
thread=True, exec_mode="coroutine", port=port, open_browser=True
)

self._run(coro)

def _run(self, coro):

run_coroutine_threadsafe(coro, self.loop)

def show(self, s: Shape | vtkActor | list[vtkProp3D], *args, **kwargs):
async def _show():
def show(self, s: Shape | vtkProp3D | list[vtkProp3D], *args, **kwargs):

if isinstance(s, Shape):
# do not show markers by default
if "markersize" not in kwargs:
kwargs["markersize"] = 0
if isinstance(s, Shape):
# do not show markers by default
if "markersize" not in kwargs:
kwargs["markersize"] = 0

actors = style(s, *args, **kwargs)
self.shapes[s] = actors
actors = style(s, *args, **kwargs)
self.shapes[s] = actors

for actor in actors:
self.ren.AddActor(actor)
for actor in actors:
self.ren.AddActor(actor)

elif isinstance(s, vtkActor):
self.actors.append(s)
self.ren.AddActor(s)
else:
self.actors.extend(s)
elif isinstance(s, vtkProp3D):
self.actors.append(s)
self.ren.AddActor(s)
else:
self.actors.extend(s)

for el in s:
self.ren.AddActor(el)
for el in s:
self.ren.AddActor(el)

async def _show():
self.ren.ResetCamera()
self.view.update()

self._run(_show())

def clear(self, *shapes: Shape | vtkActor):
def clear(self, *shapes: Shape | vtkProp3D):
async def _clear():

if len(shapes) == 0:
Expand Down