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;
97 DISTI_DEPRECATED(
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
104 GLSGEN_GLSMUTEXGROUP_EXPORT
GlsMutexGroup(
bool generateInstance =
false );
106 GLSGEN_GLSMUTEXGROUP_EXPORT GlsMutexGroup(
const GlsMutexGroup& that,
const bool generateNames );
111 static GLSGEN_GLSMUTEXGROUP_EXPORT
DisplayObject* CreateInstance();
124 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void Calculate(
double time );
126 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void Draw(
void );
129 const Vector& logicalCoords,
131 const Vector& directionVector,
135 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void SetValue(
int spec, va_list& args );
146 GLSGEN_GLSMUTEXGROUP_EXPORT
int MutexState(
void )
const {
return _state; }
151 GLSGEN_GLSMUTEXGROUP_EXPORT
void MutexState(
int state );
155 GLSGEN_GLSMUTEXGROUP_EXPORT
int State(
void ) {
return _state; }
161 GLSGEN_GLSMUTEXGROUP_EXPORT
void State(
int state );
196 bool ValidMutexState(
const int state )
const
198 return ( state >= 0 && state < (
int)( _objects.
Count() ) );
201 bool ValidInputDeviceState(
const int state )
const
204 return ( state > 0 && state < (
int)( _objects.
Count() ) );
209 const Vector& logicalCoords,
211 const Vector& directionVector,
213 const OpenGLMatrices& drawnMatrices );
219 virtual GLSGEN_GLSMUTEXGROUP_EXPORT
void SetFromGloData( GlsGloFileAttribute& data );
227 bool _calculateInvisibleStates;
228 bool _pickInvisibleStates;
229 bool _predrawInvisibleStates;
DisplayObject * Pick3DUtil(const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices)
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:436
unsigned Count() const
Definition: dynamic_array.h:204
Definition: dynamic_array.h:66
The disti::Group class. Implements groups of objects.
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:296
int MutexState(void) const
Definition: gls_mutex_group.h:146
bool PickInvisibleStates(void)
Definition: gls_mutex_group.h:172
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
bool InputDeviceBehavior(void)
Definition: gls_mutex_group.h:188
int State(void)
Definition: gls_mutex_group.h:155
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
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:180
bool IsVisibleInScene(const DisplayObject *obj=NULL) const DISTI_METHOD_OVERRIDE
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:164