40 #ifndef INCLUDED_DISTI_GLS_MULTI_VIEW_H 
   41 #define INCLUDED_DISTI_GLS_MULTI_VIEW_H 
   47 #define LIB_BASE_NAME "gls_multi_view" 
   52 #if( defined( GLSGEN_EXPORT_GlsMultiView ) || defined( GLSGEN_IMPORT_GlsMultiView ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \ 
   53     && defined( _MSC_VER ) 
   54 #    if defined( GLSGEN_EXPORT_GlsMultiView ) || defined( GLS_EXPORT_GENERATED ) 
   55 #        define GLSGEN_GlsMultiView_EXPORT __declspec( dllexport ) 
   57 #        define GLSGEN_GlsMultiView_EXPORT __declspec( dllimport ) 
   60 #    define GLSGEN_GlsMultiView_EXPORT 
   69     GLS_GLSMULTIVIEW_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
 
   70     GLS_GLSMULTIVIEW_VIEW_DATA,
 
   71     GLS_GLSMULTIVIEW_VIEW_DRAWING_STATE
 
   73 class ComponentLightMgr;
 
   78     friend class GlsMultiViewEditor;
 
   81     DISTI_DEPRECATED( 
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
 
   88     GLSGEN_GlsMultiView_EXPORT 
GlsMultiView( 
int generateInstance = FALSE );
 
   90     GLSGEN_GlsMultiView_EXPORT 
GlsMultiView( 
const GlsMultiView& that, 
const bool generateNames );
 
   95     static GLSGEN_GlsMultiView_EXPORT 
DisplayObject* CreateInstance();
 
  100     virtual GLSGEN_GlsMultiView_EXPORT 
void           Draw( 
void );
 
  107         const Vector&                                                       logicalCoords,
 
  109         const Vector&                                                       directionVector,
 
  115     virtual GLSGEN_GlsMultiView_EXPORT 
void                SetValue( 
int spec, va_list& args );
 
  124         CLEAR_BG_DEPTH_AND_COLOR = 1,
 
  127     } ClearBackgroundEnum;
 
  131         friend class GlsMultiView;
 
  132         friend class GlsMultiViewEditor;
 
  138         bool         _absolutePixels;
 
  140         std::string  _desiredEyePoint;
 
  141         int          _clearBackground;
 
  152         GlsMultiView* _multiView;
 
  155         void         SetMultiview( GlsMultiView* view );
 
  156         void         InitAttributes();
 
  159         GLSGEN_GlsMultiView_EXPORT 
ViewData();
 
  160         GLSGEN_GlsMultiView_EXPORT ViewData( 
const ViewData& );
 
  161         GLSGEN_GlsMultiView_EXPORT ~ViewData();
 
  164         GLSGEN_GlsMultiView_EXPORT 
const ViewData& 
operator=( 
const ViewData& );
 
  165         GLSGEN_GlsMultiView_EXPORT 
void            CopyBaseData( 
const ViewData& other );
 
  174         GLSGEN_GlsMultiView_EXPORT 
void SetScreenRect( 
float bottom, 
float left, 
float top, 
float right );
 
  177         GLSGEN_GlsMultiView_EXPORT 
void GetScreenRect( 
float* bottom, 
float* left, 
float* top, 
float* right ) 
const;
 
  180         GLSGEN_GlsMultiView_EXPORT 
void Bottom( 
const float& );
 
  182         GLSGEN_GlsMultiView_EXPORT 
float Bottom() 
const;
 
  184         GLSGEN_GlsMultiView_EXPORT 
void Left( 
const float& );
 
  186         GLSGEN_GlsMultiView_EXPORT 
float Left() 
const;
 
  188         GLSGEN_GlsMultiView_EXPORT 
void Top( 
const float& );
 
  190         GLSGEN_GlsMultiView_EXPORT 
float Top() 
const;
 
  192         GLSGEN_GlsMultiView_EXPORT 
void Right( 
const float& );
 
  194         GLSGEN_GlsMultiView_EXPORT 
float Right() 
const;
 
  206         GLSGEN_GlsMultiView_EXPORT 
void EyePoint( 
GlsEyePoint* );
 
  220         GLSGEN_GlsMultiView_EXPORT 
void PickGeometry( 
const bool& );
 
  227         GLSGEN_GlsMultiView_EXPORT 
void Visible( 
bool );
 
  230         GLSGEN_GlsMultiView_EXPORT 
bool Visible() 
const;
 
  236         GLSGEN_GlsMultiView_EXPORT 
void Pickable( 
bool );
 
  239         GLSGEN_GlsMultiView_EXPORT 
