2 Copyright (C) 2001, 2006 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
7 package gov
.nasa
.worldwind
.render
;
9 import gov
.nasa
.worldwind
.globes
.SectorGeometry
;
10 import gov
.nasa
.worldwind
.geom
.Sector
;
12 import java
.util
.ArrayList
;
16 * @version $Id: GeographicSurfaceTileRenderer.java 2533 2007-08-13 05:59:08Z tgaskins $
18 public class GeographicSurfaceTileRenderer
extends SurfaceTileRenderer
20 private double sgWidth
;
21 private double sgHeight
;
22 private double sgMinWE
;
23 private double sgMinSN
;
25 protected void preComputeTransform(DrawContext dc
, SectorGeometry sg
)
27 Sector st
= sg
.getSector();
28 this.sgWidth
= st
.getDeltaLonRadians();
29 this.sgHeight
= st
.getDeltaLatRadians();
30 this.sgMinWE
= st
.getMinLongitude().radians
;
31 this.sgMinSN
= st
.getMinLatitude().radians
;
34 protected void computeTransform(DrawContext dc
, SurfaceTile tile
, Transform t
)
36 Sector st
= tile
.getSector();
37 double tileWidth
= st
.getDeltaLonRadians();
38 double tileHeight
= st
.getDeltaLatRadians();
39 double minLon
= st
.getMinLongitude().radians
;
40 double minLat
= st
.getMinLatitude().radians
;
42 t
.VScale
= tileHeight
> 0 ?
this.sgHeight
/ tileHeight
: 1;
43 t
.HScale
= tileWidth
> 0 ?
this.sgWidth
/ tileWidth
: 1;
44 t
.VShift
= -(minLat
- this.sgMinSN
) / this.sgHeight
;
45 t
.HShift
= -(minLon
- this.sgMinWE
) / this.sgWidth
;
48 protected Iterable
<SurfaceTile
> getIntersectingTiles(DrawContext dc
, SectorGeometry sg
,
49 Iterable
<?
extends SurfaceTile
> tiles
)
51 ArrayList
<SurfaceTile
> intersectingTiles
= null;
53 for (SurfaceTile tile
: tiles
)
55 if (!tile
.getSector().intersects(sg
.getSector()))
58 if (intersectingTiles
== null)
59 intersectingTiles
= new ArrayList
<SurfaceTile
>();
61 intersectingTiles
.add(tile
);
64 if (intersectingTiles
== null)
67 return intersectingTiles
;