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:988
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:186
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:668
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:458
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)