Repository: mikedh/trimesh
Pull request #388 (2019-04-23 08:55:47)

Remove index shift by +-0.5 in voxel.py
Close https://github.com/mikedh/trimesh/issues/370

**NOTE**: This is not backward compatible.


Patch:
diff --git a/.travis.yml b/.travis.yml
index cf5df6fb..8a875849 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -120,7 +120,7 @@ script:
 
 # make sure examples still work
 - cd examples
-- set -xe; for f in *py*; do python ../tests/notebooks.py ci exec "$f"; done
+- set -xe; for f in *py*; do python ../tests/notebooks.py exec "$f"; done
 - cd ..
 
 after_success:
diff --git a/examples/curvature.ipynb b/examples/curvature.ipynb
index 308c5c0d..7f69cb7c 100644
--- a/examples/curvature.ipynb
+++ b/examples/curvature.ipynb
@@ -21,7 +21,7 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "radii = np.linspace(0.1, 2.0, 10)\n",
+    "radii = np.linspace(0.1, 2.0)\n",
     "gauss = np.array([discrete_gaussian_curvature_measure(mesh, mesh.vertices, r)/sphere_ball_intersection(1, r) for r in radii])\n",
     "mean = np.array([discrete_mean_curvature_measure(mesh, mesh.vertices, r)/sphere_ball_intersection(1, r) for r in radii])"
    ]
@@ -33,26 +33,22 @@
    "outputs": [
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\ngg==\n",
       "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
+       "<matplotlib.figure.Figure at 0x112a3048>"
       ]
      },
-     "metadata": {
-      "needs_background": "light"
-     },
+     "metadata": {},
      "output_type": "display_data"
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
+       "<matplotlib.figure.Figure at 0x117a1cc0>"
       ]
      },
-     "metadata": {
-      "needs_background": "light"
-     },
+     "metadata": {},
      "output_type": "display_data"
     }
    ],
