deegree 2.3 (2010/04/09 10:10 build-4-official)

org.deegree.ogcwebservices.wpvs.utils
Class StripeFactory

java.lang.Object
  extended by org.deegree.ogcwebservices.wpvs.utils.StripeFactory

public class StripeFactory
extends Object

This class divides a visible area into stripes by calculating a resolution for the near clipping plane and the far clipping plane. The near resolution (the one closest to the viewer) is doubled until it is <= far clippingplane resolution. If the Viewer has a pitch which is greater than the angle of view (in other words: looking steeply down) the resolutionstripes are concentric quads, which are adapted to the form of the footprint (aka. the perspective ViewFrustum's intersection with the ground).

Author:
Ugo Taddei, Rutger Bezema, last edited by: $Author: mschneider $ $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $

Constructor Summary
StripeFactory(ViewPoint vp, double minScaleDenominator)
           
 
Method Summary
static double calcScaleOfVector(javax.vecmath.Vector3d a, javax.vecmath.Vector3d b, double imageWidth)
          Calculates the Scale ( = Resolution* sqrt( 2 ) (== diagonal of pixel)) of a Vector between two points on the Screen given an imagewidth.
 ArrayList<ResolutionStripe> createBBoxResolutionStripe(Envelope bbox, int imageWidth, double minimalHeight, double scale)
           
 ArrayList<ResolutionStripe> createResolutionStripes(int imageWidth, double minimalHeight, Graphics2D g2d, double scale)
          Calculates the number of resolutionstripes, their size and their position in worldcoordinates.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StripeFactory

public StripeFactory(ViewPoint vp,
                     double minScaleDenominator)
Parameters:
vp - the capsulation of the location and viewing direction of the viewer.
minScaleDenominator - the best possible resolution the datasets can show.
Method Detail

createResolutionStripes

public ArrayList<ResolutionStripe> createResolutionStripes(int imageWidth,
                                                           double minimalHeight,
                                                           Graphics2D g2d,
                                                           double scale)
Calculates the number of resolutionstripes, their size and their position in worldcoordinates.

Parameters:
imageWidth - of the request
minimalHeight - the minimalHeight of the terrain
g2d - if !null the stripes are drawn on the graphics object (handy for debugging purposes
scale - of the heightmap.
Returns:
the resolutionsstripes for the footprint

createBBoxResolutionStripe

public ArrayList<ResolutionStripe> createBBoxResolutionStripe(Envelope bbox,
                                                              int imageWidth,
                                                              double minimalHeight,
                                                              double scale)
Parameters:
bbox -
imageWidth -
minimalHeight -
scale - of the height in the elevationmodel
Returns:
a BoundingBox request ResolutionStripe

calcScaleOfVector

public static double calcScaleOfVector(javax.vecmath.Vector3d a,
                                       javax.vecmath.Vector3d b,
                                       double imageWidth)
Calculates the Scale ( = Resolution* sqrt( 2 ) (== diagonal of pixel)) of a Vector between two points on the Screen given an imagewidth. That is, how much meter is the Scale of one Pixel in an Image given a certain vector.

Parameters:
a - "from" point
b - "to" point
imageWidth - the target imagewidth
Returns:
the scale on the screen.

deegree 2.3 (2010/04/09 10:10 build-4-official)

an open source project founded by lat/lon, Bonn, Germany.
For more information visit: http://www.deegree.org