41 #ifndef _GLS_MUTEX_GROUP_H
42 #define _GLS_MUTEX_GROUP_H
48 #if (defined(GLSGEN_EXPORT_GLSMUTEXGROUP) || \
49 defined(GLSGEN_IMPORT_GLSMUTEXGROUP) || \
50 defined(GLS_EXPORT_GENERATED) || \
51 defined(GLS_IMPORT_GENERATED)) \
53 # if defined(GLSGEN_EXPORT_GLSMUTEXGROUP) || defined(GLS_EXPORT_GENERATED)
54 # define GLSGEN_GLSMUTEXGROUP_EXPORT __declspec(dllexport)
56 # define GLSGEN_GLSMUTEXGROUP_EXPORT __declspec(dllimport)
59 # define GLSGEN_GLSMUTEXGROUP_EXPORT
63 #define LIB_BASE_NAME "gls_mutex_group"
71 static AttributeName MetaMutexState(
"MutexState");
72 static AttributeName MetaState(
"State");
73 static AttributeName MetaCalculateInvisibleStates(
"CalculateInvisibleStates");
74 static AttributeName MetaPickInvisibleStates(
"PickInvisibleStates");
75 static AttributeName MetaPredrawInvisibleStates(
"PreDrawInvisibleStates");
76 static AttributeName MetaInputDeviceBehavior(
"InputDeviceBehavior");
80 GLS_MUTEX_GROUP_STATE = GLS_LAST_INITIALIZER+1,
81 GLS_MUTEX_GROUP_CALC_INVISIBLE_STATES,
82 GLS_MUTEX_GROUP_PICK_INVISIBLE_STATES,
83 GLS_MUTEX_GROUP_PREDRAW_INVISIBLE_STATES,
84 GLS_MUTEX_GROUP_INPUT_DEVICE_BEHAVIOR
88 class GlsGloFileAttribute;
100 friend class GlsMutexGroupEditor;
106 GLSGEN_GLSMUTEXGROUP_EXPORT
GlsMutexGroup(
bool generateInstance=
false);
108 GLSGEN_GLSMUTEXGROUP_EXPORT GlsMutexGroup(
const GlsMutexGroup& that,
const bool generateNames );
113 static GLSGEN_GLSMUTEXGROUP_EXPORT
DisplayObject* CreateInstance();
126 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void Calculate(
double time);
128 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void Draw(
void);
131 const Vector& logicalCoords,
133 const Vector& directionVector,
137 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void SetValue(
int spec,va_list &args);
144 GLSGEN_GLSMUTEXGROUP_EXPORT
int MutexState(
void) {
return _state; }
149 GLSGEN_GLSMUTEXGROUP_EXPORT
void MutexState(
int state);
153 GLSGEN_GLSMUTEXGROUP_EXPORT
int State(
void) {
return _state; }
159 GLSGEN_GLSMUTEXGROUP_EXPORT
void State(
int state);
195 bool ValidMutexState(
const int state)
const
197 return (state >= 0 && state < (
int)(_objects.
Count()));
200 bool ValidInputDeviceState(
const int state)
const
203 return (state > 0 && state < (
int)(_objects.
Count()));
208 const Vector& logicalCoords,
210 const Vector& directionVector,
212 const OpenGLMatrices& drawnMatrices);
218 virtual void SetFromGloData(GlsGloFileAttribute &data);
226 bool _calculateInvisibleStates;
227 bool _pickInvisibleStates;
228 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:144
Definition: dynamic_array.h:63
The disti::Group class. Implements groups of objects.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:289
bool PickInvisibleStates(void)
Definition: gls_mutex_group.h:170
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
bool InputDeviceBehavior(void)
Definition: gls_mutex_group.h:186
int State(void)
Definition: gls_mutex_group.h:153
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:68
void Count(const unsigned int count)
Definition: dynamic_array.h:120
virtual void SetAvailableAttributes(unsigned int value)
Definition: gls_mutex_group.h:92
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
bool PreDrawInvisibleStates(void)
Definition: gls_mutex_group.h:178
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:162