fixed camera setting functions
This commit is contained in:
parent
5466f67c1c
commit
352b3ae860
72
visu.py
72
visu.py
|
|
@ -24,34 +24,56 @@ def enable_shadows_hacked(pl):
|
||||||
pl.renderer.SetPass(cameraP)
|
pl.renderer.SetPass(cameraP)
|
||||||
return
|
return
|
||||||
|
|
||||||
def setup_camera(pl,bounds,viewvec,dist=None,parallel_projection=False,
|
def camera_from_view(pl,bounds,viewvec,
|
||||||
rel_focus=(0.5,0.5,0.5),abs_focus=None,viewup=(0,1,0)):
|
focus=(0.5,0.5,0.5),
|
||||||
|
viewup=(0,1,0),
|
||||||
|
is_focus_relative=True):
|
||||||
import numpy as np
|
import numpy as np
|
||||||
if not abs_focus:
|
focal_point = get_focal_point(bounds,focus,is_focus_relative)
|
||||||
focal_point = np.array(
|
pl.view_vector(-np.array(viewvec),viewup)
|
||||||
(rel_focus[0]*(bounds[1]+bounds[0]),
|
pl.set_focus(focal_point)
|
||||||
rel_focus[1]*(bounds[3]+bounds[2]),
|
pl.reset_camera_clipping_range()
|
||||||
rel_focus[2]*(bounds[5]+bounds[4])))
|
|
||||||
else:
|
|
||||||
focal_point = np.array(abs_focus)
|
|
||||||
viewvec = np.array(viewvec)
|
|
||||||
viewup = np.array(viewup)
|
|
||||||
if dist is None:
|
|
||||||
pl.set_focus(tuple(focal_point))
|
|
||||||
pl.view_vector(tuple(-viewvec),tuple(viewup))
|
|
||||||
else:
|
|
||||||
position = focal_point-viewvec/np.linalg.norm(viewvec)*dist
|
|
||||||
# https://github.com/pyvista/pyvista-support/issues/40
|
|
||||||
pl.camera_position = (
|
|
||||||
tuple(position),
|
|
||||||
tuple(focal_point),
|
|
||||||
tuple(viewup))
|
|
||||||
if parallel_projection:
|
|
||||||
pl.enable_parallel_projection()
|
|
||||||
else:
|
|
||||||
pl.disable_parallel_projection()
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def camera_from_distance(pl,bounds,viewvec,dist,
|
||||||
|
focus=(0.5,0.5,0.5),
|
||||||
|
viewup=(0,1,0),
|
||||||
|
zoom=1.0,
|
||||||
|
is_focus_relative=True):
|
||||||
|
import numpy as np
|
||||||
|
focal_point = get_focal_point(bounds,focus,is_focus_relative)
|
||||||
|
position = focal_point-viewvec/np.linalg.norm(viewvec)*dist
|
||||||
|
return camera_from_position(pl,
|
||||||
|
bounds,viewvec,position,
|
||||||
|
focus=focal_point,
|
||||||
|
viewup=viewup,
|
||||||
|
zoom=zoom,
|
||||||
|
is_focus_relative=False)
|
||||||
|
|
||||||
|
def camera_from_position(pl,bounds,viewvec,position,
|
||||||
|
focus=(0.5,0.5,0.5),
|
||||||
|
viewup=(0,1,0),
|
||||||
|
zoom=1.0,
|
||||||
|
is_focus_relative=True):
|
||||||
|
focal_point = get_focal_point(bounds,focus,is_focus_relative)
|
||||||
|
pl.set_focus(focal_point)
|
||||||
|
pl.set_position(position)
|
||||||
|
pl.set_viewup(viewup)
|
||||||
|
pl.camera.zoom(zoom)
|
||||||
|
pl.reset_camera_clipping_range()
|
||||||
|
return
|
||||||
|
|
||||||
|
def get_focal_point(bounds,focus,is_focus_relative=True):
|
||||||
|
import numpy as np
|
||||||
|
if is_focus_relative:
|
||||||
|
focal_point = np.array(
|
||||||
|
(focus[0]*(bounds[1]+bounds[0]),
|
||||||
|
focus[1]*(bounds[3]+bounds[2]),
|
||||||
|
focus[2]*(bounds[5]+bounds[4])))
|
||||||
|
else:
|
||||||
|
focal_point = np.array(focus)
|
||||||
|
return focal_point
|
||||||
|
|
||||||
def chunk_to_pvmesh(chunk,gridg):
|
def chunk_to_pvmesh(chunk,gridg):
|
||||||
import pyvista
|
import pyvista
|
||||||
mesh = pyvista.UniformGrid()
|
mesh = pyvista.UniformGrid()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue