40 #ifndef _GLS_MultiView_H
41 #define _GLS_MultiView_H
47 #define LIB_BASE_NAME "gls_multi_view"
52 #if (defined(GLSGEN_EXPORT_GlsMultiView) || \
53 defined(GLSGEN_IMPORT_GlsMultiView) || \
54 defined(GLS_EXPORT_GENERATED) || \
55 defined(GLS_IMPORT_GENERATED)) \
57 # if defined(GLSGEN_EXPORT_GlsMultiView) || defined(GLS_EXPORT_GENERATED)
58 # define GLSGEN_GlsMultiView_EXPORT __declspec(dllexport)
60 # define GLSGEN_GlsMultiView_EXPORT __declspec(dllimport)
63 # define GLSGEN_GlsMultiView_EXPORT
72 GLS_GLSMULTIVIEW_FIRST_VALUE = GLS_LAST_INITIALIZER+1,
73 GLS_GLSMULTIVIEW_VIEW_DATA,
74 GLS_GLSMULTIVIEW_VIEW_DRAWING_STATE
76 class ComponentLightMgr;
81 friend class GlsMultiViewEditor;
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);
123 CLEAR_BG_DEPTH_AND_COLOR = 1,
126 } ClearBackgroundEnum;
130 friend class GlsMultiView;
131 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();
202 GLSGEN_GlsMultiView_EXPORT
GlsEyePoint* EyePoint();
217 GLSGEN_GlsMultiView_EXPORT
void PickGeometry(
const bool &);
224 GLSGEN_GlsMultiView_EXPORT
void Visible(
const bool &);
227 GLSGEN_GlsMultiView_EXPORT
bool Visible();
233 GLSGEN_GlsMultiView_EXPORT
void Pickable(
const bool &);
236 GLSGEN_GlsMultiView_EXPORT
bool Pickable();
239 GLSGEN_GlsMultiView_EXPORT
void DesiredEyePoint(
const GlsPropString&);
272 GLSGEN_GlsMultiView_EXPORT
unsigned int ViewCount();
277 GLSGEN_GlsMultiView_EXPORT ViewData&
View(
unsigned int viewNumber);
281 GLSGEN_GlsMultiView_EXPORT ViewDataArray&
ViewArray();
305 void DrawView(
unsigned int viewNumber, ViewData* view);
309 bool PreDrawGeometryForView(
int viewNumber, ViewData* view);
310 void ReapplyGlobalLightsForView(ViewData* view);
316 virtual void SetFromGloData(GlsGloFileAttribute &data);
319 ViewDrawStateEnum _viewDrawingState;
320 ViewDataArray _viewArray;
321 ViewData _mainViewData;
323 int _lastViewPredraw;
325 bool _showHighlights;
328 bool _emitViewDrawEvents;
331 bool _childLightsAffectGlobal;
336 void DummySetInt(
const int&) {}
337 GlsMultiView& operator=(
const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
338 GlsMultiView( const GlsMultiView& ) DISTI_SPECIAL_MEM_FUN_DELETE;
353 DistiAttributeBase(caller,name,
false),
358 DistiAttributeBase&
operator=(
const DistiAttributeBase& oldClass)
361 if( (ptr = dynamic_cast<const DistiAttributeViewDataArray*>(&oldClass)) )
381 instr.ignore(1024,
'{');
391 index = atoi(buf.c_str());
395 instr.ignore(1024,
'{');
398 _array[index].Attributes().Read(instr);
411 for (
unsigned int i=0; i < _array.
Count(); i++)
417 _array[i].Attributes().Write(outstr);
void ClearList(void)
Definition: dynamic_array.h:350
Definition: dynamic_array.h:63
The disti::Group class. Implements groups of objects.
void EyePoint(GlsEyePoint *)
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:289
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:358
Definition: gls_multi_view.h:128
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:79
Definition: component_light_mgr.h:55
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:120
GL Studio Enumerations and constants.
GlsMultiView(int generateInstance=FALSE)
bool EmitViewDrawEvents()
Definition: gls_eyepoint.h:115
Definition: disti_metadata.h:179
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:375
Definition: disti_metadata.h:661
virtual DisplayObject * CloneObject(bool generateNames=FALSE)
Definition: callback_caller_base.h:56
ViewDataArray & ViewArray()
GlsEyePoint * GetEyePoint(const DisplayObject *heirarchiedObject)
virtual void NotifyAttributeChanged(const AttributeName &name)
Definition: disti_metadata.h:432
const ViewData & operator=(const ViewData &)
std::ostream & WriteValue(std::ostream &outstr)
Definition: gls_multi_view.h:406
Definition: gls_resources.h:50
virtual DistiAttributeBase & Resource(const char *name)
Definition: disti_metadata.h:83
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)