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)