def test_config(): """Test vispy config methods and file downloading""" assert_raises(TypeError, config.update, data_path=dict()) assert_raises(KeyError, config.update, foo='bar') # bad key data_dir = op.join(temp_dir, 'data') assert_raises(IOError, set_data_dir, data_dir) # didn't say to create orig_val = os.environ.get('_VISPY_CONFIG_TESTING', None) os.environ['_VISPY_CONFIG_TESTING'] = 'true' try: assert_raises(IOError, set_data_dir, data_dir) # doesn't exist yet set_data_dir(data_dir, create=True, save=True) assert_equal(config['data_path'], data_dir) config['data_path'] = data_dir print(config) # __repr__ get_data_file('CONTRIBUTING.txt') fid = open(op.join(data_dir, 'test-faked.txt'), 'w') fid.close() get_data_file('test-faked.txt') # this one shouldn't download assert_raises(RuntimeError, get_data_file, 'foo-nonexist.txt') save_config() finally: if orig_val is not None: os.environ['_VISPY_CONFIG_TESTING'] = orig_val else: del os.environ['_VISPY_CONFIG_TESTING']
import numpy as np from vispy import gloo from vispy import app from vispy.util.transforms import perspective, translate, rotate from vispy.util import get_data_file brain = np.load(get_data_file('brain/brain.npz')) data = brain['vertex_buffer'] faces = brain['index_buffer'] VERT_SHADER = """ uniform mat4 u_model; uniform mat4 u_view; uniform mat4 u_projection; uniform vec4 u_color; attribute vec3 a_position; attribute vec3 a_normal; attribute vec4 a_color; varying vec3 v_position; varying vec3 v_normal; varying vec4 v_color; void main() { v_normal = a_normal; v_position = a_position; v_color = a_color * u_color; gl_Position = u_projection * u_view * u_model * vec4(a_position,1.0);
# Copyright (c) 2014, Vispy Development Team. # Distributed under the (new) BSD License. See LICENSE.txt for more info. """ 3D brain mesh viewer. """ from timeit import default_timer import numpy as np from vispy import gloo from vispy import app from vispy.util.transforms import perspective, translate, rotate from vispy.util import get_data_file brain = np.load(get_data_file('brain/brain.npz')) data = brain['vertex_buffer'] faces = brain['index_buffer'] VERT_SHADER = """ #version 120 uniform mat4 u_model; uniform mat4 u_view; uniform mat4 u_projection; uniform vec4 u_color; attribute vec3 a_position; attribute vec3 a_normal; attribute vec4 a_color; varying vec3 v_position;
self.phi += .1*dx self.theta += .1*dy self.update_matrices() self.update() def update_matrices(self): self.view = np.eye(4, dtype=np.float32) self.model = np.eye(4, dtype=np.float32) self.projection = np.eye(4, dtype=np.float32) rotate(self.model, self.theta, 1, 0, 0) rotate(self.model, self.phi, 0, 1, 0) translate(self.view, 0, 0, -self.translate) self.program['u_model'] = self.model self.program['u_view'] = self.view def on_draw(self, event): gloo.clear() self.program.draw('points') def main(fname): mvc = MolecularViewerCanvas(fname) mvc.show() app.run() if __name__ == '__main__': fname = get_data_file('molecular_viewer/micelle.npz') main(fname)