Revision 387 2.1/trunk/org.gvsig.gvsig3d/org.gvsig.gvsig3d.lib/org.gvsig.gvsig3d.lib.impl/src/main/java/org/gvsig/gvsig3d/impl/map3d/MapContext3DImpl.java

View differences:

MapContext3DImpl.java
48 48
import java.util.ArrayList;
49 49
import java.util.Hashtable;
50 50
import java.util.Vector;
51

  
51 52
import org.cresques.cts.IProjection;
52 53
import org.gvsig.fmap.dal.DataStore;
53 54
import org.gvsig.fmap.dal.coverage.RasterLibrary;
......
99 100
import org.gvsig.fmap.mapcontext.rendering.legend.events.listeners.LegendListener;
100 101
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
101 102
import org.gvsig.gvsig3d.impl.legend3d.ExtrusionLegend;
102
import org.gvsig.gvsig3d.impl.symbology3d.Symbol3DFactory;
103 103
import org.gvsig.gvsig3d.impl.symbology3d.extrusion.impl.ExtrusionPolygonSymbol;
104 104
import org.gvsig.gvsig3d.impl.symbology3d.fill.impl.SimpleFill3DSymbol;
105
import org.gvsig.gvsig3d.impl.symbology3d.marker.impl.SimpleMarker3DSymbol;
106 105
import org.gvsig.gvsig3d.map3d.Layer3DProps;
107 106
import org.gvsig.gvsig3d.map3d.MapContext3D;
108 107
import org.gvsig.gvsig3d.map3d.layers.FLayers3D;
109 108
import org.gvsig.gvsig3d.symbology3d.I3DSymbol;
110
import org.gvsig.gvsig3d.symbology3d.marker.ISimpleMarker3DSymbol;
111 109
import org.gvsig.osgvp.core.osg.Group;
112 110
import org.gvsig.osgvp.core.osg.Image;
113 111
import org.gvsig.osgvp.core.osg.Matrix;
......
120 118
import org.gvsig.osgvp.exceptions.node.NodeException;
121 119
import org.gvsig.osgvp.manipulator.BasicInputHandler;
122 120
import org.gvsig.osgvp.manipulator.EditionManager;
123
import org.gvsig.osgvp.symbology.ISymbol3D;
124 121
import org.gvsig.osgvp.terrain.Extent;
125 122
import org.gvsig.osgvp.terrain.HeightfieldLayer;
126 123
import org.gvsig.osgvp.terrain.JavaDataDriver;
......
143 140
import org.gvsig.raster.cache.tile.TileCacheManager;
144 141
import org.gvsig.raster.cache.tile.provider.CacheStruct;
145 142
import org.gvsig.raster.fmap.layers.DefaultFLyrRaster;
143
import org.gvsig.raster.fmap.layers.FLyrRaster;
146 144
import org.gvsig.raster.impl.grid.GridImpl;
147 145
import org.gvsig.raster.impl.provider.DefaultRasterProvider;
148 146
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractIntervalLegend;
149 147
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.VectorialUniqueValueLegend;
150
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.IFillSymbol;
151
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.line.ILineSymbol;
152 148
import org.gvsig.tools.ToolsLocator;
153 149
import org.gvsig.tools.dynobject.DynStruct;
154 150
import org.gvsig.tools.dynobject.exception.DynMethodException;
......
427 423
        // Create a 2D Legend for jess
428 424
        if (((FLyrVect) (layer)).getLegend().getDefaultSymbol() instanceof I3DSymbol)
