| GL Studio C++ Runtime API

gls_ellipse.h
Go to the documentation of this file.
1/*! \file
2 \brief The disti::GlsEllipse class.
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 _GLSELLIPSE_H
41#define _GLSELLIPSE_H
42#include "glpolygon.h"
43#include "gls_cpp_lang_support.h"
44
45#ifdef GLES
46# include "gls_index_array.h"
47# include "gls_vertex_array.h"
48#else
49# include "gls_display_list.h"
50#endif
51/// Provides support for creating DLLs.
52#if( defined( GLSGEN_EXPORT_GLSELLIPSE ) || defined( GLSGEN_IMPORT_GLSELLIPSE ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
53 && defined( _MSC_VER )
54# if defined( GLSGEN_EXPORT_GLSELLIPSE ) || defined( GLS_EXPORT_GENERATED )
55# define GLSGEN_GLSELLIPSE_EXPORT __declspec( dllexport )
56# else
57# define GLSGEN_GLSELLIPSE_EXPORT __declspec( dllimport )
58# endif
59#else
60# define GLSGEN_GLSELLIPSE_EXPORT
61#endif
62///////////////////////////////////////////////////////////////////////////////
63
64/// Automatically link the runtime library plugin (on Windows).
65#define LIB_BASE_NAME "gls_ellipse"
66#include "gls_auto_lib.h"
67#undef LIB_BASE_NAME
68
69 namespace disti
70{
71// SetValue enumerations
72 enum
73{
74 GLS_ELLIPSE_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
75 GLS_ELLIPSE_RADII,
76 GLS_ELLIPSE_THICKNESS,
77 GLS_ELLIPSE_SOLID,
78 GLS_ELLIPSE_INTERVAL,
79 GLS_ELLIPSE_START_ANGLE,
80 GLS_ELLIPSE_END_ANGLE,
81 GLS_ELLIPSE_COLOR
82};
83
84/** Runtime implementation of a GlsEllipse */
85 class GlsEllipse : public GLPolygon
86{
87 friend class GlsEllipseEditor;
88
89 public:
90 DISTI_DEPRECATED( "This identifier is forbidden by the C++ standard. Use BaseClass instead." )
91 typedef GLPolygon _BaseClass; ///< Deprecated typedef for the base class.
92 typedef GLPolygon BaseClass; ///< Typedef for the base class.
93
94 /** Create a new GlsEllipse.
95 * \param generateInstance Whether or not to generate an instance name
96 * for this inputdevice */
97 GLSGEN_GLSELLIPSE_EXPORT GlsEllipse( bool generateInstance = false );
98
99 /// Copy Constructor
100 /// \param that The object to copy from.
101 /// \param generateNames Whether or not to generate an instance name.
102 GLSGEN_GLSELLIPSE_EXPORT GlsEllipse( const GlsEllipse& that, const bool generateNames );
103
104 /** Destructs a GlsEllipse object */
105 virtual GLSGEN_GLSELLIPSE_EXPORT ~GlsEllipse();
106
107 /// \return A pointer to a new GlsEllipse object.
108 static GLSGEN_GLSELLIPSE_EXPORT DisplayObject* CreateInstance();
109
110 virtual GLSGEN_GLSELLIPSE_EXPORT void SetAvailableAttributes( unsigned int value ) DISTI_METHOD_OVERRIDE;
111 virtual GLSGEN_GLSELLIPSE_EXPORT DisplayObject* CloneObject( bool generateNames = false ) DISTI_METHOD_OVERRIDE;
112 virtual GLSGEN_GLSELLIPSE_EXPORT void CopyProperties( DisplayObject* src ) DISTI_METHOD_OVERRIDE;
113 virtual GLSGEN_GLSELLIPSE_EXPORT void CopyGeometry( DisplayObject* srcArg ) DISTI_METHOD_OVERRIDE;
114
115#ifndef GLES
116 virtual GLSGEN_GLSELLIPSE_EXPORT InterfaceListType* GetCppInterfaceDescription( InterfaceListType* addToThisList = NULL ) DISTI_METHOD_OVERRIDE;
117 virtual GLSGEN_GLSELLIPSE_EXPORT void GetCppInterfaceDescriptionFree( InterfaceListType* array ) DISTI_METHOD_OVERRIDE;
118#endif
119
120 virtual GLSGEN_GLSELLIPSE_EXPORT void PreDraw( const OpenGLMatrices& parentMatrices, Culler& culler ) DISTI_METHOD_OVERRIDE;
121 virtual GLSGEN_GLSELLIPSE_EXPORT void Draw() DISTI_METHOD_OVERRIDE;
122 virtual GLSGEN_GLSELLIPSE_EXPORT void Scale( float px, float py, float pz, Vertex* anchor, int handleBar ) DISTI_METHOD_OVERRIDE;
123 virtual GLSGEN_GLSELLIPSE_EXPORT void Rotate( const Vector& orig, float angle, const Vector& axis ) DISTI_METHOD_OVERRIDE;
124 virtual GLSGEN_GLSELLIPSE_EXPORT bool Hit( float x, float y, float z, float scale, const Vector& directionVector, Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
125 virtual GLSGEN_GLSELLIPSE_EXPORT void CalculateTextureCoordinates() DISTI_METHOD_OVERRIDE;
126 virtual GLSGEN_GLSELLIPSE_EXPORT Vertex* Vertices() DISTI_METHOD_OVERRIDE;
127 virtual GLSGEN_GLSELLIPSE_EXPORT void GetExtents( float& minx, float& miny, float& minz, float& maxx, float& maxy, float& maxz ) DISTI_METHOD_OVERRIDE;
128 virtual GLSGEN_GLSELLIPSE_EXPORT void GetTransformedExtents( Vector& min, Vector& max, const GlsMatrixType& matrix, bool resetMinMax ) DISTI_METHOD_OVERRIDE;
129 virtual GLSGEN_GLSELLIPSE_EXPORT void UpdateBoundingVolume() DISTI_METHOD_OVERRIDE;
130
131 /* Unhides base class implementation. */
132 using BaseClass::SetFillColor;
133
134 /* Unhides base class implementation. */
135 using BaseClass::GetFillColor;
136
137 /** Sets the color for filling the object
138 * \param color The new color for the object
139 */
140 virtual GLSGEN_GLSELLIPSE_EXPORT void SetFillColor( const GlsColor& color ) DISTI_METHOD_OVERRIDE;
141
142 /** Gets the color for filling the object
143 * \return The fill color for the object
144 */
145 virtual GLSGEN_GLSELLIPSE_EXPORT GlsColor GetFillColor() DISTI_METHOD_OVERRIDE;
146
147 GLSGEN_GLSELLIPSE_EXPORT DisplayObject* handle( DisplayEvent* ev ) DISTI_METHOD_OVERRIDE;
148
149 virtual GLSGEN_GLSELLIPSE_EXPORT void SetValue( int spec, va_list& args ) DISTI_METHOD_OVERRIDE;
150
151 /// Configure the OpenGL texture state for this object.
152 /// \note Not normally called by users.
153 /// \return True if the OpenGL state was changed.
154 virtual GLSGEN_GLSELLIPSE_EXPORT bool SetupTexture();
155
156 //////////////////////////////////////////////////
157 // GlsEllipse specific operations
158 //////////////////////////////////////////////////
159
160 /** Sets the radius vectors
161 * \param r1
162 * \param r2
163 */
164 virtual GLSGEN_GLSELLIPSE_EXPORT void RadiusVectors( const Vector& r1, const Vector& r2 );
165
166 /// \param index The index of the radius vector to return (0 or 1).
167 /// \return The radius vector for the specified index.
168 virtual GLSGEN_GLSELLIPSE_EXPORT Vector RadiusVector( unsigned int index );
169
170 /// \param index The index of the unit vector to return (0 or 1).
171 /// \return The unit vector for the specified index.
172 virtual GLSGEN_GLSELLIPSE_EXPORT Vector UnitVector( unsigned int index );
173
174 /** Sets the angular interval between vertices
175 * \param value the interval in degrees.
176 */
177 virtual GLSGEN_GLSELLIPSE_EXPORT void Interval( const unsigned int& value );
178 /** Gets the angular interval between vertices.
179 * \return the interval.
180 */
181 virtual GLSGEN_GLSELLIPSE_EXPORT unsigned int Interval();
182
183 /** Sets the thickness of the ellipse in logical units.
184 * \param value The thickness in logical units.
185 */
186 virtual GLSGEN_GLSELLIPSE_EXPORT void Thickness( const float& value );
187 /** Gets the thickness of the ellipse.
188 * \return The current thickness of the ellipse in logical units.
189 */
190 virtual GLSGEN_GLSELLIPSE_EXPORT float Thickness();
191
192 /** Sets the Start Angle in degrees
193 * \param value The start angle
194 */
195 virtual GLSGEN_GLSELLIPSE_EXPORT void StartAngle( const float& value );
196 /** Gets the Start Angle in degrees
197 * \return The start angle in degrees
198 */
199 virtual GLSGEN_GLSELLIPSE_EXPORT float StartAngle();
200
201 /** Sets the end angle in degrees
202 * \param value The end angle in degrees
203 */
204 virtual GLSGEN_GLSELLIPSE_EXPORT void EndAngle( const float& value );
205 /** Gets the end angle in degrees
206 * \return The end angle in degrees
207 */
208 virtual GLSGEN_GLSELLIPSE_EXPORT float EndAngle();
209
210 /// Sets the magnitude (thickness of the ellipse outer edge).
211 /// \param value The new magnitude value to set.
212 /// \param index The axis to set the magnitude on (0 or 1).
213 virtual GLSGEN_GLSELLIPSE_EXPORT void Magnitude( const float& value, unsigned int index );
214
215 /// \param index The axis to get the magnitude for (0 or 1).
216 /// \return The magnitude (thickness of the ellipse outer edge) on the given axis.
217 virtual GLSGEN_GLSELLIPSE_EXPORT float Magnitude( unsigned int index );
218
219 /** Sets the solid flag
220 * \param value When true the elipse is drawn solid
221 */
222 virtual GLSGEN_GLSELLIPSE_EXPORT void Solid( const bool& value );
223 /** Gets the solid flag
224 * \return The current solid flag value
225 */
226 virtual GLSGEN_GLSELLIPSE_EXPORT bool Solid();
227
228#ifdef GLES
229 /** Causes the display list for this object to be recomputed */
230 GLSGEN_GLSELLIPSE_EXPORT void InvalidateGeometry()
231 {
232 _geometryRefresh = true;
233 InvalidatePainter();
234 }
235#else
236 /** Causes the display list for this object to be recomputed */
237 GLSGEN_GLSELLIPSE_EXPORT void InvalidateGeometry()
238 {
239 _displayList.Invalidate();
240 InvalidatePainter();
241 }
242
243 /// \return A reference to this object's display list.
244 GLSGEN_GLSELLIPSE_EXPORT GlsDisplayList& DisplayList() { return _displayList; }
245#endif
246 protected:
247 /** Calculates _radiiUnit and _magnitude based on _radii */
248 void GLSGEN_GLSELLIPSE_EXPORT CalculateRadiiUnit();
249
250 /** callback called when the ellipse needs to be recalculated because an attribute has changed
251 */
252 void GLSGEN_GLSELLIPSE_EXPORT SetNeedsRecalculate();
253
254#ifdef GLES
255 /** Draws the arc segment mode
256 * \param textureObject TRUE if object should be drawn textured
257 */
258 void GLSGEN_GLSELLIPSE_EXPORT ComputeArcSegment( bool textureObject );
259
260 /** Draws the solid circle mode
261 * \param textureObject TRUE if object should be drawn textured
262 */
263 void GLSGEN_GLSELLIPSE_EXPORT ComputeSolidCircle( bool textureObject );
264
265 /** Set a single attribute from the GLO file.
266 * \param data The attribute to set and its associated data.
267 */
268 virtual GLS_EXPORT void SetFromGloData( GlsGloFileAttribute& data ) DISTI_METHOD_OVERRIDE;
269#else
270 /** Draws the arc segment mode
271 * \param textureObject TRUE if object should be drawn textured
272 */
273 void GLSGEN_GLSELLIPSE_EXPORT DrawArcSegment( bool textureObject );
274
275 /** Draws the solid circle mode
276 * \param textureObject TRUE if object should be drawn textured
277 */
278 void GLSGEN_GLSELLIPSE_EXPORT DrawSolidCircle( bool textureObject );
279
280 /** Performs OpenGL drawing commands */
281 void GLSGEN_GLSELLIPSE_EXPORT DrawGeometry();
282#endif
283 /** Recomputes the object's vertices from its radii */
284 void GLSGEN_GLSELLIPSE_EXPORT RecomputeVertices();
285
286 /** Calculates the start vertices */
287 void GLSGEN_GLSELLIPSE_EXPORT CalculateStartVertices();
288
289 /** Calculates the end vertices */
290 void GLSGEN_GLSELLIPSE_EXPORT CalculateEndVertices();
291
292 /// Gets starting and ending indices for vertices.
293 /// \param startAngle The start angle to calculate from in degrees.
294 /// \param startIndex The returned segment index closest to the start angle.
295 /// \param endAngle The end angle to calculate from in degrees.
296 /// \param endIndex The returned segment index closest to the end angle.
297 void GLSGEN_GLSELLIPSE_EXPORT GetSegmentIndices( const float startAngle, unsigned int& startIndex, const float endAngle, unsigned int& endIndex );
298
299 /// Get the inner index, the index of the vertex on the inner edge of a non-solid ellipse.
300 /// Used for picking.
301 /// \param index The segment index to derive the vertex index from.
302 /// \return The vertex index associated with the segment.
303 unsigned int GLSGEN_GLSELLIPSE_EXPORT InnerIndex( const unsigned int index );
304
305 /// Get the outer index, the index of the vertex on the outer edge of the ellipse.
306 /// Used for picking.
307 /// \param index The segment index to derive the vertex index from.
308 /// \return The vertex index associated with the segment.
309 unsigned int GLSGEN_GLSELLIPSE_EXPORT OuterIndex( const unsigned int index );
310
311#ifndef GLES
312 /** Stores the scale in a display list for faster drawing */
313 GlsDisplayList _displayList;
314#else
315 GlsVertexArray _outlineVertexArray; ///< The list of vertices that traces the perimeter of the inner and outer radii to form the outline.
316#endif
317 /** Stores the scale in a display list for faster drawing */
318 Vector _radii[ 2 ], /** Two radii defining the ellipse size and orientation
319 * Only used to read/write file. _radiiNormal is in control
320 */
321
322 _normal, /**< Normal to surface defined by radii */
323 _radiiUnit[ 2 ], /**< Unit vector of radii */
324 _start[ 2 ], /**< Two points defining the starting edge of a partial ellipse. */
325 _startTex[ 2 ], /**< Texture coordinates of starting points */
326 _end[ 2 ], /**< Two points defining the ending edge of a partial ellipse. */
327 _endTex[ 2 ], /**< Texture coordinates of starting points */
328 _centerTex; /**< Texture coordinate of center point */
329
330 GlsColor _objectColor; /**< Fill color of object */
331
332 float _thickness, /**< Thickness of the outer edge of the ellipse in logical units */
333 _startAngle, /**< Starting angle of ellipse segment in degrees */
334 _endAngle, /**< Ending angle of ellipse segment in degrees */
335 _magnitude[ 2 ]; /**< Magnitude of radii */
336
337 unsigned int _interval; /**< Interval between subdivisions, in degrees */
338 bool _solid; /**< If true, ellipse drawn as solid not as "donut" */
339 bool _needsRecalculate; ///< If true, the ellipse vertices will be recalculated next frame from angle and radius data.
340
341 GlsMatrixType _world2tex; /**< Matrix used to calculate texture coordinates for the object */
342
343 private:
344 // disallow implicit assignments and copy constructor
345 GlsEllipse& operator=( const GlsEllipse& ) DISTI_SPECIAL_MEM_FUN_DELETE;
346 GlsEllipse( const GlsEllipse& ) DISTI_SPECIAL_MEM_FUN_DELETE;
347};
348
349} // namespace disti
350
351#endif
disti::Culler
Definition: cull.h:50
disti::DisplayEvent
Definition: events.h:113
disti::DisplayObject
Definition: display.h:96
disti::DisplayObject::_geometryRefresh
bool _geometryRefresh
Whether or not the geometry (VBOs etc.) needs to be updated on the GPU.
Definition: display.h:1539
disti::DisplayObject::InvalidatePainter
void InvalidatePainter()
disti::DynamicArray
Definition: dynamic_array.h:79
disti::GLPolygon
The Polygon class. Implements Polygons.
Definition: glpolygon.h:56
disti::GlsColor
Definition: gls_color.h:54
disti::GlsDisplayList
Definition: gls_display_list.h:51
disti::GlsEllipse
Definition: gls_ellipse.h:86
disti::GlsEllipse::CalculateTextureCoordinates
virtual void CalculateTextureCoordinates() DISTI_METHOD_OVERRIDE
disti::GlsEllipse::_start
Vector _start[2]
Definition: gls_ellipse.h:324
disti::GlsEllipse::SetAvailableAttributes
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::_centerTex
Vector _centerTex
Definition: gls_ellipse.h:328
disti::GlsEllipse::Draw
virtual void Draw() DISTI_METHOD_OVERRIDE
disti::GlsEllipse::Solid
virtual bool Solid()
disti::GlsEllipse::_startAngle
float _startAngle
Definition: gls_ellipse.h:333
disti::GlsEllipse::_startTex
Vector _startTex[2]
Definition: gls_ellipse.h:325
disti::GlsEllipse::StartAngle
virtual float StartAngle()
disti::GlsEllipse::GetSegmentIndices
void GetSegmentIndices(const float startAngle, unsigned int &startIndex, const float endAngle, unsigned int &endIndex)
disti::GlsEllipse::CloneObject
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::SetFromGloData
virtual GLS_EXPORT void SetFromGloData(GlsGloFileAttribute &data) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::CalculateStartVertices
void CalculateStartVertices()
disti::GlsEllipse::_outlineVertexArray
GlsVertexArray _outlineVertexArray
The list of vertices that traces the perimeter of the inner and outer radii to form the outline.
Definition: gls_ellipse.h:315
disti::GlsEllipse::ComputeArcSegment
void ComputeArcSegment(bool textureObject)
disti::GlsEllipse::Hit
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::PreDraw
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::RecomputeVertices
void RecomputeVertices()
disti::GlsEllipse::_endTex
Vector _endTex[2]
Definition: gls_ellipse.h:327
disti::GlsEllipse::CalculateEndVertices
void CalculateEndVertices()
disti::GlsEllipse::SetValue
virtual void SetValue(int spec, va_list &args) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::Rotate
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::handle
DisplayObject * handle(DisplayEvent *ev) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::Interval
virtual unsigned int Interval()
disti::GlsEllipse::Vertices
virtual Vertex * Vertices() DISTI_METHOD_OVERRIDE
disti::GlsEllipse::_objectColor
GlsColor _objectColor
Definition: gls_ellipse.h:330
disti::GlsEllipse::RadiusVector
virtual Vector RadiusVector(unsigned int index)
disti::GlsEllipse::CreateInstance
static DisplayObject * CreateInstance()
disti::GlsEllipse::GetExtents
virtual void GetExtents(float &minx, float &miny, float &minz, float &maxx, float &maxy, float &maxz) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::_radii
Vector _radii[2]
Definition: gls_ellipse.h:318
disti::GlsEllipse::CopyGeometry
virtual void CopyGeometry(DisplayObject *srcArg) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::Thickness
virtual float Thickness()
disti::GlsEllipse::InnerIndex
unsigned int InnerIndex(const unsigned int index)
disti::GlsEllipse::_end
Vector _end[2]
Definition: gls_ellipse.h:326
disti::GlsEllipse::RadiusVectors
virtual void RadiusVectors(const Vector &r1, const Vector &r2)
disti::GlsEllipse::_thickness
float _thickness
Definition: gls_ellipse.h:332
disti::GlsEllipse::_world2tex
GlsMatrixType _world2tex
Definition: gls_ellipse.h:341
disti::GlsEllipse::_interval
unsigned int _interval
Definition: gls_ellipse.h:337
disti::GlsEllipse::SetupTexture
virtual bool SetupTexture()
disti::GlsEllipse::CalculateRadiiUnit
void CalculateRadiiUnit()
disti::GlsEllipse::Magnitude
virtual void Magnitude(const float &value, unsigned int index)
disti::GlsEllipse::_radiiUnit
Vector _radiiUnit[2]
Definition: gls_ellipse.h:323
disti::GlsEllipse::_solid
bool _solid
Definition: gls_ellipse.h:338
disti::GlsEllipse::OuterIndex
unsigned int OuterIndex(const unsigned int index)
disti::GlsEllipse::Scale
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::ComputeSolidCircle
void ComputeSolidCircle(bool textureObject)
disti::GlsEllipse::CopyProperties
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::_endAngle
float _endAngle
Definition: gls_ellipse.h:334
disti::GlsEllipse::GlsEllipse
GlsEllipse(bool generateInstance=false)
disti::GlsEllipse::UpdateBoundingVolume
virtual void UpdateBoundingVolume() DISTI_METHOD_OVERRIDE
disti::GlsEllipse::UnitVector
virtual Vector UnitVector(unsigned int index)
disti::GlsEllipse::GetFillColor
virtual GlsColor GetFillColor() DISTI_METHOD_OVERRIDE
disti::GlsEllipse::EndAngle
virtual float EndAngle()
disti::GlsEllipse::GetTransformedExtents
virtual void GetTransformedExtents(Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::InvalidateGeometry
void InvalidateGeometry()
Definition: gls_ellipse.h:230
disti::GlsEllipse::_needsRecalculate
bool _needsRecalculate
If true, the ellipse vertices will be recalculated next frame from angle and radius data.
Definition: gls_ellipse.h:339
disti::GlsEllipse::_magnitude
float _magnitude[2]
Definition: gls_ellipse.h:335
disti::GlsEllipse::SetFillColor
virtual void SetFillColor(const GlsColor &color) DISTI_METHOD_OVERRIDE
disti::GlsEllipse::_normal
Vector _normal
Definition: gls_ellipse.h:322
disti::GlsEllipse::SetNeedsRecalculate
void SetNeedsRecalculate()
disti::GlsGloFileAttribute
Definition: gls_glo_file.h:1243
disti::GlsMatrixAffine< double >
disti::GlsVertexArray
Definition: gls_vertex_array.h:60
disti::OpenGLMatrices
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:544
disti::VertexNoColor
Definition: vertex.h:85
disti::Vertex
Definition: vertex.h:420
glpolygon.h
The disti::GLPolygon class. Implements Polygons.
gls_auto_lib.h
The gls_auto_lib.
gls_cpp_lang_support.h
Macros and helper code to determine what subset of C++11/14/17 is available.
DISTI_SPECIAL_MEM_FUN_DELETE
#define DISTI_SPECIAL_MEM_FUN_DELETE
Macro to wrap function deletion, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:246
DISTI_DEPRECATED
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:488
DISTI_METHOD_OVERRIDE
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:222
gls_display_list.h
The disti::GlsDisplayList class.
GLSGEN_GLSELLIPSE_EXPORT
#define GLSGEN_GLSELLIPSE_EXPORT
Provides support for creating DLLs.
Definition: gls_ellipse.h:60
GLS_EXPORT
#define GLS_EXPORT
Macro denoting which functions should be visible from the runtime library.
Definition: gls_include.h:52
gls_index_array.h
The disti::GlsIndexArray class, for managing index buffers.
gls_vertex_array.h
An object for managing vertices, texture coordinates, colors and normals for GLPolygon and other disp...
disti
Definition: bmpimage.h:47