Source code for simphony_mayavi.plugins.engine_manager_standalone

from collections import namedtuple
from functools import wraps

from mayavi import mlab

from simphony_mayavi.plugins.add_engine_source_to_mayavi import (
    AddEngineSourceToMayavi)
from simphony_mayavi.plugins.run_and_animate import RunAndAnimate


[docs]class EngineManagerStandalone(object): '''Standalone non-GUI manager for visualising datasets from a Simphony Modeling Engine, running the engine and animating the results. ''' def __init__(self, engine, mayavi_engine=None): ''' Parameters ---------- engine : ABCModelingEngine mayavi_engine : mayavi.api.Engine default to be mayavi.mlab.get_engine() ''' self.engine = engine if mayavi_engine is None: self.mayavi_engine = mlab.get_engine() else: self.mayavi_engine = mayavi_engine Addons = namedtuple("Addons", ("add_source", "run_and_animate")) self.addons = Addons(AddEngineSourceToMayavi(self.engine, self.mayavi_engine), RunAndAnimate(self.engine, self.mayavi_engine)) @wraps(AddEngineSourceToMayavi.add_dataset_to_scene) def add_dataset_to_scene(self, *args, **kwargs): self.addons.add_source.engine = self.engine self.addons.add_source.add_dataset_to_scene(*args, **kwargs) @wraps(RunAndAnimate.animate) def animate(self, *args, **kwargs): self.addons.run_and_animate.engine = self.engine self.addons.run_and_animate.animate(*args, **kwargs)