Hugintrunk  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GreatCircles.h
Go to the documentation of this file.
1 // -*- c-basic-offset: 4 -*-
23 #ifndef GREATCIRCLES_H
24 #define GREATCIRCLES_H
25 
26 #include "ViewState.h"
27 #include <vector>
28 #include <hugin_math/hugin_math.h>
29 
36 {
37 public:
39  GreatCircles();
44  void setVisualizationState(VisualizationState * visualizationState);
62  void drawLineFromSpherical(double startLat, double startLong,
63  double endLat, double endLong, double width = 1.0, bool straightLine = false);
64 private:
66 };
67 
69 {
70  public:
82  GreatCircleArc(double startLat, double startLong,
83  double endLat, double endLong,
86  void draw(bool withCross=true, double width = 1.0) const;
90  float squareDistance(hugin_utils::FDiff2D point) const;
91  double m_xscale ;
92  double getxscale() const;
93 
94  struct LineSegment
95  {
98  float squareDistance(hugin_utils::FDiff2D point) const;
100  void doGLcross(int point, double cscale, VisualizationState *state) const;
108  void doGL(double width, VisualizationState *state, LineSegment * preceding = NULL, LineSegment * proceeding = NULL) const;
109  };
110 
111  protected:
112  std::vector<LineSegment> m_lines;
114 
115 };
116 
118 {
119 public:
126  StraightLineFromSphericals(double startLat, double startLong,
127  double endLat, double endLong,
129 };
130 
131 #endif
132 
GreatCircles()
constructor
double getxscale() const
misc math function &amp; classes used by other parts of the program
void doGL(double width, VisualizationState *state, LineSegment *preceding=NULL, LineSegment *proceeding=NULL) const
Draw a meshed line.
VisualizationState * m_visualizationState
Definition: GreatCircles.h:65
void doGLcross(int point, double cscale, VisualizationState *state) const
Specify the line to OpenGL. Must be within a glBegin/glEnd pair.
VisualizationState * m_visualizationState
Definition: GreatCircles.h:113
void setVisualizationState(VisualizationState *visualizationState)
Set the ViewState to use for information on output projection and preview display.
StraightLineFromSphericals(double startLat, double startLong, double endLat, double endLong, VisualizationState &m_visualizationState)
Create a straight line from begin to end in spherical coordinates.
Draw great circle arcs in the fast preview.
Definition: GreatCircles.h:35
GreatCircleArc()
Create a bad great circle arc.
hugin_utils::FDiff2D vertices[2]
Definition: GreatCircles.h:96
std::vector< LineSegment > m_lines
Definition: GreatCircles.h:112
void drawLineFromSpherical(double startLat, double startLong, double endLat, double endLong, double width=1.0, bool straightLine=false)
Draw the shortest segment of the great circle crossing two spherical coordinates. ...
float squareDistance(hugin_utils::FDiff2D point) const
Return the square of the minimal distance between the great circle arc and a coordinate on the panora...
void draw(bool withCross=true, double width=1.0) const
Draw the great circle arc on the fast preview.
float squareDistance(hugin_utils::FDiff2D point) const
Get the square of the minimal distance to a point.