bool Pickable() 
const;
 
  242         GLSGEN_GlsMultiView_EXPORT 
void DesiredEyePoint( 
const GlsPropString& );
 
  243         GLSGEN_GlsMultiView_EXPORT 
GlsPropString DesiredEyePoint() 
const;
 
  275     GLSGEN_GlsMultiView_EXPORT 
unsigned int ViewCount() 
const;
 
  280     GLSGEN_GlsMultiView_EXPORT ViewData& 
View( 
unsigned int viewNumber );
 
  284     GLSGEN_GlsMultiView_EXPORT ViewDataArray& 
ViewArray();
 
  308     GLSGEN_GlsMultiView_EXPORT 
void DrawView( 
unsigned int viewNumber, ViewData* view );
 
  312     GLSGEN_GlsMultiView_EXPORT 
bool PreDrawGeometryForView( 
int viewNumber, ViewData* view );
 
  313     GLSGEN_GlsMultiView_EXPORT 
void ReapplyGlobalLightsForView( ViewData* view );
 
  322     ViewDrawStateEnum _viewDrawingState;
 
  323     ViewDataArray     _viewArray;
 
  324     ViewData          _mainViewData;
 
  326     int               _lastViewPredraw; 
 
  328     bool _showHighlights; 
 
  331     bool _emitViewDrawEvents;
 
  334     bool               _childLightsAffectGlobal; 
 
  339     void OnViewDataChanged();
 
  340     void OnViewDrawingStateChanged();
 
  341     void OnViewArrayChange();
 
  343     void          DummySetInt( 
const int& ) {} 
 
  344     GlsMultiView& operator=( 
const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
 
  345     GlsMultiView( const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
 
  360         : DistiAttributeBase( caller, name, 
false )
 
  365     DistiAttributeBase& 
operator=( 
const DistiAttributeBase& oldClass )
 
  368         if( ( ptr = dynamic_cast<const DistiAttributeViewDataArray*>( &oldClass ) ) )
 
  371             _array = ptr->_array;
 
  388         instr.ignore( 1024, 
'{' );
 
  398                 index = atoi( buf.c_str() );
 
  402                 instr.ignore( 1024, 
'{' );
 
  405                 _array[ index ].Attributes().Read( instr );
 
  420         for( 
unsigned int i = 0; i < _array.
Count(); i++ )
 
  426             _array[ i ].Attributes().Write( outstr );
 
#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
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
ViewDrawStateEnum ViewDrawingState()
virtual DistiAttributeBase & operator=(const DistiAttributeBase &oldClass)
virtual void GetResources(std::ostream &outstr, GlsResourceFilter *filter=NULL)
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
DistiAttributeBase & operator=(const DistiAttributeBase &oldClass)
Definition: gls_multi_view.h:365
bool AbsolutePixels() const 
Definition: gls_multi_view.h:129
unsigned int ViewCount() const 
int LastViewPicked() const 
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)
Definition: gls_multi_view.h:76
Definition: component_light_mgr.h:55
bool PickGeometry() const 
Definition: gls_glo_file.h:982
static std::string SpacingString()
ViewData & View(unsigned int viewNumber)
virtual void SetAvailableAttributes(unsigned int value)
virtual void CopyProperties(DisplayObject *src)
bool EmitViewDrawEvents() const 
The disti::GlsEyePoint class. Implements eyepoints. 
GL Studio Enumerations and constants. 
GlsMultiView(int generateInstance=FALSE)
void GetScreenRect(float *bottom, float *left, float *top, float *right) const 
Definition: gls_eyepoint.h:115
Definition: disti_metadata.h:183
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
static bool ScanToken(std::istream &instr, std::string &result)
std::istream & ReadValue(std::istream &instr)
Definition: gls_multi_view.h:382
Definition: disti_metadata.h:665
virtual DisplayObject * CloneObject(bool generateNames=FALSE)
Definition: callback_caller_base.h:55
ViewDataArray & ViewArray()
GlsEyePoint * GetEyePoint(const DisplayObject *heirarchiedObject)
virtual void NotifyAttributeChanged(const AttributeName &name)
Definition: disti_metadata.h:455
const ViewData & operator=(const ViewData &)
int ClearBackground() const 
std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_multi_view.h:413
Definition: gls_resources.h:50
void Clear()
Definition: dynamic_array.h:238
virtual DistiAttributeBase & Resource(const char *name)
Definition: disti_metadata.h:85
Definition: bmpimage.h:46
virtual DisplayObject * handle(DisplayEvent *ev)
void ForceEyePointReload()
Definition: gls_multi_view.h:354
void SetScreenRect(float bottom, float left, float top, float right)