VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtCoordinateDisplay.h
Go to the documentation of this file.
1 /*********************************************************************
2  * Copyright (c) 2011 MaK Technologies, Inc.
3  * All rights reserved.
4  ********************************************************************/
5 /*********************************************************************
6  * $RCSfile: DtCoordinateDisplay.h,v $ $Revision: 1.8 $ $State: Exp $
7  ********************************************************************/
8 
12 
13 #pragma once
14 #include <vrvUtil/vrvUtil.h>
15 #include <vrvUtil/DtUnicode.h>
17 #include <matrix/vlVector.h>
18 
19 class DtTaitBryan;
20 
21 namespace makVrv
22 {
23  class DtCoordinateSystem;
24 
28  {
29  public:
30 
37  typedef std::list<DistanceUnits> SupportedPositionDistanceUnits;
38  typedef std::list<OrientationUnits> SupportedPositionAngularUnits;
39  typedef std::list<std::string> SupportedCSForGridLines;
40 
41 
47  DtCoordinateDisplay( const DtCoordinateSystem& coordSys );
48 
50  virtual ~DtCoordinateDisplay();
51 
53  virtual DtCoordinateDisplay* clone() const = 0;
54 
55  virtual DtUnicode name() = 0;
56 
61  virtual DtUnicode gridBoxLabel(const DtVector& lowerLeftGeocPos,
62  const DtVector& upperRightGeocPos );
63 
64  // Deriving systems need to override one or the other of these,
65  // depending on which type of position units they use. GridSpacing
66  // is provided for autoPrecision implementations
67 
69  virtual DtUnicode northSouthGridLabel( DistanceUnits unit,
70  const DtVector& geocPos, int decimals, double gridSpacing );
71 
73  virtual DtUnicode northSouthGridLabel( OrientationUnits unit,
74  const DtVector& geocPos, int decimals, double gridSpacing );
75 
77  virtual DtUnicode eastWestGridLabel( DistanceUnits unit,
78  const DtVector& geocPos, int decimals, double gridSpacing );
79 
81  virtual DtUnicode eastWestGridLabel( OrientationUnits unit,
82  const DtVector& geocPos, int decimals, double gridSpacing );
83 
87  virtual bool clipXToGrid( double inStartX, double inEndX, double constantY,
88  double& clippedStartX, double& clippedEndX );
89 
91  virtual bool clipYToGrid( double inStartY, double inEndY, double constantX,
92  double& clippedStartY, double& clippedEndY );
93 
96  virtual void shiftGridLineAnchors( double xSpacing, double ySpacing,
97  double& shiftX, double& shifY );
98 
100  virtual bool usesDecimalsOnGridLines() const;
101 
103  virtual double maxGridSpacing() const;
104 
106  virtual double minGridSpacing() const;
107 
108  virtual DistanceUnits xUnitsFor( DistanceUnits unit ) = 0;
109 
110  virtual DistanceUnits yUnitsFor( DistanceUnits unit ) = 0;
111 
112  virtual DistanceUnits zUnitsFor( DistanceUnits unit ) = 0;
113 
114  virtual DtUnicode xAxisLabel() = 0;
115  virtual DtUnicode yAxisLabel() = 0;
116  virtual DtUnicode zAxisLabel() = 0;
117 
121  virtual std::vector<std::string> convertPositionToStringList(
122  DistanceUnits unit, const DtVector& geocPos, int decimals ) = 0;
123 
127  virtual void convertToGeocentric( const std::string& x,
128  const std::string& y, const std::string& z, DistanceUnits distUnits,
129  DistanceUnits altUnits, DtVector& vector ) = 0;
130 
133  virtual DtVector convertFromGeocentric( const DtVector& vector ) const = 0;
134 
136  virtual DtTaitBryan headingPitchRollFor( const DtVector& geocPos,
137  const DtTaitBryan& geocOri ) const = 0;
138 
140  virtual DtTaitBryan localOrientationFor( const DtVector& location,
141  const DtTaitBryan& geocOri ) const = 0;
142 
146  virtual void regularExpressionValidator( std::string& x, std::string& y,
147  std::string& z ) = 0;
148 
149  virtual DtTaitBryan topoOrientationFor( const DtVector& geocPos,
150  const DtTaitBryan& geocOri ) const;
151 
152  virtual DtVector geocToLocalVector(const DtVector& geocLoc,
153  const DtVector& geocVec ) const;
154 
160  const SupportedPositionDistanceUnits& supportedPositionDistanceUnits() const;
161 
163  bool isSupportedPositionUnit( DistanceUnits unit) const;
164 
166  void addSupportedPositionUnit( DistanceUnits unitToSupport );
167 
169  void removeSupportedPositionUnit( DistanceUnits unitToRemove );
170 
175  const SupportedPositionAngularUnits& supportedPositionAngularUnits() const;
176 
178  bool isSupportedPositionUnit( OrientationUnits unit) const;
179 
181  void addSupportedPositionUnit( OrientationUnits unitToSupport );
182 
184  void removeSupportedPositionUnit( OrientationUnits unitToRemove );
185 
188  const SupportedCSForGridLines& supportedCSForGridLines() const;
189 
192  bool isSupportedCSForGridLines( const std::string& cs ) const;
193 
195  void addSupportedCSForGridLines( const std::string& cs );
196 
198  void removeSupportedCSForGridLines( const std::string& cs );
199 
200  protected:
201 
206 
207  };
208 
209 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)