Skip to content

Commit c976ab5

Browse files
committed
update docs and add a test
1 parent 98e86ef commit c976ab5

File tree

2 files changed

+23
-6
lines changed

2 files changed

+23
-6
lines changed

src/meshcat/geometry.py

+9-6
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,12 @@ def lower(self):
288288

289289
class PerspectiveCamera(SceneElement):
290290
"""
291-
Checkout https://threejs.org/docs/#api/en/cameras/PerspectiveCamera
291+
The PerspectiveCamera is the default camera used by the meshcat viewer. See
292+
https://threejs.org/docs/#api/en/cameras/PerspectiveCamera for more
293+
information.
292294
"""
293-
def __init__(self, fov, aspect, near, far, zoom):
295+
def __init__(self, fov = 50, aspect = 1, near = 0.1, far = 2000,
296+
zoom = 1, filmGauge=35, filmOffset = 0, focus = 10):
294297
"""
295298
fov : Camera frustum vertical field of view, from bottom to top of view, in degrees. Default is 50.
296299
aspect: Camera frustum aspect ratio, usually the canvas width / canvas height. Default is 1 (square canvas).
@@ -307,14 +310,14 @@ def __init__(self, fov, aspect, near, far, zoom):
307310
"""
308311
#super(PerspectiveCamera, self).__init__()
309312
SceneElement.__init__(self)
313+
self.fov = fov
310314
self.aspect = aspect
311315
self.far = far
312-
self.filmGauge = 35
313-
self.filmOffset = 0
314-
self.focus = 10
315-
self.fov = fov
316316
self.near = near
317317
self.zoom = zoom
318+
self.filmGauge = filmGauge
319+
self.filmOffset = filmOffset
320+
self.focus = focus
318321

319322
def lower(self):
320323
data = {

src/meshcat/tests/test_drawing.py

+14
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,17 @@ def runTest(self):
286286
self.vis['/Cameras/default/rotated/<object>'].set_property(
287287
"position", [0, 0, 0])
288288
self.vis['/Grid'].set_property("visible", False)
289+
290+
class TestPerspectiveCamera(VisualizerTest):
291+
def runTest(self):
292+
"""
293+
Test that we can set_object with a PerspectiveCamera.
294+
"""
295+
self.vis.set_object(g.Box([0.5, 0.5, 0.5]))
296+
297+
camera = g.PerspectiveCamera(fov=90)
298+
self.vis['/Cameras/default/rotated'].set_object(camera)
299+
self.vis['/Cameras/default'].set_transform(
300+
tf.translation_matrix([1, -1, 0.5]))
301+
self.vis['/Cameras/default/rotated/<object>'].set_property(
302+
"position", [0, 0, 0])

0 commit comments

Comments
 (0)