@@ -66,13 +62,6 @@
     "plt.title('Mean Curvature')\n",
     "plt.show();"
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {
diff --git a/examples/widget.py b/examples/widget.py
deleted file mode 100644
index 8fa8458d..00000000
--- a/examples/widget.py
+++ /dev/null
@@ -1,132 +0,0 @@
-"""
-Glooey widget example. Only runs with python>=3.6
-"""
-
-import pathlib
-
-import glooey
-import numpy as np
-
-import pyglet
-import trimesh
-import trimesh.viewer
-import trimesh.transformations as tf
-
-
-here = pathlib.Path(__file__).resolve().parent
-
-
-def create_scene1():
-    """
-    Create a scene with a Fuze bottle, some cubes, and an axis.
-
-    Returns
-    ----------
-    scene : trimesh.Scene
-      Object with geometry
-    """
-    scene = trimesh.Scene()
-
-    # plane
-    geom = trimesh.creation.box((0.5, 0.5, 0.01))
-    geom.apply_translation((0, 0, -0.005))
-    geom.visual.face_colors = (.6, .6, .6)
-    scene.add_geometry(geom)
-
-    # axis
-    geom = trimesh.creation.axis(0.02)
-    scene.add_geometry(geom)
-
-    box_size = 0.1
-
-    # box1
-    geom = trimesh.creation.box((box_size,) * 3)
-    geom.visual.face_colors = np.random.uniform(
-        0, 1, (len(geom.faces), 3))
-    transform = tf.translation_matrix([0.1, 0.1, box_size / 2])
-    scene.add_geometry(geom, transform=transform)
-
-    # box2
-    geom = trimesh.creation.box((box_size,) * 3)
-    geom.visual.face_colors = np.random.uniform(
-        0, 1, (len(geom.faces), 3))
-    transform = tf.translation_matrix([-0.1, 0.1, box_size / 2])
-    scene.add_geometry(geom, transform=transform)
-
-    # fuze
-    geom = trimesh.load(str(here / '../models/fuze.obj'))
-    transform = tf.translation_matrix([-0.1, -0.1, 0])
-    scene.add_geometry(geom, transform=transform)
-
-    # sphere
-    geom = trimesh.creation.icosphere(radius=0.05)
-    geom.visual.face_colors = np.random.uniform(
-        0, 1, (len(geom.faces), 3))
-    transform = tf.translation_matrix([0.1, -0.1, box_size / 2])
-    scene.add_geometry(geom, transform=transform)
-
-    return scene
-
-
-def create_scene2():
-    """
-    Create a scene with a bunch of small icospheres
-    """
-    scene = trimesh.Scene()
-
-    geom = trimesh.path.creation.box_outline((0.6, 0.6, 0.6))
-    scene.add_geometry(geom)
-
-    for _ in range(50):
-        geom = trimesh.creation.icosphere(radius=0.01, subdivisions=2)
-        geom.visual.face_colors = np.random.uniform(0, 1, (3,))
-        eye = np.random.uniform(-0.3, 0.3, (3,))
-        transform = tf.translation_matrix(eye)
-        scene.add_geometry(geom, transform=transform)
-
-    scene.set_camera(angles=[np.deg2rad(60), 0, 0], distance=1.5)
-
-    return scene
-
-
-if __name__ == '__main__':
-    np.random.seed(0)
-
-    # create a pyglet window
-    window = pyglet.window.Window(width=1280, height=480)
-    # create a glooey interface using the window
-    gui = glooey.Gui(window)
-
-    hbox = glooey.HBox()
-    hbox.set_padding(5)
-
-    # define a callback which will spin the scene
-    def callback():
-        if not hasattr(widget1, '_angles'):
-            widget1._angles = [np.deg2rad(45), 0, 0]
-        widget1._angles[2] += np.deg2rad(1)
-        widget1.scene.set_camera(angles=widget1._angles, distance=1)
-        widget1._draw()
-
-    # make a widget with one scene
-    scene = create_scene1()
-    widget1 = trimesh.viewer.SceneWidget(scene)
-    hbox.add(widget1)
-
-    # make a widget with the other scene
-    scene = create_scene2()
-    widget2 = trimesh.viewer.SceneWidget(scene)
-    hbox.add(widget2)
-
-    # add the boxes with the widgets to the gui
-    gui.add(hbox)
-
-    # schedule a callback to spin the scene
-    pyglet.clock.schedule_interval(lambda dt: callback(), 1 / 20)
-
-    @window.event
-    def on_key_press(symbol, modifiers):
-        if symbol == pyglet.window.key.Q:
-            window.close()
-
-    pyglet.app.run()
diff --git a/setup.py b/setup.py
index 39457708..ce93f81d 100644
--- a/setup.py
+++ b/setup.py
@@ -84,6 +84,5 @@ setup(name='trimesh',
                               'pycollada',
                               'psutil',
                               'pillow',
-                              'setuptools',
-                              'glooey']}
+                              'setuptools']}
       )
diff --git a/trimesh/creation.py b/trimesh/creation.py
index 2d849e6f..e9b85bcb 100644
--- a/trimesh/creation.py
+++ b/trimesh/creation.py
@@ -481,10 +481,9 @@ def box(extents=None, transform=None, **kwargs):
 
     Returns
     ------------
