GL Studio C++ Runtime API
gls_eyepoint.h
Go to the documentation of this file.
1/*! \file
2 \brief The disti::GlsEyePoint class. Implements eyepoints.
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
14reproduced, in whole or part, in any form, or by any means of electronic,
15mechanical, or otherwise, without the written permission of DiSTI. Said
16permission may be derived through the purchase of applicable DiSTI product
17licenses which detail the distribution rights of this content and any
18Derivative Works based on this or other copyrighted DiSTI Software.
19
20 NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
21AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
22PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
23AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
24IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
25PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
26
27 LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
28IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
29INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
30DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
31INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
32INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
33OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
34EXCEED FIVE DOLLARS (US$5.00).
35
36 The aforementioned terms and restrictions are governed by the laws of the
37State of Florida and the United States of America.
38
39*/
40#ifndef _GLS_EYEPOINT_H
41#define _GLS_EYEPOINT_H
42
43#include "display.h"
44#include "disti_metadata.h"
45#include "gls_color.h"
47#include "gls_include.h"
49
50namespace disti
51{
52/**
53 Eye Point Initializers
54*/
55typedef enum
56{
57 GLS_EYEPOINT_FOV = GLS_LAST_INITIALIZER + 1,
58 GLS_EYEPOINT_ORTHOGRAPHIC,
59 GLS_EYEPOINT_ORTHO_SIZE,
60 GLS_EYEPOINT_FOV_IS_HORIZONTAL,
61 GLS_EYEPOINT_ASPECT,
62 GLS_EYEPOINT_NEAR_CLIP,
63 GLS_EYEPOINT_FAR_CLIP,
64 GLS_EYEPOINT_MAINTAIN_ASPECT,
65 GLS_EYEPOINT_VIEW_VECTORS
67
68class GlsEyePoint;
69
70/// The EyePointCalcViewCallbackBase class.
72{
73public:
75
76 /// The callback method interface, used for custom user callbacks to configure the eyepoint's view.
77 /// \param viewWidth The view width in pixels.
78 /// \param viewHeight The view height in pixels.
79 /// \param thisEye The GlsEyePoint associated with this callback.
80 /// \param rval1 Returned user defined value.
81 /// \param rval2 Another returned user defined value.
82 virtual void Call( int viewWidth, int viewHeight, GlsEyePoint* thisEye, double& rval1, double& rval2 ) = 0;
83};
84
85/// The EyePointCalcViewCallback class.
86template<class T>
88{
89public:
90 typedef void ( T::*MethodType )( int viewWidth, int viewHeight, GlsEyePoint* thisEye, double& rval1, double& rval2 ); ///< Typedef for the callback function pointer.
91
92 T* _container; ///< The object which contains the method to call.
93 MethodType _method; ///< The callback method function pointer.
94
95 /// Construct a new EyePointCalcViewCallback object.
96 /// \param container The object containing the callback method.
97 /// \param method The callback function pointer to call.
98 EyePointCalcViewCallback( T* container, MethodType method )
99 : _container( container )
100 , _method( method )
101 {
102 }
103
104 void Call( int viewWidth, int viewHeight, GlsEyePoint* thisEye, double& rval1, double& rval2 ) DISTI_METHOD_OVERRIDE
105 {
106 if( _container )
107 {
108 ( _container->*( _method ) )( viewWidth, viewHeight, thisEye, rval1, rval2 );
109 }
110 }
111};
112
113/**
114 The GlsEyePoint class. Implements Eyepoints
115*/
117{
118public:
119 DISTI_DEPRECATED( "This identifier is forbidden by the C++ standard. Use BaseClass instead." )
120 typedef DisplayObject _BaseClass; ///< Deprecated typedef for the base class.
121 typedef DisplayObject BaseClass; ///< Typedef for the base class.
122 friend class GlsEyePointEditor;
123
124 /// The FovConstraintType enum. Defines view constraint behavior.
125 typedef enum
126 {
127 FOV_CONSTRAINT_NONE,
128 FOV_CONSTRAINT_GREATER,
129 FOV_CONSTRAINT_LESS,
130 FOV_CONSTRAINT_EXACTLY
132
133private:
134 static bool _drawDebugGeometry; /** Causes eyepoints to draw debugging geometry. Defaults to false. */
135
136protected:
137 double _fov; /** Field of view of eyepoint in Degrees, if _fovIsHorizontal is true, this is horizontal */
138 double _otherFov; /** Field of view for the other direction, based on _fovIsHorizontal */
139 bool _orthographic; /** True if orthographic projection, else perspective projection */
140 double _orthoSize; /** Size of ortho projection in logical units, if _fovIsHorizontal is true, this is horizontal */
141 double _otherOrthoSize; /** Size of ortho projection for the other direction, based on _fovIsHorizontal */
142 bool _fovIsHorizontal; /** True if field of view measurement is along horizonal axis, else along vertical axis */
143 FovConstraintType _horizontalConstraint; /** The type of constraint in the horizontal direction */
144 FovConstraintType _verticalConstraint; /** The type of constraint in the vertical direction */
145 double _nearClip; /** Distance from eyepoint to near clipping plane */
146 double _farClip; /** Distance from eyepoint to far clipping plane */
147 Vector _viewVectors[ 3 ]; /** 3 vectors used to set the orientation of the eyepoint */
148
149 EyePointCalcViewCallbackBase* _alternateCalcOrthographicView; /** Alternate callback for calculating the orthographic view */
150 EyePointCalcViewCallbackBase* _alternateCalcPerspectiveView; /** Alternate callback for calculating the perspective view */
151
152#ifdef GLES
153 /** Set a single attribute from the GLO file.
154 * \param data The attribute to set and its associated data.
155 */
156 virtual GLS_EXPORT void SetFromGloData( GlsGloFileAttribute& data ) DISTI_METHOD_OVERRIDE;
157#endif
158
159public:
160 /// Set DrawDebugGeometry to true to cause eyepoints to draw at runtime.
161 /// \note This affects all eyepoint instances.
162 /// \param draw The new debug state to set.
163 static GLS_EXPORT void DrawDebugGeometry( bool draw ) { _drawDebugGeometry = draw; }
164
165 virtual GLS_EXPORT DisplayObject* CloneObject( bool generateNames = false ) DISTI_METHOD_OVERRIDE;
166
167 /** Allocate a (blank) EyePoint object */
169
170 /** The copy constructor for GlsEyePoint
171 *
172 * \param that The GlsEyePoint object that is being copied
173 * \param generateNames Whether or not to generate a new instance name
174 */
175 GLS_EXPORT GlsEyePoint( const GlsEyePoint& that, const bool generateNames );
176
177 /** Destroy an Eyepoint object */
179
180 virtual GLS_EXPORT void SetAvailableAttributes( unsigned int value ) DISTI_METHOD_OVERRIDE;
181
182 /** Draws does nothing because this object is not a visible object,
183 * unless DrawDebugGeometry() is true, then it draws the view frustum. */
185
186#ifndef GLES
187 /// Draws a representation of the frustum. This is done primarily for the editor.
188 /// but is available at runtime. The specific values can be specified to avoid
189 /// making the editor set them and set them back.
190 /// \param selected If true, this object is currently selected.
191 /// \param orthographic If true, this eyepoint is orthographic, otherwise it is perspective.
192 /// \param fovIsHorizontal If true the field of view is horizontal, otherwise it is vertical.
193 /// \param orthoSize The width of the orthographic view in pixels.
194 /// \param otherOrthoSize The height of the orthographic view in pixels.
195 /// \param fov The width of the view in degrees, height if fovIsHorizontal is true.
196 /// \param otherFov The height of the view in degrees, width if fovIsHorizontal is true.
197 /// \param horizontalConstraint The horizontal constraint behavior.
198 /// \param verticalConstraint The vertical constraint behavior.
199 /// \param farClip The far clip distance.
200 /// \param nearClip The near clip distance.
202 bool selected,
203 bool orthographic,
204 bool fovIsHorizontal,
205 double orthoSize,
206 double otherOrthoSize,
207 double fov,
208 double otherFov,
209 FovConstraintType horizontalConstraint,
210 FovConstraintType verticalConstraint,
211 double farClip,
212 double nearClip );
213#endif
214
217
218#ifndef GLES
221#endif
222
223 /* Unhides base class implementation. */
224 using BaseClass::Rotate;
225 virtual GLS_EXPORT void Rotate( const Vector& orig, float angle, const Vector& axis ) DISTI_METHOD_OVERRIDE;
226
227 virtual GLS_EXPORT void SetValue( int spec, va_list& args ) DISTI_METHOD_OVERRIDE;
228
229 /** Sets the Field Of View for this eyepoint.
230 * If FovIsHorizontal, this is the horizontal fov.
231 * \param fovDeg The new field of view, in degrees
232 */
233 GLS_EXPORT void FOV( double fovDeg );
234
235 /** Sets the Field Of View for this eyepoint.
236 * If FovIsHorizontal, this is the vertical fov.
237 * \param fovDeg The new field of view, in degrees
238 */
239 GLS_EXPORT void OtherFOV( double fovDeg );
240
241 /** Sets whether or not the field of view measurement is along horizontal or vertical axis
242 * \param val True if FOV measurement is along horizonal axis of eyepoint
243 */
244 GLS_EXPORT void FovIsHorizontal( bool val );
245
246 /** Sets whether the eyepoint uses an orthographic projection or a perspective projection
247 * \param val True if the eypoint uses an orthographic projection. False if it uses a perspective projection.
248 */
249 GLS_EXPORT void Orthographic( bool val );
250
251 /** Sets the size of the orthographic projection, in logical units.
252 * The direction this controls is set by FovIsHorizontal. If true, it is horizontal.
253 * \param val The size of the orthographic projection, in logical units
254 */
255 GLS_EXPORT void OrthoSize( double val );
256
257 /** Sets the size of the orthographic projection, in logical units.
258 * The direction this controls is set by FovIsHorizontal. If true, it is vertical.
259 * \param val The size of the orthographic projection, in logical units
260 */
261 GLS_EXPORT void OtherOrthoSize( double val );
262
263 /** Sets the distance to the near clipping plane from the eyepoint
264 * \param val Distance to the near clipping plane from the eyepoint in logical units
265 */
266 GLS_EXPORT void NearClip( double val );
267
268 /** Sets the distance to the far clipping plane from the eyepoint
269 * \param val Distance to the far clipping plane from the eyepoint in logical units
270 */
271 GLS_EXPORT void FarClip( double val );
272
273 /// Sets the constraint for the horizontal direction.
274 /// \param val The new horizontal constraint behavior to set.
276
277 /// Sets the constraint for the vertical direction.
278 /// \param val The new vertical constraint behavior to set.
280
281 /// Allows the view vectors to be set directly.
282 /// \note These are normally controlled by the Orientation call.
283 /// \param x The new X view vector to set.
284 /// \param y The new Y view vector to set.
285 /// \param z The new Z view vector to set.
286 GLS_EXPORT void SetViewVectors( const Vector& x, const Vector& y, const Vector& z );
287
288 /** Gets the Field Of View for this eyepoint.
289 * If FovIsHorizontal is true, this is the horizontal fov.
290 * \return The field of view, in degrees
291 */
292 GLS_EXPORT double FOV();
293
294 /** Gets the Field Of View for this eyepoint.
295 * If FovIsHorizontal is true, this is the vertical fov.
296 * \return The field of view, in degrees
297 */
299
300 /** Gets whether or not the field of view measurement is along horizontal or vertical axis
301 * \return True if FOV measurement is along horizonal axis of eyepoint
302 */
304
305 /** Gets whether the eyepoint uses an orthographic projection or a perspective projection
306 * \return True if the eypoint uses an orthographic projection. False if it uses a perspective projection.
307 */
309
310 /// The direction this returns is set by FovIsHorizontal. If true, it is horizontal.
311 /// \return The size of the orthographic projection, in logical units.
313
314 /// The direction this returns is set by FovIsHorizontal. If true, it is vertical.
315 /// \return The size of the orthographic projection, in logical units.
317
318 /** Gets the distance to the near clipping plane from the eyepoint
319 * \return Distance to the near clipping plane from the eyepoint in logical units
320 */
322
323 /** Gets the distance to the far clipping plane from the eyepoint
324 * \return Distance to the far clipping plane from the eyepoint in logical units
325 */
327
328 /// \return the constraint for the horizontal direction
330
331 /// \return the constraint for the vertical direction
333
334 /// Returns the current view vectors.
335 /// \param x The returned X view vector.
336 /// \param y The returned Y view vector.
337 /// \param z The returned Z view vector.
339
340 /** Sets the orientation of the eyepoint
341 * \param direction A direction vector
342 * \param roll A roll value about the direction vector, in degrees
343 * \param upVector defines the "up" direction for the purposes of calculating roll.
344 */
345 GLS_EXPORT void Orientation( const Vector& direction, float roll, const Vector& upVector = Vector( 0, 1, 0 ) /* Y Axis */ );
346
347 /** Gets the current direction vector of the eyepoint
348 * \return The direction vector
349 */
351
352 /** Gets the current roll angle of the eyepoint
353 * \return The current roll
354 * \param upVector The "up" direction used for determining roll.
355 */
356 GLS_EXPORT float Roll( const Vector upVector = Vector( 0, 1, 0 ) /* Y Axis */ );
357
358 /// Called by ApplyViewMatrices() to do the sizing logic.
359 /// \param viewWidth The width of the view in pixels.
360 /// \param viewHeight The height of the view in pixels.
361 /// \param thisEye The associated eyepoint (this).
362 /// \param fovY The vertical field of view in degrees.
363 /// \param aspect The aspect ratio width / height.
364 virtual GLS_EXPORT void CalcOrthographicView( int viewWidth, int viewHeight, GlsEyePoint* thisEye, double& fovY, double& aspect );
365
366 /// Called by ApplyViewMatrices() to do the sizing logic.
367 /// \param viewWidth The width of the view in pixels.
368 /// \param viewHeight The height of the view in pixels.
369 /// \param thisEye The associated eyepoint (this).
370 /// \param fovY The vertical field of view in degrees.
371 /// \param aspect The aspect ratio width / height.
372 virtual GLS_EXPORT void CalcPerspectiveView( int viewWidth, int viewHeight, GlsEyePoint* thisEye, double& fovY, double& aspect );
373
374#ifdef GLES
375 /** Calculates and applies the projection and modelview matrices for this eyepoint
376 * \param proj The projection matrix (returned)
377 * \param modelView The modelview matrix (returned)
378 * \param width The current view width
379 * \param height The current view height
380 */
381 virtual GLS_EXPORT void ApplyViewMatrices( GlsMatrixType& proj, GlsMatrixType& modelView, int width, int height );
382#else
383 /** Calculates and applies the projection and modelview matrices for this eyepoint */
385#endif
386
387 /** Returns the modelview matrix for this eyepoint.
388 * \param modelview Output
389 * \param includeEyeToWorld If true, will include all transforms up to the top of the hierarcy.
390 */
391 virtual GLS_EXPORT void GetModelViewMatrix( GlsMatrixType& modelview, bool includeEyeToWorld = true );
392 /** Returns the projection matrix for this eyepoint
393 * \param proj The requested projection matrix
394 * \param viewW The width of the view in pixels
395 * \param viewH The height of the view in pixels
396 */
397 virtual GLS_EXPORT void GetProjectionMatrix( GlsMatrixType& proj, int viewW, int viewH );
398
399 /// Assigns a custom user defined callback to be called to configure the orthographic view instead of GlsEyePoint's default behavior.
400 /// \param eye The associated eyepoint.
401 /// \param container The object containing the callback method.
402 /// \param method The callback function pointer to call.
403 template<class T>
405 {
406 if( !eye )
407 return;
410 eye->_alternateCalcOrthographicView = new EyePointCalcViewCallback<T>( container, method );
411 }
412
413 /// Assigns a custom user defined callback to be called to configure the perspective view instead of GlsEyePoint's default behavior.
414 /// \param eye The associated eyepoint.
415 /// \param container The object containing the callback method.
416 /// \param method The callback function pointer to call.
417 template<class T>
419 {
420 if( !eye )
421 return;
424 eye->_alternateCalcPerspectiveView = new EyePointCalcViewCallback<T>( container, method );
425 }
426
427private:
428 // Returns the 16 doubles representing the ModelView matrix
429 // Must set with bool_includeEyeToWorld before reading
430 GLS_EXPORT GlsPropString GetModelViewMatrix();
431 GLS_EXPORT void GetModelViewMatrix( const GlsPropString& bool_includeEyeToWorld );
432 bool _getModelViewMatrixIncludeEyeToWorld;
433
434 // Returns the 16 doubles representing the Projection matrix
435 // Must set with int_width_height before reading
436 GLS_EXPORT GlsPropString GetProjectionMatrix();
437 GLS_EXPORT void GetProjectionMatrix( const GlsPropString& int_width_height );
438 int _getProjectionMatrixWidth;
439 int _getProjectionMatrixHeight;
440
441 /** Assignment operator not implemented. Use CloneObject() or the copy constructor instead. */
442 GlsEyePoint& operator=( const GlsEyePoint& that ) DISTI_SPECIAL_MEM_FUN_DELETE;
444};
445
446///////////////////////////////////////////////////////////
447// DistiAttributeFovConstraintTypeEnum
448///////////////////////////////////////////////////////////
449/// The DistiAttributeFovConstraintTypeEnum class.
450class DistiAttributeFovConstraintTypeEnum : public DistiAttributeEnum<GlsEyePoint, GlsEyePoint::FovConstraintType, GlsEyePoint::FovConstraintType>
451{
452public:
453 /// Create a new DistiAttributeFovConstraintTypeEnum object.
454 /// \param frame The GlsEyePoint object holding the Fov constraint property.
455 /// \param setMethod The set method function pointer.
456 /// \param getMethod The get method function pointer.
457 /// \param name The name of the associated property.
459
461};
462
463} // namespace disti
464
465#endif
Definition: disti_metadata.h:87
Definition: display.h:96
virtual void Rotate(float angle, int axis=Z_AXIS)
Definition: disti_metadata.h:1005
void(containerClass::* SetMethodType)(GlsEyePoint::FovConstraintType)
Typedef for the set method function pointer.
Definition: disti_metadata.h:1007
GlsEyePoint::FovConstraintType(containerClass::* GetMethodType)()
Typedef for the get method function pointer.
Definition: disti_metadata.h:1008
The DistiAttributeFovConstraintTypeEnum class.
Definition: gls_eyepoint.h:451
DistiAttributeFovConstraintTypeEnum(GlsEyePoint *frame, SetMethodType setMethod, GetMethodType getMethod, const AttributeName &name)
Definition: dynamic_array.h:79
The EyePointCalcViewCallbackBase class.
Definition: gls_eyepoint.h:72
virtual void Call(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &rval1, double &rval2)=0
The EyePointCalcViewCallback class.
Definition: gls_eyepoint.h:88
void Call(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &rval1, double &rval2) override
Definition: gls_eyepoint.h:104
void(T::* MethodType)(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &rval1, double &rval2)
Typedef for the callback function pointer.
Definition: gls_eyepoint.h:90
EyePointCalcViewCallback(T *container, MethodType method)
Definition: gls_eyepoint.h:98
T * _container
The object which contains the method to call.
Definition: gls_eyepoint.h:92
MethodType _method
The callback method function pointer.
Definition: gls_eyepoint.h:93
Definition: gls_eyepoint.h:117
static void DrawDebugGeometry(bool draw)
Definition: gls_eyepoint.h:163
void FOV(double fovDeg)
virtual void CalcPerspectiveView(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &fovY, double &aspect)
void VerticalConstraint(FovConstraintType val)
virtual DisplayObject * CloneObject(bool generateNames=false) override
FovConstraintType _verticalConstraint
Definition: gls_eyepoint.h:144
EyePointCalcViewCallbackBase * _alternateCalcPerspectiveView
Definition: gls_eyepoint.h:150
double _orthoSize
Definition: gls_eyepoint.h:140
float Roll(const Vector upVector=Vector(0, 1, 0))
double _otherFov
Definition: gls_eyepoint.h:138
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) override
virtual void SetAvailableAttributes(unsigned int value) override
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList) override
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *list) override
bool _orthographic
Definition: gls_eyepoint.h:139
EyePointCalcViewCallbackBase * _alternateCalcOrthographicView
Definition: gls_eyepoint.h:149
void Orthographic(bool val)
virtual void SetValue(int spec, va_list &args) override
bool _fovIsHorizontal
Definition: gls_eyepoint.h:142
void NearClip(double val)
Vector _viewVectors[3]
Definition: gls_eyepoint.h:147
void OrthoSize(double val)
FovConstraintType _horizontalConstraint
Definition: gls_eyepoint.h:143
static void SetAlternateCalcPerspectiveView(GlsEyePoint *eye, T *container, typename EyePointCalcViewCallback< T >::MethodType method)
Definition: gls_eyepoint.h:418
virtual void CopyProperties(DisplayObject *src) override
virtual void GetModelViewMatrix(GlsMatrixType &modelview, bool includeEyeToWorld=true)
double _fov
Definition: gls_eyepoint.h:137
static void SetAlternateCalcOrthographicView(GlsEyePoint *eye, T *container, typename EyePointCalcViewCallback< T >::MethodType method)
Definition: gls_eyepoint.h:404
virtual void DrawFrustum(bool selected, bool orthographic, bool fovIsHorizontal, double orthoSize, double otherOrthoSize, double fov, double otherFov, FovConstraintType horizontalConstraint, FovConstraintType verticalConstraint, double farClip, double nearClip)
double OtherOrthoSize()
virtual void CalcOrthographicView(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &fovY, double &aspect)
void Orientation(const Vector &direction, float roll, const Vector &upVector=Vector(0, 1, 0))
FovConstraintType VerticalConstraint()
FovConstraintType HorizontalConstraint()
virtual void Draw() override
void OtherOrthoSize(double val)
void FovIsHorizontal(bool val)
virtual void GetProjectionMatrix(GlsMatrixType &proj, int viewW, int viewH)
double _otherOrthoSize
Definition: gls_eyepoint.h:141
void GetViewVectors(Vector &x, Vector &y, Vector &z)
void SetViewVectors(const Vector &x, const Vector &y, const Vector &z)
void HorizontalConstraint(FovConstraintType val)
FovConstraintType
The FovConstraintType enum. Defines view constraint behavior.
Definition: gls_eyepoint.h:126
void OtherFOV(double fovDeg)
virtual void ApplyViewMatrices()
virtual void CopyGeometry(DisplayObject *src) override
void FarClip(double val)
double _farClip
Definition: gls_eyepoint.h:146
double _nearClip
Definition: gls_eyepoint.h:145
Definition: gls_glo_file.h:1243
Definition: util.h:1607
Definition: vertex.h:85
The disti::DisplayObject class and global enumerations.
The disti metadata.
The Color class: Implements a 4 component RGBA color.
Macros and helper code to determine what subset of C++11/14/17 is available.
#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:235
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:457
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:214
A file for all GL Studio files to include.
#define GLS_EXPORT
Macro denoting which functions should be visible from the runtime library.
Definition: gls_include.h:52
Defines templated metadata classes for DisplayObjects and other uses.
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47
VertexNoColor Vector
Definition: gls_font_base.h:69
GLS_EyePoint_Initializers
Definition: gls_eyepoint.h:56