code: def select(self, val, obj=None):
      self.visible(val)
      self.selected_cp = None
      self.opposed_cp = None
  
      if obj is not None:
          n_cp = len(self.control_points)
          for i in range(0, n_cp):
              c = self.control_points[i]
              if c == obj:
                  self.selected_cp = c
                  self.opposed_cp = self.control_points[
                      int((i + n_cp / 2)) % n_cp
                  ]
  
imports: import numpy
  from vispy import app, scene
  from vispy.color import Color
label_desc: Use image node_id 4 for calling the ControlPoints obj's underlying member method code with example usage: obj.select(val, obj) without return types