429 425
          try {
430
//            ((FLyrVect) layer).setLegend((IVectorLegend) MapContextLocator.getMapContextManager().getLegend(((FLyrVect) layer).getDataStore(),
431
//                MapContextLocator.getMapContextManager().getDefaultSymbologyDomain()));
432
            ((FLyrVect) layer).setLegend((IVectorLegend) MapContextLocator.getMapContextManager().getLegend(((FLyrVect) layer).getDataStore()));
426
            // ((FLyrVect) layer).setLegend((IVectorLegend)
427
            // MapContextLocator.getMapContextManager().getLegend(((FLyrVect)
428
            // layer).getDataStore(),
429
            // MapContextLocator.getMapContextManager().getDefaultSymbologyDomain()));
430
            ((FLyrVect) layer).setLegend((IVectorLegend) MapContextLocator
431
                .getMapContextManager().getLegend(
432
                    ((FLyrVect) layer).getDataStore()));
433 433
          }
434 434
          catch (LegendLayerException e) {
435 435
            e.printStackTrace();
......
452 452
      if (((FLyrVect) layer).getLegend() instanceof ISingleSymbolLegend)
453 453
        if (!(((FLyrVect) layer).getLegend().getDefaultSymbol() instanceof I3DSymbol)) {
454 454
          try {
455
//            ((FLyrVect) layer).setLegend((IVectorLegend) MapContextLocator
456
//                .getMapContextManager().getLegend(
457
//                    ((FLyrVect) layer).getDataStore(),
458
//                    "project.document.view3d"));
455
            // ((FLyrVect) layer).setLegend((IVectorLegend) MapContextLocator
456
            // .getMapContextManager().getLegend(
457
            // ((FLyrVect) layer).getDataStore(),
458
            // "project.document.view3d"));
459 459
            ((FLyrVect) layer).setLegend((IVectorLegend) MapContextLocator
460 460
                .getMapContextManager().getLegend(
461 461
                    ((FLyrVect) layer).getDataStore()));
......
711 711
        // persistence to
712 712
        // work
713 713
        ((DefaultFLyrRaster) layer).init();
714
        props3D.setType(Layer3DProps.layer3DImage);
714
        // props3D.setType(Layer3DProps.layer3DImage);
715 715
      }
716 716
      catch (LoadLayerException e) {
717 717
        // TODO Auto-generated catch block
......
1129 1129
        }
1130 1130
        catch (RasterDriverException e) {
1131 1131
          // System.out.println("QueryArray failed");
1132
          // e.printStackTrace();
1132
          e.printStackTrace();
1133 1133
        }
1134 1134
        catch (InvalidSetViewException e) {
1135 1135
          // TODO Auto-generated catch block
1136 1136
          e.printStackTrace();
1137 1137
        }
1138 1138
        catch (NullPointerException e) {
1139
          // System.out.println("NullPointer exception");
1139
          e.printStackTrace();
1140 1140
        }
1141 1141

  
1142 1142
      }
......
1341 1341
    if (legend instanceof AbstractIntervalLegend)
1342 1342
      symbolList = ((AbstractIntervalLegend) (legend)).getSymbols();
1343 1343
    if (legend instanceof VectorialUniqueValueLegend) {
1344
//      ((VectorialUniqueValueLegend) (legend))
1345
//          .setDomain("project.document.view3d");
1344
      // ((VectorialUniqueValueLegend) (legend))
1345
      // .setDomain("project.document.view3d");
1346 1346
      symbolList = ((VectorialUniqueValueLegend) (legend)).getSymbols();
1347 1347
    }
1348 1348
    return symbolList;
......
1389 1389

  
1390 1390
        query.setTileParameters(rde.getTileLevel(), rde.getTileX(),
1391 1391
            rde.getTileY(), extent, null);
1392
        query.setAreaOfInterest();
1392 1393

  
1393 1394
        try {
1394 1395
          Object[] result = rLayer.getDataStore().queryArray(query);
......
1406 1407

  
1407 1408
          }
1408 1409

  
1409
          float[] data = new float[(rBuff.getWidth() * rBuff.getHeight()) / 64];
1410
          float[] data = new float[(rBuff.getWidth() * rBuff.getHeight())];
1410 1411

  
1411 1412
          int pixelFormat = convertPixelFormat(numBands);
1412 1413

  
......
1415 1416

  
1416 1417
          int k = getLayer3DProps(rLayer).getElevationBand();
1417 1418

  
1418
          for (int i = rBuff.getWidth() - 8; i >= 0; i = i - 8) {
1419
          for (int i = rBuff.getHeight() - 1; i >= 0; i = i - 1) {
1419 1420
            // Vertical Flip needed
1420
            for (int j = 0; j < rBuff.getHeight(); j = j + 8) {
1421
            for (int j = 0; j < rBuff.getWidth(); j = j + 1) {
1421 1422

  
1422 1423
              switch (rBuff.getDataType()) {
1423 1424
                case Buffer.TYPE_BYTE:
......
1447 1448
            }
1448 1449

  
1449 1450
          }
1450
          ude.setHeightfieldData(data, rBuff.getWidth() / 8,
1451
              rBuff.getHeight() / 8);
1451
          ude.setHeightfieldData(data, rBuff.getWidth(), rBuff.getHeight());
1452 1452

  
1453 1453
          data = null;
1454 1454
          result = null;
......
1467 1467
        }
1468 1468
        catch (NullPointerException e) {
1469 1469
          // ude.setFailData();
1470
          // System.out.println("Problem getting the tile");
1470
          e.printStackTrace();
1471 1471
        }
1472 1472

  
1473 1473
      }
1474 1474
      // No cache
1475 1475
      else {
1476
        ude.setHeightfieldData(getLayerDrawImage(layer, envelope));
1476
//        ude.setHeightfieldData(getLayerDrawImage(layer, envelope));
1477

  
1478
         if (layer instanceof FLyrRaster) {
1479
         String path = ((FLyrRaster) layer).getURI();
1480
         ude.setHeightfieldData(path, "gdal");
1481
         }
1482

  
1477 1483
      }
1478 1484

  
1479 1485
    }
......
1773 1779
  private BufferedImage getLayerDrawImage(FLayer layer, Envelope envelope) {
1774 1780

  
1775 1781
    int size = 256;
1776
    BufferedImage image = new BufferedImage(size, size,
1777
        BufferedImage.TYPE_4BYTE_ABGR);
1782
    Layer3DProps props = this.getLayer3DProps(layer);
1783
    int type = props.getType();
1784
    BufferedImage image = null;
1778 1785

  
1786
    if (type == Layer3DProps.layer3DImage) {
1787
      image = new BufferedImage(size, size, BufferedImage.TYPE_4BYTE_ABGR);
1788
    }
1789
//    else if (type == Layer3DProps.layer3DElevation) {
1790
//      image = createFloatBufferedImage(size);
1791
//    }
1792

  
1779 1793
    ViewPort vp = new ViewPort(_viewProjection);
1780 1794
    vp.setEnvelope(envelope); // the real extent of the tile
1781 1795

  
......
1803 1817

  
1804 1818
  }
1805 1819

  
1820
//  private BufferedImage createFloatBufferedImage(int size) {
1821
//   int nbands = 1;
1822
//   DataBufferFloat dbd = new DataBufferFloat(size * size * nbands);
1823
//  
1824
//   SampleModel sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_FLOAT,
1825
//   size, size, nbands, size * nbands, new int[] { 0 });
1826
//  
1827
//   WritableRaster wr = WritableRaster.createWritableRaster(sm, dbd, null);
1828
//  
1829
//   ColorModel cm = new ComponentColorModel(
1830
//   ColorSpace.getInstance(ColorSpace.CS_GRAY), false, false,
1831
//   ColorModel.TRANSLUCENT, DataBuffer.TYPE_FLOAT);
1832
//  
1833
//   BufferedImage bi = new BufferedImage(cm, wr, true,
1834
//   new Hashtable<Object, Object>());
1835
//   return bi;
1836
//   }
1837

  
1806 1838
  public void nameChanged(LayerEvent e) {
1807 1839
    // System.out.println("Name change");
1808 1840

  

Also available in: Unified diff