docs: @Override
      protected void paintComponent(Graphics g) {
      	if (type == TYPE_PLAIN) {
  	    	point.updateWeight(RunVisualizer.getCurrentTimestamp(), decayRate);
  	        if (point.weight() < decayThreshold) {
  	            getParent().remove(this);
  	            return;
  	        }
          }
  
          Color color = getColor();
        //Color errcolor = getErrorColor();
          //if (errcolor == null) {
          //    errcolor = color;
              panel_size = POINTSIZE;
          //} else {
          //    panel_size = POINTSIZE + 2;
          //}
          
          updateLocation();
          
          /*g.setColor(errcolor);
          g.drawOval(0, 0, panel_size, panel_size);
          g.setColor(color);
          g.fillOval(0, 0, panel_size, panel_size);*/
          
          if (type == TYPE_PLAIN) {
          	g.setColor(color);
          	if (point.isNoise()) {
          		g.setFont(g.getFont().deriveFont(9.0f));
          		g.drawChars(new char[] {'x'}, 0, 1, 0, panel_size);
          	} else {
  		        g.drawOval(0, 0, panel_size, panel_size);
  		        g.setColor(color);
  		        g.fillOval(0, 0, panel_size, panel_size);
          	}
          } else if (type == TYPE_CLUSTERED) {
          	g.setColor(color);
          	g.drawOval(0, 0, panel_size, panel_size);
          }
  
          setToolTipText(point.getInfo(x_dim, y_dim));
      }