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