class_docstr: Visual displaying windbarbs.
code: def __init__(self, **kwargs):
      self._vbo = VertexBuffer()
      self._v_size_var = Variable("varying float v_size")
      self._marker_fun = None
      self._data = None
      Visual.__init__(
          self,
          vcode=self._shaders["vertex"],
          fcode=self._shaders["fragment"],
      )
      self.shared_program.vert["v_size"] = self._v_size_var
      self.shared_program.frag["v_size"] = self._v_size_var
      self.set_gl_state(
          depth_test=True,
          blend=True,
          blend_func=("src_alpha", "one_minus_src_alpha"),
      )
      self._draw_mode = "points"
      if len(kwargs) > 0:
          self.set_data(**kwargs)
      self.freeze()
  
file_path: vispy/vispy/visuals/windbarb.py
imports: import numpy
  from vispy.color import ColorArray
  from vispy.gloo import VertexBuffer
  from vispy.visuals.shaders import Variable
  from vispy.visuals.visual import Visual
label_desc: Use image node_id 1 to create a new WindbarbVisual object from inherited base classes: Visual with example: obj = WindbarbVisual()