41 #ifndef _GLS_MUTEX_GROUP_H
42 #define _GLS_MUTEX_GROUP_H
48 #if( defined( GLSGEN_EXPORT_GLSMUTEXGROUP ) || defined( GLSGEN_IMPORT_GLSMUTEXGROUP ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
49 && defined( _MSC_VER )
50 # if defined( GLSGEN_EXPORT_GLSMUTEXGROUP ) || defined( GLS_EXPORT_GENERATED )
51 # define GLSGEN_GLSMUTEXGROUP_EXPORT __declspec( dllexport )
53 # define GLSGEN_GLSMUTEXGROUP_EXPORT __declspec( dllimport )
56 # define GLSGEN_GLSMUTEXGROUP_EXPORT
60 #define LIB_BASE_NAME "gls_mutex_group"
67 static AttributeName MetaMutexState(
"MutexState" );
68 static AttributeName MetaState(
"State" );
69 static AttributeName MetaCalculateInvisibleStates(
"CalculateInvisibleStates" );
70 static AttributeName MetaPickInvisibleStates(
"PickInvisibleStates" );
71 static AttributeName MetaPredrawInvisibleStates(
"PreDrawInvisibleStates" );
72 static AttributeName MetaInputDeviceBehavior(
"InputDeviceBehavior" );
77 GLS_MUTEX_GROUP_STATE = GLS_LAST_INITIALIZER + 1,
78 GLS_MUTEX_GROUP_CALC_INVISIBLE_STATES,
79 GLS_MUTEX_GROUP_PICK_INVISIBLE_STATES,
80 GLS_MUTEX_GROUP_PREDRAW_INVISIBLE_STATES,
81 GLS_MUTEX_GROUP_INPUT_DEVICE_BEHAVIOR
85 class GlsGloFileAttribute;
96 friend class GlsMutexGroupEditor;
102 GLSGEN_GLSMUTEXGROUP_EXPORT
GlsMutexGroup(
bool generateInstance =
false );
104 GLSGEN_GLSMUTEXGROUP_EXPORT GlsMutexGroup(
const GlsMutexGroup& that,
const bool generateNames );
109 static GLSGEN_GLSMUTEXGROUP_EXPORT
DisplayObject* CreateInstance();
122 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void Calculate(
double time );
124 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void Draw(
void );
127 const Vector& logicalCoords,
129 const Vector& directionVector,
133 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void SetValue(
int spec, va_list& args );
140 GLSGEN_GLSMUTEXGROUP_EXPORT
int MutexState(
void ) {
return _state; }
145 GLSGEN_GLSMUTEXGROUP_EXPORT
void MutexState(
int state );
149 GLSGEN_GLSMUTEXGROUP_EXPORT
int State(
void ) {
return _state; }
155 GLSGEN_GLSMUTEXGROUP_EXPORT
void State(
int state );
190 bool ValidMutexState(
const int state )
const
192 return ( state >= 0 && state < (
int)( _objects.
Count() ) );
195 bool ValidInputDeviceState(
const int state )
const
198 return ( state > 0 && state < (
int)( _objects.
Count() ) );
203 const Vector& logicalCoords,
205 const Vector& directionVector,
207 const OpenGLMatrices& drawnMatrices );
213 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void SetFromGloData( GlsGloFileAttribute& data );
221 bool _calculateInvisibleStates;
222 bool _pickInvisibleStates;
223 bool _predrawInvisibleStates;
DisplayObject * Pick3DUtil(const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices)
int MutexState(void)
Definition: gls_mutex_group.h:140
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
bool PickInvisibleStates(void)
Definition: gls_mutex_group.h:166
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
bool InputDeviceBehavior(void)
Definition: gls_mutex_group.h:182
int State(void)
Definition: gls_mutex_group.h:149
DisplayObject(float x, float y, float z)
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
virtual DisplayObject * Pick3D(const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices)
virtual void SetValue(int spec, va_list &args)
virtual void CopyProperties(DisplayObject *src)
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 void SetAvailableAttributes(unsigned int value)
Definition: gls_mutex_group.h:89
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
bool PreDrawInvisibleStates(void)
Definition: gls_mutex_group.h:174
Macros and helper code to determine what subset of C++11/14/17 is available.
Definition: bmpimage.h:46
virtual void Calculate(double time)
bool CalculateInvisibleStates(void)
Definition: gls_mutex_group.h:158