def box_test(self): scene = Scene() scene.add_renderable(Box([-1, 1], [-0.5, 0.5], [0, 1])) camera = Camera(course=40) projector = StripesProjector(course=70) viewport = (500, 300) projector_lods = 8 self.reconstruction_case('box', scene, camera, projector, viewport, projector_lods)
def bunny_test(self): bunny = ply.read_ply(test_support.resources_dir_path / 'scenes' / 'bunny' / 'bunny.ply') def transform_bunny(ps): world_pos = [0.5, -0.2, 0.0] ps[:, 0] += world_pos[0] ps[:, [0, 1, 2]] = ps[:, [0, 2, 1]] ps = world_pos + (ps - world_pos) * 4 return ps scene = Scene() scene.add_renderable( PointsCloud(transform_bunny(bunny['xyz']).copy(), faces=bunny['face'])) camera = Camera(course=-120) projector = StripesProjector() viewport = (5616, 3744) projector_lods = 10 self.reconstruction_case('bunny', scene, camera, projector, viewport, projector_lods)
def __init__(self, width=640, height=480, title='Frame3D', *, io_async_executor=None, loop=None, fps_limit=0): self._loop = loop or asyncio.get_event_loop() self._io_async_executor = io_async_executor or AsyncExecutor( 4, self._loop) self._title = title self._window = create_window(width, height, title) self._width, self._height = width, height self._viewport_actual = False self._gl_executor = RenderingAsyncExecutor(GLFWContext(self._window), self._loop) self._executor = AsyncExecutor(1, self._loop) self._renderer = SimpleRenderer(self._gl_executor) self._initialized = False self._camera = Camera(aspect=height / width, course=-180) self._fps_limiter = FPSLimiter(fps_limit) self._double_clicks = DoubleClickHandler() self._on_keyboard_callbacks = {} self._last_mouse_xy = None self._mouse_buttons_down = set() self._keyboard_buttons_down = {} self._to_do = [] self.scene = Scene(show_axis=True)