Isis Developer Reference
GroundGrid.h
Go to the documentation of this file.
1#ifndef GroundGrid_h
2#define GroundGrid_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10namespace Isis {
11 class Angle;
12 class Latitude;
13 class Longitude;
14 class PvlGroup;
15 class Progress;
16 class UniversalGroundMap;
17
58 class GroundGrid {
59 public:
61 bool splitLatLon,
62 bool extendGrid,
63 unsigned int width,
64 unsigned int height);
65
66 virtual ~GroundGrid();
67
68 void CreateGrid(Latitude baseLat,
69 Longitude baseLon,
70 Angle latInc,
71 Angle lonInc,
72 Progress *progress = 0);
73
74 void CreateGrid(Latitude baseLat,
75 Longitude baseLon,
76 Angle latInc,
77 Angle lonInc,
78 Progress *progress,
79 Angle latRes,
80 Angle lonRes);
81
82 void WalkBoundary();
83
84 void SetGroundLimits(Latitude minLat,
85 Longitude minLon,
86 Latitude maxLat,
87 Longitude maxLon);
88
89 bool PixelOnGrid(int x, int y);
90 bool PixelOnGrid(int x, int y, bool latGrid);
91
92 Latitude minLatitude() const;
93 Longitude minLongitude() const;
94 Latitude maxLatitude() const;
95 Longitude maxLongitude() const;
96
98
99 protected:
100 virtual bool GetXY(Latitude lat, Longitude lon,
101 unsigned int &x, unsigned int &y);
102
104
105 private:
106 void SetGridBit(unsigned int x, unsigned int y, bool latGrid);
107 bool GetGridBit(unsigned int x, unsigned int y, bool latGrid);
108 void DrawLineOnGrid(unsigned int x1, unsigned int y1,
109 unsigned int x2, unsigned int y2,
110 bool isLatLine);
111
112
113 char *p_grid;
114 char *p_latLinesGrid;
115 char *p_lonLinesGrid;
116 unsigned int p_width;
117 unsigned int p_height;
118 unsigned long p_gridSize;
119 UniversalGroundMap *p_groundMap;
120
121 Latitude *p_minLat;
122 Longitude *p_minLon;
123 Latitude *p_maxLat;
124 Longitude *p_maxLon;
125
127 PvlGroup *p_mapping;
128
129 double p_defaultResolution;
130
131 bool p_reinitialize;
132 bool m_extendGrid;
133 };
134
135}
136
137
138#endif
Defines an angle and provides unit conversions.
Definition Angle.h:45
Calculates a lat/lon grid over an area.
Definition GroundGrid.h:58
Latitude maxLatitude() const
Returns the maximum latitude for the grid.
Definition GroundGrid.cpp:585
GroundGrid(UniversalGroundMap *gmap, bool splitLatLon, bool extendGrid, unsigned int width, unsigned int height)
This method initializes the class by allocating the grid, calculating the lat/lon range,...
Definition GroundGrid.cpp:40
virtual ~GroundGrid()
Delete the object.
Definition GroundGrid.cpp:167
void CreateGrid(Latitude baseLat, Longitude baseLon, Angle latInc, Angle lonInc, Progress *progress=0)
This method draws the grid internally, using default resolutions.
Definition GroundGrid.cpp:218
void SetGroundLimits(Latitude minLat, Longitude minLon, Latitude maxLat, Longitude maxLon)
This restricts (or grows) the ground range in which to draw grid lines.
Definition GroundGrid.cpp:411
bool PixelOnGrid(int x, int y)
Returns true if the grid is on this point.
Definition GroundGrid.cpp:529
Latitude minLatitude() const
Returns the minimum latitude for the grid.
Definition GroundGrid.cpp:557
UniversalGroundMap * GroundMap()
Returns the ground map for children.
Definition GroundGrid.cpp:643
Longitude minLongitude() const
Returns the minimum longitude for the grid.
Definition GroundGrid.cpp:571
PvlGroup * GetMappingGroup()
Returns a mapping group representation of the projection or camera.
Definition GroundGrid.cpp:546
Longitude maxLongitude() const
Returns the maximum longitude for the grid.
Definition GroundGrid.cpp:599
virtual bool GetXY(Latitude lat, Longitude lon, unsigned int &x, unsigned int &y)
This method converts a lat/lon to an X/Y.
Definition GroundGrid.cpp:618
void WalkBoundary()
This draws grid lines along the extremes of the lat/lon box of the grid.
Definition GroundGrid.cpp:434
This class is designed to encapsulate the concept of a Latitude.
Definition Latitude.h:51
This class is designed to encapsulate the concept of a Longitude.
Definition Longitude.h:40
Program progress reporter.
Definition Progress.h:42
Contains multiple PvlContainers.
Definition PvlGroup.h:41
Universal Ground Map.
Definition UniversalGroundMap.h:69
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16