Skip to main content
`Ctrl`+`K`

# vispy.visuals.transforms.chain module

class vispy.visuals.transforms.chain.ChainTransform(*transforms)

  Bases: `BaseTransform`

  BaseTransform subclass that performs a sequence of transformations in order. Internally, this class uses shaders.FunctionChain to generate its glsl_map and glsl_imap functions.

  Parameters:
    transforms list of BaseTransform instances

      See `transforms` property.

  property Isometric

    The type of the None singleton.

  property Linear

    The type of the None singleton.

  property NonScaling

    The type of the None singleton.

  property Orthogonal

    The type of the None singleton.

  append(tr)

    Add a new transform to the end of this chain.

    Parameters:
      tr instance of Transform

        The transform to use.

  glsl_imap = None
  glsl_map = None
  imap(coords)

    Inverse map coordinates

    Parameters:
      coords array-like

        Coordinates to inverse map.

    Returns:
      coords ndarray

        Coordinates.

  map(coords)

    Map coordinates

    Parameters:
      coords array-like

        Coordinates to map.

    Returns:
      coords ndarray

        Coordinates.

  prepend(tr)

    Add a new transform to the beginning of this chain.

    Parameters:
      tr instance of Transform

        The transform to use.

  shader_imap()

    See shader_map.

  shader_map()

    Return a shader Function that accepts only a single vec4 argument and defines new attributes / uniforms supplying the Function with any static input.

  property simplified

    A simplified representation of the same transformation.

  property transforms

    The list of transform that make up the transform chain.

    The order of transforms is given such that the last transform in the list is the first to be invoked when mapping coordinates through the chain.

    For example, the following two mappings are equivalent:

        # Map coordinates through individual transforms:
        trans1 = STTransform(scale=(2, 3), translate=(0, 1))
        trans2 = PolarTransform()
        mapped = trans1.map(trans2.map(coords))

        # Equivalent mapping through chain:
        chain = ChainTransform([trans1, trans2])
        mapped = chain.map(coords)

class vispy.visuals.transforms.chain.SimplifiedChainTransform(chain)

  Bases: `ChainTransform`

  source_changed(event)

    Generate a simplified chain by joining adjacent transforms.