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:278
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:174
T * InternalArray(void)
Definition: dynamic_array.h:388
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
Definition: disti_metadata.h:667
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)