GL Studio C++ Runtime API
gls_angular_scale.h
Go to the documentation of this file.
1 /*! \file
2  \brief The disti::GlsAngularScale class and global enumerations.
3 
4  \par Copyright Information
5 
6  Copyright (c) 2017 by The DiSTI Corporation.<br>
7  11301 Corporate Blvd., Suite 100<br>
8  Orlando, Florida 32817<br>
9  USA<br>
10  <br>
11  All rights reserved.<br>
12 
13  This Software contains proprietary trade secrets of DiSTI and may not be
14 reproduced, in whole or part, in any form, or by any means of electronic,
15 mechanical, or otherwise, without the written permission of DiSTI. Said
16 permission may be derived through the purchase of applicable DiSTI product
17 licenses which detail the distribution rights of this content and any
18 Derivative Works based on this or other copyrighted DiSTI Software.
19 
20  NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21 AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22 PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23 AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24 IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25 PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26 
27  LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28 IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29 INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30 DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31 INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32 INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33 OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34 EXCEED FIVE DOLLARS (US$5.00).
35 
36  The aforementioned terms and restrictions are governed by the laws of the
37 State of Florida and the United States of America.
38 
39 */
40 #ifndef _GLS_ANGULAR_SCALE_H
41 #define _GLS_ANGULAR_SCALE_H
42 
43 #include "glpolygon.h"
44 #include "gls_cpp_lang_support.h"
45 
46 #ifdef GLES
47 # include "gls_quad_storage.h"
48 #else
49 # include "gls_display_list.h"
50 #endif
51 
52 //////////////////// Provides support for creating DLLs ////////////////////////
53 #if( defined( GLSGEN_EXPORT_GLSANGULARSCALE ) || defined( GLSGEN_IMPORT_GLSANGULARSCALE ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
54  && defined( _MSC_VER )
55 # if defined( GLSGEN_EXPORT_GLSANGULARSCALE ) || defined( GLS_EXPORT_GENERATED )
56 # define GLSGEN_GLSANGULARSCALE_EXPORT __declspec( dllexport )
57 # else
58 # define GLSGEN_GLSANGULARSCALE_EXPORT __declspec( dllimport )
59 # endif
60 #else
61 # define GLSGEN_GLSANGULARSCALE_EXPORT
62 #endif
63 ///////////////////////////////////////////////////////////////////////////////
64 
65 #define LIB_BASE_NAME "gls_angular_scale"
66 #include "gls_auto_lib.h"
67 #undef LIB_BASE_NAME
68 
69 namespace disti
70 {
71 #ifdef GLES
72 // Forward Declaration
73 class GlsGloFileAttribute;
74 #endif
75 // SetValue enumerations
76 enum
77 {
78  GLS_ANGULAR_SCALE_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
79  GLS_ANGULAR_SCALE_RADII,
80  GLS_ANGULAR_SCALE_DECONFLICT_TICKS,
81  GLS_ANGULAR_SCALE_HALO_ENABLED,
82  GLS_ANGULAR_SCALE_HALO_WIDTH,
83  GLS_ANGULAR_SCALE_HALO_COLOR,
84  GLS_ANGULAR_SCALE_USE_SCALABLE_LINES,
85  GLS_ANGULAR_SCALE_RADIUS,
86  GLS_ANGULAR_SCALE_DATA
87 };
88 
90 {
91 protected:
92  DistiAttribDict _attribDict;
93 
94 public:
95  bool active; /**< True if this scale is active */
96  bool useLineColor; /**< True if this scale draws with line color */
97  unsigned int ticks; /**< Number of ticks on this scale */
98  float startAngle; /**< Start angle in degrees */
99  float interval; /**< Interval between ticks in degrees */
100  float length; /**< Length of ticks in logical units */
101  float thickness; /**< Thickness of ticks in logical units */
102  GlsColor color; /**< Color to draw ticks if line color is not being used*/
103 
105  : active( false )
106  , useLineColor( false )
107  , ticks( 0 )
108  , startAngle( 0 )
109  , interval( 0 )
110  , length( 0 )
111  , thickness( 1 )
112  , color( 255, 255, 255, 255 )
113  {
114  InitMetaData();
115  }
116 
118  bool _active,
119  bool _useLineColor,
120  unsigned int _ticks,
121  float _startAngle,
122  float _interval,
123  float _length,
124  float _thickness,
125  const GlsColor& _color )
126  : active( _active )
127  , useLineColor( _useLineColor )
128  , ticks( _ticks )
129  , startAngle( _startAngle )
130  , interval( _interval )
131  , length( _length )
132  , thickness( _thickness )
133  , color( _color )
134  {
135  InitMetaData();
136  }
137 
138  GlsAngularScaleData( const GlsAngularScaleData& src )
139  {
140  InitMetaData();
141  *this = src;
142  }
143 
144  GlsAngularScaleData& operator=( const GlsAngularScaleData& src )
145  {
146  if( this != &src )
147  {
148  active = src.active;
149  useLineColor = src.useLineColor;
150  ticks = src.ticks;
151  startAngle = src.startAngle;
152  interval = src.interval;
153  length = src.length;
154  thickness = src.thickness;
155  color = src.color;
156 
157  _attribDict.CopyCommonValues( src._attribDict );
158  }
159  return *this;
160  }
161 
162  virtual ~GlsAngularScaleData()
163  {
164  }
165 
166  bool GLSGEN_GLSANGULARSCALE_EXPORT operator==( const GlsAngularScaleData& right ) const;
167 
168  bool GLSGEN_GLSANGULARSCALE_EXPORT operator!=( const GlsAngularScaleData& right ) const
169  {
170  return !( this->operator==( right ) );
171  }
172 
173  void GLSGEN_GLSANGULARSCALE_EXPORT InitMetaData();
174 
175  // Writes this to a stream
176  virtual GLSGEN_GLSANGULARSCALE_EXPORT std::ostream& WriteValue( std::ostream& outstr );
177 
178  // Reads this from a stream
179  virtual GLSGEN_GLSANGULARSCALE_EXPORT std::istream& ReadValue( std::istream& instr );
180 };
181 
182 #define GLS_ANGULAR_SCALE_MAX 5
183 
184 typedef GlsAngularScaleData GlsAngularScaleDataArray[ GLS_ANGULAR_SCALE_MAX ];
185 
186 /** Runtime implementation of a GlsAngularScale */
188 {
189  friend class GlsAngularScaleEditor;
190 
191 private:
192  GlsAngularScale& operator=( const GlsAngularScale& ) DISTI_SPECIAL_MEM_FUN_DELETE;
193  GlsAngularScale( const GlsAngularScale& ) DISTI_SPECIAL_MEM_FUN_DELETE;
194 
195 public:
196  DISTI_DEPRECATED( "This identifier is forbidden by the C++ standard. Use BaseClass instead." )
197  typedef GLPolygon _BaseClass;
198  typedef GLPolygon BaseClass;
199 
200  /** Create a new GlsAngularScale.
201  * \param generateInstance Whether or not to generate an instance name
202  * for this inputdevice */
203  GLSGEN_GLSANGULARSCALE_EXPORT GlsAngularScale( bool generateInstance = false );
204 
205  /** The copy constructor for GlsAngularScale
206  *
207  * \param that The GlsAngularScale object that is being copied
208  * \param generateNames Whether or not to generate a new instance name
209  */
210  GLSGEN_GLSANGULARSCALE_EXPORT GlsAngularScale( const GlsAngularScale& that, const bool generateNames );
211 
212  /** Destructs a GlsAngularScale object */
213  virtual GLSGEN_GLSANGULARSCALE_EXPORT ~GlsAngularScale();
214 
215  static GLSGEN_GLSANGULARSCALE_EXPORT DisplayObject* CreateInstance();
216 
217  virtual GLSGEN_GLSANGULARSCALE_EXPORT void SetAvailableAttributes( unsigned int value ) DISTI_METHOD_OVERRIDE;
218 
219  virtual GLSGEN_GLSANGULARSCALE_EXPORT DisplayObject* CloneObject( bool generateNames = false ) DISTI_METHOD_OVERRIDE;
220 
221  virtual GLSGEN_GLSANGULARSCALE_EXPORT void CopyProperties( DisplayObject* src ) DISTI_METHOD_OVERRIDE;
222 
223  virtual GLSGEN_GLSANGULARSCALE_EXPORT void CopyGeometry( DisplayObject* srcArg ) DISTI_METHOD_OVERRIDE;
224 
225 #ifndef GLES
226  virtual GLSGEN_GLSANGULARSCALE_EXPORT InterfaceListType* GetCppInterfaceDescription( InterfaceListType* addToThisList = NULL ) DISTI_METHOD_OVERRIDE;
227  virtual GLSGEN_GLSANGULARSCALE_EXPORT void GetCppInterfaceDescriptionFree( InterfaceListType* array ) DISTI_METHOD_OVERRIDE;
228 #endif
229  virtual GLSGEN_GLSANGULARSCALE_EXPORT void PreDraw( const OpenGLMatrices& parentMatrices, Culler& culler ) DISTI_METHOD_OVERRIDE;
230  virtual GLSGEN_GLSANGULARSCALE_EXPORT void Draw() DISTI_METHOD_OVERRIDE;
231 
232  virtual GLSGEN_GLSANGULARSCALE_EXPORT void Scale( float px, float py, float pz, Vertex* anchor, int handleBar ) DISTI_METHOD_OVERRIDE;
233  virtual GLSGEN_GLSANGULARSCALE_EXPORT void Rotate( const Vector& orig, float angle, const Vector& axis ) DISTI_METHOD_OVERRIDE;
234  virtual GLSGEN_GLSANGULARSCALE_EXPORT bool Hit( float x, float y, float z, float scale, const Vector& directionVector, Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
235 
236  virtual GLSGEN_GLSANGULARSCALE_EXPORT Vertex* Vertices() DISTI_METHOD_OVERRIDE;
237  virtual GLSGEN_GLSANGULARSCALE_EXPORT void GetExtents( float& minx, float& miny, float& minz, float& maxx, float& maxy, float& maxz ) DISTI_METHOD_OVERRIDE;
238  virtual GLSGEN_GLSANGULARSCALE_EXPORT void GetTransformedExtents( Vector& min, Vector& max, const GlsMatrixType& matrix, bool resetMinMax ) DISTI_METHOD_OVERRIDE;
239  virtual GLSGEN_GLSANGULARSCALE_EXPORT void UpdateBoundingVolume() DISTI_METHOD_OVERRIDE;
240 
241  virtual GLSGEN_GLSANGULARSCALE_EXPORT void SetColor( const GlsColor& color ) DISTI_METHOD_OVERRIDE;
242  inline void SetLineColor( const GlsColor& color ) { SetColor( color ); }
243 
244 #ifndef GLES
245  virtual GLSGEN_GLSANGULARSCALE_EXPORT void AntiAlias( bool alias ) DISTI_METHOD_OVERRIDE;
246 #endif
247 
248  DisplayObject* handle( DisplayEvent* ev ) DISTI_METHOD_OVERRIDE;
249 
250  virtual void SetValue( int spec, va_list& args ) DISTI_METHOD_OVERRIDE;
251 
252  //////////////////////////////////////////////////
253  // GlsAngularScale specific operations
254  //////////////////////////////////////////////////
255 
256  /** Initializes data for one of the scales
257  * \param index Zero based index of the scale to set
258  * \param data The data to set
259  */
260  GLSGEN_GLSANGULARSCALE_EXPORT void SetScale( int index, const GlsAngularScaleData& data );
261 
262  /** Gets data for one of the scales
263  * \param index Zero based index of the scale to get
264  * \param data The GlsAngularScaleData structure to fill
265  */
266  GLSGEN_GLSANGULARSCALE_EXPORT void GetScale( int index, GlsAngularScaleData& data );
267 
268  /** Sets the tick deconfliction state for this scale
269  * \param val Wether or not to enable tick deconfliction
270  */
271  GLSGEN_GLSANGULARSCALE_EXPORT void DeconflictTicks( const bool& val );
272 
273  /** Gets the tick deconfliction state for this scale
274  * \return Whether or not tick deconfliction is enabled
275  */
276  GLSGEN_GLSANGULARSCALE_EXPORT bool DeconflictTicks() { return _deconflictTicks; }
277 
278  /** Gets the halo state for this scale
279  * \return Whether or not halo is enabled
280  */
281  GLSGEN_GLSANGULARSCALE_EXPORT bool HaloEnabled() { return _haloEnabled; }
282 
283  /** Sets the halo state for this scale
284  * \param val Wether or not to enable halo
285  */
286  GLSGEN_GLSANGULARSCALE_EXPORT void HaloEnabled( const bool& val );
287 
288  /** Gets the halo width for this scale
289  * \return The halo width for this scale
290  */
291  GLSGEN_GLSANGULARSCALE_EXPORT float HaloWidth() { return _haloWidth; }
292 
293  /** Sets the halo width for this scale
294  * \param val New halo width
295  */
296  GLSGEN_GLSANGULARSCALE_EXPORT void HaloWidth( const float& val );
297 
298  /** Gets the halo color for this scale
299  * \return The halo color for this scale
300  */
301  GLSGEN_GLSANGULARSCALE_EXPORT GlsColor HaloColor() { return _haloColor; }
302 
303  /** Sets the halo color for this scale
304  * \param val New halo color
305  */
306  GLSGEN_GLSANGULARSCALE_EXPORT void HaloColor( const GlsColor& val );
307 
308 #ifndef GLES
309  /** Gets the drawing mode for this scale
310  * \return The drawing mode for this scale
311  */
312  GLSGEN_GLSANGULARSCALE_EXPORT bool UseScalableLines() { return _useScalableLines; }
313 
314  /** Sets the drawing mode for this scale
315  * \param val New drawing mode
316  */
317  GLSGEN_GLSANGULARSCALE_EXPORT void UseScalableLines( const bool& val );
318 
319 #endif
320  /** Gets the radius for this scale
321  * \return The radius for this scale
322  */
323  GLSGEN_GLSANGULARSCALE_EXPORT float Radius()
324  {
325  return _magnitude[ 0 ];
326  }
327 
328  /** Sets the radius for this scale
329  * \param val New radius
330  */
331  GLSGEN_GLSANGULARSCALE_EXPORT void Radius( const float& val );
332 
333 #ifdef GLES
334  /** Causes the VBO for this object to be recomputed */
335  GLSGEN_GLSANGULARSCALE_EXPORT void InvalidateGeometry()
336  {
337  _geometryRefresh = true;
339  }
340 #else
341  /** Causes the VBO for this object to be recomputed */
342  GLSGEN_GLSANGULARSCALE_EXPORT void InvalidateGeometry()
343  {
346  }
347 
348  /** Returns a reference to this object's display list */
349  GLSGEN_GLSANGULARSCALE_EXPORT GlsDisplayList& DisplayList() { return _displayList; }
350 #endif
351 
352 protected:
353  /** True when the object's vertices need to be recalculated */
355 
356  /** Calculates _radii based on_magnitude and _radiiUnit */
357  void MagnitudeChanged();
358 
359  /** Calculates _radiiUnit and _magnitude based on _radii */
360  void CalculateRadiiUnit();
361 
362 #ifdef GLES
363  /** Manages a VBO for drawing the tick marks */
364  GlsQuadListVC_3D _quads;
365 
366  /** Updates the VBO when the object changes */
367  void BakeVBO();
368 #endif
369 
370 #ifndef GLES
371  /** Minimizes calls to glColor when drawing the scale */
372  void CurrentColor( const GlsColor& newColor );
373 
374  /** Minimizes calls to glLineWidth when drawing the scale */
375  void CurrentLineWidth( const float& newLineWidth );
376 
377  /** Stores the current color. Used when calculating a new display list so that redundant
378  * glColor calls are not made */
380 
381  /** Stores the current line width. Used when calculating a new display list so that redundant
382  * glLineWidth calls are not made */
384 
385  /** True if the current color has been set. Gets reset every time a new display list is
386  * recalculated. */
388 
389  /** True if the current line width has been set. Gets reset every time a new display list is
390  * recalculated. */
392 
393  /** Stores the scale in a display list for faster drawing */
395 #endif
396 
397  /** Recomputes the object's vertices from its radii */
398  void RecomputeVertices();
399 
400  /** Determines if a tick with the given angle should be drawn or not. If a higher priority
401  * scale already has a tick at that level and deconfliction is enabled, then this method
402  * will return false */
403  bool TickNeeded( int currentLevel, float currentAngle );
404 
405  /// Calculates and draws a single scale using the given halo length and thickness
406  /// \param i The index of the scale to draw
407  /// \param haloLength The length of the halo
408  /// \param haloThickness The thickness of the halo
409 #ifdef GLES
410  /// \param color The color of the scale
411  void DrawScale( int i, float haloLength, float haloThickness, GlsColor& color );
412 #else
413  void DrawScale( int i, float haloLength, float haloThickness );
414 #endif
415 
416 #ifdef GLES
417  /** Set a single attribute from the GLO file.
418  * \param data The attribute to set and its associated data.
419  */
420  virtual GLSGEN_GLSANGULARSCALE_EXPORT void SetFromGloData( GlsGloFileAttribute& data ) DISTI_METHOD_OVERRIDE;
421 #endif
422 
423 #ifndef GLES
424  /** Calculates current tick mark locations and performs OpenGL drawing commands */
425  virtual void DrawGeometry();
426 #endif
427 
428  /** Always equal to _radiiUnit * _magnitude */
430 
431  /** Unit vectors describing the radii */
433 
434  /** Magnitudes of the two radii */
435  float _magnitude[ 2 ];
436 
437  /** The particulars of each scale */
438  GlsAngularScaleDataArray _scale;
439 
440  /** True if duplicated tick marks are removed */
442 
443  /** True if haloing is enabled */
445 
446  /** Width of the halo in logical units */
447  float _haloWidth;
448 
449  /** Color of the halo */
451 
452 #ifndef GLES
453  /** True if scale is drawn with polygon quads instead of lines*/
455 #endif
456 };
457 
458 /** Metadata for scale data */
460 {
461 protected:
462  GlsAngularScaleDataArray* _attribPtr;
463  unsigned int _arraySize;
464 
465 public:
466  DistiAttributeConnectionGlsAngularScaleDataArray( CallbackMethodCallerBase* callback, const AttributeName& name, GlsAngularScaleDataArray* attribPtr, int arraySize )
467  : DistiAttributeBase( callback, name, false )
468  , _attribPtr( attribPtr )
469  , _arraySize( arraySize )
470  {
471  }
472 
473  virtual GLSGEN_GLSANGULARSCALE_EXPORT ~DistiAttributeConnectionGlsAngularScaleDataArray();
474  virtual GLSGEN_GLSANGULARSCALE_EXPORT bool OkToWrite() const;
475  virtual GLSGEN_GLSANGULARSCALE_EXPORT std::ostream& WriteValue( std::ostream& outstr );
476  virtual GLSGEN_GLSANGULARSCALE_EXPORT std::istream& ReadValue( std::istream& instr );
477 };
478 
479 } // namespace disti
480 
481 #endif
Definition: cull.h:49
void SetScale(int index, const GlsAngularScaleData &data)
float thickness
Definition: gls_angular_scale.h:101
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array) DISTI_METHOD_OVERRIDE
Definition: vertex.h:409
Definition: gls_angular_scale.h:89
void CopyCommonValues(const DistiAttribDict &dict)
virtual std::ostream & WriteValue(std::ostream &outstr)
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:436
virtual Vertex * Vertices() DISTI_METHOD_OVERRIDE
void Invalidate(void)
Definition: gls_display_list.h:82
void DrawScale(int i, float haloLength, float haloThickness)
Definition: dynamic_array.h:66
bool _haloEnabled
Definition: gls_angular_scale.h:444
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:473
GlsColor _haloColor
Definition: gls_angular_scale.h:450
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar) DISTI_METHOD_OVERRIDE
bool _needsRecalculate
Definition: gls_angular_scale.h:354
void GetScale(int index, GlsAngularScaleData &data)
The disti::GlsQuadListVC_3D and GlsQuadListVCT_2D classes.
The Polygon class. Implements Polygons.
Definition: glpolygon.h:55
bool _useScalableLines
Definition: gls_angular_scale.h:454
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
virtual void GetExtents(float &minx, float &miny, float &minz, float &maxx, float &maxy, float &maxz) DISTI_METHOD_OVERRIDE
GlsDisplayList _displayList
Definition: gls_angular_scale.h:394
Definition: display.h:98
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
The disti::GLPolygon class. Implements Polygons.
GlsColor HaloColor()
Definition: gls_angular_scale.h:301
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
float length
Definition: gls_angular_scale.h:100
GlsColor color
Definition: gls_angular_scale.h:102
float startAngle
Definition: gls_angular_scale.h:98
Definition: gls_display_list.h:50
bool UseScalableLines()
Definition: gls_angular_scale.h:312
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
Definition: gls_glo_file.h:988
void CurrentColor(const GlsColor &newColor)
virtual void Draw() DISTI_METHOD_OVERRIDE
DisplayObject * handle(DisplayEvent *ev) DISTI_METHOD_OVERRIDE
GlsColor _currentColor
Definition: gls_angular_scale.h:379
virtual void CopyGeometry(DisplayObject *srcArg) DISTI_METHOD_OVERRIDE
GlsDisplayList & DisplayList()
Definition: gls_angular_scale.h:349
float _haloWidth
Definition: gls_angular_scale.h:447
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) DISTI_METHOD_OVERRIDE
float Radius()
Definition: gls_angular_scale.h:323
bool _currentLineWidthSet
Definition: gls_angular_scale.h:391
virtual void DrawGeometry()
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
Definition: disti_metadata.h:186
virtual void SetColor(const GlsColor &color) DISTI_METHOD_OVERRIDE
bool DeconflictTicks()
Definition: gls_angular_scale.h:276
Definition: events.h:112
Definition: gls_color.h:53
virtual void GetTransformedExtents(Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax) DISTI_METHOD_OVERRIDE
Definition: disti_metadata.h:668
bool HaloEnabled()
Definition: gls_angular_scale.h:281
Definition: callback_caller_base.h:55
bool TickNeeded(int currentLevel, float currentAngle)
bool _currentColorSet
Definition: gls_angular_scale.h:387
The gls_auto_lib.
Vector _radii[2]
Definition: gls_angular_scale.h:429
bool useLineColor
Definition: gls_angular_scale.h:96
float HaloWidth()
Definition: gls_angular_scale.h:291
GlsAngularScaleDataArray _scale
Definition: gls_angular_scale.h:438
void CurrentLineWidth(const float &newLineWidth)
void InvalidateGeometry()
Definition: gls_angular_scale.h:342
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
virtual void SetValue(int spec, va_list &args) DISTI_METHOD_OVERRIDE
virtual std::istream & ReadValue(std::istream &instr)
virtual bool AntiAlias(void)
virtual void UpdateBoundingVolume() DISTI_METHOD_OVERRIDE
Definition: vertex.h:84
unsigned int ticks
Definition: gls_angular_scale.h:97
bool active
Definition: gls_angular_scale.h:95
float interval
Definition: gls_angular_scale.h:99
Macros and helper code to determine what subset of C++11/14/17 is available.
Definition: disti_metadata.h:85
Vector _radiiUnit[2]
Definition: gls_angular_scale.h:432
bool _deconflictTicks
Definition: gls_angular_scale.h:441
Definition: gls_quad_storage.h:63
Definition: bmpimage.h:46
The disti::GlsDisplayList class.
Definition: gls_angular_scale.h:187
float _magnitude[2]
Definition: gls_angular_scale.h:435
float _currentLineWidth
Definition: gls_angular_scale.h:383