def __call_internal__(self, *args, **kwargs): """ Override the call to be able to scale automatically the axis. """ g = Pipeline.__call_internal__(self, *args, **kwargs) gs = g.glyph.glyph_source # Use a cube source for glyphs. if not "mode" in kwargs: gs.glyph_source = gs.glyph_dict["cube_source"] # Position the glyph tail on the point. gs.glyph_position = "tail" gs.glyph_source.center = (0.0, 0.0, 0.5) g.glyph.glyph.orient = False if not "color" in kwargs: g.glyph.color_mode = "color_by_scalar" if not "scale_mode" in kwargs: g.glyph.scale_mode = "scale_by_vector_components" g.glyph.glyph.clamping = False # The auto-scaling code. It involves finding the minimum # distance between points, which can be very expensive. We # shortcut this calculation for structured data if len(args) == 1 or self.auto_scale: min_axis_distance = 1 else: x, y, z = g.mlab_source.x, g.mlab_source.y, g.mlab_source.z min_axis_distance = tools._min_axis_distance(x, y, z) scale_factor = g.glyph.glyph.scale_factor * min_axis_distance lateral_scale = kwargs.pop("lateral_scale", self.lateral_scale) try: g.glyph.glyph_source.glyph_source.y_length = lateral_scale / (scale_factor) g.glyph.glyph_source.glyph_source.x_length = lateral_scale / (scale_factor) except TraitError: " Not all types of glyphs have controlable y_length and x_length" return g
def __call_internal__(self, *args, **kwargs): """ Override the call to be able to scale automatically the axis. """ g = Pipeline.__call_internal__(self, *args, **kwargs) gs = g.glyph.glyph_source # Use a cube source for glyphs. if not 'mode' in kwargs: gs.glyph_source = gs.glyph_dict['cube_source'] # Position the glyph tail on the point. gs.glyph_position = 'tail' gs.glyph_source.center = (0.0, 0.0, 0.5) g.glyph.glyph.orient = False if not 'color' in kwargs: g.glyph.color_mode = 'color_by_scalar' if not 'scale_mode' in kwargs: g.glyph.scale_mode = 'scale_by_vector_components' g.glyph.glyph.clamping = False # The auto-scaling code. It involves finding the minimum # distance between points, which can be very expensive. We # shortcut this calculation for structured data if len(args) == 1 or self.auto_scale: min_axis_distance = 1 else: x, y, z = g.mlab_source.x, g.mlab_source.y, g.mlab_source.z min_axis_distance = \ tools._min_axis_distance(x, y, z) scale_factor = g.glyph.glyph.scale_factor * min_axis_distance lateral_scale = kwargs.pop('lateral_scale', self.lateral_scale) try: g.glyph.glyph_source.glyph_source.y_length = \ lateral_scale/(scale_factor) g.glyph.glyph_source.glyph_source.x_length = \ lateral_scale/(scale_factor) except TraitError: " Not all types of glyphs have controlable y_length and x_length" return g