| GL Studio C++ Runtime API

gls_serial_morph_mesh.h
Go to the documentation of this file.
1/*! \file
2 \brief The disti::GlsSerialMorphMesh 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
41#ifndef INCLUDED_GLS_SERIAL_MORPH_MESH_H
42#define INCLUDED_GLS_SERIAL_MORPH_MESH_H
43
44#ifdef _WIN32
45# include <windows.h>
46#endif
47
48#include "gls_geometry_resource.h"
49#include "gls_resource_file_mgr.h"
50#include "group.h"
51
52#include "gls_advanced_mesh.h"
53#include "gls_cpp_lang_support.h"
54
55/// Provides support for creating DLLs.
56#if( defined( GLSGEN_EXPORT_GLSADVANCEDMESH ) || defined( GLSGEN_IMPORT_GLSADVANCEDMESH ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
57 && defined( _MSC_VER )
58# if defined( GLSGEN_EXPORT_GLSADVANCEDMESH ) || defined( GLS_EXPORT_GENERATED )
59# define GLSGEN_GlsSerialMorphMesh_EXPORT __declspec( dllexport )
60# else
61# define GLSGEN_GlsSerialMorphMesh_EXPORT __declspec( dllimport )
62# endif
63#else
64# define GLSGEN_GlsSerialMorphMesh_EXPORT
65#endif
66///////////////////////////////////////////////////////////////////////////////
67
68/// Automatically link the runtime library plugin (on Windows).
69#define LIB_BASE_NAME "gls_advanced_mesh"
70#include "gls_auto_lib.h"
71#undef LIB_BASE_NAME
72
73 namespace disti
74{
75#ifdef GLES
76// Forward Declaration
77 class GlsGloFileAttribute;
78#endif
79
80/**
81 The GlsSerialMorphMesh contains a series of morph targets (keyframes) that make up an animation.
82*/
83 class GlsSerialMorphMesh : public GlsGeometryResourceMesh
84{
85 public:
86 DISTI_DEPRECATED( "This identifier is forbidden by the C++ standard. Use BaseClass instead." )
87 typedef GlsGeometryResourceMesh _BaseClass; ///< Deprecated typedef for the base class.
88 typedef GlsGeometryResourceMesh BaseClass; ///< Typedef for the base class.
89 friend class GlsSerialMorphMeshEditor;
90
91 /** Create a new GlsSerialMorphMesh. */
92 GLSGEN_GlsSerialMorphMesh_EXPORT GlsSerialMorphMesh();
93
94 /// Copy constructor
95 /// \param that The object to copy from.
96 /// \param generateNames Whether or not an instance name should be generated for this object.
97 GLSGEN_GlsSerialMorphMesh_EXPORT GlsSerialMorphMesh( const GlsSerialMorphMesh& that, const bool generateNames );
98
99 /** Destructs a GlsSerialMorphMesh object */
100 virtual GLSGEN_GlsSerialMorphMesh_EXPORT ~GlsSerialMorphMesh();
101
102 /// \return A pointer to a new GlsSerialMorphMesh object.
103 static GLSGEN_GlsSerialMorphMesh_EXPORT DisplayObject* CreateInstance();
104
105 //////////////////////////////////////////////////
106 // Overridden base class methods
107 //////////////////////////////////////////////////
108
109 virtual GLSGEN_GlsSerialMorphMesh_EXPORT void SetAvailableAttributes( unsigned int value ) DISTI_METHOD_OVERRIDE;
110 virtual GLSGEN_GlsSerialMorphMesh_EXPORT DisplayObject* CloneObject( bool generateNames = false ) DISTI_METHOD_OVERRIDE;
111 virtual GLSGEN_GlsSerialMorphMesh_EXPORT void CopyProperties( DisplayObject* src ) DISTI_METHOD_OVERRIDE;
112 virtual GLSGEN_GlsSerialMorphMesh_EXPORT void CopyGeometry( DisplayObject* src ) DISTI_METHOD_OVERRIDE;
113
114#ifndef GLES
115 virtual GLSGEN_GlsSerialMorphMesh_EXPORT InterfaceListType* GetCppInterfaceDescription( InterfaceListType* addToThisList = NULL ) DISTI_METHOD_OVERRIDE;
116 virtual GLSGEN_GlsSerialMorphMesh_EXPORT void GetCppInterfaceDescriptionFree( InterfaceListType* array ) DISTI_METHOD_OVERRIDE;
117#endif
118
119 virtual GLSGEN_GlsSerialMorphMesh_EXPORT void PreDraw( const OpenGLMatrices& parentMatrices, Culler& culler ) DISTI_METHOD_OVERRIDE;
120
121 //////////////////////////////////////////////////
122 // GlsSerialMorphMesh specific operations
123 //////////////////////////////////////////////////
124
125 /** Set the number of keyframes in the mesh
126 If this is less than the current number of keyframes, then keyframes >=NumKeyframes() will be released
127 The initial Geometry and Values for new keyframes are undefined, be sure to fill them in before you
128 try to draw/pick/etc.
129 \param count the new number of keyframes
130 */
131 GLSGEN_GlsSerialMorphMesh_EXPORT void SetNumKeyframes( unsigned int count );
132
133 /** Get the number of keyframes in the mesh
134 \returns the number of keyframes
135 */
136 GLSGEN_GlsSerialMorphMesh_EXPORT unsigned int NumKeyframes();
137
138 /// \return The geometry for the given keyframe.
139 /// \param index The index whose geometry is to be returned.
140 GLSGEN_GlsSerialMorphMesh_EXPORT GlsGeometry_Generic* GetKeyframeGeometry( unsigned int index );
141
142 /// Set the geometry for the given keyframe.
143 /// Note that the render geometry Type() is derived from keyframe 0.
144 /// If you modify the Type() of the keyframe geometry you must call this method to update the render mesh.
145 /// \param keyframeIndex
146 /// \param newKeyframeGeometry Pointer to the new geometry to use
147 GLSGEN_GlsSerialMorphMesh_EXPORT void SetKeyframeGeometry( unsigned int keyframeIndex, GlsGeometry_Generic* newKeyframeGeometry );
148
149 /// Set the value for the given animation keyframe.
150 /// \param index The keyframe index whose value is to be set.
151 /// \param value The new value to set.
152 GLSGEN_GlsSerialMorphMesh_EXPORT void SetKeyframePercent( unsigned int index, const float& value );
153
154 /** Get the value for the given animation keyframe
155 * \param index keyframe index
156 * \returns percent
157 */
158 GLSGEN_GlsSerialMorphMesh_EXPORT float GetKeyframePercent( unsigned int index );
159
160 /// Set the mesh to the given animation value.
161 /// \param value The new animation value to set.
162 GLSGEN_GlsSerialMorphMesh_EXPORT void SetMorphPercent( const float& value );
163
164 /** Get the current animation value
165 * \returns percent animation value
166 */
167 GLSGEN_GlsSerialMorphMesh_EXPORT float GetMorphPercent();
168
169 /** Set the tension parameter.
170 * Tension affects how the mesh is interpolated between targets.
171 * \param value value to determine what interpolation is used
172 * 0.0 is linear interpolation
173 * higher values use spline interpolation to smooth out the transitions at each target.
174 * Recommended values are 0.0 and 0.5. Other values result in "special effects".
175 */
176 GLSGEN_GlsSerialMorphMesh_EXPORT void SetTension( const float& value );
177
178 /** Get the current 'tension' value
179 * \returns tension value
180 */
181 GLSGEN_GlsSerialMorphMesh_EXPORT float GetTension();
182
183 /** Flag the render mesh as dirty so that it will be updated before it is drawn
184 */
185 inline void InvalidateRenderMesh() { _renderMeshIsValid = false; }
186
187 /** Update the render mesh immeadiately
188 * This is normally done as needed automatically
189 */
190 GLSGEN_GlsSerialMorphMesh_EXPORT void UpdateRenderMesh();
191
192 protected:
193 virtual GLSGEN_GlsSerialMorphMesh_EXPORT GlsGeometryResource* GetRenderMesh() DISTI_METHOD_OVERRIDE;
194
195#ifdef GLES
196 /** Set a single attribute from the GLO file.
197 * \param data The attribute to set and its associated data.
198 */
199 virtual GLSGEN_GlsSerialMorphMesh_EXPORT void SetFromGloData( GlsGloFileAttribute& data ) DISTI_METHOD_OVERRIDE;
200#endif
201
202 /// \details The Keyframe_Data class. Stores data for one keyframe of animation.
203 class Keyframe_Data
204 {
205 protected:
206 DistiAttribDict* _attribDict; ///< The attribute dictionary for this object's members.
207
208 /// Populates the attribute dictionary.
209 void SetupAttribDict();
210
211 public:
212 GlsGeometry_Generic* _geometry; ///< An observing pointer to the mesh data values for this keyframe.
213 float _value; ///< The key value for this keyframe.
214
215 GLSGEN_GlsSerialMorphMesh_EXPORT Keyframe_Data();
216
217 /// Copy constructor
218 GLSGEN_GlsSerialMorphMesh_EXPORT Keyframe_Data( const Keyframe_Data& );
219
220 GLSGEN_GlsSerialMorphMesh_EXPORT ~Keyframe_Data();
221
222 /// Assignment operator
223 /// \return The resulting object (this).
224 GLSGEN_GlsSerialMorphMesh_EXPORT const Keyframe_Data& operator=( const Keyframe_Data& );
225
226 /// Set the pointer to the mesh data values for this keyframe.
227 /// \param geom The new mesh pointer to set.
228 GLSGEN_GlsSerialMorphMesh_EXPORT void SetGeometry( GlsGeometry_Generic* geom );
229
230 /// \return The pointer to the mesh data values for this keyframe.
231 GLSGEN_GlsSerialMorphMesh_EXPORT GlsGeometry_Generic* GetGeometry();
232
233 /// \return A reference to the attribute dictionary for this object.
234 GLSGEN_GlsSerialMorphMesh_EXPORT DistiAttribDict& Attributes();
235 };
236
237 /// \details The KeyframeDataArray class. Holds multiple Keyframe_Data instances.
238 class KeyframeDataArray
239 {
240 public:
241 GlsSerialMorphMesh* _parentMesh; ///< Observing pointer to the GlsSerialMorphMesh object.
242
243 GLSGEN_GlsSerialMorphMesh_EXPORT KeyframeDataArray()
244 : _parentMesh( NULL )
245 {}
246
247 /// Read an item from the stream into a KeyFrame.
248 /// \param index The index to write into.
249 /// \param array The array to write into.
250 /// \param instr The stream to read from.
251 static void element_read_func( int index, KeyframeDataArray& array, std::istream& instr );
252
253 /// Write an item from a KeyFrame into the stream.
254 /// \param index The index to read from.
255 /// \param array The array to read from.
256 /// \param outstr The stream to write to.
257 static void element_write_func( int index, KeyframeDataArray& array, std::ostream& outstr );
258
259 /// Set the number of elements in the array, it will resize accordingly.
260 /// \param count The new number of elements to resize to.
261 void Count( unsigned count ) { _keyframes.Count( count ); }
262
263 /// \return The number of elements in the array.
264 unsigned Count() const { return _keyframes.Count(); }
265
266 /// Clear all elements in the array.
267 void Clear() { _keyframes.Clear(); }
268
269 /// Index operator
270 /// \param index The index of the item to return.
271 /// \return A modifiable reference to the desired item.
272 Keyframe_Data& operator[]( const std::size_t index ) { return _keyframes[ static_cast<unsigned>( index ) ]; }
273
274 /// Index operator
275 /// \param index The index of the item to return.
276 /// \return A const reference to the desired item.
277 const Keyframe_Data& operator[]( const std::size_t index ) const { return _keyframes[ static_cast<unsigned>( index ) ]; }
278
279 private:
280 DynamicArray<Keyframe_Data> _keyframes;
281 };
282
283 KeyframeDataArray _keyframes; ///< The list of animation keyframes.
284
285 float _currentValue; ///< The current position in the animation.
286 float _tension; ///< The interpolation tension value.
287
288 unsigned int _last_keyframe_index; ///< The first keyframe where _value <= _currentValue.
289 unsigned int _next_keyframe_index; ///< The next keyframe after last_keyframe_index where _value > _currentValue. If _value matches _currentValue exactly, then last_keyframe_index == next_keyframe_index.
290 float _last_keyframe_weight; ///< The blend weight for the first keyframe [0,1].
291 float _next_keyframe_weight; ///< The blend weight for the next keyframe [0,1].
292
293 bool _renderMeshIsValid; ///< If false, the mesh will be recalculated prior to next draw.
294 GlsGeometry_Generic* _renderMesh; ///< The mesh being morphed.
295
296 /// Update the _last_keyframe_index, _next_keyframe_index, _last_keyframe_weight and _next_keyframe_weight
297 GLSGEN_GlsSerialMorphMesh_EXPORT void RecalculateKeyframeIndicesAndWeights();
298
299 /// Called by the KeyframeData class when the geometry changes.
300 GLSGEN_GlsSerialMorphMesh_EXPORT void KeyframeGeometryChanged( Keyframe_Data* );
301
302 private:
303#ifdef GLES
304 int _gloKeyframeIndex;
305#endif
306
307 void CalculateBSplineInterpolation() const;
308
309 // Used by constructors
310 GLSGEN_GlsSerialMorphMesh_EXPORT void InitializeMembers();
311
312 // Disable implicit generated Members
313 GlsSerialMorphMesh& operator=( const GlsSerialMorphMesh& rhs ) DISTI_SPECIAL_MEM_FUN_DELETE;
314 GlsSerialMorphMesh( const GlsSerialMorphMesh& src ) DISTI_SPECIAL_MEM_FUN_DELETE;
315};
316
317} // namespace disti
318
319#endif
disti::Culler
Definition: cull.h:50
disti::DisplayObject
Definition: display.h:96
disti::DistiAttribDict
Definition: disti_metadata.h:750
disti::DynamicArray
Definition: dynamic_array.h:79
disti::GlsGeometryResourceMesh
Definition: gls_geometry_resource_mesh.h:80
disti::GlsGeometryResource
Definition: gls_geometry_resource.h:87
disti::GlsGeometry_Generic
Definition: gls_geometry_resource.h:514
disti::GlsGloFileAttribute
Definition: gls_glo_file.h:1243
disti::GlsSerialMorphMesh::KeyframeDataArray
Definition: gls_serial_morph_mesh.h:239
disti::GlsSerialMorphMesh::KeyframeDataArray::Count
void Count(unsigned count)
Definition: gls_serial_morph_mesh.h:261
disti::GlsSerialMorphMesh::KeyframeDataArray::element_read_func
static void element_read_func(int index, KeyframeDataArray &array, std::istream &instr)
disti::GlsSerialMorphMesh::KeyframeDataArray::Count
unsigned Count() const
Definition: gls_serial_morph_mesh.h:264
disti::GlsSerialMorphMesh::KeyframeDataArray::operator[]
const Keyframe_Data & operator[](const std::size_t index) const
Definition: gls_serial_morph_mesh.h:277
disti::GlsSerialMorphMesh::KeyframeDataArray::_parentMesh
GlsSerialMorphMesh * _parentMesh
Observing pointer to the GlsSerialMorphMesh object.
Definition: gls_serial_morph_mesh.h:241
disti::GlsSerialMorphMesh::KeyframeDataArray::Clear
void Clear()
Clear all elements in the array.
Definition: gls_serial_morph_mesh.h:267
disti::GlsSerialMorphMesh::KeyframeDataArray::operator[]
Keyframe_Data & operator[](const std::size_t index)
Definition: gls_serial_morph_mesh.h:272
disti::GlsSerialMorphMesh::KeyframeDataArray::element_write_func
static void element_write_func(int index, KeyframeDataArray &array, std::ostream &outstr)
disti::GlsSerialMorphMesh::Keyframe_Data
Definition: gls_serial_morph_mesh.h:204
disti::GlsSerialMorphMesh::Keyframe_Data::Keyframe_Data
Keyframe_Data(const Keyframe_Data &)
Copy constructor.
disti::GlsSerialMorphMesh::Keyframe_Data::GetGeometry
GlsGeometry_Generic * GetGeometry()
disti::GlsSerialMorphMesh::Keyframe_Data::_value
float _value
The key value for this keyframe.
Definition: gls_serial_morph_mesh.h:213
disti::GlsSerialMorphMesh::Keyframe_Data::SetupAttribDict
void SetupAttribDict()
Populates the attribute dictionary.
disti::GlsSerialMorphMesh::Keyframe_Data::operator=
const Keyframe_Data & operator=(const Keyframe_Data &)
disti::GlsSerialMorphMesh::Keyframe_Data::Attributes
DistiAttribDict & Attributes()
disti::GlsSerialMorphMesh::Keyframe_Data::_geometry
GlsGeometry_Generic * _geometry
An observing pointer to the mesh data values for this keyframe.
Definition: gls_serial_morph_mesh.h:212
disti::GlsSerialMorphMesh::Keyframe_Data::_attribDict
DistiAttribDict * _attribDict
The attribute dictionary for this object's members.
Definition: gls_serial_morph_mesh.h:206
disti::GlsSerialMorphMesh::Keyframe_Data::SetGeometry
void SetGeometry(GlsGeometry_Generic *geom)
disti::GlsSerialMorphMesh
Definition: gls_serial_morph_mesh.h:84
disti::GlsSerialMorphMesh::UpdateRenderMesh
void UpdateRenderMesh()
disti::GlsSerialMorphMesh::SetAvailableAttributes
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
disti::GlsSerialMorphMesh::SetMorphPercent
void SetMorphPercent(const float &value)
disti::GlsSerialMorphMesh::_last_keyframe_weight
float _last_keyframe_weight
The blend weight for the first keyframe [0,1].
Definition: gls_serial_morph_mesh.h:290
disti::GlsSerialMorphMesh::GetMorphPercent
float GetMorphPercent()
disti::GlsSerialMorphMesh::CloneObject
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
disti::GlsSerialMorphMesh::RecalculateKeyframeIndicesAndWeights
void RecalculateKeyframeIndicesAndWeights()
Update the _last_keyframe_index, _next_keyframe_index, _last_keyframe_weight and _next_keyframe_weigh...
disti::GlsSerialMorphMesh::SetFromGloData
virtual void SetFromGloData(GlsGloFileAttribute &data) DISTI_METHOD_OVERRIDE
disti::GlsSerialMorphMesh::PreDraw
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
disti::GlsSerialMorphMesh::GetKeyframePercent
float GetKeyframePercent(unsigned int index)
disti::GlsSerialMorphMesh::KeyframeGeometryChanged
void KeyframeGeometryChanged(Keyframe_Data *)
Called by the KeyframeData class when the geometry changes.
disti::GlsSerialMorphMesh::SetKeyframePercent
void SetKeyframePercent(unsigned int index, const float &value)
disti::GlsSerialMorphMesh::GlsSerialMorphMesh
GlsSerialMorphMesh()
disti::GlsSerialMorphMesh::GetRenderMesh
virtual GlsGeometryResource * GetRenderMesh() DISTI_METHOD_OVERRIDE
disti::GlsSerialMorphMesh::InvalidateRenderMesh
void InvalidateRenderMesh()
Definition: gls_serial_morph_mesh.h:185
disti::GlsSerialMorphMesh::CreateInstance
static DisplayObject * CreateInstance()
disti::GlsSerialMorphMesh::_tension
float _tension
The interpolation tension value.
Definition: gls_serial_morph_mesh.h:286
disti::GlsSerialMorphMesh::CopyGeometry
virtual void CopyGeometry(DisplayObject *src) DISTI_METHOD_OVERRIDE
disti::GlsSerialMorphMesh::_next_keyframe_weight
float _next_keyframe_weight
The blend weight for the next keyframe [0,1].
Definition: gls_serial_morph_mesh.h:291
disti::GlsSerialMorphMesh::SetNumKeyframes
void SetNumKeyframes(unsigned int count)
disti::GlsSerialMorphMesh::_renderMesh
GlsGeometry_Generic * _renderMesh
The mesh being morphed.
Definition: gls_serial_morph_mesh.h:294
disti::GlsSerialMorphMesh::SetTension
void SetTension(const float &value)
disti::GlsSerialMorphMesh::GetKeyframeGeometry
GlsGeometry_Generic * GetKeyframeGeometry(unsigned int index)
disti::GlsSerialMorphMesh::SetKeyframeGeometry
void SetKeyframeGeometry(unsigned int keyframeIndex, GlsGeometry_Generic *newKeyframeGeometry)
disti::GlsSerialMorphMesh::CopyProperties
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
disti::GlsSerialMorphMesh::_last_keyframe_index
unsigned int _last_keyframe_index
The first keyframe where _value <= _currentValue.
Definition: gls_serial_morph_mesh.h:288
disti::GlsSerialMorphMesh::GetTension
float GetTension()
disti::GlsSerialMorphMesh::_currentValue
float _currentValue
The current position in the animation.
Definition: gls_serial_morph_mesh.h:285
disti::GlsSerialMorphMesh::_keyframes
KeyframeDataArray _keyframes
The list of animation keyframes.
Definition: gls_serial_morph_mesh.h:283
disti::GlsSerialMorphMesh::NumKeyframes
unsigned int NumKeyframes()
disti::GlsSerialMorphMesh::_renderMeshIsValid
bool _renderMeshIsValid
If false, the mesh will be recalculated prior to next draw.
Definition: gls_serial_morph_mesh.h:293
disti::GlsSerialMorphMesh::_next_keyframe_index
unsigned int _next_keyframe_index
The next keyframe after last_keyframe_index where _value > _currentValue. If _value matches _currentV...
Definition: gls_serial_morph_mesh.h:289
disti::OpenGLMatrices
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:544
gls_advanced_mesh.h
The disti::GlsAdvancedMesh class.
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_geometry_resource.h
The disti::GlsGeometryResource class.
GLSGEN_GlsSerialMorphMesh_EXPORT
#define GLSGEN_GlsSerialMorphMesh_EXPORT
Provides support for creating DLLs.
Definition: gls_serial_morph_mesh.h:64
group.h
The disti::Group class. Implements groups of objects.
disti
Definition: bmpimage.h:47