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 drawPolarGridLines();
60 virtual void drawMidLatitudeGridLines();
64 virtual void setScale(
double scale );
67 virtual void setObserverPosition(
const DtVector& position );
70 virtual void setChannelDimensions(
int startChannelX,
int startChannelY,
71 int endChannelX,
int endChannelY );
74 virtual void setLatLonLabelsCenteringCutoff(
double alt);
77 virtual void setGarsPolarLatitudeCutoff(
double lat);
82 virtual void reloadTextFonts();
85 virtual void reloadLabelFonts(std::vector<DtTextProxy*>& labels);
89 virtual void setupReferenceEllipsoid();
92 virtual void setupTopoGeocTransforms();
96 virtual bool pointVisible(
const DtVector& point )
const;
99 virtual void findPolarSpacing();
102 virtual void drawPolarLongitudeLines();
105 virtual void drawPolarLatitudeLines();
109 virtual void findLatLonWindowDimensions();
112 virtual void findSpacing();
116 virtual void anchorAndOffsetLines();
119 virtual void drawLongitudeLines();
122 virtual void drawLatitudeLines();
125 virtual void createLabel(
DtTextProxy*& label,
double radians,
bool isLongitude,
double* endpoints);
128 virtual void destroyGridLines();
147 virtual void clearUnusedLinesAndLabels(
int index,
GridLineVector& lines,
152 virtual void clearUnusedSegments(
int index,
GridLine& line );
171 const DtVector& end,
float* colorArray,
double* endpoints=0,
bool* pass3D = 0);
196 virtual bool drawStandardLongitudeLine(
GridLine& lonLine,
double resolution,
int numSegs,
double curLon,
int& curSeg,
double*endpoints);
202 virtual bool drawNorwayMgrsLongitudeLine(
GridLine& lonLine,
double resolution,
int numSegs,
int& curSeg);
208 virtual bool drawSvalbardMgrsLongitudeLines(
GridLine& lonLine,
double resolution,
int numSegs,
double curLon,
int& curSeg);
212 virtual void drawMapSheetLines();
219 virtual void findMapSheetSpacing();
227 virtual bool anchorMapSheetLines();
233 virtual void clearUnusedLabels(
int index,
LabelArray& labels);
254 virtual void resizeLocators(
SegmentLocator& locator,
int numLines);
257 virtual void clearUnusedLocators(
int index,
SegmentLocator& locator);
265 virtual bool drawUtmLineSegment(
GridLine& line,
SegmentStarts& lineLocator,
int segIndex,
int zone,
char hemisphere,
266 double startEasting,
double startNorthing,
double endEasting,
double endNorthing,
bool constrainEasting=
false);
269 virtual void findEastingLimits(
double lat,
double& minEasting,
double& maxEasting);
281 virtual void drawEastWestMapSheetLines();
291 virtual int drawEastWestMapSheetLineForUtmZone(
GridLine& eastWestLine,
SegmentStarts& lineLocator,
int startSeg,
int zone,
292 char hemisphere,
double northingLine,
int zoneMapSheets,
int numSegs,
int numPartialSegs,
double partialExtra);
298 virtual int drawEastWestZoneInterior(
GridLine& eastWestLine,
SegmentStarts& lineLocator,
int startSeg,
int utmZone,
299 char hemisphere,
double northingLine,
int numSegs,
int startEasting,
int endEasting);
311 virtual void drawNorthSouthMapSheetLines();
318 virtual int drawNorthSouthMapSheetLinesForUtmZone(
int zone,
double maxZoneWidth,
int iLine);
328 virtual bool drawNorthSouthMapSheetLine(
int utmZone,
double eastingLine,
int iLine);
350 virtual void labelGridZones();
353 virtual bool labelGarsGrid(
double lonValue,
double latValue,
DtGarsPrecision precision,
int labelIndex);
356 virtual void labelGarsGrids();
361 virtual bool labelGridZoneDesignator(
double lonValue,
double latValue,
int labelIndex);
367 virtual bool includeMgrsDesignator(
double lonValue,
double latValue, osg::Vec3& screenPos,
DtVector& geocResult);
371 virtual bool includeMgrsDesignator(
double lonValue,
double latValue,
float screenPosX,
372 float screenPosY,
DtVector& geocResult);
379 virtual void createGridLineLabel(
DtTextProxy*& label,
double lat,
double lon,
float screenPosX,
float screenPosY,
387 virtual void labelMapSheetLines();
393 virtual bool createMapSheetLabel(
DtTextProxy*& label,
double lat,
double lon,
float screenPosX,
float screenPosY);
397 virtual DtFont::TextAlignment offsetGridBoxLabel(
double xSrc,
double ySrc,
double& xOffset,
double& yOffset,
double myEndLat
Definition: DtGeocentricGridLinesDrawer.h:436
double myAnchoredStartNorthing
Definition: DtGeocentricGridLinesDrawer.h:470
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
LabelArray myGzdLabels
Definition: DtGeocentricGridLinesDrawer.h:453
DtGarsPrecision
Definition: DtGarsUtil.h:15
SegmentLocator myNorthSouthSegmentLocator
Definition: DtGeocentricGridLinesDrawer.h:460
std::vector< DtLineSegment * > GridLine
Definition: DtGeocentricGridLinesDrawer.h:139
std::vector< GridLine > GridLineVector
Definition: DtGeocentricGridLinesDrawer.h:142
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
TextAlignment
Definition: DtFontInterface.h:26
double myLonSpacing
Definition: DtGeocentricGridLinesDrawer.h:420
UsedGridLabels myUsedGzdLabels
Definition: DtGeocentricGridLinesDrawer.h:450
double myAnchoredEndEasting
Definition: DtGeocentricGridLinesDrawer.h:471
DtReferenceEllipsoid myReferenceEllipsoid
Definition: DtGeocentricGridLinesDrawer.h:441
double myStartLat
Definition: DtGeocentricGridLinesDrawer.h:435
double myAnchoredEndLat
Definition: DtGeocentricGridLinesDrawer.h:443
double myObserverLongitude
Definition: DtGeocentricGridLinesDrawer.h:426
SegmentLocator myEastWestSegmentLocator
Definition: DtGeocentricGridLinesDrawer.h:463
double myAnchoredStartLat
Definition: DtGeocentricGridLinesDrawer.h:442
A class for controlling text owned by the TextRenderer.
Definition: DtTextProxy.h:33
Draw 2D Grid Lines on geocentric databases. This class supported two types of grids - basic geodetic ...
Definition: DtGeocentricGridLinesDrawer.h:42
LabelArray myEastWestLabels
Definition: DtGeocentricGridLinesDrawer.h:465
LabelArray myNorthSouthLabels
Definition: DtGeocentricGridLinesDrawer.h:464
std::vector< MgrsSegStart > SegmentStarts
The starting location of each mapsheet line segment drawn for one line.
Definition: DtGeocentricGridLinesDrawer.h:245
double myObserverAltitude
Definition: DtGeocentricGridLinesDrawer.h:427
double myScale
Definition: DtGeocentricGridLinesDrawer.h:421
bool myLatCrossesPole
Definition: DtGeocentricGridLinesDrawer.h:446
UsedGridLabels myUsedMapSheetLabels
Definition: DtGeocentricGridLinesDrawer.h:451
DtVector myClipNormal
Definition: DtGeocentricGridLinesDrawer.h:433
std::vector< DtTextProxy * > LabelArray
Definition: DtGeocentricGridLinesDrawer.h:143
A class which represents a single line segment.
Definition: DtLineSegment.h:23
LabelArray myLatitudeLabels
Definition: DtGeocentricGridLinesDrawer.h:417
LabelArray myMapSheetLabels
Definition: DtGeocentricGridLinesDrawer.h:454
double myLatSpacing
Definition: DtGeocentricGridLinesDrawer.h:419
double myObserverLatitude
Definition: DtGeocentricGridLinesDrawer.h:425
unsigned int myChannelSize
Definition: DtGeocentricGridLinesDrawer.h:423
double myAnchoredEndNorthing
Definition: DtGeocentricGridLinesDrawer.h:472
int myChannelExpansionX
Definition: DtGeocentricGridLinesDrawer.h:428
double myAnchoredStartLon
Definition: DtGeocentricGridLinesDrawer.h:444
bool myGarsCanDraw
Definition: DtGeocentricGridLinesDrawer.h:477
double myEndLon
Definition: DtGeocentricGridLinesDrawer.h:438
GridLineVector myLatitudeLines
Definition: DtGeocentricGridLinesDrawer.h:414
double lon
Definition: DtGeocentricGridLinesDrawer.h:242
double myAnchoredEndLon
Definition: DtGeocentricGridLinesDrawer.h:445
GridLineVector myNorthSouthLines
Definition: DtGeocentricGridLinesDrawer.h:459
Contains the DtGridLinesSettingsRecord class declaration.
LabelArray myGarsGridLabels
Definition: DtGeocentricGridLinesDrawer.h:455
double myStartLon
Definition: DtGeocentricGridLinesDrawer.h:437
LabelArray myLongitudeLabels
Definition: DtGeocentricGridLinesDrawer.h:416
DtCoordTransform myGeocToTopoTransform
Definition: DtGeocentricGridLinesDrawer.h:439
int myChannelExpansionY
Definition: DtGeocentricGridLinesDrawer.h:429
boost::unordered_set< DtUnicode > UsedGridLabels
Definition: DtGeocentricGridLinesDrawer.h:449
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. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
double myAnchoredStartUtmZone
Definition: DtGeocentricGridLinesDrawer.h:473
Structure / typedefs for segment locators. We store the latitude and longitude of the start of each m...
Definition: DtGeocentricGridLinesDrawer.h:239
double myAnchoredStartEasting
Definition: DtGeocentricGridLinesDrawer.h:469
DtVector myObserverPosition
Definition: DtGeocentricGridLinesDrawer.h:424
GridLineVector myLongitudeLines
Definition: DtGeocentricGridLinesDrawer.h:413
char myAnchoredStartNorthingHemisphere
Definition: DtGeocentricGridLinesDrawer.h:475
double myAnchoredEndUtmZone
Definition: DtGeocentricGridLinesDrawer.h:474
int myMapSheetSpacing
Definition: DtGeocentricGridLinesDrawer.h:467
double lat
Definition: DtGeocentricGridLinesDrawer.h:241
unsigned int myMinChannelDimension
Definition: DtGeocentricGridLinesDrawer.h:422
DtCoordTransform myTopoToGeocTransform
Definition: DtGeocentricGridLinesDrawer.h:440
char myAnchoredEndNorthingHemisphere
Definition: DtGeocentricGridLinesDrawer.h:476
A simple bounding box.
Definition: DtBoundingBox.h:101
std::vector< SegmentStarts > SegmentLocator
A vector of SegmentStarts, one for each line drawn.
Definition: DtGeocentricGridLinesDrawer.h:247
GridLineVector myEastWestLines
Definition: DtGeocentricGridLinesDrawer.h:462