40 #ifndef _GLS_ANGULAR_SCALE_H
41 #define _GLS_ANGULAR_SCALE_H
47 #include "gls_quad_storage.h"
53 #if (defined(GLSGEN_EXPORT_GLSANGULARSCALE) || \
54 defined(GLSGEN_IMPORT_GLSANGULARSCALE) || \
55 defined(GLS_EXPORT_GENERATED) || \
56 defined(GLS_IMPORT_GENERATED)) \
58 # if defined(GLSGEN_EXPORT_GLSANGULARSCALE) || defined(GLS_EXPORT_GENERATED)
59 # define GLSGEN_GLSANGULARSCALE_EXPORT __declspec(dllexport)
61 # define GLSGEN_GLSANGULARSCALE_EXPORT __declspec(dllimport)
64 # define GLSGEN_GLSANGULARSCALE_EXPORT
68 #define LIB_BASE_NAME "gls_angular_scale"
77 class GlsGloFileAttribute;
81 GLS_ANGULAR_SCALE_FIRST_VALUE = GLS_LAST_INITIALIZER+1,
82 GLS_ANGULAR_SCALE_RADII,
83 GLS_ANGULAR_SCALE_DECONFLICT_TICKS,
84 GLS_ANGULAR_SCALE_HALO_ENABLED,
85 GLS_ANGULAR_SCALE_HALO_WIDTH,
86 GLS_ANGULAR_SCALE_HALO_COLOR,
87 GLS_ANGULAR_SCALE_USE_SCALABLE_LINES,
88 GLS_ANGULAR_SCALE_RADIUS,
89 GLS_ANGULAR_SCALE_DATA
115 color(255,255,255,255)
130 useLineColor(_useLineColor),
132 startAngle(_startAngle),
135 thickness(_thickness),
141 GlsAngularScaleData(
const GlsAngularScaleData& src)
146 ~GlsAngularScaleData(
void)
150 bool GLSGEN_GLSANGULARSCALE_EXPORT operator==(
const GlsAngularScaleData& right )
const;
152 bool GLSGEN_GLSANGULARSCALE_EXPORT operator!=(
const GlsAngularScaleData& right )
const
154 return !( this->operator==( right ) );
157 void GLSGEN_GLSANGULARSCALE_EXPORT InitMetaData(
void);
160 virtual GLSGEN_GLSANGULARSCALE_EXPORT std::ostream & WriteValue(std::ostream &outstr);
163 virtual GLSGEN_GLSANGULARSCALE_EXPORT std::istream & ReadValue(std::istream &instr);
166 #define GLS_ANGULAR_SCALE_MAX 5
168 typedef GlsAngularScaleData GlsAngularScaleDataArray[GLS_ANGULAR_SCALE_MAX];
173 friend class GlsAngularScaleEditor;
185 GLSGEN_GLSANGULARSCALE_EXPORT
GlsAngularScale(
bool generateInstance=
false);
192 GLSGEN_GLSANGULARSCALE_EXPORT GlsAngularScale(
const GlsAngularScale& that,
const bool generateNames );
197 static GLSGEN_GLSANGULARSCALE_EXPORT
DisplayObject* CreateInstance();
212 virtual GLSGEN_GLSANGULARSCALE_EXPORT
void Draw(
void);
214 virtual GLSGEN_GLSANGULARSCALE_EXPORT
void Scale(
float px,
float py,
float pz,
Vertex *anchor,
int handleBar);
215 virtual GLSGEN_GLSANGULARSCALE_EXPORT
void Rotate(
const Vector &orig,
float angle,
const Vector &axis);
216 virtual GLSGEN_GLSANGULARSCALE_EXPORT
bool Hit(
float x,
float y,
float z,
float scale,
const Vector& directionVector,
Vector *collisionPoint);
219 virtual GLSGEN_GLSANGULARSCALE_EXPORT
void GetExtents(
float &minx,
float &miny,
float &minz,
float &maxx,
float &maxy,
float &maxz);
227 virtual GLSGEN_GLSANGULARSCALE_EXPORT
void AntiAlias(
bool alias);
232 virtual void SetValue(
int spec,va_list &args);
269 GLSGEN_GLSANGULARSCALE_EXPORT
void HaloEnabled(
const bool &val);
279 GLSGEN_GLSANGULARSCALE_EXPORT
void HaloWidth(
const float &val);
306 GLSGEN_GLSANGULARSCALE_EXPORT
float Radius(
void)
314 GLSGEN_GLSANGULARSCALE_EXPORT
void Radius(
const float &val);
318 GLSGEN_GLSANGULARSCALE_EXPORT
void InvalidateGeometry(
void) { _geometryRefresh =
true; }
340 GlsQuadListVC_3D _quads;
379 bool TickNeeded(
int currentLevel,
float currentAngle);
389 void DrawScale(
int i,
float haloLength,
float haloThickness);
396 virtual GLSGEN_GLSANGULARSCALE_EXPORT
void SetFromGloData(GlsGloFileAttribute &data);
438 GlsAngularScaleDataArray* _attribPtr;
439 unsigned int _arraySize;
445 _attribPtr(attribPtr),
446 _arraySize(arraySize)
452 virtual std::ostream &
WriteValue(std::ostream &outstr);
453 virtual std::istream &
ReadValue(std::istream &instr);
virtual void GetExtents(float &minx, float &miny, float &minz, float &maxx, float &maxy, float &maxz)
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
void SetScale(int index, const GlsAngularScaleData &data)
float thickness
Definition: gls_angular_scale.h:104
Definition: gls_angular_scale.h:92
virtual std::ostream & WriteValue(std::ostream &outstr)
float HaloWidth(void)
Definition: gls_angular_scale.h:274
void Invalidate(void)
Definition: gls_display_list.h:83
void DrawScale(int i, float haloLength, float haloThickness)
glsColor HaloColor(void)
Definition: gls_angular_scale.h:284
Definition: dynamic_array.h:63
bool _haloEnabled
Definition: gls_angular_scale.h:420
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:281
bool _needsRecalculate
Definition: gls_angular_scale.h:330
virtual void UpdateBoundingVolume(void)
virtual void SetColor(const glsColor &color)
void GetScale(int index, GlsAngularScaleData &data)
virtual void SetAvailableAttributes(unsigned int value)
The Polygon class. Implements Polygons.
Definition: glpolygon.h:56
virtual void SetValue(int spec, va_list &args)
void CurrentColor(const glsColor &newColor)
bool _useScalableLines
Definition: gls_angular_scale.h:430
GlsDisplayList _displayList
Definition: gls_angular_scale.h:370
glsColor _haloColor
Definition: gls_angular_scale.h:426
virtual void CopyGeometry(DisplayObject *srcArg)
The disti::GLPolygon class. Implements Polygons.
bool HaloEnabled(void)
Definition: gls_angular_scale.h:264
void CalculateRadiiUnit(void)
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
bool UseScalableLines(void)
Definition: gls_angular_scale.h:295
float length
Definition: gls_angular_scale.h:103
GlsDisplayList & DisplayList(void)
Definition: gls_angular_scale.h:324
float startAngle
Definition: gls_angular_scale.h:101
Definition: gls_display_list.h:51
virtual DisplayObject * CloneObject(bool generateNames=false)
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
float _haloWidth
Definition: gls_angular_scale.h:423
bool _currentLineWidthSet
Definition: gls_angular_scale.h:367
virtual ~GlsAngularScale()
Definition: disti_metadata.h:179
void InvalidateGeometry(void)
Definition: gls_angular_scale.h:321
Definition: disti_metadata.h:676
Definition: callback_caller_base.h:56
bool TickNeeded(int currentLevel, float currentAngle)
bool _currentColorSet
Definition: gls_angular_scale.h:363
glsColor _currentColor
Definition: gls_angular_scale.h:355
virtual Vertex * Vertices()
Definition: gls_color.h:54
Vector _radii[2]
Definition: gls_angular_scale.h:405
virtual void DrawGeometry(void)
bool useLineColor
Definition: gls_angular_scale.h:99
GlsAngularScaleDataArray _scale
Definition: gls_angular_scale.h:414
void CurrentLineWidth(const float &newLineWidth)
float Radius(void)
Definition: gls_angular_scale.h:306
virtual bool OkToWrite() const
virtual std::istream & ReadValue(std::istream &instr)
virtual void Rotate(const Vector &orig, float angle, const Vector &axis)
virtual void CopyProperties(DisplayObject *src)
virtual void GetTransformedExtents(Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax)
virtual bool AntiAlias(void)
DisplayObject * handle(DisplayEvent *ev)
bool DeconflictTicks(void)
Definition: gls_angular_scale.h:258
unsigned int ticks
Definition: gls_angular_scale.h:100
bool active
Definition: gls_angular_scale.h:98
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar)
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
float interval
Definition: gls_angular_scale.h:102
Macros and helper code to determine what subset of C++11/14/17 is available.
Definition: disti_metadata.h:83
Vector _radiiUnit[2]
Definition: gls_angular_scale.h:408
Definition: gls_angular_scale.h:435
bool _deconflictTicks
Definition: gls_angular_scale.h:417
void RecomputeVertices(void)
Definition: bmpimage.h:46
The disti::GlsDisplayList class.
Definition: gls_angular_scale.h:171
glsColor color
Definition: gls_angular_scale.h:105
float _magnitude[2]
Definition: gls_angular_scale.h:411
float _currentLineWidth
Definition: gls_angular_scale.h:359
void MagnitudeChanged(void)