Changeset 2717


Ignore:
Timestamp:
05/01/07 17:53:39 (13 years ago)
Author:
sorber
Message:

Return null if no valid sets in noded object selection layer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/visbio/overlays/OverlayUtil.java

    r2714 r2717  
    525525    int hlen = hlt ? len : 0; 
    526526    int goodSets = sets.size(); 
    527     float[][] rangeSamples = new float[4][hlen + 4 * goodSets]; 
    528  
    529     // fill nodes range samples; 
    530     Color col = GLOW_COLOR; 
    531     float r = col.getRed() / 255f; 
    532     float g = col.getGreen() / 255f; 
    533     float b = col.getBlue() / 255f; 
    534  
    535     Arrays.fill(rangeSamples[0], 0, 4*goodSets, r); 
    536     Arrays.fill(rangeSamples[1], 0, 4*goodSets, g); 
    537     Arrays.fill(rangeSamples[2], 0, 4*goodSets, b); 
    538     Arrays.fill(rangeSamples[3], 0, 4*goodSets, GLOW_ALPHA); 
    539  
    540     // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
    541     // Build circle and circle samples 
    542     // ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  
    543  
    544     /* 
    545     System.out.println("2: isHighlightNode = " + hlt); 
    546     System.out.println("Thread.currentThread()" + Thread.currentThread()); 
    547     */ 
    548     Gridded2DSet hltSet = null; 
    549     if (hlt) { 
    550       float rad = 2 * delta; 
    551  
    552       // assemble a small circle 
    553       float[][] highlightSetSamples = new float[2][len]; 
    554  
    555       // top half of circle 
    556       for (int i=0; i<arcLen; i++) { 
    557         highlightSetSamples[0][i] = c[0] + rad * ARC[0][i]; 
    558         highlightSetSamples[1][i] = c[1] + rad * ARC[1][i]; 
     527    if (goodSets == 0 ) { 
     528      return null; 
     529    }  
     530    else { 
     531      float[][] rangeSamples = new float[4][hlen + 4 * goodSets]; 
     532 
     533      // fill nodes range samples; 
     534      Color col = GLOW_COLOR; 
     535      float r = col.getRed() / 255f; 
     536      float g = col.getGreen() / 255f; 
     537      float b = col.getBlue() / 255f; 
     538 
     539      Arrays.fill(rangeSamples[0], 0, 4*goodSets, r); 
     540      Arrays.fill(rangeSamples[1], 0, 4*goodSets, g); 
     541      Arrays.fill(rangeSamples[2], 0, 4*goodSets, b); 
     542      Arrays.fill(rangeSamples[3], 0, 4*goodSets, GLOW_ALPHA); 
     543 
     544      // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
     545      // Build circle and circle samples 
     546      // ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,  
     547 
     548      /* 
     549      System.out.println("2: isHighlightNode = " + hlt); 
     550      System.out.println("Thread.currentThread()" + Thread.currentThread()); 
     551      */ 
     552      Gridded2DSet hltSet = null; 
     553      if (hlt) { 
     554        float rad = 2 * delta; 
     555 
     556        // assemble a small circle 
     557        float[][] highlightSetSamples = new float[2][len]; 
     558 
     559        // top half of circle 
     560        for (int i=0; i<arcLen; i++) { 
     561          highlightSetSamples[0][i] = c[0] + rad * ARC[0][i]; 
     562          highlightSetSamples[1][i] = c[1] + rad * ARC[1][i]; 
     563        } 
     564 
     565        // bottom half of circle 
     566        for (int i=0; i<arcLen; i++) { 
     567          int ndx = arcLen + i;  
     568          highlightSetSamples[0][ndx] = c[0] + rad * ARC[0][i]; 
     569          highlightSetSamples[1][ndx] = c[1] - rad * ARC[1][i]; 
     570        } 
     571 
     572        try { 
     573          // build highlight set  
     574          hltSet = new Gridded2DSet(domain, highlightSetSamples, 
     575            arcLen, 2, null, null, null, false); 
     576        } 
     577        catch (VisADException ex) { ex.printStackTrace(); } 
     578 
     579        col = HLT_COLOR; 
     580        r = col.getRed() / 255f; 
     581        g = col.getGreen() / 255f; 
     582        b = col.getBlue() / 255f; 
     583 
     584        Arrays.fill(rangeSamples[0], 4*goodSets, 4*goodSets + hlen, r); 
     585        Arrays.fill(rangeSamples[1], 4*goodSets, 4*goodSets + hlen, g); 
     586        Arrays.fill(rangeSamples[2], 4*goodSets, 4*goodSets + hlen, b); 
     587        Arrays.fill(rangeSamples[3], 4*goodSets, 4*goodSets + hlen, HLT_ALPHA); 
     588 
     589        sets.add(hltSet); 
    559590      } 
    560591 
    561       // bottom half of circle 
    562       for (int i=0; i<arcLen; i++) { 
    563         int ndx = arcLen + i;  
    564         highlightSetSamples[0][ndx] = c[0] + rad * ARC[0][i]; 
    565         highlightSetSamples[1][ndx] = c[1] - rad * ARC[1][i]; 
     592      Gridded2DSet[] trueSets = new Gridded2DSet[sets.size()]; 
     593      Object[] stuff = sets.toArray(trueSets); 
     594 
     595      FlatField field = null; 
     596      UnionSet fieldSet = null; 
     597      try { 
     598        /* 
     599        for (int i=0; i<sets.length; i++) { 
     600          if (sets[i] == null) {  
     601            System.out.println("sets[" + i + "] is null."); 
     602          } 
     603          else 
     604            System.out.println("sets[" + i + "].length = " + sets[i].getLength()); 
     605        } 
     606        */ 
     607 
     608        fieldSet = new UnionSet (domain, trueSets); 
     609        FunctionType fieldType = new FunctionType(domain, range); 
     610        field = new FlatField(fieldType, fieldSet); 
     611        field.setSamples(rangeSamples); 
    566612      } 
    567  
    568       try { 
    569         // build highlight set  
    570         hltSet = new Gridded2DSet(domain, highlightSetSamples, 
    571           arcLen, 2, null, null, null, false); 
    572       } 
    573       catch (VisADException ex) { ex.printStackTrace(); } 
    574  
    575       col = HLT_COLOR; 
    576       r = col.getRed() / 255f; 
    577       g = col.getGreen() / 255f; 
    578       b = col.getBlue() / 255f; 
    579  
    580       Arrays.fill(rangeSamples[0], 4*goodSets, 4*goodSets + hlen, r); 
    581       Arrays.fill(rangeSamples[1], 4*goodSets, 4*goodSets + hlen, g); 
    582       Arrays.fill(rangeSamples[2], 4*goodSets, 4*goodSets + hlen, b); 
    583       Arrays.fill(rangeSamples[3], 4*goodSets, 4*goodSets + hlen, HLT_ALPHA); 
    584  
    585       sets.add(hltSet); 
    586     } 
    587  
    588     Gridded2DSet[] trueSets = new Gridded2DSet[sets.size()]; 
    589     Object[] stuff = sets.toArray(trueSets); 
    590  
    591     FlatField field = null; 
    592     UnionSet fieldSet = null; 
    593     try { 
    594       /* 
    595       for (int i=0; i<sets.length; i++) { 
    596         if (sets[i] == null) {  
    597           System.out.println("sets[" + i + "] is null."); 
    598         } 
    599         else 
    600           System.out.println("sets[" + i + "].length = " + sets[i].getLength()); 
    601       } 
    602       */ 
    603  
    604       fieldSet = new UnionSet (domain, trueSets); 
    605       FunctionType fieldType = new FunctionType(domain, range); 
    606       field = new FlatField(fieldType, fieldSet); 
    607       field.setSamples(rangeSamples); 
    608     } 
    609     catch (VisADException exc) { exc.printStackTrace(); } 
    610     catch (RemoteException exc) { exc.printStackTrace(); } 
    611  
    612     return field; 
     613      catch (VisADException exc) { exc.printStackTrace(); } 
     614      catch (RemoteException exc) { exc.printStackTrace(); } 
     615 
     616      return field; 
     617    } 
    613618 
    614619    /* 
Note: See TracChangeset for help on using the changeset viewer.