40 #ifndef _GLS_MultiView_H 
   41 #define _GLS_MultiView_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;
 
   86     GLSGEN_GlsMultiView_EXPORT 
GlsMultiView( 
int generateInstance = FALSE );
 
   88     GLSGEN_GlsMultiView_EXPORT 
GlsMultiView( 
const GlsMultiView& that, 
const bool generateNames );
 
   93     static GLSGEN_GlsMultiView_EXPORT 
DisplayObject* CreateInstance();
 
   98     virtual GLSGEN_GlsMultiView_EXPORT 
void           Draw( 
void );
 
  105         const Vector&                                                       logicalCoords,
 
  107         const Vector&                                                       directionVector,
 
  113     virtual GLSGEN_GlsMultiView_EXPORT 
void                SetValue( 
int spec, va_list& args );
 
  122         CLEAR_BG_DEPTH_AND_COLOR = 1,
 
  125     } ClearBackgroundEnum;
 
  129         friend class GlsMultiView;
 
  130         friend class GlsMultiViewEditor;
 
  137         bool         _absolutePixels;
 
  139         std::string  _desiredEyePoint;
 
  140         int          _clearBackground;
 
  151         GlsMultiView* _multiView;
 
  154         GLSGEN_GlsMultiView_EXPORT 
ViewData();
 
  155         GLSGEN_GlsMultiView_EXPORT ViewData( 
const ViewData& );
 
  156         GLSGEN_GlsMultiView_EXPORT ~ViewData();
 
  159         GLSGEN_GlsMultiView_EXPORT 
const ViewData& 
operator=( 
const ViewData& );
 
  160         GLSGEN_GlsMultiView_EXPORT 
void            CopyBaseData( 
const ViewData& other );
 
  169         GLSGEN_GlsMultiView_EXPORT 
void SetScreenRect( 
float bottom, 
float left, 
float top, 
float right );
 
  172         GLSGEN_GlsMultiView_EXPORT 
void GetScreenRect( 
float* bottom, 
float* left, 
float* top, 
float* right );
 
  175         GLSGEN_GlsMultiView_EXPORT 
void Bottom( 
const float& );
 
  177         GLSGEN_GlsMultiView_EXPORT 
float Bottom();
 
  179         GLSGEN_GlsMultiView_EXPORT 
void Left( 
const float& );
 
  181         GLSGEN_GlsMultiView_EXPORT 
float Left();
 
  183         GLSGEN_GlsMultiView_EXPORT 
void Top( 
const float& );
 
  185         GLSGEN_GlsMultiView_EXPORT 
float Top();
 
  187         GLSGEN_GlsMultiView_EXPORT 
void Right( 
const float& );
 
  189         GLSGEN_GlsMultiView_EXPORT 
float Right();
 
  205         GLSGEN_GlsMultiView_EXPORT 
GlsEyePoint* EyePoint();
 
  207         GLSGEN_GlsMultiView_EXPORT 
void SetMultiview( GlsMultiView* view );
 
  222         GLSGEN_GlsMultiView_EXPORT 
void PickGeometry( 
const bool& );
 
  229         GLSGEN_GlsMultiView_EXPORT 
void Visible( 
const bool& );
 
  232         GLSGEN_GlsMultiView_EXPORT 
bool Visible();
 
  238         GLSGEN_GlsMultiView_EXPORT 
void Pickable( 
const bool& );
 
  241         GLSGEN_GlsMultiView_EXPORT 
bool Pickable();
 
  244         GLSGEN_GlsMultiView_EXPORT 
void DesiredEyePoint( 
const GlsPropString& );
 
  277     GLSGEN_GlsMultiView_EXPORT 
unsigned int ViewCount();
 
  282     GLSGEN_GlsMultiView_EXPORT ViewData& 
View( 
unsigned int viewNumber );
 
  286     GLSGEN_GlsMultiView_EXPORT ViewDataArray& 
ViewArray();
 
  310     GLSGEN_GlsMultiView_EXPORT 
void DrawView( 
unsigned int viewNumber, ViewData* view );
 
  314     GLSGEN_GlsMultiView_EXPORT 
bool PreDrawGeometryForView( 
int viewNumber, ViewData* view );
 
  315     GLSGEN_GlsMultiView_EXPORT 
void ReapplyGlobalLightsForView( ViewData* view );
 
  324     ViewDrawStateEnum _viewDrawingState;
 
  325     ViewDataArray     _viewArray;
 
  326     ViewData          _mainViewData;
 
  328     int               _lastViewPredraw; 
 
  330     bool _showHighlights; 
 
  333     bool _emitViewDrawEvents;
 
  336     bool               _childLightsAffectGlobal; 
 
  341     void OnViewDataChanged();
 
  342     void OnViewDrawingStateChanged();
 
  343     void OnViewArrayChange();
 
  345     void          DummySetInt( 
const int& ) {} 
 
  346     GlsMultiView& operator=( 
const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
 
  347     GlsMultiView( const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
 
  362         : DistiAttributeBase( caller, name, 
false )
 
  367     DistiAttributeBase& 
operator=( 
const DistiAttributeBase& oldClass )
 
  370         if( ( ptr = dynamic_cast<const DistiAttributeViewDataArray*>( &oldClass ) ) )
 
  390         instr.ignore( 1024, 
'{' );
 
  400                 index = atoi( buf.c_str() );
 
  404                 instr.ignore( 1024, 
'{' );
 
  407                 _array[ index ].Attributes().Read( instr );
 
  422         for( 
unsigned int i = 0; i < _array.
Count(); i++ )
 
  428             _array[ i ].Attributes().Write( outstr );
 
void ClearList(void)
Definition: dynamic_array.h:344
Definition: dynamic_array.h:62
The disti::Group class. Implements groups of objects. 
void EyePoint(GlsEyePoint *)
Class to contain current OpenGL view, projection and draw matrices. 
Definition: util.h:301
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
ViewDrawStateEnum ViewDrawingState()
void GetScreenRect(float *bottom, float *left, float *top, float *right)
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:367
Definition: gls_multi_view.h:127
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
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)
The disti::GlsEyePoint class. Implements eyepoints. 
void Count(const unsigned int count)
Definition: dynamic_array.h:115
GL Studio Enumerations and constants. 
GlsMultiView(int generateInstance=FALSE)
bool EmitViewDrawEvents()
Definition: gls_eyepoint.h:115
Definition: disti_metadata.h:182
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:384
Definition: disti_metadata.h:660
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:453
const ViewData & operator=(const ViewData &)
std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_multi_view.h:415
Definition: gls_resources.h:50
virtual DistiAttributeBase & Resource(const char *name)
Definition: disti_metadata.h:84
Definition: bmpimage.h:46
virtual DisplayObject * handle(DisplayEvent *ev)
void ForceEyePointReload()
Definition: gls_multi_view.h:356
void SetScreenRect(float bottom, float left, float top, float right)