/**
  * Method to call if projection changes. Subclasses that are worried about such events should
  * implement this.
  */
 public void projectionChanged() {
   // System.out.println("projection changed");
   try {
     loadVolumeData();
   } catch (Exception exc) {
     logException("loading volume data", exc);
   }
   super.projectionChanged();
 }
 /**
  * _more_
  *
  * @param value _more_
  */
 public void setPointSize(float value) {
   super.setPointSize(value);
   if (myDisplay != null) {
     try {
       myDisplay.setPointSize(getPointSize());
     } catch (Exception e) {
       logException("Setting point size", e);
     }
   }
 }
  /**
   * Add in any special control widgets to the current list of widgets.
   *
   * @param controlWidgets list of control widgets
   * @throws VisADException VisAD error
   * @throws RemoteException RMI error
   */
  public void getControlWidgets(List controlWidgets) throws VisADException, RemoteException {
    super.getControlWidgets(controlWidgets);

    if (!usePoints) {
      JCheckBox textureToggle = GuiUtils.makeCheckbox("", this, "useTexture3D");
      controlWidgets.add(
          new WrapperWidget(
              this,
              GuiUtils.rLabel("Use 3D Texture:"),
              GuiUtils.leftCenter(textureToggle, GuiUtils.filler())));
    } else {
      controlWidgets.add(
          new WrapperWidget(
              this, GuiUtils.rLabel("Point Size:"), GuiUtils.left(doMakePointSizeWidget())));
    }
  }