| GL Studio C++ Runtime API

gls_dynamic_path.h
Go to the documentation of this file.
1/*! \file
2 \brief The disti::GlsDynamicPath 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 _GLSDYNAMICPATH_H
41#define _GLSDYNAMICPATH_H
42
43#include "gls_cpp_lang_support.h"
44#include "group.h"
45
46/// Provides support for creating DLLs.
47#if( defined( GLSGEN_EXPORT_GLSDYNAMICPATH ) || defined( GLSGEN_IMPORT_GLSDYNAMICPATH ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
48 && defined( _MSC_VER )
49# if defined( GLSGEN_EXPORT_GLSDYNAMICPATH ) || defined( GLS_EXPORT_GENERATED )
50# define GLSGEN_GLSDYNAMICPATH_EXPORT __declspec( dllexport )
51# else
52# define GLSGEN_GLSDYNAMICPATH_EXPORT __declspec( dllimport )
53# endif
54#else
55# define GLSGEN_GLSDYNAMICPATH_EXPORT
56#endif
57///////////////////////////////////////////////////////////////////////////////
58
59/// Automatically link the runtime library plugin (on Windows).
60#define LIB_BASE_NAME "gls_dynamic_path"
61#include "gls_auto_lib.h"
62#undef LIB_BASE_NAME
63
64 namespace disti
65{
66// SetValue enumerations
67 enum
68{
69 GLS_DYNAMICPATH_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
70 GLS_DYNAMICPATH_AFFECTS_LOCATION_X,
71 GLS_DYNAMICPATH_AFFECTS_LOCATION_Y,
72 GLS_DYNAMICPATH_AFFECTS_LOCATION_Z,
73 GLS_DYNAMICPATH_AFFECTS_ROTATION_X,
74 GLS_DYNAMICPATH_AFFECTS_ROTATION_Y,
75 GLS_DYNAMICPATH_AFFECTS_ROTATION_Z,
76 GLS_DYNAMICPATH_AFFECTS_SCALE_X,
77 GLS_DYNAMICPATH_AFFECTS_SCALE_Y,
78 GLS_DYNAMICPATH_AFFECTS_SCALE_Z,
79 GLS_DYNAMICPATH_USE_SHORT_ROTATION_PATHS,
80 GLS_DYNAMICPATH_STATE_COUNT,
81 GLS_DYNAMICPATH_STATE
82};
83
84/** Runtime implementation of a GlsDynamicPath */
85 class GlsDynamicPath : public DisplayObject
86{
87 friend class GlsDynamicPathEditor;
88
89 private:
90 GlsDynamicPath& operator=( const GlsDynamicPath& ) DISTI_SPECIAL_MEM_FUN_DELETE;
91 GlsDynamicPath( const GlsDynamicPath& ) DISTI_SPECIAL_MEM_FUN_DELETE;
92
93 public:
94 DISTI_DEPRECATED( "This identifier is forbidden by the C++ standard. Use BaseClass instead." )
95 typedef DisplayObject _BaseClass; ///< Deprecated typedef for the base class.
96 typedef DisplayObject BaseClass; ///< Typedef for the base class.
97
98 /** Create a new GlsDynamicPath.
99 * \param generateInstanceName Whether or not to generate an instance name
100 * for this inputdevice */
101 GLSGEN_GLSDYNAMICPATH_EXPORT GlsDynamicPath( bool generateInstanceName = false );
102
103 /** The copy constructor for GlsDynamicPath
104 *
105 * \param that The GlsDynamicPath object that is being copied
106 * \param generateNames Whether or not to generate a new instance name
107 */
108 GLSGEN_GLSDYNAMICPATH_EXPORT GlsDynamicPath( const GlsDynamicPath& that, const bool generateNames );
109
110 /** Destructs a GlsDynamicPath object */
111 virtual GLSGEN_GLSDYNAMICPATH_EXPORT ~GlsDynamicPath();
112
113 /// \return A pointer to a new GlsDynamicPath object.
114 static GLSGEN_GLSDYNAMICPATH_EXPORT DisplayObject* CreateInstance();
115
116 virtual GLSGEN_GLSDYNAMICPATH_EXPORT void SetAvailableAttributes( unsigned int value ) DISTI_METHOD_OVERRIDE;
117 virtual GLSGEN_GLSDYNAMICPATH_EXPORT DisplayObject* CloneObject( bool generateNames = false ) DISTI_METHOD_OVERRIDE;
118 virtual GLSGEN_GLSDYNAMICPATH_EXPORT void CopyProperties( DisplayObject* src ) DISTI_METHOD_OVERRIDE;
119
120#ifndef GLES
121 virtual GLSGEN_GLSDYNAMICPATH_EXPORT InterfaceListType* GetCppInterfaceDescription( InterfaceListType* addToThisList = NULL ) DISTI_METHOD_OVERRIDE;
122 virtual GLSGEN_GLSDYNAMICPATH_EXPORT void GetCppInterfaceDescriptionFree( InterfaceListType* array ) DISTI_METHOD_OVERRIDE;
123#endif
124
125 virtual GLSGEN_GLSDYNAMICPATH_EXPORT void PreDraw( const OpenGLMatrices& parentMatrices, Culler& culler ) DISTI_METHOD_OVERRIDE;
126 virtual GLSGEN_GLSDYNAMICPATH_EXPORT void Draw() DISTI_METHOD_OVERRIDE;
127 virtual GLSGEN_GLSDYNAMICPATH_EXPORT DisplayObject* handle( DisplayEvent* ev ) DISTI_METHOD_OVERRIDE;
128 virtual GLSGEN_GLSDYNAMICPATH_EXPORT bool Hit( float x, float y, float z, float scale, const Vector& directionVector, Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
129 virtual GLSGEN_GLSDYNAMICPATH_EXPORT void SetValue( int spec, va_list& args ) DISTI_METHOD_OVERRIDE;
130 virtual GLSGEN_GLSDYNAMICPATH_EXPORT DistiAttributeBase& Resource( const char* name ) DISTI_METHOD_OVERRIDE;
131 virtual GLSGEN_GLSDYNAMICPATH_EXPORT void GetResources( std::ostream& outstr, GlsResourceFilter* filter ) DISTI_METHOD_OVERRIDE;
132
133 //////////////////////////////////////////////////
134 // GlsDynamicPath specific operations
135 //////////////////////////////////////////////////
136
137 /// Set whether the path will affect the X component of the object's dynamic translation.
138 /// \param value The new component value.
139 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsLocationX( const bool& value );
140
141 /// \return Whether the path will affect the X component of the object's dynamic translation.
142 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsLocationX() const { return _affectsLocationX; }
143
144 /// Set whether the path will affect the Y component of the object's dynamic translation.
145 /// \param value The new component value.
146 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsLocationY( const bool& value );
147
148 /// \return Whether the path will affect the Y component of the object's dynamic translation.
149 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsLocationY() const { return _affectsLocationY; }
150
151 /// Set whether the path will affect the Z component of the object's dynamic translation.
152 /// \param value The new component value.
153 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsLocationZ( const bool& value );
154
155 /// \return Whether the path will affect the Z component of the object's dynamic translation.
156 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsLocationZ() const { return _affectsLocationZ; }
157
158 /// Set whether the path will affect the X component of the object's dynamic rotation.
159 /// \param value The new component value.
160 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsRotationX( const bool& value );
161
162 /// \return Whether the path will affect the X component of the object's dynamic rotation.
163 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsRotationX() const { return _affectsRotationX; }
164
165 /// Set whether the path will affect the Y component of the object's dynamic rotation.
166 /// \param value The new component value.
167 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsRotationY( const bool& value );
168
169 /// \return Whether the path will affect the Y component of the object's dynamic rotation.
170 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsRotationY() const { return _affectsRotationY; }
171
172 /// Set whether the path will affect the Z component of the object's dynamic rotation.
173 /// \param value The new component value.
174 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsRotationZ( const bool& value );
175
176 /// \return Whether the path will affect the Z component of the object's dynamic rotation.
177 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsRotationZ() const { return _affectsRotationZ; }
178
179 /// Set whether the path will affect the X component of the object's dynamic scale.
180 /// \param value The new component value.
181 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsScaleX( const bool& value );
182
183 /// \return Whether the path will affect the X component of the object's dynamic scale.
184 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsScaleX() const { return _affectsScaleX; }
185
186 /// Set whether the path will affect the Y component of the object's dynamic scale.
187 /// \param value The new component value.
188 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsScaleY( const bool& value );
189
190 /// \return Whether the path will affect the Y component of the object's dynamic scale.
191 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsScaleY() const { return _affectsScaleY; }
192
193 /// Set whether the path will affect the Z component of the object's dynamic scale.
194 /// \param value The new component value.
195 GLSGEN_GLSDYNAMICPATH_EXPORT void AffectsScaleZ( const bool& value );
196
197 /// \return Whether the path will affect the Z component of the object's dynamic scale.
198 GLSGEN_GLSDYNAMICPATH_EXPORT bool AffectsScaleZ() const { return _affectsScaleZ; }
199
200 /// If true, the shortest path between rotations is taken (360 degrees = no net rotation). If false, the long path is taken.
201 /// \param value The new rotation behavior.
202 GLSGEN_GLSDYNAMICPATH_EXPORT void UseShortRotationPaths( const bool& value );
203
204 /// \return True if the shortest path between rotations is taken (360 degrees = no net rotation), otherwise false.
205 GLSGEN_GLSDYNAMICPATH_EXPORT bool UseShortRotationPaths() const { return _useShortRotationPaths; }
206
207 /// \details The State class. Contains the data for a state along the path.
208 class State
209 {
210 friend class GlsDynamicPath;
211
212 public:
213 GLSGEN_GLSDYNAMICPATH_EXPORT State();
214
215 /// Copy constructor
216 GLSGEN_GLSDYNAMICPATH_EXPORT State( const State& );
217
218 GLSGEN_GLSDYNAMICPATH_EXPORT ~State();
219
220 /// Assignment operator
221 /// \return The resulting object (this).
222 GLSGEN_GLSDYNAMICPATH_EXPORT const State& operator=( const State& );
223
224 /// Sets up DistiAttributes associated with each member of this class.
225 GLSGEN_GLSDYNAMICPATH_EXPORT void MakeAttribDict();
226
227 /// \return The attribute dictionary associated with the members of this class.
228 DistiAttribDict& Attributes()
229 {
230 if( !_attribDict )
231 MakeAttribDict();
232 return *_attribDict;
233 };
234
235 /// Set the location value of this animation state.
236 /// \param value The new location value.
237 void Location( const Vector& value ) { _location = value; }
238
239 /// \deprecated Use the const version instead.
240 /// \return The location value of this animation state.
241 Vector Location() { return _location; }
242
243 /// \return The location value of this animation state.
244 Vector Location() const { return _location; }
245
246 /// Set the rotation value of this animation state.
247 /// \param value The new rotation value.
248 void Rotation( const Vector& value ) { _rotation = value; }
249
250 /// \deprecated Use the const version instead.
251 /// \return The rotation value of this animation state.
252 Vector Rotation() { return _rotation; }
253
254 /// \return The rotation value of this animation state.
255 Vector Rotation() const { return _rotation; }
256
257 /// Set the scale value of this animation state.
258 /// \param value The new scale value.
259 void Scale( const Vector& value ) { _scale = value; }
260
261 /// \deprecated Use the const version instead.
262 /// \return The scale value of this animation state.
263 Vector Scale() { return _scale; }
264
265 /// \return The scale value of this animation state.
266 Vector Scale() const { return _scale; }
267
268 /// Set the key value of this animation state
269 /// \param value The new key value.
270 void Value( const float& value ) { _value = value; }
271
272 /// \deprecated Use the const version instead.
273 /// \return The key value of this animation state.
274 float Value() { return _value; }
275
276 /// \return The key value of this animation state.
277 float Value() const { return _value; }
278
279 protected:
280 Vector _location; ///< The location of the animation state.
281 Vector _rotation; ///< The rotation of the animation state.
282 Vector _scale; ///< The scale of the animation state.
283 float _value; ///< The key value of the animation state.
284 DistiAttribDict* _attribDict; ///< Attribute storage for the members of this class.
285 };
286
287 typedef DynamicArray<State> StateArrayType; ///< Typedef for a list of States.
288
289 /// \returns the StateArray associated with this object. Use this array to modify the states that make up the path.
290 StateArrayType& StateArray() { return _stateArray; }
291
292 /// \returns the const StateArray associated with this object.
293 const StateArrayType& StateArray() const { return _stateArray; }
294
295 /// Iterates through the path segments and returns the first one found
296 /// that contains the given value.
297 /// Special cases:
298 /// value is before start of the path: index1 == index2 == 0
299 /// value is past the end of the path: index1 == index2 == (StateArray().Count()-1)
300 /// \param value The value to search for.
301 /// \param index1 Returns the index of the state at the start of the segment or -1 if no segments are found.
302 /// \param index2 Returns the index of the state at the end the segment or -1 if no segments are found.
303 GLSGEN_GLSDYNAMICPATH_EXPORT void FindFirstPathSegmentContainingValue( float value, int* index1, int* index2 );
304
305 /// \return The Value for the first state or 0 if there are no states.
306 float FirstStateValue()
307 {
308 if( _stateArray.Count() )
309 {
310 return _stateArray[ 0 ].Value();
311 }
312 else
313 {
314 return 0;
315 }
316 }
317
318 /// \return The Value for the last state or 0 if there are no states.
319 float LastStateValue()
320 {
321 if( _stateArray.Count() )
322 {
323 return _stateArray[ _stateArray.Count() - 1 ].Value();
324 }
325 else
326 {
327 return 0;
328 }
329 }
330
331 /// \return The linearly interpolated location along the path for the given value.
332 /// \param value The value used to get the path location.
333 GLSGEN_GLSDYNAMICPATH_EXPORT Vector GetPathLocation( float value );
334
335 /// \return The linearly interpolated rotation along the path for the given value.
336 /// \param value The value used to get the path rotation.
337 GLSGEN_GLSDYNAMICPATH_EXPORT Vector GetPathRotation( float value );
338
339 /// \return The linearly interpolated scale along the path for the given value.
340 /// \param value The value used to get the path scale.
341 GLSGEN_GLSDYNAMICPATH_EXPORT Vector GetPathScale( float value );
342
343 /** Moves a DisplayObject to the position along the path corresponding with the given value.
344 * \param obj the DisplayObject to move
345 * \param value The value used to position the object on the path
346 */
347 GLSGEN_GLSDYNAMICPATH_EXPORT void MoveObject( DisplayObject* obj, float value );
348
349 /** Sets the object to the position corresponding with the given state.
350 * Which values are applied is controlled by the AffectsLocation* and AffectsRotation* properties.
351 * \param obj Pointer to the object to move.
352 * \param stateNumber The index of the state to set the object to. If this value is outside the range [0,StateArray().Count()-1] nothing is done.
353 */
354 GLSGEN_GLSDYNAMICPATH_EXPORT void MoveObjectToState( DisplayObject* obj, int stateNumber );
355
356 protected:
357#ifdef GLES
358 /** Set a single attribute from the GLO file.
359 * \param data The attribute to set and its associated data.
360 */
361 virtual GLS_EXPORT void SetFromGloData( GlsGloFileAttribute& data ) DISTI_METHOD_OVERRIDE;
362#endif
363
364 bool _affectsLocationX; ///< If true, this path will affect an object's X location.
365 bool _affectsLocationY; ///< If true, this path will affect an object's Y location.
366 bool _affectsLocationZ; ///< If true, this path will affect an object's Z location.
367 bool _affectsRotationX; ///< If true, this path will affect an object's X rotation.
368 bool _affectsRotationY; ///< If true, this path will affect an object's Y rotation.
369 bool _affectsRotationZ; ///< If true, this path will affect an object's Z rotation.
370 bool _affectsScaleX; ///< If true, this path will affect an object's X scale.
371 bool _affectsScaleY; ///< If true, this path will affect an object's Y scale.
372 bool _affectsScaleZ; ///< If true, this path will affect an object's Z scale.
373
374 bool _useShortRotationPaths; ///< If true, this state will rotate in the direction that will reach the desired angle the fastest.
375
376 StateArrayType _stateArray; ///< The list of animation states for this path.
377};
378
379} // namespace disti
380
381#endif
disti::Culler
Definition: cull.h:50
disti::DisplayEvent
Definition: events.h:113
disti::DisplayObject
Definition: display.h:96
disti::DistiAttribDict
Definition: disti_metadata.h:750
disti::DistiAttributeBase
Definition: disti_metadata.h:220
disti::DynamicArray
Definition: dynamic_array.h:79
disti::DynamicArray::Count
unsigned Count() const
Definition: dynamic_array.h:218
disti::GlsDynamicPath::State
Definition: gls_dynamic_path.h:209
disti::GlsDynamicPath::State::Value
void Value(const float &value)
Definition: gls_dynamic_path.h:270
disti::GlsDynamicPath::State::Scale
void Scale(const Vector &value)
Definition: gls_dynamic_path.h:259
disti::GlsDynamicPath::State::Location
void Location(const Vector &value)
Definition: gls_dynamic_path.h:237
disti::GlsDynamicPath::State::Scale
Vector Scale() const
Definition: gls_dynamic_path.h:266
disti::GlsDynamicPath::State::Location
Vector Location()
Definition: gls_dynamic_path.h:241
disti::GlsDynamicPath::State::Rotation
Vector Rotation() const
Definition: gls_dynamic_path.h:255
disti::GlsDynamicPath::State::_value
float _value
The key value of the animation state.
Definition: gls_dynamic_path.h:283
disti::GlsDynamicPath::State::Value
float Value() const
Definition: gls_dynamic_path.h:277
disti::GlsDynamicPath::State::Scale
Vector Scale()
Definition: gls_dynamic_path.h:263
disti::GlsDynamicPath::State::State
State(const State &)
Copy constructor.
disti::GlsDynamicPath::State::MakeAttribDict
void MakeAttribDict()
Sets up DistiAttributes associated with each member of this class.
disti::GlsDynamicPath::State::_rotation
Vector _rotation
The rotation of the animation state.
Definition: gls_dynamic_path.h:281
disti::GlsDynamicPath::State::Value
float Value()
Definition: gls_dynamic_path.h:274
disti::GlsDynamicPath::State::Rotation
Vector Rotation()
Definition: gls_dynamic_path.h:252
disti::GlsDynamicPath::State::Location
Vector Location() const
Definition: gls_dynamic_path.h:244
disti::GlsDynamicPath::State::Attributes
DistiAttribDict & Attributes()
Definition: gls_dynamic_path.h:228
disti::GlsDynamicPath::State::_scale
Vector _scale
The scale of the animation state.
Definition: gls_dynamic_path.h:282
disti::GlsDynamicPath::State::_attribDict
DistiAttribDict * _attribDict
Attribute storage for the members of this class.
Definition: gls_dynamic_path.h:284
disti::GlsDynamicPath::State::operator=
const State & operator=(const State &)
disti::GlsDynamicPath::State::_location
Vector _location
The location of the animation state.
Definition: gls_dynamic_path.h:280
disti::GlsDynamicPath::State::Rotation
void Rotation(const Vector &value)
Definition: gls_dynamic_path.h:248
disti::GlsDynamicPath
Definition: gls_dynamic_path.h:86
disti::GlsDynamicPath::StateArray
const StateArrayType & StateArray() const
Definition: gls_dynamic_path.h:293
disti::GlsDynamicPath::AffectsRotationZ
bool AffectsRotationZ() const
Definition: gls_dynamic_path.h:177
disti::GlsDynamicPath::StateArrayType
DynamicArray< State > StateArrayType
Typedef for a list of States.
Definition: gls_dynamic_path.h:287
disti::GlsDynamicPath::_affectsScaleZ
bool _affectsScaleZ
If true, this path will affect an object's Z scale.
Definition: gls_dynamic_path.h:372
disti::GlsDynamicPath::SetAvailableAttributes
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::FindFirstPathSegmentContainingValue
void FindFirstPathSegmentContainingValue(float value, int *index1, int *index2)
disti::GlsDynamicPath::Draw
virtual void Draw() DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::AffectsScaleZ
bool AffectsScaleZ() const
Definition: gls_dynamic_path.h:198
disti::GlsDynamicPath::_affectsLocationY
bool _affectsLocationY
If true, this path will affect an object's Y location.
Definition: gls_dynamic_path.h:365
disti::GlsDynamicPath::AffectsLocationY
bool AffectsLocationY() const
Definition: gls_dynamic_path.h:149
disti::GlsDynamicPath::AffectsScaleY
bool AffectsScaleY() const
Definition: gls_dynamic_path.h:191
disti::GlsDynamicPath::AffectsRotationY
bool AffectsRotationY() const
Definition: gls_dynamic_path.h:170
disti::GlsDynamicPath::CloneObject
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::GetPathRotation
Vector GetPathRotation(float value)
disti::GlsDynamicPath::SetFromGloData
virtual GLS_EXPORT void SetFromGloData(GlsGloFileAttribute &data) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::Hit
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::PreDraw
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::_affectsRotationY
bool _affectsRotationY
If true, this path will affect an object's Y rotation.
Definition: gls_dynamic_path.h:368
disti::GlsDynamicPath::_affectsRotationX
bool _affectsRotationX
If true, this path will affect an object's X rotation.
Definition: gls_dynamic_path.h:367
disti::GlsDynamicPath::handle
virtual DisplayObject * handle(DisplayEvent *ev) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::SetValue
virtual void SetValue(int spec, va_list &args) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::_stateArray
StateArrayType _stateArray
The list of animation states for this path.
Definition: gls_dynamic_path.h:376
disti::GlsDynamicPath::GetResources
virtual void GetResources(std::ostream &outstr, GlsResourceFilter *filter) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::AffectsScaleY
void AffectsScaleY(const bool &value)
disti::GlsDynamicPath::UseShortRotationPaths
void UseShortRotationPaths(const bool &value)
disti::GlsDynamicPath::MoveObjectToState
void MoveObjectToState(DisplayObject *obj, int stateNumber)
disti::GlsDynamicPath::AffectsRotationX
bool AffectsRotationX() const
Definition: gls_dynamic_path.h:163
disti::GlsDynamicPath::FirstStateValue
float FirstStateValue()
Definition: gls_dynamic_path.h:306
disti::GlsDynamicPath::CreateInstance
static DisplayObject * CreateInstance()
disti::GlsDynamicPath::AffectsRotationZ
void AffectsRotationZ(const bool &value)
disti::GlsDynamicPath::_useShortRotationPaths
bool _useShortRotationPaths
If true, this state will rotate in the direction that will reach the desired angle the fastest.
Definition: gls_dynamic_path.h:374
disti::GlsDynamicPath::GetPathLocation
Vector GetPathLocation(float value)
disti::GlsDynamicPath::Resource
virtual DistiAttributeBase & Resource(const char *name) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::_affectsRotationZ
bool _affectsRotationZ
If true, this path will affect an object's Z rotation.
Definition: gls_dynamic_path.h:369
disti::GlsDynamicPath::_affectsLocationZ
bool _affectsLocationZ
If true, this path will affect an object's Z location.
Definition: gls_dynamic_path.h:366
disti::GlsDynamicPath::AffectsRotationX
void AffectsRotationX(const bool &value)
disti::GlsDynamicPath::CopyProperties
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
disti::GlsDynamicPath::UseShortRotationPaths
bool UseShortRotationPaths() const
Definition: gls_dynamic_path.h:205
disti::GlsDynamicPath::MoveObject
void MoveObject(DisplayObject *obj, float value)
disti::GlsDynamicPath::AffectsLocationX
bool AffectsLocationX() const
Definition: gls_dynamic_path.h:142
disti::GlsDynamicPath::GetPathScale
Vector GetPathScale(float value)
disti::GlsDynamicPath::_affectsScaleY
bool _affectsScaleY
If true, this path will affect an object's Y scale.
Definition: gls_dynamic_path.h:371
disti::GlsDynamicPath::_affectsLocationX
bool _affectsLocationX
If true, this path will affect an object's X location.
Definition: gls_dynamic_path.h:364
disti::GlsDynamicPath::AffectsLocationZ
bool AffectsLocationZ() const
Definition: gls_dynamic_path.h:156
disti::GlsDynamicPath::AffectsRotationY
void AffectsRotationY(const bool &value)
disti::GlsDynamicPath::AffectsScaleZ
void AffectsScaleZ(const bool &value)
disti::GlsDynamicPath::AffectsScaleX
void AffectsScaleX(const bool &value)
disti::GlsDynamicPath::_affectsScaleX
bool _affectsScaleX
If true, this path will affect an object's X scale.
Definition: gls_dynamic_path.h:370
disti::GlsDynamicPath::StateArray
StateArrayType & StateArray()
Definition: gls_dynamic_path.h:290
disti::GlsDynamicPath::AffectsLocationZ
void AffectsLocationZ(const bool &value)
disti::GlsDynamicPath::LastStateValue
float LastStateValue()
Definition: gls_dynamic_path.h:319
disti::GlsDynamicPath::AffectsScaleX
bool AffectsScaleX() const
Definition: gls_dynamic_path.h:184
disti::GlsDynamicPath::AffectsLocationY
void AffectsLocationY(const bool &value)
disti::GlsGloFileAttribute
Definition: gls_glo_file.h:1243
disti::GlsResourceFilter
Definition: gls_resources.h:51
disti::OpenGLMatrices
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:544
disti::VertexNoColor
Definition: vertex.h:85
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
GLSGEN_GLSDYNAMICPATH_EXPORT
#define GLSGEN_GLSDYNAMICPATH_EXPORT
Provides support for creating DLLs.
Definition: gls_dynamic_path.h:55
GLS_EXPORT
#define GLS_EXPORT
Macro denoting which functions should be visible from the runtime library.
Definition: gls_include.h:52
group.h
The disti::Group class. Implements groups of objects.
disti
Definition: bmpimage.h:47