26 #include <boost/unordered_set.hpp>
33 class DtOverlayRenderer;
52 virtual void drawGridLines();
55 virtual void setMaxGridLines(
int maxGridLines );
59 virtual void setWindowDimensions(
double startWindowX,
double startWindowY,
60 double endWindowX,
double endWindowY );
63 virtual void setCenter(
const osg::Vec2d& center );
66 virtual void setHeading(
double heading );
69 virtual void setScale(
double scale );
72 virtual void destroyGridLines();
80 virtual void drawNorthSouthGridLinesAndLabels();
83 virtual void drawEastWestGridLinesAndLabels();
87 virtual void findSpacing();
92 virtual void anchorAndOffsetLines();
98 virtual DtUnicode createLabel(
const double& xMeters,
const double& yMeters,
bool isNorthSouth );
100 virtual bool labelGridBox(
double nsValue,
double ewValue,
int labelIndex );
104 void convertDegreeSpacingToMeters(
double gridSpacing,
double& xSpacing,
double& ySpacing )
const;
108 double& xOffset,
double& yOffset,
DtBoundingBox& bbox )
const;
112 double& xOffset,
double& yOffset,
DtBoundingBox& bbox )
const;
115 virtual LabelPosition calcLabelPosition(
double x,
double y )
const;
118 virtual void calcDesiredLabelPosition();
122 double degreesLatitudeToMeters(
double x,
double y )
const;
124 double convertToMetersOrDegrees(
double value )
const;
128 virtual double degreesLongitudeToMeters()
const;
132 virtual double fixedSpacingAmount()
const;
136 virtual double xOffset()
const;
140 virtual double yOffset()
const;
159 virtual void clearUnusedLinesAndLabels(
int index,
GridLineVector& lines );
161 virtual void clearUnusedGridBoxLabels(
int index );
163 virtual bool drawGridLineAndLabel(
double startX,
double startY,
164 double endX,
double endY,
GridLine& gridLine,
float* lineColor,
165 LabelPosition labelPosition,
float* labelColor,
bool isNorthSouth );
172 virtual void labelGridBoxes();