18 #include <matrix/vlVector.h>
19 #include <matrix/coordTransform.h>
20 #include <matrix/referenceEllipsoid.h>
22 #include <boost/shared_ptr.hpp>
23 #include <boost/unordered_set.hpp>
24 #include <boost/unordered_map.hpp>
54 virtual void drawGridLines();
57 virtual void setScale(
double scale );
60 virtual void setObserverPosition(
const DtVector& position );
63 virtual void setChannelDimensions(
int startChannelX,
int startChannelY,
64 int endChannelX,
int endChannelY );
69 virtual void reloadTextFonts();
72 virtual void reloadLabelFonts(std::vector<DtTextProxy*>& labels);
76 virtual void setupReferenceEllipsoid();
79 virtual void setupTopoGeocTransforms();
83 virtual bool pointVisible(
const DtVector& point )
const;
86 virtual void findPolarSpacing();
89 virtual void drawPolarLongitudeLines();
92 virtual void drawPolarLatitudeLines();
96 virtual void findLatLonWindowDimensions();
99 virtual void findSpacing();
103 virtual void anchorAndOffsetLines();
106 virtual void drawLongitudeLines();
109 virtual void drawLatitudeLines();
112 virtual void createLabel(
DtTextProxy*& label,
double radians,
bool isLongitude);
115 virtual void destroyGridLines();
134 virtual void clearUnusedLinesAndLabels(
int index,
GridLineVector& lines,
139 virtual void clearUnusedSegments(
int index,
GridLine& line );
155 const DtVector& end,
float* colorArray,
bool* pass3D=0);
180 virtual bool drawStandardLongitudeLine(
GridLine& lonLine,
double resolution,
int numSegs,
float curLon,
int& curSeg);
186 virtual bool drawNorwayMgrsLongitudeLine(
GridLine& lonLine,
double resolution,
int numSegs,
int& curSeg);
192 virtual bool drawSvalbardMgrsLongitudeLines(
GridLine& lonLine,
double resolution,
int numSegs,
float curLon,
int& curSeg);
196 virtual void drawMapSheetLines();
203 virtual void findMapSheetSpacing();
211 virtual bool anchorMapSheetLines();
217 virtual void clearUnusedLabels(
int index,
LabelArray& labels);
238 virtual void resizeLocators(
SegmentLocator& locator,
int numLines);
241 virtual void clearUnusedLocators(
int index,
SegmentLocator& locator);
249 virtual bool drawUtmLineSegment(
GridLine& line,
SegmentStarts& lineLocator,
int segIndex,
int zone,
char hemisphere,
250 double startEasting,
double startNorthing,
double endEasting,
double endNorthing,
bool constrainEasting=
false);
253 virtual void findEastingLimits(
double lat,
double& minEasting,
double& maxEasting);
265 virtual void drawEastWestMapSheetLines();
275 virtual int drawEastWestMapSheetLineForUtmZone(
GridLine& eastWestLine,
SegmentStarts& lineLocator,
int startSeg,
int zone,
276 char hemisphere,
double northingLine,
int zoneMapSheets,
int numSegs,
int numPartialSegs,
double partialExtra);
282 virtual int drawEastWestZoneInterior(
GridLine& eastWestLine,
SegmentStarts& lineLocator,
int startSeg,
int utmZone,
283 char hemisphere,
double northingLine,
int numSegs,
int startEasting,
int endEasting);
295 virtual void drawNorthSouthMapSheetLines();
302 virtual int drawNorthSouthMapSheetLinesForUtmZone(
int zone,
double maxZoneWidth,
int iLine);
312 virtual bool drawNorthSouthMapSheetLine(
int utmZone,
double eastingLine,
int iLine);
334 virtual void labelGridZones();
339 virtual bool labelGridZoneDesignator(
double lonValue,
double latValue,
int labelIndex);
345 virtual bool includeMgrsDesignator(
double lonValue,
double latValue, osg::Vec3& screenPos,
DtVector& geocResult);
349 virtual bool includeMgrsDesignator(
double lonValue,
double latValue,
float screenPosX,
350 float screenPosY,
DtVector& geocResult);
357 virtual void createGridLineLabel(
DtTextProxy*& label,
double lat,
double lon,
float screenPosX,
float screenPosY,
365 virtual void labelMapSheetLines();
371 virtual bool createMapSheetLabel(
DtTextProxy*& label,
double lat,
double lon,
float screenPosX,
float screenPosY);
375 virtual DtFont::TextAlignement offsetGridBoxLabel(
double xSrc,
double ySrc,
double& xOffset,
double& yOffset,
double myEndLat
Definition: DtGeocentricGridLinesDrawer.h:413
double myAnchoredStartNorthing
Definition: DtGeocentricGridLinesDrawer.h:446
A unicode string.
Definition: DtUnicode.h:33
LabelArray myGzdLabels
Definition: DtGeocentricGridLinesDrawer.h:430
SegmentLocator myNorthSouthSegmentLocator
Definition: DtGeocentricGridLinesDrawer.h:436
std::vector< DtLineSegment * > GridLine
Definition: DtGeocentricGridLinesDrawer.h:126
std::vector< GridLine > GridLineVector
Definition: DtGeocentricGridLinesDrawer.h:129
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
double myLonSpacing
Definition: DtGeocentricGridLinesDrawer.h:398
UsedGridLabels myUsedGzdLabels
Definition: DtGeocentricGridLinesDrawer.h:427
double myAnchoredEndEasting
Definition: DtGeocentricGridLinesDrawer.h:447
DtReferenceEllipsoid myReferenceEllipsoid
Definition: DtGeocentricGridLinesDrawer.h:418
double myStartLat
Definition: DtGeocentricGridLinesDrawer.h:412
double myAnchoredEndLat
Definition: DtGeocentricGridLinesDrawer.h:420
double myObserverLongitude
Definition: DtGeocentricGridLinesDrawer.h:404
SegmentLocator myEastWestSegmentLocator
Definition: DtGeocentricGridLinesDrawer.h:439
double myAnchoredStartLat
Definition: DtGeocentricGridLinesDrawer.h:419
A class for controlling text owned by the TextRenderer.
Definition: DtTextRenderer.h:90
Draw 2D Grid Lines on geocentric databases.
Definition: DtGeocentricGridLinesDrawer.h:42
LabelArray myEastWestLabels
Definition: DtGeocentricGridLinesDrawer.h:442
LabelArray myNorthSouthLabels
Definition: DtGeocentricGridLinesDrawer.h:441
std::vector< MgrsSegStart > SegmentStarts
The starting location of each mapsheet line segment drawn for one line.
Definition: DtGeocentricGridLinesDrawer.h:229
TextAlignement
Definition: DtFont.h:33
double myScale
Definition: DtGeocentricGridLinesDrawer.h:399
bool myLatCrossesPole
Definition: DtGeocentricGridLinesDrawer.h:423
UsedGridLabels myUsedMapSheetLabels
Definition: DtGeocentricGridLinesDrawer.h:428
DtVector myClipNormal
Definition: DtGeocentricGridLinesDrawer.h:410
std::vector< DtTextProxy * > LabelArray
Definition: DtGeocentricGridLinesDrawer.h:130
A class which represents a single line segment.
Definition: DtLineSegment.h:21
LabelArray myLatitudeLabels
Definition: DtGeocentricGridLinesDrawer.h:395
LabelArray myMapSheetLabels
Definition: DtGeocentricGridLinesDrawer.h:431
double myLatSpacing
Definition: DtGeocentricGridLinesDrawer.h:397
double myObserverLatitude
Definition: DtGeocentricGridLinesDrawer.h:403
unsigned int myChannelSize
Definition: DtGeocentricGridLinesDrawer.h:401
double myAnchoredEndNorthing
Definition: DtGeocentricGridLinesDrawer.h:448
int myChannelExpansionX
Definition: DtGeocentricGridLinesDrawer.h:405
double myAnchoredStartLon
Definition: DtGeocentricGridLinesDrawer.h:421
double myEndLon
Definition: DtGeocentricGridLinesDrawer.h:415
GridLineVector myLatitudeLines
Definition: DtGeocentricGridLinesDrawer.h:392
double lon
Definition: DtGeocentricGridLinesDrawer.h:226
double myAnchoredEndLon
Definition: DtGeocentricGridLinesDrawer.h:422
GridLineVector myNorthSouthLines
Definition: DtGeocentricGridLinesDrawer.h:435
Contains the DtGridLinesSettingsRecord class declaration.
double myStartLon
Definition: DtGeocentricGridLinesDrawer.h:414
LabelArray myLongitudeLabels
Definition: DtGeocentricGridLinesDrawer.h:394
DtCoordTransform myGeocToTopoTransform
Definition: DtGeocentricGridLinesDrawer.h:416
int myChannelExpansionY
Definition: DtGeocentricGridLinesDrawer.h:406
boost::unordered_set< DtUnicode > UsedGridLabels
Definition: DtGeocentricGridLinesDrawer.h:426
Base class with common data / methods for drawing grid lines on projected and geocentric databases \i...
Definition: DtGridLinesDrawer.h:32
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
double myAnchoredStartUtmZone
Definition: DtGeocentricGridLinesDrawer.h:449
Structure / typedefs for segment locators.
Definition: DtGeocentricGridLinesDrawer.h:223
double myAnchoredStartEasting
Definition: DtGeocentricGridLinesDrawer.h:445
DtVector myObserverPosition
Definition: DtGeocentricGridLinesDrawer.h:402
GridLineVector myLongitudeLines
Definition: DtGeocentricGridLinesDrawer.h:391
char myAnchoredStartNorthingHemisphere
Definition: DtGeocentricGridLinesDrawer.h:451
double myAnchoredEndUtmZone
Definition: DtGeocentricGridLinesDrawer.h:450
int myMapSheetSpacing
Definition: DtGeocentricGridLinesDrawer.h:444
double lat
Definition: DtGeocentricGridLinesDrawer.h:225
unsigned int myMinChannelDimension
Definition: DtGeocentricGridLinesDrawer.h:400
DtCoordTransform myTopoToGeocTransform
Definition: DtGeocentricGridLinesDrawer.h:417
char myAnchoredEndNorthingHemisphere
Definition: DtGeocentricGridLinesDrawer.h:452
A simple bounding box.
Definition: DtBoundingBox.h:101
std::vector< SegmentStarts > SegmentLocator
A vector of SegmentStarts, one for each line drawn.
Definition: DtGeocentricGridLinesDrawer.h:231
GridLineVector myEastWestLines
Definition: DtGeocentricGridLinesDrawer.h:438