-    geometry : trimesh.Trimesh
-      Mesh of a cuboid
+    box : trimesh.Trimesh
+      Cuboid geometry in space
     """
-    # vertices of the cube
     vertices = [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1,
                 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1]
     vertices = np.array(vertices,
@@ -492,7 +491,6 @@ def box(extents=None, transform=None, **kwargs):
                         dtype=np.float64).reshape((-1, 3))
     vertices -= 0.5
 
-    # resize cube based on passed extents
     if extents is not None:
         extents = np.asanyarray(extents, dtype=np.float64)
         if extents.shape != (3,):
@@ -515,8 +513,6 @@ def box(extents=None, transform=None, **kwargs):
                   face_normals=face_normals,
                   process=False,
                   **kwargs)
-
-    # do the transform here to preserve face normals
     if transform is not None:
         box.apply_transform(transform)
 
diff --git a/trimesh/path/creation.py b/trimesh/path/creation.py
index f6d8242a..8916a6e5 100644
--- a/trimesh/path/creation.py
+++ b/trimesh/path/creation.py
@@ -2,7 +2,6 @@ from . import arc
 from . import entities
 
 from .. import util
-from .. import transformations
 
 import collections
 import numpy as np
@@ -158,49 +157,3 @@ def rectangle(bounds, **kwargs):
                   **kwargs)
 
     return rect
-
-
-def box_outline(extents=None, transform=None, **kwargs):
-    """
-    Return a cuboid.
-
-    Parameters
-    ------------
-    extents : float, or (3,) float
-      Edge lengths
-    transform: (4, 4) float
-      Transformation matrix
-    **kwargs:
-        passed to Trimesh to create box
-
-    Returns
-    ------------
-    geometry : trimesh.Path3D
-      Path outline of a cuboid geometry
-    """
-    from .exchange.load import load_path
-
-    # create vertices for the box
-    vertices = [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1,
-                1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1]
-    vertices = np.array(vertices,
-                        order='C',
-                        dtype=np.float64).reshape((-1, 3))
-    vertices -= 0.5
-
-    # resize the vertices based on passed size
-    if extents is not None:
-        extents = np.asanyarray(extents, dtype=np.float64)
-        if extents.shape != (3,):
-            raise ValueError('Extents must be (3,)!')
-        vertices *= extents
-
-    # apply transform if passed
-    if transform is not None:
-        vertices = transformations.transform_points(vertices, transform)
-
-    # vertex indices
-    indices = [0, 1, 3, 2, 0, 4, 5, 7, 6, 4, 0, 2, 6, 7, 3, 1, 5]
-    outline = load_path(vertices[indices])
-
-    return outline
diff --git a/trimesh/scene/cameras.py b/trimesh/scene/cameras.py
index 4f0ddca4..0b2cf3be 100644
--- a/trimesh/scene/cameras.py
+++ b/trimesh/scene/cameras.py
@@ -308,7 +308,7 @@ class Camera(object):
         return camera_to_rays(self)
 
 
-def look_at(points, fov, rotation=None, distance=None):
+def look_at(points, fov, rotation=None):
     """
     Generate transform for a camera to keep a list
     of points in the camera's field of view.
@@ -347,15 +347,13 @@ def look_at(points, fov, rotation=None, distance=None):
     # Find the minimum distance for the camera from the origin
     # so that all points fit in the view frustrum
     tfov = np.tan(np.radians(fov) / 2.0)
-
-    if distance is None:
-        distance = np.max(np.abs(points_c[:, :2]) /
-                          tfov + points_c[:, 2][:, np.newaxis])
+    dist = np.max(np.abs(points_c[:, :2]) /
+                  tfov + points_c[:, 2][:, np.newaxis])
 
     # set the pose translation
     center_w = rotation[:3, :3].dot(center_c)
     cam_pose = rotation.copy()
-    cam_pose[:3, 3] = center_w + distance * cam_pose[:3, 2]
+    cam_pose[:3, 3] = center_w + dist * cam_pose[:3, 2]
 
     return cam_pose
 
diff --git a/trimesh/scene/scene.py b/trimesh/scene/scene.py
index 105f2780..ab3173cd 100644
--- a/trimesh/scene/scene.py
+++ b/trimesh/scene/scene.py
@@ -447,8 +447,7 @@ class Scene(Geometry):
         rotation = transformations.euler_matrix(*angles)
         transform = cameras.look_at(self.bounds_corners,
                                     fov=fov,
-                                    rotation=rotation,
-                                    distance=distance)
+                                    rotation=rotation)
 
         if hasattr(self, '_camera') and self._camera is not None:
             self.camera.fov = fov
diff --git a/trimesh/viewer/__init__.py b/trimesh/viewer/__init__.py
index 239ae540..ac0952ef 100644
--- a/trimesh/viewer/__init__.py
+++ b/trimesh/viewer/__init__.py
@@ -44,18 +44,11 @@ except BaseException as E:
     render_scene = _cloture(E)
 
 
-try:
-    from .widget import SceneWidget
-except BaseException as E:
-    SceneWidget = _cloture(E)
-
-
 # this is only standard library imports
 
 # explicitly list imports in __all__
 # as otherwise flake8 gets mad
