class_docstr: Clips visual output based on arbitrary clipping planes.
  
  Parameters
  ----------
  cliping_planes : ArrayLike
      Each plane is defined by a position and a normal vector (magnitude is irrelevant). Shape: (n_planes, 2, 3)
  coord_system : str
      Coordinate system used by the clipping planes (see visuals.transforms.transform_system.py)
code: def __init__(
      self,
      clipping_planes: Optional[np.ndarray] = None,
      coord_system: str = "scene",
  ):
      tr = [
          "visual",
          "scene",
          "document",
          "canvas",
          "framebuffer",
          "render",
      ]
      if coord_system not in tr:
          raise ValueError(
              f"Invalid coordinate system {coord_system}. Must be one of {tr}."
          )
      self._coord_system = coord_system
  
      super().__init__(
          vcode=Function(self.VERT_CODE),
          vhook="post",
          vpos=1,
          fcode=Function(self.FRAG_CODE),
          fhook="pre",
          fpos=1,
      )
  
      # initialize clipping planes
      self._clipping_planes = np.empty((0, 2, 3), dtype=np.float32)
      self._clipping_planes_func = Function(
          self._build_clipping_planes_glsl(0)
      )
      self.fshader["clip_with_planes"] = self._clipping_planes_func
  
      v_position = Varying("v_position", "vec4")
      self.vshader["v_position"] = v_position
      self.fshader["v_position"] = v_position
  
      self.clipping_planes = clipping_planes
  
file_path: vispy/vispy/visuals/filters/clipping_planes.py
imports: from __future__ import annotations
  from typing import Optional
  from functools import lru_cache
  import numpy
  from ..shaders import Function, Varying
  from .base_filter import Filter
label_desc: Use image node_id 1 to create a new PlanesClipper object from inherited base classes: Filter with example: obj = PlanesClipper(clipping_planes, coord_system)