40 #ifndef _GLSDYNAMICPATH_H
41 #define _GLSDYNAMICPATH_H
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 )
52 # define GLSGEN_GLSDYNAMICPATH_EXPORT __declspec( dllimport )
55 # define GLSGEN_GLSDYNAMICPATH_EXPORT
59 #define LIB_BASE_NAME "gls_dynamic_path"
68 GLS_DYNAMICPATH_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
69 GLS_DYNAMICPATH_AFFECTS_LOCATION_X,
70 GLS_DYNAMICPATH_AFFECTS_LOCATION_Y,
71 GLS_DYNAMICPATH_AFFECTS_LOCATION_Z,
72 GLS_DYNAMICPATH_AFFECTS_ROTATION_X,
73 GLS_DYNAMICPATH_AFFECTS_ROTATION_Y,
74 GLS_DYNAMICPATH_AFFECTS_ROTATION_Z,
75 GLS_DYNAMICPATH_AFFECTS_SCALE_X,
76 GLS_DYNAMICPATH_AFFECTS_SCALE_Y,
77 GLS_DYNAMICPATH_AFFECTS_SCALE_Z,
78 GLS_DYNAMICPATH_USE_SHORT_ROTATION_PATHS,
79 GLS_DYNAMICPATH_STATE_COUNT,
86 friend class GlsDynamicPathEditor;
98 GLSGEN_GLSDYNAMICPATH_EXPORT
GlsDynamicPath(
bool generateInstanceName =
false );
105 GLSGEN_GLSDYNAMICPATH_EXPORT GlsDynamicPath(
const GlsDynamicPath& that,
const bool generateNames );
110 static GLSGEN_GLSDYNAMICPATH_EXPORT
DisplayObject* CreateInstance();
124 virtual GLSGEN_GLSDYNAMICPATH_EXPORT
void Draw(
void );
128 virtual GLSGEN_GLSDYNAMICPATH_EXPORT
bool Hit(
float x,
float y,
float z,
float scale,
const Vector& directionVector,
Vector* collisionPoint );
130 virtual GLSGEN_GLSDYNAMICPATH_EXPORT
void SetValue(
int spec, va_list& args );
140 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsLocationX(
const bool& value );
141 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsLocationX()
const {
return _affectsLocationX; }
144 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsLocationY(
const bool& value );
145 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsLocationY()
const {
return _affectsLocationY; }
148 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsLocationZ(
const bool& value );
149 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsLocationZ()
const {
return _affectsLocationZ; }
152 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsRotationX(
const bool& value );
153 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsRotationX()
const {
return _affectsRotationX; }
156 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsRotationY(
const bool& value );
157 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsRotationY()
const {
return _affectsRotationY; }
160 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsRotationZ(
const bool& value );
161 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsRotationZ()
const {
return _affectsRotationZ; }
164 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsScaleX(
const bool& value );
165 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsScaleX()
const {
return _affectsScaleX; }
168 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsScaleY(
const bool& value );
169 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsScaleY()
const {
return _affectsScaleY; }
172 GLSGEN_GLSDYNAMICPATH_EXPORT
void AffectsScaleZ(
const bool& value );
173 GLSGEN_GLSDYNAMICPATH_EXPORT
bool AffectsScaleZ()
const {
return _affectsScaleZ; }
176 GLSGEN_GLSDYNAMICPATH_EXPORT
void UseShortRotationPaths(
const bool& value );
177 GLSGEN_GLSDYNAMICPATH_EXPORT
bool UseShortRotationPaths()
const {
return _useShortRotationPaths; }
182 friend class GlsDynamicPath;
185 GLSGEN_GLSDYNAMICPATH_EXPORT
State();
186 GLSGEN_GLSDYNAMICPATH_EXPORT State(
const State& );
187 GLSGEN_GLSDYNAMICPATH_EXPORT ~State();
189 GLSGEN_GLSDYNAMICPATH_EXPORT
const State& operator=(
const State& );
190 GLSGEN_GLSDYNAMICPATH_EXPORT
void MakeAttribDict();
199 void Location(
const Vector& value ) { _location = value; }
200 Vector Location() {
return _location; }
201 Vector Location()
const {
return _location; }
202 void Rotation(
const Vector& value ) { _rotation = value; }
203 Vector Rotation() {
return _rotation; }
204 Vector Rotation()
const {
return _rotation; }
205 void Scale(
const Vector& value ) { _scale = value; }
206 Vector Scale() {
return _scale; }
207 Vector Scale()
const {
return _scale; }
208 void Value(
const float& value ) { _value = value; }
209 float Value() {
return _value; }
210 float Value()
const {
return _value; }
223 StateArrayType& StateArray() {
return _stateArray; }
224 const StateArrayType& StateArray()
const {
return _stateArray; }
234 GLSGEN_GLSDYNAMICPATH_EXPORT
void FindFirstPathSegmentContainingValue(
float value,
int* index1,
int* index2 );
237 float FirstStateValue()
239 if( _stateArray.
Count() )
250 float LastStateValue()
252 if( _stateArray.
Count() )
295 virtual GLS_EXPORT
void SetFromGloData( GlsGloFileAttribute& data );
298 bool _affectsLocationX;
299 bool _affectsLocationY;
300 bool _affectsLocationZ;
301 bool _affectsRotationX;
302 bool _affectsRotationY;
303 bool _affectsRotationZ;
308 bool _useShortRotationPaths;
310 StateArrayType _stateArray;
void MoveObjectToState(DisplayObject *obj, int stateNumber)
Definition: dynamic_array.h:62
The disti::Group class. Implements groups of objects.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:301
Vector GetPathLocation(float value)
Definition: gls_dynamic_path.h:180
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
DisplayObject(float x, float y, float z)
virtual ~GlsDynamicPath()
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
virtual DisplayObject * CloneObject(bool generateNames=false)
VertexNoColor Vector
Definition: gls_font_base.h:66
void Count(const unsigned int count)
Definition: dynamic_array.h:115
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
Definition: gls_dynamic_path.h:84
virtual DistiAttributeBase & Resource(const char *name)
virtual void SetAvailableAttributes(unsigned int value)
Definition: disti_metadata.h:182
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
Definition: disti_metadata.h:660
T * InternalArray()
Definition: dynamic_array.h:395
void MoveObject(DisplayObject *obj, float value)
virtual void SetValue(int spec, va_list &args)
virtual void GetResources(std::ostream &outstr, GlsResourceFilter *filter)
virtual DisplayObject * handle(DisplayEvent *ev)
Definition: gls_resources.h:50
Vector GetPathScale(float value)
Macros and helper code to determine what subset of C++11/14/17 is available.
Definition: bmpimage.h:46
virtual void CopyProperties(DisplayObject *src)
Vector GetPathRotation(float value)