You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: ft_plot_mesh_interactive.m
    path of file: ./repos/fieldtrip/plotting
    
    the code of the file until where you have to start completion: classdef ft_plot_mesh_interactive<handle
  % FT_PLOT_MESH_INTERACTIVE is the lower-level implementation class
  % corresponding to FT_SOURCEPLOT_INTERACTIVE. See that higher-level
  % function for details on configuration options.
  %
  % Note that this class deliberately does not use plotting helper functions
  % like ft_plot_mesh etc., for performance reasons.
  %
  % Copyright (C) 2019 Eelke Spaak, Donders Ins
    
function for details on configuration options.
  %
  % Note that this class deliberately does not use plotting helper functions
  % like ft_plot_mesh etc., for performance reasons.
  %
  % Copyright (C) 2019 Eelke Spaak, Donders Institute, e.spaak@donders.ru.nl
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  properties
    % data properties
    tri; pos; time; data; unit; 
    
    % configuration options
    time_label; pow_label; data_labels; has_diff; clim;
    
    % not yet configurable
    timeplot_colourmap; colourmap;
    
    % graphics handles
    fig_surface; axes_surface; surfs_surface; camlight_surface;
    figs_time; axes_time; vlines_time;
    virt_elec_surfs;
    
    % currently displayed time point
    cur_time;
    
    % number of conditions/positions/time points
    ncond; npos; ntim;
    
    % atlas for looking up locations of virtual electrodes
    atlas;
  end
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  methods
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    function self = ft_plot_mesh_interactive(varargin)
      % Constructor
      
      self.tri = ft_getopt(varargin, 'tri');
      self.pos = ft_getopt(varargin, 'pos');
      self.time = ft_getopt(varargin, 'time');
      self.data = ft_getopt(varargin, 'data');
      self.unit = ft_getopt(varargin, 'unit');
      
      % configuration options
      self.time_label = ft_getopt(varargin, 'time_label', 'Time (s)');
      self.pow_label = ft_getopt(varargin, 'pow_label', 'Current density (a.u.)');
      self.data_labels = ft_getopt(varargin, 'data_labels',...
        arrayfun(@(x) sprintf('Input %d', x), 1:numel(self.data), 'uniformoutput', false));
      self.clim = ft_getopt(varargin, 'clim', []);
      % has_diff: treat the last input argument as special, and assign
      % different colour limits for the corresponding surface plot
      self.has_diff = ft_getopt(varargin, 'has_diff', false);
      self.atlas    = ft_getopt(varargin, 'atlas');
      self.colourmap = ft_getopt(varargin, 'colormap');
      
      if isempty(self.clim)
        if self.has_diff
          self.clim = [0 max(cellfun(@(x) max(x(:)), self.data(1:end