-__all__ = [SceneWidget,
-           SceneViewer,
+__all__ = [SceneViewer,
            render_scene,
            in_notebook,
            scene_to_notebook,
diff --git a/trimesh/viewer/widget.py b/trimesh/viewer/widget.py
deleted file mode 100644
index 9b2678cc..00000000
--- a/trimesh/viewer/widget.py
+++ /dev/null
@@ -1,268 +0,0 @@
-"""
-widget.py
--------------
-
-A widget which can visualize trimesh.Scene objects in a glooey window.
-
-Check out an example in `examples/widget.py`
-"""
-import glooey
-import numpy as np
-import pyglet
-from pyglet import gl
-
-from .. import rendering
-from .trackball import Trackball
-from .windowed import geometry_hash
-from .windowed import SceneViewer
-
-
-class SceneGroup(pyglet.graphics.Group):
-
-    def __init__(
-        self,
-        rect,
-        scene,
-        background=None,
-        pixel_per_point=(1, 1),
-        parent=None,
-    ):
-        super().__init__(parent)
-        self.rect = rect
-        self.scene = scene
-
-        if background is None:
-            background = [.99, .99, .99, 1.0]
-        self._background = background
-
-        self._pixel_per_point = pixel_per_point
-
-    def _set_view(self):
-        left = int(self._pixel_per_point[0] * self.rect.left)
-        bottom = int(self._pixel_per_point[1] * self.rect.bottom)
-        width = int(self._pixel_per_point[0] * self.rect.width)
-        height = int(self._pixel_per_point[1] * self.rect.height)
-
-        gl.glPushAttrib(gl.GL_ENABLE_BIT)
-        gl.glEnable(gl.GL_SCISSOR_TEST)
-        gl.glScissor(left, bottom, width, height)
-
-        self._mode = (gl.GLint)()
-        gl.glGetIntegerv(gl.GL_MATRIX_MODE, self._mode)
-        self._viewport = (gl.GLint * 4)()
-        gl.glGetIntegerv(gl.GL_VIEWPORT, self._viewport)
-
-        gl.glViewport(left, bottom, width, height)
-        gl.glMatrixMode(gl.GL_PROJECTION)
-        gl.glPushMatrix()
-        gl.glLoadIdentity()
-        near = 0.01
-        far = self.scene.scale * 5.0
-        gl.gluPerspective(self.scene.camera.fov[1], width / height, near, far)
-        gl.glMatrixMode(gl.GL_MODELVIEW)
-
-    def _unset_view(self):
-        gl.glMatrixMode(gl.GL_PROJECTION)
-        gl.glPopMatrix()
-        gl.glMatrixMode(self._mode.value)
-        gl.glViewport(
-            self._viewport[0],
-            self._viewport[1],
-            self._viewport[2],
-            self._viewport[3],
-        )
-
-        gl.glPopAttrib()
-
-    def set_state(self):
-        self._set_view()
-
-        SceneViewer._gl_set_background(self._background)
-        SceneViewer._gl_enable_depth(self.scene)
-        SceneViewer._gl_enable_color_material()
-        SceneViewer._gl_enable_blending()
-        SceneViewer._gl_enable_smooth_lines()
-        SceneViewer._gl_enable_lighting(self.scene)
-
-        gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
-
-        gl.glPushMatrix()
-        gl.glLoadIdentity()
-        gl.glMultMatrixf(
-            rendering.matrix_to_gl(np.linalg.inv(self.scene.camera.transform)))
-
-    def unset_state(self):
-        gl.glPopMatrix()
-
-        SceneViewer._gl_unset_background()
-
-        self._unset_view()
-
-
-class MeshGroup(pyglet.graphics.Group):
-
-    def __init__(self, transform=None, texture=None, parent=None):
-        super().__init__(parent)
-        if transform is None:
-            transform = np.eye(4)
-        self.transform = transform
-        self.texture = texture
-
-    def set_state(self):
-        gl.glPushMatrix()
-        gl.glMultMatrixf(rendering.matrix_to_gl(self.transform))
-
-        if self.texture:
-            gl.glEnable(self.texture.target)
-            gl.glBindTexture(self.texture.target, self.texture.id)
-
-    def unset_state(self):
-        if self.texture:
-            gl.glDisable(self.texture.target)
-
-        gl.glPopMatrix()
-
-
-class SceneWidget(glooey.Widget):
-
-    def __init__(self, scene, **kwargs):
-        super().__init__()
-        self.scene = scene
-        self._scene_group = None
-
-        # key is node_name
-        self.mesh_group = {}
-
-        # key is geometry_name
-        self.vertex_list = {}
-        self.vertex_list_hash = {}
-        self.textures = {}
-
-        self._initial_camera_transform = self.scene.camera.transform
-        self.reset_view()
-
-        self._background = kwargs.pop('background', None)
-        if kwargs:
-            raise TypeError('unexpected kwargs: {}'.format(kwargs))
-
-    @property
-    def scene_group(self):
-        if self._scene_group is None:
-            pixel_per_point = (np.array(self.window.get_viewport_size()) /
-                               np.array(self.window.get_size()))
-            self._scene_group = SceneGroup(
-                rect=self.rect,
-                scene=self.scene,
-                background=self._background,
-                pixel_per_point=pixel_per_point,
-                parent=self.group,
-            )
-        return self._scene_group
-
-    def reset_view(self):
-        self.view = {
-            'ball': Trackball(
-                pose=self._initial_camera_transform,
-                size=self.scene.camera.resolution,
-                scale=self.scene.scale,
-                target=self.scene.centroid)}
-
-    def do_claim(self):
-        return 0, 0
-
-    def do_regroup(self):
-        if not self.vertex_list:
-            return
-
-        node_names = self.scene.graph.nodes_geometry
-        for node_name in node_names:
-            transform, geometry_name = self.scene.graph[node_name]
-            if geometry_name not in self.vertex_list:
-                continue
-            vertex_list = self.vertex_list[geometry_name]
-
-            if node_name in self.mesh_group:
-                mesh_group = self.mesh_group[node_name]
-            else:
-                mesh_group = MeshGroup(
-                    transform=transform,
-                    texture=self.textures.get(geometry_name),
-                    parent=self.scene_group)
-                self.mesh_group[node_name] = mesh_group
-            self.batch.migrate(
-                vertex_list,
-                gl.GL_TRIANGLES,
-                mesh_group,
-                self.batch)
-
-    def do_draw(self):
-        resolution = (self.rect.width, self.rect.height)
-        if not (resolution == self.scene.camera.resolution).all():
-            self.scene.camera.resolution = resolution
-
-        node_names = self.scene.graph.nodes_geometry
-        for node_name in node_names:
-            transform, geometry_name = self.scene.graph[node_name]
-            geometry = self.scene.geometry[geometry_name]
-            self._update_node(node_name, geometry_name, geometry, transform)
-
-    def do_undraw(self):
-        if not self.vertex_list:
-            return
-        for vertex_list in self.vertex_list.values():
-            vertex_list.delete()
-        self._scene_group = None
-        self.mesh_group = {}
-        self.vertex_list = {}
-        self.vertex_list_hash = {}
-        self.textures = {}
-
-    def on_mouse_press(self, x, y, buttons, modifiers):
-        SceneViewer.on_mouse_press(self, x, y, buttons, modifiers)
-        self._draw()
-
-    def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
-        # detect a drag across widgets
-        x_prev = x - dx
-        y_prev = y - dy
-        left, bottom = self.rect.left, self.rect.bottom
-        width, height = self.rect.width, self.rect.height
-        if not (left <= x_prev <= left + width) or \
-                not (bottom <= y_prev <= bottom + height):
-            self.view['ball'].down(np.array([x, y]))
-
-        SceneViewer.on_mouse_drag(self, x, y, dx, dy, buttons, modifiers)
-        self._draw()
-
-    def on_mouse_scroll(self, x, y, dx, dy):
-        SceneViewer.on_mouse_scroll(self, x, y, dx, dy)
-        self._draw()
-
-    def _update_node(self, node_name, geometry_name, geometry, transform):
-        geometry_hash_new = geometry_hash(geometry)
-        if self.vertex_list_hash.get(geometry_name) != geometry_hash_new:
-            # if geometry has texture defined convert it to opengl form
-            if hasattr(geometry, 'visual') and hasattr(
-                    geometry.visual, 'material'):
-                tex = rendering.material_to_texture(geometry.visual.material)
-                if tex is not None:
-                    self.textures[geometry_name] = tex
-
-        if node_name in self.mesh_group:
-            mesh_group = self.mesh_group[node_name]
-            mesh_group.transform = transform
-            mesh_group.texture = self.textures.get(geometry_name)
-        else:
-            mesh_group = MeshGroup(
-                transform=transform,
-                texture=self.textures.get(geometry_name),
-                parent=self.scene_group)
-            self.mesh_group[node_name] = mesh_group
-
-        if self.vertex_list_hash.get(geometry_name) != geometry_hash_new:
-            # convert geometry to constructor args
-            args = rendering.convert_to_vertexlist(geometry, group=mesh_group)
-            # create the indexed vertex list
-            self.vertex_list[geometry_name] = self.batch.add_indexed(*args)
-            # save the MD5 of the geometry
-            self.vertex_list_hash[geometry_name] = geometry_hash_new
diff --git a/trimesh/viewer/windowed.py b/trimesh/viewer/windowed.py
index 755fb9eb..614c94d2 100644
--- a/trimesh/viewer/windowed.py
+++ b/trimesh/viewer/windowed.py
@@ -75,10 +75,7 @@ class SceneViewer(pyglet.window.Window):
         self.callback = callback
         self.callback_period = callback_period
         self.scene._redraw = self._redraw
-
-        # save initial camera transform
-        self._initial_camera_transform = scene.camera.transform.copy()
-
+        self._initial_camera_transform = scene.camera.transform
         self.reset_view(flags=flags)
         self.batch = pyglet.graphics.Batch()
         self._smooth = smooth
@@ -250,26 +247,12 @@ class SceneViewer(pyglet.window.Window):
                 log.error('background color set but wrong!',
                           exc_info=True)
 
-        self._gl_set_background(background)
-        self._gl_enable_depth(self.scene)
-        self._gl_enable_color_material()
-        self._gl_enable_blending()
-        self._gl_enable_smooth_lines()
-        self._gl_enable_lighting(self.scene)
-
-    @staticmethod
-    def _gl_set_background(background):
+        # apply the background color
         gl.glClearColor(*background)
 
-    @staticmethod
-    def _gl_unset_background():
-        gl.glClearColor(*[0, 0, 0, 0])
-
-    @staticmethod
-    def _gl_enable_depth(scene):
         # find the maximum depth based on
         # maximum length of scene AABB
-        max_depth = (np.abs(scene.bounds).max(axis=1) ** 2).sum() ** .5
+        max_depth = (np.abs(self.scene.bounds).max(axis=1) ** 2).sum() ** .5
         max_depth = np.clip(max_depth, 500.00, np.inf)
         gl.glDepthRange(0.0, max_depth)
 
@@ -280,8 +263,6 @@ class SceneViewer(pyglet.window.Window):
         gl.glEnable(gl.GL_DEPTH_TEST)
         gl.glEnable(gl.GL_CULL_FACE)
 
-    @staticmethod
-    def _gl_enable_color_material():
         # do some openGL things
         gl.glColorMaterial(gl.GL_FRONT_AND_BACK,
                            gl.GL_AMBIENT_AND_DIFFUSE)
@@ -305,15 +286,11 @@ class SceneViewer(pyglet.window.Window):
                        gl.GL_SHININESS,
                        .4 * 128.0)
 
-    @staticmethod
-    def _gl_enable_blending():
         # enable blending for transparency
         gl.glEnable(gl.GL_BLEND)
         gl.glBlendFunc(gl.GL_SRC_ALPHA,
                        gl.GL_ONE_MINUS_SRC_ALPHA)
 
-    @staticmethod
-    def _gl_enable_smooth_lines():
         # make the lines from Path3D objects less ugly
         gl.glEnable(gl.GL_LINE_SMOOTH)
         gl.glHint(gl.GL_LINE_SMOOTH_HINT, gl.GL_NICEST)
@@ -322,20 +299,22 @@ class SceneViewer(pyglet.window.Window):
         # set PointCloud markers to 4 pixels in size
         gl.glPointSize(4)
 
-    @staticmethod
-    def _gl_enable_lighting(scene):
+        # set up the viewer lights using self.scene
+        self.update_lighting()
+
+    def update_lighting(self):
         """
         Take the lights defined in scene.lights and
         apply them as openGL lights.
         """
         gl.glEnable(gl.GL_LIGHTING)
         # opengl only supports 7 lights?
-        for i, light in enumerate(scene.lights[:7]):
+        for i, light in enumerate(self.scene.lights[:7]):
             # the index of which light we have
             lightN = eval('gl.GL_LIGHT{}'.format(i))
 
             # get the transform for the light by name
-            matrix = scene.graph[light.name][0]
+            matrix = self.scene.graph[light.name][0]
 
             # convert light object to glLightfv calls
             multiargs = rendering.light_to_gl(
@@ -455,7 +434,6 @@ class SceneViewer(pyglet.window.Window):
 
         self.scene.camera.resolution = (width, height)
         self.view['ball'].resize(self.scene.camera.resolution)
-        self.scene.camera.transform = self.view['ball'].pose
 
     def on_mouse_press(self, x, y, buttons, modifiers):
         """
@@ -477,21 +455,18 @@ class SceneViewer(pyglet.window.Window):
             self.view['ball'].set_state(Trackball.STATE_ZOOM)
 
         self.view['ball'].down(np.array([x, y]))
-        self.scene.camera.transform = self.view['ball'].pose
 
     def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers):
         """
         Pan or rotate the view.
         """
         self.view['ball'].drag(np.array([x, y]))
-        self.scene.camera.transform = self.view['ball'].pose
 
     def on_mouse_scroll(self, x, y, dx, dy):
         """
         Zoom the view.
         """
         self.view['ball'].scroll(dy)
-        self.scene.camera.transform = self.view['ball'].pose
 
     def on_key_press(self, symbol, modifiers):
         """
@@ -512,23 +487,18 @@ class SceneViewer(pyglet.window.Window):
             self.maximize()
         elif symbol == pyglet.window.key.F:
             self.toggle_fullscreen()
-
-        if symbol in [
-            pyglet.window.key.LEFT,
-            pyglet.window.key.RIGHT,
-            pyglet.window.key.DOWN,
-            pyglet.window.key.UP,
-        ]:
+        elif symbol == pyglet.window.key.LEFT:
+            self.view['ball'].down([0, 0])
+            self.view['ball'].drag([-magnitude, 0])
+        elif symbol == pyglet.window.key.RIGHT:
+            self.view['ball'].down([0, 0])
+            self.view['ball'].drag([magnitude, 0])
+        elif symbol == pyglet.window.key.DOWN:
             self.view['ball'].down([0, 0])
-            if symbol == pyglet.window.key.LEFT:
-                self.view['ball'].drag([-magnitude, 0])
-            elif symbol == pyglet.window.key.RIGHT:
-                self.view['ball'].drag([magnitude, 0])
-            elif symbol == pyglet.window.key.DOWN:
-                self.view['ball'].drag([0, -magnitude])
-            elif symbol == pyglet.window.key.UP:
-                self.view['ball'].drag([0, magnitude])
-            self.scene.camera.transform = self.view['ball'].pose
+            self.view['ball'].drag([0, -magnitude])
+        elif symbol == pyglet.window.key.UP:
+            self.view['ball'].down([0, 0])
+            self.view['ball'].drag([0, magnitude])
 
     def on_draw(self):
         """
@@ -538,6 +508,9 @@ class SceneViewer(pyglet.window.Window):
         gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
         gl.glLoadIdentity()
 
+        # change camera transform based on the trackball on viewer
+        self.scene.camera.transform = self.view['ball'].pose.copy()
+
         # pull the new camera transform from the scene
         transform_camera = self.scene.graph.get(
             frame_to='world',
diff --git a/trimesh/voxel.py b/trimesh/voxel.py
index 8f0ab5c5..fdff3303 100644
--- a/trimesh/voxel.py
+++ b/trimesh/voxel.py
@@ -138,6 +138,22 @@ class VoxelBase(object):
 
 class Voxel(VoxelBase):
 
+    """
+    Voxel representation with matrix, pitch and origin.
+
+    All voxels are referenced by the center of their cell box, for example,
+    the ``origin`` exactly matches the center of the first voxel.
+
+    Parameters
+    ----------
+    matrix: (X, Y, Z)
+        Matrix that is interpreted as boolean to represent filled voxels.
+    pitch: float
+        Scale of each voxel.
+    origin: (3,) float
+        The center of the first voxel.
+    """
+
     def __init__(self, matrix, pitch, origin):
         super(Voxel, self).__init__()
 
@@ -646,7 +662,7 @@ def points_to_indices(points, pitch, origin):
     if origin.shape != (3,):
         raise ValueError('shape of origin must be (3,)')
 
-    indices = np.round((points - origin) / pitch + 0.5).astype(int)
+    indices = np.round((points - origin) / pitch).astype(int)
     return indices
 
 
@@ -676,7 +692,7 @@ def indices_to_points(indices, pitch, origin):
     if origin.shape != (3,):
         raise ValueError('shape of origin must be (3,)')
 
-    points = (indices - 0.5) * pitch + origin
+    points = indices * pitch + origin
     return points
 
 


Test patch:
diff --git a/tests/notebooks.py b/tests/notebooks.py
index ead025ca..c1a5e99d 100644
--- a/tests/notebooks.py
+++ b/tests/notebooks.py
@@ -1,5 +1,5 @@
-import os
 import sys
+import os
 import json
 import inspect
 import subprocess
@@ -123,39 +123,24 @@ def render_examples(out_dir, in_dir=None, ext='ipynb'):
         render_notebook(nb_path, html_path)
 
 
-def main():
-
-    # examples which we're not going to run in CI
-    # widget.py opens a window and does a bunch of openGL stuff
-    ci_blacklist = ['widget.py']
-
+if __name__ == '__main__':
+    """
+    Load and run a notebook if a file name is passed
+    """
     if "examples" in sys.argv:
         out_path = sys.argv[sys.argv.index("examples") + 1]
         render_examples(out_path)
     elif "exec" in sys.argv:
         # exec the script passed
-        file_name = sys.argv[sys.argv.index("exec") + 1].strip()
-        # we want to skip some of these examples in CI
-        if 'ci' in sys.argv and os.path.basename(file_name) in ci_blacklist:
-            print(file_name, 'in CI blacklist: skipping!')
-            return
-
+        file_name = sys.argv[sys.argv.index("exec") + 1]
         if (file_name.endswith('ipynb') and
                 os.path.exists(file_name)):
             with open(file_name, 'r') as file_obj:
                 script = load_notebook(file_obj)
             print('\nloaded {}:\n'.format(file_name))
-            print('script:\n\n{}\n'.format(script))
-            exec(script, globals())
+            exec(script)
         elif file_name.endswith('.py'):
             with open(file_name, 'r') as file_obj:
                 script = exclude_calls(file_obj.read().split('\n'))
             print('\nloaded {}:\n'.format(file_name))
-            exec(script, globals())
-
-        
-if __name__ == '__main__':
-    """
-    Load and run a notebook if a file name is passed
-    """
-    main()
+            exec(script)
diff --git a/tests/test_voxel.py b/tests/test_voxel.py
index 0e97131f..d5b88627 100644
--- a/tests/test_voxel.py
+++ b/tests/test_voxel.py
@@ -102,30 +102,38 @@ class VoxelTest(g.unittest.TestCase):
                                                 fill=True)
 
     def test_points_to_from_indices(self):
-        points = [[0.05, 0.55, 0.35]]
+        # indices = (points - origin) / pitch
+        points = [[0, 0, 0], [0.04, 0.55, 0.39]]
         origin = [0, 0, 0]
         pitch = 0.1
-        indices = [[1, 6, 4]]
+        indices = [[0, 0, 0], [0, 6, 4]]
 
         # points -> indices
-        indices2 = g.trimesh.voxel.points_to_indices(
-            points=points, origin=origin, pitch=pitch
-        )
+        indices2 = g.trimesh.voxel.points_to_indices(points=points,
+                                                     origin=origin,
+                                                     pitch=pitch)
         g.np.testing.assert_allclose(indices, indices2, atol=0, rtol=0)
 
         # indices -> points
-        points2 = g.trimesh.voxel.indices_to_points(
-            indices=indices, origin=origin, pitch=pitch
-        )
-        g.np.testing.assert_allclose(points, points2)
+        points2 = g.trimesh.voxel.indices_to_points(indices=indices,
+                                                    origin=origin,
+                                                    pitch=pitch)
+        g.np.testing.assert_allclose(g.np.array(indices) * pitch + origin,
+                                     points2,
+                                     atol=0,
+                                     rtol=0)
+        g.np.testing.assert_allclose(points,
+                                     points2,
+                                     atol=pitch / 2 * 1.01,
+                                     rtol=0)
 
         # indices -> points -> indices (this must be consistent)
-        points2 = g.trimesh.voxel.indices_to_points(
-            indices=indices, origin=origin, pitch=pitch
-        )
-        indices2 = g.trimesh.voxel.points_to_indices(
-            points=points2, origin=origin, pitch=pitch
-        )
+        points2 = g.trimesh.voxel.indices_to_points(indices=indices,
+                                                    origin=origin,
+                                                    pitch=pitch)
+        indices2 = g.trimesh.voxel.points_to_indices(points=points2,
+                                                     origin=origin,
+                                                     pitch=pitch)
         g.np.testing.assert_allclose(indices, indices2, atol=0, rtol=0)
 
     def test_as_boxes(self):