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)