//
// CurveDelete.java
//

/*
VisAD system for interactive analysis and visualization of numerical
data.  Copyright (C) 1996 - 2017 Bill Hibbard, Curtis Rueden, Tom
Rink, Dave Glowacki, Steve Emmerson, Tom Whittaker, Don Murray, and
Tommy Jasmin.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA
*/

package visad.bom;

import visad.*;
import visad.java2d.*;
import visad.java3d.*;

import java.awt.event.*;
import java.rmi.*;


public class CurveDelete implements ActionListener {

  DataReferenceImpl ref;
  DisplayImpl display;
  boolean lines = false;
  DataReferenceImpl new_ref;

  CurveDelete(DataReferenceImpl r, DisplayImpl d) {
    ref = r;
    display = d;
  }

  public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    if (cmd.equals("del")) {
      try {
        UnionSet set = (UnionSet) ref.getData();
        SampledSet[] sets = set.getSets();
        SampledSet[] new_sets = new SampledSet[sets.length - 1];
        System.arraycopy(sets, 0, new_sets, 0, sets.length - 1);
        ref.setData(new UnionSet(set.getType(), new_sets));
      }
      catch (VisADException ex) {
      }
      catch (RemoteException ex) {
      }
    }
    else if (cmd.equals("fill")) {
      UnionSet set = null;
      try {
        set = (UnionSet) ref.getData();
        System.out.println("area = " + DelaunayCustom.computeArea(set));
      }
      catch (VisADException ex) {
        System.out.println(ex.getMessage());
      }
      try {
        // Irregular2DSet new_set = DelaunayCustom.fill(set);
        Irregular2DSet new_set = DelaunayCustom.fillCheck(set, false);
        if (new_ref == null) {
          new_ref = new DataReferenceImpl("fill");
          ConstantMap[] cmaps = new ConstantMap[]
            {new ConstantMap(1.0, Display.Blue),
             new ConstantMap(1.0, Display.Red),
             new ConstantMap(0.0, Display.Green)};
          DataRenderer renderer = 
              (display instanceof DisplayImplJ3D)
                  ? (DataRenderer) new DefaultRendererJ3D()
                  : (DataRenderer) new DefaultRendererJ2D();
          renderer.suppressExceptions(true);
          display.addReferences(renderer, new_ref, cmaps);
        }
        new_ref.setData(new_set);
      }
      catch (VisADException ex) {
        System.out.println(ex.getMessage());
      }
      catch (RemoteException ex) {
        System.out.println(ex.getMessage());
      }
    }
    else if (cmd.equals("lines")) {
      try {
        lines = !lines;
        GraphicsModeControl mode = display.getGraphicsModeControl();
        if (lines) {
          mode.setPolygonMode(DisplayImplJ3D.POLYGON_LINE);
        }
        else {
          mode.setPolygonMode(DisplayImplJ3D.POLYGON_FILL);
        }
      }
      catch (VisADException ex) {
        System.out.println(ex.getMessage());
      }
      catch (RemoteException ex) {
        System.out.println(ex.getMessage());
      }
    }
  }
}


 

Ads help maintain this website.