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;
152 GLSGEN_GlsMultiView_EXPORT
ViewData();
153 GLSGEN_GlsMultiView_EXPORT ViewData(
const ViewData& );
154 GLSGEN_GlsMultiView_EXPORT ~ViewData();
157 GLSGEN_GlsMultiView_EXPORT
const ViewData&
operator=(
const ViewData& );
158 GLSGEN_GlsMultiView_EXPORT
void CopyBaseData(
const ViewData& other );
167 GLSGEN_GlsMultiView_EXPORT
void SetScreenRect(
float bottom,
float left,
float top,
float right );
170 GLSGEN_GlsMultiView_EXPORT
void GetScreenRect(
float* bottom,
float* left,
float* top,
float* right );
173 GLSGEN_GlsMultiView_EXPORT
void Bottom(
const float& );
175 GLSGEN_GlsMultiView_EXPORT
float Bottom();
177 GLSGEN_GlsMultiView_EXPORT
void Left(
const float& );
179 GLSGEN_GlsMultiView_EXPORT
float Left();
181 GLSGEN_GlsMultiView_EXPORT
void Top(
const float& );
183 GLSGEN_GlsMultiView_EXPORT
float Top();
185 GLSGEN_GlsMultiView_EXPORT
void Right(
const float& );
187 GLSGEN_GlsMultiView_EXPORT
float Right();
203 GLSGEN_GlsMultiView_EXPORT
GlsEyePoint* EyePoint();
218 GLSGEN_GlsMultiView_EXPORT
void PickGeometry(
const bool& );
225 GLSGEN_GlsMultiView_EXPORT
void Visible(
const bool& );
228 GLSGEN_GlsMultiView_EXPORT
bool Visible();
234 GLSGEN_GlsMultiView_EXPORT
void Pickable(
const bool& );
237 GLSGEN_GlsMultiView_EXPORT
bool Pickable();
240 GLSGEN_GlsMultiView_EXPORT
void DesiredEyePoint(
const GlsPropString& );
273 GLSGEN_GlsMultiView_EXPORT
unsigned int ViewCount();
278 GLSGEN_GlsMultiView_EXPORT ViewData&
View(
unsigned int viewNumber );
282 GLSGEN_GlsMultiView_EXPORT ViewDataArray&
ViewArray();
306 GLSGEN_GlsMultiView_EXPORT
void DrawView(
unsigned int viewNumber, ViewData* view );
310 GLSGEN_GlsMultiView_EXPORT
bool PreDrawGeometryForView(
int viewNumber, ViewData* view );
311 GLSGEN_GlsMultiView_EXPORT
void ReapplyGlobalLightsForView( ViewData* view );
320 ViewDrawStateEnum _viewDrawingState;
321 ViewDataArray _viewArray;
322 ViewData _mainViewData;
324 int _lastViewPredraw;
326 bool _showHighlights;
329 bool _emitViewDrawEvents;
332 bool _childLightsAffectGlobal;
337 void DummySetInt(
const int& ) {}
338 GlsMultiView& operator=(
const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
339 GlsMultiView( const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
354 : DistiAttributeBase( caller, name,
false )
359 DistiAttributeBase&
operator=(
const DistiAttributeBase& oldClass )
362 if( ( ptr = dynamic_cast<const DistiAttributeViewDataArray*>( &oldClass ) ) )
382 instr.ignore( 1024,
'{' );
392 index = atoi( buf.c_str() );
396 instr.ignore( 1024,
'{' );
399 _array[ index ].Attributes().Read( instr );
414 for(
unsigned int i = 0; i < _array.
Count(); i++ )
420 _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:278
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:359
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:835
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:174
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:376
Definition: disti_metadata.h:667
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:443
const ViewData & operator=(const ViewData &)
std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_multi_view.h:407
Definition: gls_resources.h:50
virtual DistiAttributeBase & Resource(const char *name)
Definition: disti_metadata.h:79
Definition: bmpimage.h:46
virtual DisplayObject * handle(DisplayEvent *ev)
void ForceEyePointReload()
Definition: gls_multi_view.h:348
void SetScreenRect(float bottom, float left, float top, float right)