osg::ClusterWindow Class Reference
[Cluster]

Abstract base class for cluster configurations. More...

#include <OSGClusterWindow.h>

Inheritance diagram for osg::ClusterWindow:

osg::ClusterWindowBase osg::Window osg::WindowBase osg::AttachmentContainer osg::FieldContainer osg::MultiDisplayWindowBase osg::SortFirstWindowBase osg::MultiDisplayWindow osg::SortFirstWindow

List of all members.

asynchronous initialization



typedef bool(* connectioncbfp )(std::string server, Real32 progress)
bool initAsync (connectioncbfp fp)
void setConnectionCB (connectioncbfp fp)

Extension handling



UInt32 getGLVersion (void)
bool hasExtension (UInt32 id)
bool hasExtension (const Char8 *s)
void * getFunction (UInt32 id)
void * getFunctionNoCheck (UInt32 id)
void dumpExtensions (void)
Real32 getConstantValue (GLenum val)
const Vec2fgetConstantValuev (GLenum val)
const std::vector< std::string > & getRegisteredFunctions (void)
const std::vector< std::string > & getExtensions (void)
const std::vector< std::string > & getIgnoredExtensions (void)
static void setGLLibraryName (const Char8 *s)
static Int32 getExtensionId (const Char8 *s)
static bool hasCommonExtension (UInt32 id)
static const std::vector
< std::string > & 
getRegisteredExtensions (void)

GL object handling



void validateGLObject (UInt32 id)
void validateAllGLObjects (void)
void setGLObjectId (UInt32 id, UInt32 id2)
UInt32 getGLObjectId (UInt32 id)
static UInt32 getGLObjectsSize (void)
static void refreshGLObject (UInt32 id)
static void refreshAllGLObjects (void)
static void reinitializeGLObject (UInt32 id)
static void reinitializeAllGLObjects (void)
static void destroyGLObject (UInt32 id, UInt32 num=1)
static void unpackIdStatus (UInt32 idstatus, UInt32 &id, GLObjectStatusE &status)

GL object handling



void doInitRegisterGLObject (UInt32 id, UInt32 num)
static void initRegisterGLObject (UInt32 id, UInt32 num)
static UInt32 packIdStatus (UInt32 id, GLObjectStatusE status)

Public Types

enum  {
  ServersFieldId = Inherited::NextFieldId, ConnectionTypeFieldId = ServersFieldId + 1, ConnectionInterfaceFieldId = ConnectionTypeFieldId + 1, ConnectionDestinationFieldId = ConnectionInterfaceFieldId + 1,
  ConnectionParamsFieldId = ConnectionDestinationFieldId + 1, ServicePortFieldId = ConnectionParamsFieldId + 1, ServiceAddressFieldId = ServicePortFieldId + 1, ServiceInterfaceFieldId = ServiceAddressFieldId + 1,
  ClientWindowFieldId = ServiceInterfaceFieldId + 1, InterleaveFieldId = ClientWindowFieldId + 1, FrameCountFieldId = InterleaveFieldId + 1, ComposerFieldId = FrameCountFieldId + 1,
  AutostartFieldId = ComposerFieldId + 1, CalibrationFieldId = AutostartFieldId + 1, FilterFieldId = CalibrationFieldId + 1, DirtyFieldId = FilterFieldId + 1,
  NextFieldId = DirtyFieldId + 1
}
typedef ClusterWindowPtr Ptr
enum  GLObjectStatusE {
  notused = 1, initialize, reinitialize, initialized,
  needrefresh, destroy, finaldestroy
}
enum  { invalidExtensionID = 0x7fffffff, invalidFunctionID = 0x7fffffff }
enum  { statusShift = 3, statusMask = 7 }
typedef ArgsCollector< UInt32GLObjectFunctorArgs
typedef TypedVoidFunctor2Base
< PtrCallArg< Window >
, GLObjectFunctorArgs
GLObjectFunctor
typedef void(* GLExtensionFunction )(void)
enum  {
  WidthFieldId = Inherited::NextFieldId, HeightFieldId = WidthFieldId + 1, PortFieldId = HeightFieldId + 1, ResizePendingFieldId = PortFieldId + 1,
  GlObjectEventCounterFieldId = ResizePendingFieldId + 1, GlObjectLastRefreshFieldId = GlObjectEventCounterFieldId + 1, GlObjectLastReinitializeFieldId = GlObjectLastRefreshFieldId + 1, NextFieldId = GlObjectLastReinitializeFieldId + 1
}
enum  { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

window functions


virtual void changed (BitVector whichField, UInt32 origin)
 react to field changes
Output


virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
 output the instance for debug purposes
GL implementation functions


virtual void(* getFunctionByName (const Char8 *s))()
Window system implementation functions


virtual void activate (void)
virtual void deactivate (void)
virtual void swap (void)
virtual void init (void)
virtual void render (RenderActionBase *action=NULL)
virtual void renderAllViewports (RenderActionBase *action=NULL)
virtual void frameInit (void)
virtual void frameExit (void)
connection pool


ClusterNetworkgetNetwork (void)
Statistics


StatCollectorgetStatistics (void) const
void setStatistics (StatCollector *stat)
Calibration


bool loadCalibration (std::istream &in)
bool saveCalibration (std::ostream &out)
bool loadFilter (std::istream &in)
bool updateFilter (WindowPtr window, UInt32 id, RenderActionBase *action)
FieldContainer Get


virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get


MFStringgetMFServers (void)
 Get the ClusterWindow::_mfServers field.
SFStringgetSFConnectionType (void)
 Get the ClusterWindow::_sfConnectionType field.
SFStringgetSFConnectionInterface (void)
 Get the ClusterWindow::_sfConnectionInterface field.
SFStringgetSFConnectionDestination (void)
 Get the ClusterWindow::_sfConnectionDestination field.
SFStringgetSFConnectionParams (void)
 Get the ClusterWindow::_sfConnectionParams field.
SFUInt32getSFServicePort (void)
 Get the ClusterWindow::_sfServicePort field.
SFStringgetSFServiceAddress (void)
 Get the ClusterWindow::_sfServiceAddress field.
SFStringgetSFServiceInterface (void)
 Get the ClusterWindow::_sfServiceInterface field.
SFWindowPtrgetSFClientWindow (void)
 Get the ClusterWindow::_sfClientWindow field.
SFUInt32getSFInterleave (void)
 Get the ClusterWindow::_sfInterleave field.
SFUInt32getSFFrameCount (void)
 Get the ClusterWindow::_sfFrameCount field.
SFImageComposerPtrgetSFComposer (void)
 Get the ClusterWindow::_sfComposer field.
MFStringgetMFAutostart (void)
 Get the ClusterWindow::_mfAutostart field.
MFDisplayCalibrationPtrgetMFCalibration (void)
 Get the ClusterWindow::_mfCalibration field.
MFDisplayFilterForegroundPtrgetMFFilter (void)
 Get the ClusterWindow::_mfFilter field.
std::string & getConnectionType (void)
 Get the value of the ClusterWindow::_sfConnectionType field.
const std::string & getConnectionType (void) const
 Get the value of the ClusterWindow::_sfConnectionType field.
std::string & getConnectionInterface (void)
 Get the value of the ClusterWindow::_sfConnectionInterface field.
const std::string & getConnectionInterface (void) const
 Get the value of the ClusterWindow::_sfConnectionInterface field.
std::string & getConnectionDestination (void)
 Get the value of the ClusterWindow::_sfConnectionDestination field.
const std::string & getConnectionDestination (void) const
 Get the value of the ClusterWindow::_sfConnectionDestination field.
std::string & getConnectionParams (void)
 Get the value of the ClusterWindow::_sfConnectionParams field.
const std::string & getConnectionParams (void) const
 Get the value of the ClusterWindow::_sfConnectionParams field.
UInt32getServicePort (void)
 Get the value of the ClusterWindow::_sfServicePort field.
const UInt32getServicePort (void) const
 Get the value of the ClusterWindow::_sfServicePort field.
std::string & getServiceAddress (void)
 Get the value of the ClusterWindow::_sfServiceAddress field.
const std::string & getServiceAddress (void) const
 Get the value of the ClusterWindow::_sfServiceAddress field.
std::string & getServiceInterface (void)
 Get the value of the ClusterWindow::_sfServiceInterface field.
const std::string & getServiceInterface (void) const
 Get the value of the ClusterWindow::_sfServiceInterface field.
WindowPtrgetClientWindow (void)
 Get the value of the ClusterWindow::_sfClientWindow field.
const WindowPtrgetClientWindow (void) const
 Get the value of the ClusterWindow::_sfClientWindow field.
UInt32getInterleave (void)
 Get the value of the ClusterWindow::_sfInterleave field.
const UInt32getInterleave (void) const
 Get the value of the ClusterWindow::_sfInterleave field.
UInt32getFrameCount (void)
 Get the value of the ClusterWindow::_sfFrameCount field.
const UInt32getFrameCount (void) const
 Get the value of the ClusterWindow::_sfFrameCount field.
ImageComposerPtrgetComposer (void)
 Get the value of the ClusterWindow::_sfComposer field.
const ImageComposerPtrgetComposer (void) const
 Get the value of the ClusterWindow::_sfComposer field.
std::string & getServers (const UInt32 index)
 Get the value of the index element the ClusterWindow::_mfServers field.
MFStringgetServers (void)
 Get the ClusterWindow::_mfServers field.
const MFStringgetServers (void) const
 Get the ClusterWindow::_mfServers field.
std::string & getAutostart (const UInt32 index)
 Get the value of the index element the ClusterWindow::_mfAutostart field.
MFStringgetAutostart (void)
 Get the ClusterWindow::_mfAutostart field.
const MFStringgetAutostart (void) const
 Get the ClusterWindow::_mfAutostart field.
DisplayCalibrationPtrgetCalibration (const UInt32 index)
 Get the value of the index element the ClusterWindow::_mfCalibration field.
MFDisplayCalibrationPtrgetCalibration (void)
 Get the ClusterWindow::_mfCalibration field.
const MFDisplayCalibrationPtrgetCalibration (void) const
 Get the ClusterWindow::_mfCalibration field.
DisplayFilterForegroundPtrgetFilter (const UInt32 index)
 Get the value of the index element the ClusterWindow::_mfFilter field.
MFDisplayFilterForegroundPtrgetFilter (void)
 Get the ClusterWindow::_mfFilter field.
const
MFDisplayFilterForegroundPtr
getFilter (void) const
 Get the ClusterWindow::_mfFilter field.
Field Set


void setConnectionType (const std::string &value)
 Set the value of the ClusterWindow::_sfConnectionType field.
void setConnectionInterface (const std::string &value)
 Set the value of the ClusterWindow::_sfConnectionInterface field.
void setConnectionDestination (const std::string &value)
 Set the value of the ClusterWindow::_sfConnectionDestination field.
void setConnectionParams (const std::string &value)
 Set the value of the ClusterWindow::_sfConnectionParams field.
void setServicePort (const UInt32 &value)
 Set the value of the ClusterWindow::_sfServicePort field.
void setServiceAddress (const std::string &value)
 Set the value of the ClusterWindow::_sfServiceAddress field.
void setServiceInterface (const std::string &value)
 Set the value of the ClusterWindow::_sfServiceInterface field.
void setClientWindow (const WindowPtr &value)
 Set the value of the ClusterWindow::_sfClientWindow field.
void setInterleave (const UInt32 &value)
 Set the value of the ClusterWindow::_sfInterleave field.
void setFrameCount (const UInt32 &value)
 Set the value of the ClusterWindow::_sfFrameCount field.
void setComposer (const ImageComposerPtr &value)
 Set the value of the ClusterWindow::_sfComposer field.
Binary Access
virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy


virtual FieldContainerPtr shallowCopy (void) const
Viewport handling


void addPort (const ViewportPtr &portP)
void insertPort (UInt32 portIndex, const ViewportPtr &portP)
void replacePort (UInt32 portIndex, const ViewportPtr &portP)
void replacePortBy (const ViewportPtr &portP, const ViewportPtr &newPortP)
void subPort (const ViewportPtr &portP)
void subPort (UInt32 portIndex)
void clearPorts (void)
Size handling


bool isResizePending (void)
virtual void resize (int width, int height)
virtual void resizeGL (void)
void setSize (UInt16 width, UInt16 height)
Drawing


virtual void draw (DrawAction *action=NULL)
virtual void drawAllViewports (DrawAction *action=NULL)
Field Get


SFUInt16getSFWidth (void)
 Get the Window::_sfWidth field.
SFUInt16getSFHeight (void)
 Get the Window::_sfHeight field.
MFViewportPtrgetMFPort (void)
 Get the Window::_mfPort field.
SFBoolgetSFResizePending (void)
 Get the Window::_sfResizePending field.
UInt16getWidth (void)
 Get the value of the Window::_sfWidth field.
const UInt16getWidth (void) const
 Get the value of the Window::_sfWidth field.
UInt16getHeight (void)
 Get the value of the Window::_sfHeight field.
const UInt16getHeight (void) const
 Get the value of the Window::_sfHeight field.
bool & getResizePending (void)
 Get the value of the Window::_sfResizePending field.
const bool & getResizePending (void) const
 Get the value of the Window::_sfResizePending field.
ViewportPtrgetPort (const UInt32 index)
 Get the value of the index element the Window::_mfPort field.
MFViewportPtrgetPort (void)
 Get the Window::_mfPort field.
const MFViewportPtrgetPort (void) const
 Get the Window::_mfPort field.
Field Set


void setWidth (const UInt16 &value)
 Set the value of the Window::_sfWidth field.
void setHeight (const UInt16 &value)
 Set the value of the Window::_sfHeight field.
void setResizePending (const bool &value)
 Set the value of the Window::_sfResizePending field.
Handle Attachments


void addAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0)
void subAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0)
AttachmentPtr findAttachment (UInt32 groupId, UInt16 binding=0)
AttachmentPtr findAttachment (const FieldContainerType &type, UInt16 binding=0)


SFAttachmentMapgetSFAttachments (void)
Get Instance Type Information


UInt32 getTypeId (void) const
UInt16 getGroupId (void) const
const Char8getTypeName (void) const


FieldgetField (UInt32 fieldId)
FieldgetField (const Char8 *fieldName)

Static Public Member Functions

Class Get


static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction


static ClusterWindowPtr create (void)
 create a new instance of the class
static ClusterWindowPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype
Class Get


static const char * getClassname (void)
Extension registration


static UInt32 registerExtension (const Char8 *s)
static void ignoreExtensions (const Char8 *s)
static UInt32 registerFunction (const Char8 *s, Int32 ext=-1, UInt32 version=0xffff)
static void registerConstant (GLenum val)
GL object registration


static UInt32 registerGLObject (GLObjectFunctor functor, UInt32 num=1)
Get Class Type Information


static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector ServersFieldMask
static const osg::BitVector ConnectionTypeFieldMask
static const osg::BitVector ConnectionInterfaceFieldMask
static const osg::BitVector ConnectionDestinationFieldMask
static const osg::BitVector ConnectionParamsFieldMask
static const osg::BitVector ServicePortFieldMask
static const osg::BitVector ServiceAddressFieldMask
static const osg::BitVector ServiceInterfaceFieldMask
static const osg::BitVector ClientWindowFieldMask
static const osg::BitVector InterleaveFieldMask
static const osg::BitVector FrameCountFieldMask
static const osg::BitVector ComposerFieldMask
static const osg::BitVector AutostartFieldMask
static const osg::BitVector CalibrationFieldMask
static const osg::BitVector FilterFieldMask
static const osg::BitVector DirtyFieldMask
static const osg::BitVector MTInfluenceMask
static const Real32 unknownConstant = -1e100
static const osg::BitVector WidthFieldMask
static const osg::BitVector HeightFieldMask
static const osg::BitVector PortFieldMask
static const osg::BitVector ResizePendingFieldMask
static const osg::BitVector GlObjectEventCounterFieldMask
static const osg::BitVector GlObjectLastRefreshFieldMask
static const osg::BitVector GlObjectLastReinitializeFieldMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = false

Protected Types

Map for GL cvonstant handling


typedef std::map< GLenum, Vec2fConstHash

Protected Member Functions

client window funcitons


virtual void clientInit (void)
virtual void clientPreSync (void)
virtual void clientRender (RenderActionBase *action)
virtual void clientSwap (void)
server window funcitons


virtual void serverInit (WindowPtr window, UInt32 id)
virtual void serverRender (WindowPtr window, UInt32 id, RenderActionBase *action)
virtual void serverSwap (WindowPtr window, UInt32 id)
Constructors / Destructor


 ClusterWindow (void)
 Constructor.
 ClusterWindow (const ClusterWindow &source)
 Copy Constructor.
virtual ~ClusterWindow (void)
 Destructor.
Field Get


SFBoolgetSFDirty (void)
 Get the ClusterWindow::_sfDirty field.
bool & getDirty (void)
 Get the value of the ClusterWindow::_sfDirty field.
const bool & getDirty (void) const
 Get the value of the ClusterWindow::_sfDirty field.
Field Set


void setDirty (const bool &value)
 Set the value of the ClusterWindow::_sfDirty field.
Sync


void executeSyncImpl (ClusterWindowBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Sync


void executeSyncImpl (WindowBase *pOther, const BitVector &whichField)
Sync


void executeSyncImpl (AttachmentContainer *pOther, const BitVector &whichField)
Sync


void executeSyncImpl (FieldContainer *pOther, const BitVector &whichField)
GL setup handling


virtual void setupGL (void)
MT Construction


void onCreate (const FieldContainer *source=NULL)
void onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL)
Field Get


SFUInt32getSFGlObjectEventCounter (void)
 Get the Window::_sfGlObjectEventCounter field.
MFUInt32getMFGlObjectLastRefresh (void)
 Get the Window::_mfGlObjectLastRefresh field.
MFUInt32getMFGlObjectLastReinitialize (void)
 Get the Window::_mfGlObjectLastReinitialize field.
UInt32getGlObjectEventCounter (void)
 Get the value of the Window::_sfGlObjectEventCounter field.
const UInt32getGlObjectEventCounter (void) const
 Get the value of the Window::_sfGlObjectEventCounter field.
UInt32getGlObjectLastRefresh (UInt32 index)
 Get the value of the index element the Window::_mfGlObjectLastRefresh field.
MFUInt32getGlObjectLastRefresh (void)
 Get the Window::_mfGlObjectLastRefresh field.
const MFUInt32getGlObjectLastRefresh (void) const
 Get the Window::_mfGlObjectLastRefresh field.
UInt32getGlObjectLastReinitialize (UInt32 index)
 Get the value of the index element the Window::_mfGlObjectLastReinitialize field.
MFUInt32getGlObjectLastReinitialize (void)
 Get the Window::_mfGlObjectLastReinitialize field.
const MFUInt32getGlObjectLastReinitialize (void) const
 Get the Window::_mfGlObjectLastReinitialize field.
Field Set


void setGlObjectEventCounter (const UInt32 &value)
 Set the value of the Window::_sfGlObjectEventCounter field.
Pointer


AttachmentContainerPtr getPtr (void)
MT Edit


template<class FieldTypeT>
void beginEditX (const BitVector &whichField, FieldTypeT &field)
template<class FieldTypeT>
void endEditX (const BitVector &whichField, FieldTypeT &field)

Static Protected Member Functions

Create Fieldcontainer


template<class ObjectPtrT>
static void newPtr (ObjectPtrT &result, const typename ObjectPtrT::StoredObjectType *prototypeP)
template<class ObjectPtrT>
static void newPtr (ObjectPtrT &result)

Protected Attributes

unsynced thread variables


bool _firstFrame
StatCollector_statistics
Fields


MFString _mfServers
SFString _sfConnectionType
SFString _sfConnectionInterface
SFString _sfConnectionDestination
SFString _sfConnectionParams
SFUInt32 _sfServicePort
SFString _sfServiceAddress
SFString _sfServiceInterface
SFWindowPtr _sfClientWindow
SFUInt32 _sfInterleave
SFUInt32 _sfFrameCount
SFImageComposerPtr _sfComposer
MFString _mfAutostart
MFDisplayCalibrationPtr _mfCalibration
MFDisplayFilterForegroundPtr _mfFilter
SFBool _sfDirty
Fields


SFUInt16 _sfWidth
SFUInt16 _sfHeight
MFViewportPtr _mfPort
SFBool _sfResizePending
SFUInt32 _sfGlObjectEventCounter
MFUInt32 _mfGlObjectLastRefresh
MFUInt32 _mfGlObjectLastReinitialize
Fields


SFAttachmentMap _attachmentMap
Member


UInt32 _shares

Private Types

typedef ClusterWindowBase Inherited

Private Member Functions

void operator= (const ClusterWindow &source)

Static Private Member Functions

init method


static void initMethod (void)

Private Attributes

private members


connectioncbfp _connectionFP
ClusterNetwork_network

Friends

class FieldContainer
class ClusterWindowBase
class ClusterServer
class ClusterClient
GL object handling helper class


class GLObject

Classes

class  AsyncCancel


Detailed Description

A ClusterWindow describes a clustering algorithm. A ClusterWindow inherits the ability to connect rendering servers and initiate remote rendering. By configuring the cluster algorithm with an OpenSG Window structure, it is possible to use cluster rendering in the same way as rendering in a GLUT or Qt window.

Definition at line 57 of file OSGClusterWindow.h.


Member Typedef Documentation

typedef bool(* osg::ClusterWindow::connectioncbfp)(std::string server, Real32 progress)

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 105 of file OSGClusterWindowBase.h.

Definition at line 96 of file OSGWindow.h.

Definition at line 99 of file OSGWindow.h.

typedef void(* osg::Window::GLExtensionFunction)(void) [inherited]

typedef std::map< GLenum, Vec2f > osg::Window::ConstHash [protected, inherited]

Definition at line 331 of file OSGWindow.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
ServersFieldId 
ConnectionTypeFieldId 
ConnectionInterfaceFieldId 
ConnectionDestinationFieldId 
ConnectionParamsFieldId 
ServicePortFieldId 
ServiceAddressFieldId 
ServiceInterfaceFieldId 
ClientWindowFieldId 
InterleaveFieldId 
FrameCountFieldId 
ComposerFieldId 
AutostartFieldId 
CalibrationFieldId 
FilterFieldId 
DirtyFieldId 
NextFieldId 

Definition at line 107 of file OSGClusterWindowBase.h.

00108     {
00109         ServersFieldId               = Inherited::NextFieldId,
00110         ConnectionTypeFieldId        = ServersFieldId               + 1,
00111         ConnectionInterfaceFieldId   = ConnectionTypeFieldId        + 1,
00112         ConnectionDestinationFieldId = ConnectionInterfaceFieldId   + 1,
00113         ConnectionParamsFieldId      = ConnectionDestinationFieldId + 1,
00114         ServicePortFieldId           = ConnectionParamsFieldId      + 1,
00115         ServiceAddressFieldId        = ServicePortFieldId           + 1,
00116         ServiceInterfaceFieldId      = ServiceAddressFieldId        + 1,
00117         ClientWindowFieldId          = ServiceInterfaceFieldId      + 1,
00118         InterleaveFieldId            = ClientWindowFieldId          + 1,
00119         FrameCountFieldId            = InterleaveFieldId            + 1,
00120         ComposerFieldId              = FrameCountFieldId            + 1,
00121         AutostartFieldId             = ComposerFieldId              + 1,
00122         CalibrationFieldId           = AutostartFieldId             + 1,
00123         FilterFieldId                = CalibrationFieldId           + 1,
00124         DirtyFieldId                 = FilterFieldId                + 1,
00125         NextFieldId                  = DirtyFieldId                 + 1
00126     };

enum osg::Window::GLObjectStatusE [inherited]

Enumerator:
notused 
initialize 
reinitialize 
initialized 
needrefresh 
destroy 
finaldestroy 

Definition at line 78 of file OSGWindow.h.

00079     {
00080         notused      = 1, 
00081         initialize, 
00082         reinitialize, 
00083         initialized,
00084         needrefresh, 
00085         destroy, 
00086         finaldestroy 
00087     };

anonymous enum [inherited]

Enumerator:
invalidExtensionID 
invalidFunctionID 

Definition at line 89 of file OSGWindow.h.

00089 { invalidExtensionID = 0x7fffffff, invalidFunctionID = 0x7fffffff };

anonymous enum [inherited]

Enumerator:
statusShift 
statusMask 

Definition at line 92 of file OSGWindow.h.

00092 { statusShift = 3, statusMask = 7 }; 

anonymous enum [inherited]

Enumerator:
WidthFieldId 
HeightFieldId 
PortFieldId 
ResizePendingFieldId 
GlObjectEventCounterFieldId 
GlObjectLastRefreshFieldId 
GlObjectLastReinitializeFieldId 
NextFieldId 

Definition at line 98 of file OSGWindowBase.h.

00099     {
00100         WidthFieldId                    = Inherited::NextFieldId,
00101         HeightFieldId                   = WidthFieldId                    + 1,
00102         PortFieldId                     = HeightFieldId                   + 1,
00103         ResizePendingFieldId            = PortFieldId                     + 1,
00104         GlObjectEventCounterFieldId     = ResizePendingFieldId            + 1,
00105         GlObjectLastRefreshFieldId      = GlObjectEventCounterFieldId     + 1,
00106         GlObjectLastReinitializeFieldId = GlObjectLastRefreshFieldId      + 1,
00107         NextFieldId                     = GlObjectLastReinitializeFieldId + 1
00108     };

anonymous enum [inherited]

Enumerator:
AttachmentsFieldId 
NextFieldId 

Definition at line 78 of file OSGAttachmentContainerImpl.h.

anonymous enum [inherited]

Enumerator:
NextFieldId 

Definition at line 73 of file OSGFieldContainerImpl.h.

00073 { NextFieldId = 1 };


Constructor & Destructor Documentation

ClusterWindow::ClusterWindow ( void   )  [protected]

Definition at line 1227 of file OSGClusterWindow.cpp.

01227                                  :
01228      Inherited(),
01229     _firstFrame(true),
01230     _statistics(NULL),
01231     _connectionFP(NULL),
01232     _network(NULL)
01233 {
01234 }

ClusterWindow::ClusterWindow ( const ClusterWindow source  )  [protected]

Definition at line 1238 of file OSGClusterWindow.cpp.

01238                                                         :
01239     Inherited(source),
01240     _firstFrame(true),
01241     _statistics(NULL),
01242     _connectionFP(source._connectionFP),
01243     _network(NULL)
01244 {
01245 }

ClusterWindow::~ClusterWindow ( void   )  [protected, virtual]

Definition at line 1249 of file OSGClusterWindow.cpp.

References _network, and osg::subRefP().

01250 {
01251     if(_network)
01252         subRefP(_network);
01253     _network=NULL;
01254 }


Member Function Documentation

void ClusterWindow::changed ( BitVector  whichField,
UInt32  origin 
) [virtual]

Reimplemented from osg::Window.

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 89 of file OSGClusterWindow.cpp.

References osg::Window::changed().

Referenced by osg::SortFirstWindow::changed(), and osg::MultiDisplayWindow::changed().

00090 {
00091     Inherited::changed(whichField, origin);
00092 }

void ClusterWindow::dump ( UInt32  uiIndent = 0,
const BitVector  bvFlags = 0 
) const [virtual]

Reimplemented from osg::Window.

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 96 of file OSGClusterWindow.cpp.

References SLOG.

00098 {
00099     SLOG << "Dump ClusterWindow NI" << std::endl;
00100 }

virtual void(* osg::ClusterWindow::getFunctionByName ( const Char8 s  )  [virtual]

Reimplemented from osg::Window.

void ClusterWindow::activate ( void   )  [virtual]

Implements osg::Window.

Definition at line 453 of file OSGClusterWindow.cpp.

Referenced by render().

00454 {
00455 }

void ClusterWindow::deactivate ( void   )  [virtual]

Implements osg::Window.

Definition at line 457 of file OSGClusterWindow.cpp.

00458 {
00459 }

void ClusterWindow::swap ( void   )  [virtual]

Implements osg::Window.

Definition at line 461 of file OSGClusterWindow.cpp.

References clientSwap(), and getNetwork().

Referenced by render().

00462 {
00463     if(getNetwork()->getMainConnection() && getNetwork()->getAspect())
00464     {
00465         clientSwap();
00466     }
00467 }

void ClusterWindow::init ( void   )  [virtual]

init cluster window. connect to all servers

Implements osg::Window.

Definition at line 110 of file OSGClusterWindow.cpp.

References _connectionFP, osg::ClusterWindowBase::_sfServiceAddress, _statistics, osg::SocketAddress::BROADCAST, osg::BinaryMessage::clear(), osg::DgramSocket::close(), osg::Connection::connectPoint(), osg::ConnectionFactory::createGroup(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::find(), osg::BinaryDataHandler::flush(), osg::ClusterWindowBase::getAutostart(), osg::ClusterWindowBase::getConnectionDestination(), osg::ClusterWindowBase::getConnectionInterface(), osg::ClusterWindowBase::getConnectionParams(), osg::ClusterWindowBase::getConnectionType(), osg::SocketAddress::getHost(), getNetwork(), osg::ClusterWindowBase::getServers(), osg::ClusterWindowBase::getServiceInterface(), osg::ClusterWindowBase::getServicePort(), osg::BinaryMessage::getString(), osg::BinaryDataHandler::getValue(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::DgramSocket::open(), osg::BinaryMessage::putString(), osg::BinaryDataHandler::putValue(), osg::DgramSocket::recvFrom(), osg::GroupConnection::resetSelection(), osg::Connection::selectChannel(), osg::DgramSocket::sendTo(), osg::ClusterNetwork::setAspect(), osg::ClusterWindowBase::setConnectionType(), osg::GroupConnection::setDestination(), osg::Connection::setInterface(), osg::ClusterNetwork::setMainConnection(), osg::DgramSocket::setMCastInterface(), osg::BinaryDataHandler::setNetworkOrder(), osg::Connection::setParams(), osg::RemoteAspect::setStatistics(), osg::DgramSocket::setTTL(), SFATAL, SINFO, osg::MField< FieldTypeT, fieldNameSpace >::size(), osg::GroupConnection::subSelection(), SWARNING, osg::ConnectionFactory::the(), and osg::Socket::waitReadable().

Referenced by initAsync().

00111 {
00112     GroupConnection    *connection;
00113     RemoteAspect       *remoteAspect;
00114     int                 c,i,id;
00115     MFString::iterator  s;
00116     Connection::Channel channel;
00117     bool                directConnect=false;
00118 
00119     if(getNetwork()->getMainConnection())
00120     {
00121         SWARNING << "init called twice" << std::endl;
00122         return;
00123     }
00124     // create connection
00125     if(getConnectionType().empty())
00126     {
00127         setConnectionType("StreamSock");
00128     }
00129 
00130     connection = ConnectionFactory::the().createGroup(getConnectionType());
00131     if(connection == NULL)
00132     {
00133         SFATAL << "Unknown connection type " 
00134                << getConnectionType() 
00135                << std::endl;
00136         return;
00137     }
00138 
00139     connection->setDestination(getConnectionDestination());
00140     connection->setInterface(getConnectionInterface());
00141     connection->setParams(getConnectionParams());
00142 
00143     getNetwork()->setMainConnection(connection);
00144     // create remote aspect
00145     remoteAspect = new RemoteAspect();
00146     getNetwork()->setAspect(remoteAspect);
00147     if(_statistics)
00148         remoteAspect->setStatistics(_statistics);
00149 
00150     // autostart servers
00151     std::string server;
00152     std::string autostart;
00153     std::string env;
00154 
00155     Real32 progress = 0.0f;
00156     Real32 progressStep = 1.0f / Real32(getServers().size());
00157 
00158     if(getAutostart().size())
00159     {
00160         progressStep /= 2;
00161         std::vector<FILE*>           pipes;
00162 
00163         for(id=0 ; id<getServers().size() ; ++id)
00164         {
00165             std::ostringstream command;
00166 
00167             server    = getServers()[id];
00168             int pos=server.find(":");
00169             if(pos>=0)
00170                 server.erase(pos);
00171 
00172             autostart = getAutostart()[id % getAutostart().size()];
00173 
00174             for(c = 0 ; c < autostart.length() ; ++c)
00175             {
00176                 if(autostart[c] == '%' && c+1 < autostart.length())  
00177                     switch(autostart[++c])
00178                     {
00179                         case 's': 
00180                             command << server;
00181                             break;
00182                         case 'n': 
00183                             command << getServers()[id];
00184                             break;
00185                         case 'i':
00186                             command << id;
00187                             break;
00188                         case '{':
00189                             env = "" ;
00190                             while(++c < autostart.length() &&
00191                                   autostart[c] != '}')
00192                                 env += autostart[c];
00193                             if(getenv(env.c_str()))
00194                                 command << getenv(env.c_str());
00195                             break;
00196                         case '%':
00197                             command << '%';
00198                             break;
00199                         default:
00200                             command << '%' << autostart[c];
00201                     }
00202                 else
00203                     command << autostart[c];
00204             } 
00205             SINFO << command.str() << std::endl;
00206 #ifdef WIN32
00207             FILE *pipe = _popen(command.str().c_str(),"r");
00208 #else
00209             FILE *pipe = popen(command.str().c_str(),"r");
00210 #endif
00211             if(!pipe)
00212                 SFATAL << "Error starting: " << command << std::endl;
00213             pipes.push_back(pipe);
00214         }
00215         for(id=0 ; id<getServers().size() ; ++id)
00216         {
00217             if(pipes[id]) 
00218             {
00219                 // update progress
00220                 if(_connectionFP != NULL)
00221                 {
00222                     std::string message;
00223                     message += "Starting:" + getServers()[id]; 
00224                     if(!_connectionFP(message, progress))
00225                     {
00226                         // abort, cleanup remaining pipes
00227                         for( ; id<getServers().size() ; ++id)
00228                         {
00229                             if(pipes[id]) 
00230                             {
00231 #ifdef WIN32
00232                                 _pclose(pipes[id]);
00233 #else
00234                                 pclose(pipes[id]);
00235 #endif
00236                             }
00237                             throw AsyncCancel();
00238                         }
00239                     }
00240                 }
00241                 SINFO << "Waiting for " << getServers()[id] << " to start." << std::endl;
00242                 char result;
00243                 std::string line="";
00244                 while((result=fgetc(pipes[id])) != EOF)
00245                 {
00246                     line += result;
00247                     if(result == '\n')
00248                     {
00249                         SINFO << line;
00250                         line = "";
00251                     }
00252                 }
00253                 if(!line.empty())
00254                     SINFO << line << std::endl;
00255 #ifdef WIN32
00256                 _pclose(pipes[id]);
00257 #else
00258                 pclose(pipes[id]);
00259 #endif
00260                 SINFO << getServers()[id] << " started." << std::endl;
00261                 progress += progressStep;
00262             }
00263         }
00264     }
00265 
00266     // connect to all servers
00267     for(s =getServers().begin();
00268         s!=getServers().end();
00269         s++)
00270     {
00271         DgramSocket      serviceSock;
00272         BinaryMessage    msg;
00273         std::string      respServer;
00274         std::string      respAddress;
00275         bool             retry=true;
00276 
00277         if(strstr((*s).c_str(),":"))
00278             directConnect = true;
00279         else
00280             directConnect = false;
00281 
00282         SINFO << "Connect to " << (*s) << std::endl;
00283         serviceSock.open();
00284         serviceSock.setTTL(8);
00285 
00286         // set interface
00287         if(!getServiceInterface().empty())
00288         {
00289             serviceSock.setMCastInterface(
00290                 SocketAddress(getServiceInterface().c_str()));
00291         }
00292 
00293         while(retry)
00294         {
00295             try
00296             {
00297                 // update progress
00298                 if(_connectionFP != NULL)
00299                 {
00300                     std::string message;
00301                     message += "Connecting:" + *s; 
00302                     if(!_connectionFP(message, progress))
00303                     {
00304                         serviceSock.close();
00305                         throw AsyncCancel();
00306                     }
00307                 }
00308 
00309                 // try to connect with the servers name
00310                 try 
00311                 {
00312                     if(directConnect)
00313                     {
00314                         channel = connection->connectPoint(*s,0.5);
00315                         if(channel >= 0) {
00316                             retry=false;
00317                             SINFO << "Connected with address:" << *s << std::endl;
00318                             break;
00319                         }
00320                     }
00321                 }
00322                 catch(...)
00323                 {
00324                 }
00325                 // find server
00326                 msg.clear();
00327                 msg.putString(*s);
00328                 msg.putString(getConnectionType());
00329                     
00330                 if(_sfServiceAddress.getValue().size() != 0)
00331                 {
00332                     SINFO << "send request to:" << 
00333                         _sfServiceAddress.getValue()
00334                           << std::endl;
00335                     serviceSock.sendTo(
00336                         msg,SocketAddress(
00337                             _sfServiceAddress.getValue().c_str(),
00338                             getServicePort()));
00339                 }
00340                 SINFO << "send request to:" 
00341                       << SocketAddress(SocketAddress::BROADCAST,
00342                                        getServicePort()).getHost().c_str()
00343                       << std::endl;
00344                 serviceSock.sendTo(
00345                     msg,SocketAddress(SocketAddress::BROADCAST,
00346                                       getServicePort()));
00347                 if(serviceSock.waitReadable(0.1))
00348                 {
00349                     SocketAddress from;
00350                     serviceSock.recvFrom(msg,from);
00351                     msg.getString(respServer);
00352                     msg.getString(respAddress);
00353                     if(respServer == *s)
00354                     {
00355                         GroupSockConnection *pointSock =
00356                             dynamic_cast<GroupSockConnection*> (connection);
00357                         if(pointSock)
00358                         {
00359                             /* for all socket connections ignore the
00360                                incomming host and use the host from
00361                                the last response. */
00362                             char port[16];
00363                             if(sscanf(respAddress.c_str(),
00364                                       "%*[^:]:%15s",port) == 1)
00365                                 respAddress = from.getHost() + ":" + port;
00366                         }
00367                         SINFO << "Found at address " << respAddress << std::endl;
00368                         // connect to server
00369                         channel = connection->connectPoint(respAddress);
00370                         if(channel >= 0)
00371                             retry=false;
00372                     }
00373                 }
00374             }
00375             catch(AsyncCancel &)
00376             {
00377                 throw;
00378             }
00379             catch(OSG_STDEXCEPTION_NAMESPACE::exception &e)
00380             {
00381                 SINFO << e.what() << std::endl;
00382             }
00383         }
00384         serviceSock.close();
00385         progress += progressStep;
00386     }
00387     // determine byte order
00388     UInt8 serverLittleEndian;
00389     UInt8 forceNetworkOrder=false;
00390 #if BYTE_ORDER == LITTLE_ENDIAN
00391     UInt8 littleEndian = true;
00392 #else
00393     UInt8 littleEndian = false;
00394 #endif
00395     for(UInt32 i=0;i<getServers().size();++i)
00396     {
00397         channel = connection->selectChannel();
00398         connection->subSelection(channel);
00399         connection->getValue(serverLittleEndian);
00400         if(serverLittleEndian != littleEndian)
00401         {
00402             forceNetworkOrder=true;
00403         }
00404     }
00405     connection->resetSelection();
00406     // tell the servers the encoding mode
00407     connection->putValue(forceNetworkOrder);
00408     connection->flush();
00409     connection->setNetworkOrder((forceNetworkOrder != 0));
00410     if(forceNetworkOrder)
00411     {
00412         SINFO << "Run clustering in network order mode" << std::endl;
00413     }
00414     // inform connection finished
00415     if(_connectionFP != NULL)
00416         _connectionFP("ok", 1.0);
00417 }

void ClusterWindow::render ( RenderActionBase action = NULL  )  [virtual]

Reimplemented from osg::Window.

Definition at line 444 of file OSGClusterWindow.cpp.

References activate(), frameExit(), frameInit(), renderAllViewports(), and swap().

00445 {
00446     activate();
00447     frameInit();
00448     renderAllViewports(action);
00449     swap();
00450     frameExit();
00451 }

void ClusterWindow::renderAllViewports ( RenderActionBase action = NULL  )  [virtual]

Reimplemented from osg::Window.

Definition at line 469 of file OSGClusterWindow.cpp.

References clientRender(), and getNetwork().

Referenced by render().

00470 {
00471     if(getNetwork()->getMainConnection() && getNetwork()->getAspect())
00472     {
00473         clientRender(action);
00474     }
00475 }

void ClusterWindow::frameInit ( void   )  [virtual]

Reimplemented from osg::Window.

Definition at line 477 of file OSGClusterWindow.cpp.

References _firstFrame, osg::beginEditCP(), osg::ChangeList::clearAll(), clientInit(), clientPreSync(), osg::endEditCP(), osg::ClusterWindowBase::FrameCountFieldMask, osg::ClusterNetwork::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ClusterWindowBase::getFrameCount(), osg::ClusterNetwork::getMainConnection(), getNetwork(), osg::ChangeList::merge(), osg::RemoteAspect::sendSync(), and osg::ClusterWindowBase::setFrameCount().

Referenced by render().

00478 {
00479     ClusterWindowPtr ptr(this);
00480     Connection   *connection  =getNetwork()->getMainConnection();
00481     RemoteAspect *remoteAspect=getNetwork()->getAspect();
00482 
00483     if(remoteAspect && connection)
00484     {
00485         if(_firstFrame)
00486         {
00487             beginEditCP(ptr,ClusterWindow::FrameCountFieldMask);
00488             setFrameCount(0);
00489             endEditCP(ptr,ClusterWindow::FrameCountFieldMask);
00490             // send sync
00491             remoteAspect->sendSync(*connection);
00492             ChangeList cl;
00493             cl.clearAll();
00494             cl.merge(*Thread::getCurrentChangeList());
00495             Thread::getCurrentChangeList()->clearAll();
00496             // init client window
00497             clientInit();
00498             // last chance to modifie before sync
00499             clientPreSync();
00500             // send sync
00501             remoteAspect->sendSync(*connection);
00502             cl.merge(*Thread::getCurrentChangeList());
00503             Thread::getCurrentChangeList()->clearAll();
00504             Thread::getCurrentChangeList()->merge(cl);
00505             _firstFrame=false;
00506         }
00507         else
00508         {
00509             beginEditCP(ptr,ClusterWindow::FrameCountFieldMask);
00510             getFrameCount()++;
00511             endEditCP(ptr,ClusterWindow::FrameCountFieldMask);
00512             clientPreSync();
00513             remoteAspect->sendSync(*connection);
00514         }
00515     }
00516 }

void ClusterWindow::frameExit ( void   )  [virtual]

Reimplemented from osg::Window.

Definition at line 518 of file OSGClusterWindow.cpp.

Referenced by render().

00519 {
00520 }

bool ClusterWindow::initAsync ( connectioncbfp  fp  ) 

Definition at line 419 of file OSGClusterWindow.cpp.

References _connectionFP, and init().

00420 {
00421     bool result;
00422     connectioncbfp saveFP = _connectionFP;
00423 
00424     _connectionFP = fp;
00425     try 
00426     {
00427         init();
00428         result = true;
00429     }
00430     catch(AsyncCancel &e)
00431     {
00432         result = false;
00433     }
00434     _connectionFP = saveFP;
00435 
00436     return result;
00437 }

void ClusterWindow::setConnectionCB ( connectioncbfp  fp  ) 

Definition at line 439 of file OSGClusterWindow.cpp.

References _connectionFP.

00440 {
00441     _connectionFP = fp;
00442 }

ClusterNetwork * ClusterWindow::getNetwork ( void   ) 

StatCollector * osg::ClusterWindow::getStatistics ( void   )  const [inline]

Definition at line 46 of file OSGClusterWindow.inl.

References _statistics.

00047 {
00048     return _statistics;
00049 }

void ClusterWindow::setStatistics ( StatCollector stat  ) 

Definition at line 525 of file OSGClusterWindow.cpp.

References _statistics, osg::ClusterNetwork::getAspect(), getNetwork(), and osg::RemoteAspect::setStatistics().

00526 {
00527     _statistics = statistics;
00528     if(getNetwork()->getAspect())
00529         getNetwork()->getAspect()->setStatistics(statistics);
00530 }

bool ClusterWindow::loadCalibration ( std::istream &  in  ) 

load color and projection calibration file from xml

Definition at line 537 of file OSGClusterWindow.cpp.

References osg::addRefCP(), osg::beginEditCP(), osg::ClusterWindowBase::CalibrationFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::clear(), osg::DisplayCalibrationBase::create(), osg::endEditCP(), osg::ClusterWindowBase::getCalibration(), osg::MField< FieldTypeT, fieldNameSpace >::push_back(), osg::Color3< ValueTypeT >::setValue(), osg::PointInterface< ValueTypeT, StorageInterfaceT >::setValueFromCString(), and SFATAL.

00538 {
00539     ClusterWindowPtr ptr(this);
00540     DisplayCalibrationPtr calibPtr;
00541     xmlpp::xmlcontextptr ctxptr(new xmlpp::xmlcontext());
00542     xmlpp::xmldocument doc(ctxptr);
00543     xmlpp::xmlnodelist servers;
00544     xmlpp::xmlnodelist colors;
00545     xmlpp::xmlnodelist points;
00546     xmlpp::xmlnodelist rows;
00547     xmlpp::xmlnodelist::const_iterator sI;
00548     xmlpp::xmlnodelist::const_iterator nI;
00549     xmlpp::xmlnodelist::const_iterator cI;
00550     xmlpp::xmlnodelist::const_iterator rI;
00551     xmlpp::xmlnodelist::const_iterator pI;
00552     xmlpp::xmlstring serverTag("server");
00553     xmlpp::xmlstring colorTag("color");
00554     xmlpp::xmlstring rowTag("row");
00555     xmlpp::xmlstring pointTag("point");
00556     Matrix colorMatrix;
00557     Real32 gamma;
00558     xmlpp::xmlnodeptr nP;
00559 
00560     getCalibration().clear();
00561     try
00562     {
00563         doc.load(in,ctxptr);
00564         servers = doc.select_nodes(serverTag);
00565         // loop through servers
00566         for(sI = servers.begin() ; sI != servers.end(); ++sI)
00567         {
00568             // create new calibration structure
00569             calibPtr = DisplayCalibration::create();
00570             beginEditCP(calibPtr);
00571             addRefCP(calibPtr);
00572             beginEditCP(ptr,CalibrationFieldMask);
00573             getCalibration().push_back(calibPtr);
00574             endEditCP(ptr,CalibrationFieldMask);
00575 
00576             // server name
00577             if((*sI)->get_attrmap().count("name"))
00578                 calibPtr->setServer((*sI)->get_attrmap()["name"]);
00579             
00580             // loop over children
00581             for(nI  = (*sI)->get_nodelist().begin();
00582                 nI != (*sI)->get_nodelist().end(); 
00583                 ++nI) 
00584             {
00585                 if((*nI)->get_name() == "colormatrix")
00586                 {
00587                     nP = (*nI);
00588                     do
00589                         nP = nP->get_nodelist().front();
00590                     while (nP->get_nodelist().size() == 1);
00591                     if(nP->get_type() == xmlpp::xml_nt_cdata) 
00592                         calibPtr->getColorMatrix().setValue(nP->get_cdata().c_str());
00593                 }
00594 
00595                 if((*nI)->get_name() == "scaledown")
00596                 {
00597                     nP = (*nI);
00598                     do
00599                         nP = nP->get_nodelist().front();
00600                     while (nP->get_nodelist().size() == 1);
00601                     if(nP->get_type() == xmlpp::xml_nt_cdata) 
00602                         sscanf(nP->get_cdata().c_str(),"%f",&calibPtr->getScaleDown());
00603                 }
00604 
00605                 if((*nI)->get_name() == "gamma")
00606                 {
00607                     nP = (*nI);
00608                     do
00609                         nP = nP->get_nodelist().front();
00610                     while (nP->get_nodelist().size() == 1);
00611                     if(nP->get_type() == xmlpp::xml_nt_cdata) 
00612                         sscanf(nP->get_cdata().c_str(),"%f",&calibPtr->getGamma());
00613                 }
00614 
00615                 if((*nI)->get_name() == "gammaramp")
00616                 {
00617                     colors = (*nI)->select_nodes(colorTag);
00618                     for(cI = colors.begin() ; cI != colors.end(); ++cI)
00619                     {   
00620                         nP = (*cI);
00621                         do
00622                             nP = nP->get_nodelist().front();
00623                         while (nP->get_nodelist().size() == 1);
00624                         if(nP->get_type() == xmlpp::xml_nt_cdata) 
00625                         {
00626                             Color3f col;
00627                             col.setValue(nP->get_cdata().c_str());
00628                             calibPtr->getGammaRamp().push_back(col);
00629                         }
00630                     }
00631                 }
00632                 if((*nI)->get_name() == "grid")
00633                 {
00634                     rows = (*nI)->select_nodes(rowTag);
00635                     calibPtr->getGridHeight() = 0;
00636                     for(rI = rows.begin() ; rI != rows.end(); ++rI)
00637                     {   
00638                         calibPtr->getGridHeight()++;
00639                         calibPtr->getGridWidth() = 0;
00640                         points = (*rI)->select_nodes(pointTag);
00641                         for(pI = points.begin() ; pI != points.end(); ++pI)
00642                         {   
00643                             nP = (*pI);
00644                             do
00645                                 nP = nP->get_nodelist().front();
00646                             while (nP->get_nodelist().size() == 1);
00647                             if(nP->get_type() == xmlpp::xml_nt_cdata) 
00648                             {
00649                                 Vec2f pos;
00650                                 calibPtr->getGridWidth()++;
00651                                 pos.setValueFromCString(nP->get_cdata().c_str());
00652                                 calibPtr->getGrid().push_back(pos);
00653                             }
00654                         }
00655                     }
00656                 }
00657             }
00658             endEditCP(calibPtr);
00659         }
00660     }
00661     catch (xmlpp::xmlerror e)
00662     {
00663         // parser error
00664         xmlpp::xmllocation where( ctxptr->get_location() );
00665         xmlpp::xmlstring errmsg( e.get_strerror() );
00666         SFATAL << "XML error line " << where.get_line() << " "
00667                << "at position " << where.get_pos()
00668                << ": error: " << errmsg.c_str()
00669                << std::endl;
00670         return false;
00671     }
00672     return true;
00673 }

bool ClusterWindow::saveCalibration ( std::ostream &  out  ) 

save color and projection calibration file to xml

Definition at line 677 of file OSGClusterWindow.cpp.

References osg::ClusterWindowBase::getCalibration(), and osg::MField< FieldTypeT, fieldNameSpace >::size().

00678 {
00679     DisplayCalibrationPtr calibPtr;
00680     UInt32 c;
00681     UInt32 color,row,col,pos;
00682 
00683     out << "<?xml version=\"1.0\"?>\n"
00684         << "<displaycalibration>\n";
00685     for(c=0 ; c<getCalibration().size() ; ++c)
00686     {
00687         calibPtr = getCalibration()[c];
00688         out << "<server name=\"" << calibPtr->getServer() << "\">\n";
00689         out << "<gamma>" << calibPtr->getGamma() << "</gamma>\n";
00690         out << "<scaledown>" << calibPtr->getScaleDown() << "</scaledown>\n";
00691         out << "<colormatrix>\n"
00692             << calibPtr->getColorMatrix()
00693             << "</colormatrix>\n";
00694         out << "<gammaramp>\n";
00695         for(color=0 ; color< calibPtr->getGammaRamp().size() ; ++color)
00696             out << "<color>" 
00697                 << calibPtr->getGammaRamp()[color] 
00698                 << "</color>\n";
00699         out << "</gammaramp>\n";
00700         out << "<grid>\n";
00701         for(row=0 ; row< calibPtr->getGridHeight() ; ++row)
00702         {
00703             out << "<row>\n";
00704             for(col=0 ; col< calibPtr->getGridWidth() ; ++col)
00705             {
00706                 pos = row*calibPtr->getGridHeight()+col;
00707                 out << "<point>";
00708                 if(pos < calibPtr->getGrid().size())
00709                     out << calibPtr->getGrid()[pos][0] << " "
00710                         << calibPtr->getGrid()[pos][1];
00711                 else
00712                     out << col << " " << row;
00713                 out << "</point>\n";
00714             }
00715             out << "</row>\n";
00716         }
00717         out << "</grid>\n";
00718         out << "</server>\n";
00719     }
00720     out << "</displaycalibration>\n";
00721     return true;
00722 }

bool ClusterWindow::loadFilter ( std::istream &  in  ) 

load display filter calibration file from xml

displayfilter server a colordisplayfilter colormatrix mat gamma size (w,h,d) shadingtable color (r,g,b)*n resolutiondisplayfilter downScale distortiondisplayfilter rows cols positions point (x,y)*n server b ...

Definition at line 744 of file OSGClusterWindow.cpp.

References osg::addRefCP(), osg::beginEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::clear(), osg::DistortionDisplayFilterBase::create(), osg::ResolutionDisplayFilterBase::create(), osg::ColorDisplayFilterBase::create(), osg::DisplayFilterForegroundBase::create(), osg::ClusterWindowBase::DirtyFieldMask, osg::endEditCP(), osg::ClusterWindowBase::FilterFieldMask, osg::ClusterWindowBase::getFilter(), osg::MField< FieldTypeT, fieldNameSpace >::push_back(), osg::ClusterWindowBase::setDirty(), osg::Color3< ValueTypeT >::setValue(), osg::PointInterface< ValueTypeT, StorageInterfaceT >::setValueFromCString(), and SFATAL.

00745 {
00746     ClusterWindowPtr ptr(this);
00747     DisplayFilterForegroundPtr filterFgnd;
00748     ColorDisplayFilterPtr colorFilter;
00749     DistortionDisplayFilterPtr distortionFilter;
00750     ResolutionDisplayFilterPtr resolutionFilter;
00751     xmlpp::xmlcontextptr ctxptr(new xmlpp::xmlcontext());
00752     xmlpp::xmldocument doc(ctxptr);
00753     xmlpp::xmlnodelist servers;
00754     xmlpp::xmlnodelist colors;
00755     xmlpp::xmlnodelist points;
00756     xmlpp::xmlnodelist::const_iterator sI;
00757     xmlpp::xmlnodelist::const_iterator fI;
00758     xmlpp::xmlnodelist::const_iterator nI;
00759     xmlpp::xmlnodelist::const_iterator cI;
00760     xmlpp::xmlnodelist::const_iterator pI;
00761     xmlpp::xmlstring serverTag("server");
00762     xmlpp::xmlstring colorTag("color");
00763     xmlpp::xmlstring pointTag("point");
00764     xmlpp::xmlnodeptr nP;
00765     
00766     beginEditCP(ptr, FilterFieldMask | DirtyFieldMask);
00767         getFilter().clear();
00768         setDirty(true);
00769     endEditCP(ptr, FilterFieldMask | DirtyFieldMask);
00770     
00771     try
00772     {
00773         doc.load(in, ctxptr);
00774         servers = doc.select_nodes(serverTag);
00775         
00776         // loop through servers
00777         for(sI = servers.begin(); sI != servers.end(); ++sI)
00778         {
00779             // create new display filter foreground
00780             filterFgnd = DisplayFilterForeground::create();
00781             addRefCP(filterFgnd);
00782             
00783             beginEditCP(ptr, FilterFieldMask);
00784                 getFilter().push_back(filterFgnd);
00785             endEditCP(ptr, FilterFieldMask);
00786             
00787             beginEditCP(filterFgnd);
00788             
00789             // server name
00790             if((*sI)->get_attrmap().count("name"))
00791                 filterFgnd->setServer((*sI)->get_attrmap()["name"]);
00792             
00793             // loop over outer children, i.e. the filters
00794             for(fI  = (*sI)->get_nodelist().begin();
00795                 fI != (*sI)->get_nodelist().end(); ++fI)
00796             {
00797                 if ((*fI)->get_name() == "colordisplayfilter")
00798                 {
00799                     colorFilter = ColorDisplayFilter::create();
00800                     addRefCP(colorFilter);
00801                     
00802                     filterFgnd->getFilter().push_back(colorFilter);
00803                     
00804                     beginEditCP(colorFilter);
00805                     
00806                     // loop over inner children, i.e. the params
00807                     for(nI  = (*fI)->get_nodelist().begin();
00808                         nI != (*fI)->get_nodelist().end(); ++nI) 
00809                     {
00810                         if((*nI)->get_name() == "colormatrix")
00811                         {
00812                             nP = (*nI);
00813                             do
00814                                 nP = nP->get_nodelist().front();
00815                             while (nP->get_nodelist().size() == 1);
00816                             
00817                             if(nP->get_type() == xmlpp::xml_nt_cdata) 
00818                                 colorFilter->getMatrix().setValue(nP->get_cdata().c_str());
00819                         }
00820                         if((*nI)->get_name() == "gamma")
00821                         {
00822                             nP = (*nI);
00823                             do
00824                                 nP = nP->get_nodelist().front();
00825                             while (nP->get_nodelist().size() == 1);
00826                             
00827                             if(nP->get_type() == xmlpp::xml_nt_cdata) 
00828                                 sscanf(nP->get_cdata().c_str(),"%f",
00829                                     &colorFilter->getGamma());
00830                         }
00831                         if((*nI)->get_name() == "size")
00832                         {
00833                             nP = (*nI);
00834                             do
00835                                 nP = nP->get_nodelist().front();
00836                             while (nP->get_nodelist().size() == 1);
00837                             
00838                             if(nP->get_type() == xmlpp::xml_nt_cdata) 
00839                                 sscanf(nP->get_cdata().c_str(),"%d %d %d",
00840                                     &colorFilter->getWidth(),
00841                                     &colorFilter->getHeight(),
00842                                     &colorFilter->getDepth());
00843                         }
00844                         if((*nI)->get_name() == "shadingtable")
00845                         {
00846                             colors = (*nI)->select_nodes(colorTag);
00847                             
00848                             for(cI = colors.begin(); cI != colors.end(); ++cI)
00849                             {
00850                                 nP = (*cI);
00851                                 do
00852                                     nP = nP->get_nodelist().front();
00853                                 while (nP->get_nodelist().size() == 1);
00854                                 
00855                                 if(nP->get_type() == xmlpp::xml_nt_cdata) 
00856                                 {
00857                                     Color3f col;
00858                                     col.setValue(nP->get_cdata().c_str());
00859                                     colorFilter->getTable().push_back(col);
00860                                 }
00861                             }
00862                         }
00863                     }
00864                     endEditCP(colorFilter);
00865                 } // colordisplayfilter
00866                 
00867                 if ((*fI)->get_name() == "resolutiondisplayfilter")
00868                 {
00869                     resolutionFilter = ResolutionDisplayFilter::create();
00870                     addRefCP(resolutionFilter);
00871                     
00872                     filterFgnd->getFilter().push_back(resolutionFilter);
00873                     
00874                     beginEditCP(resolutionFilter);
00875                     
00876                     for(nI  = (*fI)->get_nodelist().begin();
00877                         nI != (*fI)->get_nodelist().end(); ++nI) 
00878                     {
00879                         if((*nI)->get_name() == "downscale")
00880                         {
00881                             nP = (*nI);
00882                             do
00883                                 nP = nP->get_nodelist().front();
00884                             while (nP->get_nodelist().size() == 1);
00885                             
00886                             if(nP->get_type() == xmlpp::xml_nt_cdata) 
00887                                 sscanf(nP->get_cdata().c_str(),"%f",
00888                                     &resolutionFilter->getDownScale());
00889                         }
00890                     }
00891                     endEditCP(resolutionFilter);
00892                 } // resolutiondisplayfilter
00893                 
00894                 if ((*fI)->get_name() == "distortiondisplayfilter")
00895                 {
00896                     distortionFilter = DistortionDisplayFilter::create();
00897                     addRefCP(distortionFilter);
00898                     
00899                     filterFgnd->getFilter().push_back(distortionFilter);
00900                     
00901                     beginEditCP(distortionFilter);
00902                     
00903                     for(nI  = (*fI)->get_nodelist().begin();
00904                         nI != (*fI)->get_nodelist().end(); ++nI) 
00905                     {
00906                         if((*nI)->get_name() == "rows")
00907                         {
00908                             nP = (*nI);
00909                             do
00910                                 nP = nP->get_nodelist().front();
00911                             while (nP->get_nodelist().size() == 1);
00912                             
00913                             if(nP->get_type() == xmlpp::xml_nt_cdata) 
00914                                 sscanf(nP->get_cdata().c_str(),"%d",
00915                                     &distortionFilter->getRows());
00916                         }
00917                         if((*nI)->get_name() == "cols")
00918                         {
00919                             nP = (*nI);
00920                             do
00921                                 nP = nP->get_nodelist().front();
00922                             while (nP->get_nodelist().size() == 1);
00923                             
00924                             if(nP->get_type() == xmlpp::xml_nt_cdata) 
00925                                 sscanf(nP->get_cdata().c_str(),"%d",
00926                                     &distortionFilter->getColumns());
00927                         }
00928                         if((*nI)->get_name() == "positions")
00929                         {
00930                             points = (*nI)->select_nodes(pointTag);
00931                             
00932                             for(pI = points.begin(); pI != points.end(); ++pI)
00933                             {   
00934                                 nP = (*pI);
00935                                 do
00936                                     nP = nP->get_nodelist().front();
00937                                 while (nP->get_nodelist().size() == 1);
00938                                 
00939                                 if(nP->get_type() == xmlpp::xml_nt_cdata) 
00940                                 {
00941                                     Vec2f pos;
00942                                     pos.setValueFromCString(nP->get_cdata().c_str());
00943                                     distortionFilter->getPositions().push_back(pos);
00944                                 }
00945                             }
00946                         }
00947                     }
00948                     endEditCP(distortionFilter);
00949                 } // distortiondisplayfilter
00950             }
00951             
00952             endEditCP(filterFgnd);
00953         } // servers
00954     }
00955     catch (xmlpp::xmlerror e)
00956     {
00957         // parser error
00958         xmlpp::xmllocation where( ctxptr->get_location() );
00959         xmlpp::xmlstring errmsg( e.get_strerror() );
00960         SFATAL << "XML error line " << where.get_line() << " "
00961                << "at position " << where.get_pos()
00962                << ": error: " << errmsg.c_str()
00963                << std::endl;
00964         return false;
00965     }
00966     return true;
00967 }

bool ClusterWindow::updateFilter ( WindowPtr  window,
UInt32  id,
RenderActionBase action 
)

load color and projection calibration file from xml

Definition at line 1045 of file OSGClusterWindow.cpp.

References osg::beginEditCP(), osg::ClusterWindowBase::DirtyFieldMask, osg::endEditCP(), osg::ViewportBase::ForegroundsFieldMask, osg::ClusterWindowBase::getDirty(), osg::ClusterWindowBase::getFilter(), osg::ClusterWindowBase::getServers(), p, osg::ClusterWindowBase::setDirty(), and osg::MField< FieldTypeT, fieldNameSpace >::size().

Referenced by serverRender().

01047 {
01048     bool found = false;
01049 
01050     if (!getFilter().empty() && getDirty())
01051     {
01052         UInt32 c, p;
01053         
01054         ClusterWindowPtr ptr(this);
01055         
01056         beginEditCP(ptr, DirtyFieldMask);
01057             setDirty(false);
01058         endEditCP(ptr, DirtyFieldMask);
01059         
01060         // for all viewports
01061         for(p=0; p<window->getPort().size(); ++p) 
01062         {
01063             // search filter foregrounds
01064             for(c=0; c<getFilter().size(); ++c)
01065             {
01066                 std::string name = getServers()[id];
01067                 char portName[64];
01068                 
01069                 if(window->getPort().size() > 1)
01070                 {
01071                     sprintf(portName,"[%d]",p);
01072                     name = name + portName;
01073                 }
01074                 
01075                 DisplayFilterForegroundPtr filterFgnd = getFilter()[c];
01076                 
01077                 if(filterFgnd->getServer() == name)
01078                 {
01079                     beginEditCP(window->getPort()[p], Viewport::ForegroundsFieldMask);
01080                     
01081                     // first remove old filters, if any
01082                     for (Int32 n=window->getPort()[p]->getForegrounds().size(), j=n-1; 
01083                             j>=0; j--) 
01084                     {
01085                         MFForegroundPtr::iterator fgndIt = 
01086                             window->getPort()[p]->getForegrounds().begin() + j;
01087                         if ( (*fgndIt) == filterFgnd )
01088                             window->getPort()[p]->getForegrounds().erase(fgndIt);
01089                     }
01090                     
01091                     // then add new one
01092                     window->getPort()[p]->getForegrounds().push_back(filterFgnd);
01093                     
01094                     endEditCP(window->getPort()[p], Viewport::ForegroundsFieldMask);
01095 
01096                     found = true;
01097                     break;
01098                 }
01099             }
01100         }
01101     }
01102 
01103     return found;
01104 }

void ClusterWindow::clientInit ( void   )  [protected, virtual]

init client window. In a derived cluster window this method is called before the first sync with the rendering servers. There is no default action.

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 983 of file OSGClusterWindow.cpp.

Referenced by osg::SortFirstWindow::clientInit(), and frameInit().

00984 {
00985 }

void ClusterWindow::clientPreSync ( void   )  [protected, virtual]

client frame before sync

In a derived cluster window this method is called before sync with the rendering servers. Default aciton is to activate and init the client window.

Reimplemented in osg::SortFirstWindow.

Definition at line 994 of file OSGClusterWindow.cpp.

References osg::ClusterWindowBase::getClientWindow(), and osg::NullFC.

Referenced by osg::SortFirstWindow::clientPreSync(), and frameInit().

00995 {
00996     if(getClientWindow() != NullFC)
00997     {
00998         getClientWindow()->activate();
00999         getClientWindow()->frameInit();
01000     }
01001 }

void ClusterWindow::clientRender ( RenderActionBase action  )  [protected, virtual]

initiate client rendering

In a derived cluster window this method is called after the sync with all rendering servers. Default aciton is to render all viewports of the client window.

Reimplemented in osg::SortFirstWindow.

Definition at line 1010 of file OSGClusterWindow.cpp.

References osg::ClusterWindowBase::getClientWindow(), and osg::NullFC.

Referenced by renderAllViewports().

01011 {
01012     if(getClientWindow() != NullFC)
01013     {
01014         getClientWindow()->renderAllViewports( action );
01015     }
01016 }

void ClusterWindow::clientSwap ( void   )  [protected, virtual]

swap client window

In a derived cluster window this method is called after rendering Default action is to swap the local client window.

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 1024 of file OSGClusterWindow.cpp.

References osg::beginEditCP(), osg::ClusterWindowBase::DirtyFieldMask, osg::endEditCP(), osg::ClusterWindowBase::getClientWindow(), osg::ClusterWindowBase::getDirty(), osg::NullFC, and osg::ClusterWindowBase::setDirty().

Referenced by osg::SortFirstWindow::clientSwap(), osg::MultiDisplayWindow::clientSwap(), and swap().

01025 {
01026     if(getClientWindow() != NullFC)
01027     {
01028         getClientWindow()->swap( );
01029         getClientWindow()->frameExit();
01030     }
01031 
01032     if (getDirty())
01033     {
01034         ClusterWindowPtr ptr(this);
01035         
01036         beginEditCP(ptr, DirtyFieldMask);
01037             setDirty(false);
01038         endEditCP(ptr, DirtyFieldMask);
01039     }
01040 }

void ClusterWindow::serverInit ( WindowPtr  window,
UInt32  id 
) [protected, virtual]

initialise the cluster window on the server side

This method is called after the first sync.

Parameters:
window server render window
id server id

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 1114 of file OSGClusterWindow.cpp.

01116 {
01117 }

void ClusterWindow::serverRender ( WindowPtr  window,
UInt32  id,
RenderActionBase action 
) [protected, virtual]

render server window

This method is called after synchronisation of all changes with the rendering client. Default action is to render all viewports with the given action

!param window server render window !param id server id !param action action

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 1130 of file OSGClusterWindow.cpp.

References osg::ClusterWindowBase::getCalibration(), osg::AttachmentContainerPtr::getCPtr(), osg::ClusterWindowBase::getServers(), osg::NullFC, p, osg::DrawActionBase::setWindow(), osg::MField< FieldTypeT, fieldNameSpace >::size(), and updateFilter().

Referenced by osg::SortFirstWindow::serverRender(), and osg::MultiDisplayWindow::serverRender().

01133 {
01134     updateFilter(window, id, action);
01135     
01136     RenderOptionsPtr ro;
01137 
01138     window->activate();
01139     window->frameInit();
01140 
01141     RenderAction *ract = dynamic_cast<RenderAction *>(action);
01142     if(ract != NULL)
01143     {
01144         MFViewportPtr::iterator       portIt  = window->getPort().begin();
01145         MFViewportPtr::const_iterator portEnd = window->getPort().end();
01146         // try to find option as an attachment of window
01147         OSG::RenderOptionsPtr winRo = OSG::RenderOptionsPtr::dcast(
01148             window->findAttachment(OSG::RenderOptions::getClassType()));
01149         ract->setWindow(window.getCPtr());
01150         while(portIt != portEnd)
01151         {
01152             // try to find option an attachment at the viewport
01153             OSG::RenderOptionsPtr vpRo = OSG::RenderOptionsPtr::dcast(
01154                 (*portIt)->findAttachment(OSG::RenderOptions::getClassType()));
01155             // try to find option an attachment at the root node
01156             OSG::RenderOptionsPtr rootRo = NullFC;
01157             if((*portIt)->getRoot() != NullFC)
01158             {
01159                 rootRo = OSG::RenderOptionsPtr::dcast(
01160                     (*portIt)->getRoot()->findAttachment(OSG::RenderOptions::getClassType()));
01161             }
01162             if(rootRo != NullFC)
01163                 ro = rootRo;
01164             else
01165                 if(vpRo != NullFC)
01166                     ro = vpRo;
01167                 else
01168                     ro = winRo;
01169             if(ro != NullFC)
01170                 ro->activateOptions(ract);
01171             (*portIt)->render(ract);
01172             ++portIt;
01173         }
01174     } else {
01175         if(action)
01176             window->renderAllViewports(action);
01177     }
01178 
01179     // do calibration
01180     DisplayCalibrationPtr calibPtr=NullFC;
01181     UInt32 c, p;
01182     
01183     // for all viewports
01184     for(p = 0 ; p<window->getPort().size() ; ++p) 
01185     {
01186         // search calibration 
01187         for(c=0 ; c<getCalibration().size() ; ++c)
01188         {
01189             std::string name = getServers()[id];
01190             char portName[64];
01191             if(window->getPort().size() > 1)
01192             {
01193                 sprintf(portName,"[%d]",p);
01194                 name = name + portName;
01195             }
01196             if(getCalibration()[c]->getServer() == name)
01197             {
01198                 calibPtr = getCalibration()[c];
01199                 calibPtr->calibrate(window->getPort()[p],action);
01200                 break;
01201             }
01202         }
01203     }
01204 }

void ClusterWindow::serverSwap ( WindowPtr  window,
UInt32  id 
) [protected, virtual]

swap server window

serverSwap is called after rendering. Default action is to swap the rendering window.

!param window server render window !param id server id !param connection connection to client

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 1215 of file OSGClusterWindow.cpp.

Referenced by osg::MultiDisplayWindow::serverSwap().

01217 {
01218     window->swap();
01219     window->frameExit();
01220 }

void ClusterWindow::initMethod ( void   )  [static, private]

initialize the static features of the class, e.g. action callbacks

Reimplemented from osg::Window.

Reimplemented in osg::MultiDisplayWindow, and osg::SortFirstWindow.

Definition at line 1274 of file OSGClusterWindow.cpp.

01275 {
01276 }

void osg::ClusterWindow::operator= ( const ClusterWindow source  )  [private]

osg::FieldContainerType & osg::ClusterWindowBase::getClassType ( void   )  [inline, static, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 58 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_type.

Referenced by osg::ClusterWindowBase::create(), and osg::ClusterServer::start().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::ClusterWindowBase::getClassTypeId ( void   )  [inline, static, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 65 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_type, and osg::TypeBase::getId().

00066 {
00067     return _type.getId(); 
00068 } 

FieldContainerType & osg::ClusterWindowBase::getType ( void   )  [virtual, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 271 of file OSGClusterWindowBase.cpp.

References osg::ClusterWindowBase::_type.

00272 {
00273     return _type; 
00274 } 

const FieldContainerType & osg::ClusterWindowBase::getType ( void   )  const [virtual, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 276 of file OSGClusterWindowBase.cpp.

References osg::ClusterWindowBase::_type.

00277 {
00278     return _type;
00279 } 

UInt32 osg::ClusterWindowBase::getContainerSize ( void   )  const [virtual, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 291 of file OSGClusterWindowBase.cpp.

00292 { 
00293     return sizeof(ClusterWindow); 
00294 }

MFString * osg::ClusterWindowBase::getMFServers ( void   )  [inline, inherited]

Definition at line 101 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfServers.

00102 {
00103     return &_mfServers;
00104 }

SFString * osg::ClusterWindowBase::getSFConnectionType ( void   )  [inline, inherited]

Definition at line 108 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionType.

00109 {
00110     return &_sfConnectionType;
00111 }

SFString * osg::ClusterWindowBase::getSFConnectionInterface ( void   )  [inline, inherited]

Definition at line 115 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionInterface.

00116 {
00117     return &_sfConnectionInterface;
00118 }

SFString * osg::ClusterWindowBase::getSFConnectionDestination ( void   )  [inline, inherited]

Definition at line 122 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionDestination.

00123 {
00124     return &_sfConnectionDestination;
00125 }

SFString * osg::ClusterWindowBase::getSFConnectionParams ( void   )  [inline, inherited]

Definition at line 129 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionParams.

00130 {
00131     return &_sfConnectionParams;
00132 }

SFUInt32 * osg::ClusterWindowBase::getSFServicePort ( void   )  [inline, inherited]

Definition at line 136 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServicePort.

00137 {
00138     return &_sfServicePort;
00139 }

SFString * osg::ClusterWindowBase::getSFServiceAddress ( void   )  [inline, inherited]

Definition at line 143 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServiceAddress.

00144 {
00145     return &_sfServiceAddress;
00146 }

SFString * osg::ClusterWindowBase::getSFServiceInterface ( void   )  [inline, inherited]

Definition at line 150 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServiceInterface.

00151 {
00152     return &_sfServiceInterface;
00153 }

SFWindowPtr * osg::ClusterWindowBase::getSFClientWindow ( void   )  [inline, inherited]

Definition at line 157 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfClientWindow.

00158 {
00159     return &_sfClientWindow;
00160 }

SFUInt32 * osg::ClusterWindowBase::getSFInterleave ( void   )  [inline, inherited]

Definition at line 164 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfInterleave.

00165 {
00166     return &_sfInterleave;
00167 }

SFUInt32 * osg::ClusterWindowBase::getSFFrameCount ( void   )  [inline, inherited]

Definition at line 171 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfFrameCount.

00172 {
00173     return &_sfFrameCount;
00174 }

SFImageComposerPtr * osg::ClusterWindowBase::getSFComposer ( void   )  [inline, inherited]

Definition at line 178 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfComposer.

00179 {
00180     return &_sfComposer;
00181 }

MFString * osg::ClusterWindowBase::getMFAutostart ( void   )  [inline, inherited]

Definition at line 185 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfAutostart.

00186 {
00187     return &_mfAutostart;
00188 }

MFDisplayCalibrationPtr * osg::ClusterWindowBase::getMFCalibration ( void   )  [inline, inherited]

Definition at line 192 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfCalibration.

00193 {
00194     return &_mfCalibration;
00195 }

MFDisplayFilterForegroundPtr * osg::ClusterWindowBase::getMFFilter ( void   )  [inline, inherited]

Definition at line 199 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfFilter.

00200 {
00201     return &_mfFilter;
00202 }

std::string & osg::ClusterWindowBase::getConnectionType ( void   )  [inline, inherited]

Definition at line 214 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionType, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by init().

00215 {
00216     return _sfConnectionType.getValue();
00217 }

const std::string & osg::ClusterWindowBase::getConnectionType ( void   )  const [inline, inherited]

Definition at line 221 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionType, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00222 {
00223     return _sfConnectionType.getValue();
00224 }

std::string & osg::ClusterWindowBase::getConnectionInterface ( void   )  [inline, inherited]

Definition at line 235 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionInterface, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by init().

00236 {
00237     return _sfConnectionInterface.getValue();
00238 }

const std::string & osg::ClusterWindowBase::getConnectionInterface ( void   )  const [inline, inherited]

std::string & osg::ClusterWindowBase::getConnectionDestination ( void   )  [inline, inherited]

Definition at line 256 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionDestination, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by init().

00257 {
00258     return _sfConnectionDestination.getValue();
00259 }

const std::string & osg::ClusterWindowBase::getConnectionDestination ( void   )  const [inline, inherited]

std::string & osg::ClusterWindowBase::getConnectionParams ( void   )  [inline, inherited]

Definition at line 277 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionParams, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by init().

00278 {
00279     return _sfConnectionParams.getValue();
00280 }

const std::string & osg::ClusterWindowBase::getConnectionParams ( void   )  const [inline, inherited]

UInt32 & osg::ClusterWindowBase::getServicePort ( void   )  [inline, inherited]

Definition at line 298 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServicePort, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by init().

00299 {
00300     return _sfServicePort.getValue();
00301 }

const UInt32 & osg::ClusterWindowBase::getServicePort ( void   )  const [inline, inherited]

Definition at line 305 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServicePort, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00306 {
00307     return _sfServicePort.getValue();
00308 }

std::string & osg::ClusterWindowBase::getServiceAddress ( void   )  [inline, inherited]

Definition at line 319 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServiceAddress, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00320 {
00321     return _sfServiceAddress.getValue();
00322 }

const std::string & osg::ClusterWindowBase::getServiceAddress ( void   )  const [inline, inherited]

Definition at line 326 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServiceAddress, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00327 {
00328     return _sfServiceAddress.getValue();
00329 }

std::string & osg::ClusterWindowBase::getServiceInterface ( void   )  [inline, inherited]

Definition at line 340 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfServiceInterface, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by init().

00341 {
00342     return _sfServiceInterface.getValue();
00343 }

const std::string & osg::ClusterWindowBase::getServiceInterface ( void   )  const [inline, inherited]

WindowPtr & osg::ClusterWindowBase::getClientWindow ( void   )  [inline, inherited]

const WindowPtr & osg::ClusterWindowBase::getClientWindow ( void   )  const [inline, inherited]

Definition at line 368 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfClientWindow, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00369 {
00370     return _sfClientWindow.getValue();
00371 }

UInt32 & osg::ClusterWindowBase::getInterleave ( void   )  [inline, inherited]

const UInt32 & osg::ClusterWindowBase::getInterleave ( void   )  const [inline, inherited]

Definition at line 389 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfInterleave, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00390 {
00391     return _sfInterleave.getValue();
00392 }

UInt32 & osg::ClusterWindowBase::getFrameCount ( void   )  [inline, inherited]

Definition at line 403 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfFrameCount, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by frameInit().

00404 {
00405     return _sfFrameCount.getValue();
00406 }

const UInt32 & osg::ClusterWindowBase::getFrameCount ( void   )  const [inline, inherited]

Definition at line 410 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfFrameCount, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00411 {
00412     return _sfFrameCount.getValue();
00413 }

ImageComposerPtr & osg::ClusterWindowBase::getComposer ( void   )  [inline, inherited]

Definition at line 424 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfComposer, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00425 {
00426     return _sfComposer.getValue();
00427 }

const ImageComposerPtr & osg::ClusterWindowBase::getComposer ( void   )  const [inline, inherited]

Definition at line 431 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfComposer, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00432 {
00433     return _sfComposer.getValue();
00434 }

std::string & osg::ClusterWindowBase::getServers ( const UInt32  index  )  [inline, inherited]

Definition at line 467 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfServers.

00468 {
00469     return _mfServers[index];
00470 }

MFString & osg::ClusterWindowBase::getServers ( void   )  [inline, inherited]

const MFString & osg::ClusterWindowBase::getServers ( void   )  const [inline, inherited]

Definition at line 481 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfServers.

00482 {
00483     return _mfServers;
00484 }

std::string & osg::ClusterWindowBase::getAutostart ( const UInt32  index  )  [inline, inherited]

Definition at line 488 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfAutostart.

00489 {
00490     return _mfAutostart[index];
00491 }

MFString & osg::ClusterWindowBase::getAutostart ( void   )  [inline, inherited]

Definition at line 495 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfAutostart.

Referenced by init().

00496 {
00497     return _mfAutostart;
00498 }

const MFString & osg::ClusterWindowBase::getAutostart ( void   )  const [inline, inherited]

Definition at line 502 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfAutostart.

00503 {
00504     return _mfAutostart;
00505 }

DisplayCalibrationPtr & osg::ClusterWindowBase::getCalibration ( const UInt32  index  )  [inline, inherited]

Definition at line 509 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfCalibration.

00510 {
00511     return _mfCalibration[index];
00512 }

MFDisplayCalibrationPtr & osg::ClusterWindowBase::getCalibration ( void   )  [inline, inherited]

Definition at line 516 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfCalibration.

Referenced by loadCalibration(), saveCalibration(), and serverRender().

00517 {
00518     return _mfCalibration;
00519 }

const MFDisplayCalibrationPtr & osg::ClusterWindowBase::getCalibration ( void   )  const [inline, inherited]

Definition at line 523 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfCalibration.

00524 {
00525     return _mfCalibration;
00526 }

DisplayFilterForegroundPtr & osg::ClusterWindowBase::getFilter ( const UInt32  index  )  [inline, inherited]

Definition at line 530 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfFilter.

00531 {
00532     return _mfFilter[index];
00533 }

MFDisplayFilterForegroundPtr & osg::ClusterWindowBase::getFilter ( void   )  [inline, inherited]

Definition at line 537 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfFilter.

Referenced by loadFilter(), and updateFilter().

00538 {
00539     return _mfFilter;
00540 }

const MFDisplayFilterForegroundPtr & osg::ClusterWindowBase::getFilter ( void   )  const [inline, inherited]

Definition at line 544 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_mfFilter.

00545 {
00546     return _mfFilter;
00547 }

void osg::ClusterWindowBase::setConnectionType ( const std::string &  value  )  [inline, inherited]

Definition at line 228 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfConnectionType, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

Referenced by init().

00229 {
00230     _sfConnectionType.setValue(value);
00231 }

void osg::ClusterWindowBase::setConnectionInterface ( const std::string &  value  )  [inline, inherited]

void osg::ClusterWindowBase::setConnectionDestination ( const std::string &  value  )  [inline, inherited]

void osg::ClusterWindowBase::setConnectionParams ( const std::string &  value  )  [inline, inherited]

void osg::ClusterWindowBase::setServicePort ( const UInt32 value  )  [inline, inherited]

void osg::ClusterWindowBase::setServiceAddress ( const std::string &  value  )  [inline, inherited]

void osg::ClusterWindowBase::setServiceInterface ( const std::string &  value  )  [inline, inherited]

void osg::ClusterWindowBase::setClientWindow ( const WindowPtr value  )  [inline, inherited]

void osg::ClusterWindowBase::setInterleave ( const UInt32 value  )  [inline, inherited]

void osg::ClusterWindowBase::setFrameCount ( const UInt32 value  )  [inline, inherited]

Definition at line 417 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfFrameCount, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

Referenced by frameInit().

00418 {
00419     _sfFrameCount.setValue(value);
00420 }

void osg::ClusterWindowBase::setComposer ( const ImageComposerPtr value  )  [inline, inherited]

UInt32 osg::ClusterWindowBase::getBinSize ( const BitVector whichField  )  [virtual, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 387 of file OSGClusterWindowBase.cpp.

References osg::ClusterWindowBase::_mfAutostart, osg::ClusterWindowBase::_mfCalibration, osg::ClusterWindowBase::_mfFilter, osg::ClusterWindowBase::_mfServers, osg::ClusterWindowBase::_sfClientWindow, osg::ClusterWindowBase::_sfComposer, osg::ClusterWindowBase::_sfConnectionDestination, osg::ClusterWindowBase::_sfConnectionInterface, osg::ClusterWindowBase::_sfConnectionParams, osg::ClusterWindowBase::_sfConnectionType, osg::ClusterWindowBase::_sfDirty, osg::ClusterWindowBase::_sfFrameCount, osg::ClusterWindowBase::_sfInterleave, osg::ClusterWindowBase::_sfServiceAddress, osg::ClusterWindowBase::_sfServiceInterface, osg::ClusterWindowBase::_sfServicePort, osg::ClusterWindowBase::AutostartFieldMask, osg::ClusterWindowBase::CalibrationFieldMask, osg::ClusterWindowBase::ClientWindowFieldMask, osg::ClusterWindowBase::ComposerFieldMask, osg::ClusterWindowBase::ConnectionDestinationFieldMask, osg::ClusterWindowBase::ConnectionInterfaceFieldMask, osg::ClusterWindowBase::ConnectionParamsFieldMask, osg::ClusterWindowBase::ConnectionTypeFieldMask, osg::ClusterWindowBase::DirtyFieldMask, osg::ClusterWindowBase::FilterFieldMask, osg::ClusterWindowBase::FrameCountFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::WindowBase::getBinSize(), osg::ClusterWindowBase::InterleaveFieldMask, osg::FieldBits::NoField, osg::ClusterWindowBase::ServersFieldMask, osg::ClusterWindowBase::ServiceAddressFieldMask, osg::ClusterWindowBase::ServiceInterfaceFieldMask, and osg::ClusterWindowBase::ServicePortFieldMask.

Referenced by osg::SortFirstWindowBase::getBinSize(), and osg::MultiDisplayWindowBase::getBinSize().

00388 {
00389     UInt32 returnValue = Inherited::getBinSize(whichField);
00390 
00391     if(FieldBits::NoField != (ServersFieldMask & whichField))
00392     {
00393         returnValue += _mfServers.getBinSize();
00394     }
00395 
00396     if(FieldBits::NoField != (ConnectionTypeFieldMask & whichField))
00397     {
00398         returnValue += _sfConnectionType.getBinSize();
00399     }
00400 
00401     if(FieldBits::NoField != (ConnectionInterfaceFieldMask & whichField))
00402     {
00403         returnValue += _sfConnectionInterface.getBinSize();
00404     }
00405 
00406     if(FieldBits::NoField != (ConnectionDestinationFieldMask & whichField))
00407     {
00408         returnValue += _sfConnectionDestination.getBinSize();
00409     }
00410 
00411     if(FieldBits::NoField != (ConnectionParamsFieldMask & whichField))
00412     {
00413         returnValue += _sfConnectionParams.getBinSize();
00414     }
00415 
00416     if(FieldBits::NoField != (ServicePortFieldMask & whichField))
00417     {
00418         returnValue += _sfServicePort.getBinSize();
00419     }
00420 
00421     if(FieldBits::NoField != (ServiceAddressFieldMask & whichField))
00422     {
00423         returnValue += _sfServiceAddress.getBinSize();
00424     }
00425 
00426     if(FieldBits::NoField != (ServiceInterfaceFieldMask & whichField))
00427     {
00428         returnValue += _sfServiceInterface.getBinSize();
00429     }
00430 
00431     if(FieldBits::NoField != (ClientWindowFieldMask & whichField))
00432     {
00433         returnValue += _sfClientWindow.getBinSize();
00434     }
00435 
00436     if(FieldBits::NoField != (InterleaveFieldMask & whichField))
00437     {
00438         returnValue += _sfInterleave.getBinSize();
00439     }
00440 
00441     if(FieldBits::NoField != (FrameCountFieldMask & whichField))
00442     {
00443         returnValue += _sfFrameCount.getBinSize();
00444     }
00445 
00446     if(FieldBits::NoField != (ComposerFieldMask & whichField))
00447     {
00448         returnValue += _sfComposer.getBinSize();
00449     }
00450 
00451     if(FieldBits::NoField != (AutostartFieldMask & whichField))
00452     {
00453         returnValue += _mfAutostart.getBinSize();
00454     }
00455 
00456     if(FieldBits::NoField != (CalibrationFieldMask & whichField))
00457     {
00458         returnValue += _mfCalibration.getBinSize();
00459     }
00460 
00461     if(FieldBits::NoField != (FilterFieldMask & whichField))
00462     {
00463         returnValue += _mfFilter.getBinSize();
00464     }
00465 
00466     if(FieldBits::NoField != (DirtyFieldMask & whichField))
00467     {
00468         returnValue += _sfDirty.getBinSize();
00469     }
00470 
00471 
00472     return returnValue;
00473 }

void osg::ClusterWindowBase::copyToBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 475 of file OSGClusterWindowBase.cpp.

References osg::ClusterWindowBase::_mfAutostart, osg::ClusterWindowBase::_mfCalibration, osg::ClusterWindowBase::_mfFilter, osg::ClusterWindowBase::_mfServers, osg::ClusterWindowBase::_sfClientWindow, osg::ClusterWindowBase::_sfComposer, osg::ClusterWindowBase::_sfConnectionDestination, osg::ClusterWindowBase::_sfConnectionInterface, osg::ClusterWindowBase::_sfConnectionParams, osg::ClusterWindowBase::_sfConnectionType, osg::ClusterWindowBase::_sfDirty, osg::ClusterWindowBase::_sfFrameCount, osg::ClusterWindowBase::_sfInterleave, osg::ClusterWindowBase::_sfServiceAddress, osg::ClusterWindowBase::_sfServiceInterface, osg::ClusterWindowBase::_sfServicePort, osg::ClusterWindowBase::AutostartFieldMask, osg::ClusterWindowBase::CalibrationFieldMask, osg::ClusterWindowBase::ClientWindowFieldMask, osg::ClusterWindowBase::ComposerFieldMask, osg::ClusterWindowBase::ConnectionDestinationFieldMask, osg::ClusterWindowBase::ConnectionInterfaceFieldMask, osg::ClusterWindowBase::ConnectionParamsFieldMask, osg::ClusterWindowBase::ConnectionTypeFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::WindowBase::copyToBin(), osg::ClusterWindowBase::DirtyFieldMask, osg::ClusterWindowBase::FilterFieldMask, osg::ClusterWindowBase::FrameCountFieldMask, osg::ClusterWindowBase::InterleaveFieldMask, osg::FieldBits::NoField, osg::ClusterWindowBase::ServersFieldMask, osg::ClusterWindowBase::ServiceAddressFieldMask, osg::ClusterWindowBase::ServiceInterfaceFieldMask, and osg::ClusterWindowBase::ServicePortFieldMask.

Referenced by osg::SortFirstWindowBase::copyToBin(), and osg::MultiDisplayWindowBase::copyToBin().

00477 {
00478     Inherited::copyToBin(pMem, whichField);
00479 
00480     if(FieldBits::NoField != (ServersFieldMask & whichField))
00481     {
00482         _mfServers.copyToBin(pMem);
00483     }
00484 
00485     if(FieldBits::NoField != (ConnectionTypeFieldMask & whichField))
00486     {
00487         _sfConnectionType.copyToBin(pMem);
00488     }
00489 
00490     if(FieldBits::NoField != (ConnectionInterfaceFieldMask & whichField))
00491     {
00492         _sfConnectionInterface.copyToBin(pMem);
00493     }
00494 
00495     if(FieldBits::NoField != (ConnectionDestinationFieldMask & whichField))
00496     {
00497         _sfConnectionDestination.copyToBin(pMem);
00498     }
00499 
00500     if(FieldBits::NoField != (ConnectionParamsFieldMask & whichField))
00501     {
00502         _sfConnectionParams.copyToBin(pMem);
00503     }
00504 
00505     if(FieldBits::NoField != (ServicePortFieldMask & whichField))
00506     {
00507         _sfServicePort.copyToBin(pMem);
00508     }
00509 
00510     if(FieldBits::NoField != (ServiceAddressFieldMask & whichField))
00511     {
00512         _sfServiceAddress.copyToBin(pMem);
00513     }
00514 
00515     if(FieldBits::NoField != (ServiceInterfaceFieldMask & whichField))
00516     {
00517         _sfServiceInterface.copyToBin(pMem);
00518     }
00519 
00520     if(FieldBits::NoField != (ClientWindowFieldMask & whichField))
00521     {
00522         _sfClientWindow.copyToBin(pMem);
00523     }
00524 
00525     if(FieldBits::NoField != (InterleaveFieldMask & whichField))
00526     {
00527         _sfInterleave.copyToBin(pMem);
00528     }
00529 
00530     if(FieldBits::NoField != (FrameCountFieldMask & whichField))
00531     {
00532         _sfFrameCount.copyToBin(pMem);
00533     }
00534 
00535     if(FieldBits::NoField != (ComposerFieldMask & whichField))
00536     {
00537         _sfComposer.copyToBin(pMem);
00538     }
00539 
00540     if(FieldBits::NoField != (AutostartFieldMask & whichField))
00541     {
00542         _mfAutostart.copyToBin(pMem);
00543     }
00544 
00545     if(FieldBits::NoField != (CalibrationFieldMask & whichField))
00546     {
00547         _mfCalibration.copyToBin(pMem);
00548     }
00549 
00550     if(FieldBits::NoField != (FilterFieldMask & whichField))
00551     {
00552         _mfFilter.copyToBin(pMem);
00553     }
00554 
00555     if(FieldBits::NoField != (DirtyFieldMask & whichField))
00556     {
00557         _sfDirty.copyToBin(pMem);
00558     }
00559 
00560 
00561 }

void osg::ClusterWindowBase::copyFromBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 563 of file OSGClusterWindowBase.cpp.

References osg::ClusterWindowBase::_mfAutostart, osg::ClusterWindowBase::_mfCalibration, osg::ClusterWindowBase::_mfFilter, osg::ClusterWindowBase::_mfServers, osg::ClusterWindowBase::_sfClientWindow, osg::ClusterWindowBase::_sfComposer, osg::ClusterWindowBase::_sfConnectionDestination, osg::ClusterWindowBase::_sfConnectionInterface, osg::ClusterWindowBase::_sfConnectionParams, osg::ClusterWindowBase::_sfConnectionType, osg::ClusterWindowBase::_sfDirty, osg::ClusterWindowBase::_sfFrameCount, osg::ClusterWindowBase::_sfInterleave, osg::ClusterWindowBase::_sfServiceAddress, osg::ClusterWindowBase::_sfServiceInterface, osg::ClusterWindowBase::_sfServicePort, osg::ClusterWindowBase::AutostartFieldMask, osg::ClusterWindowBase::CalibrationFieldMask, osg::ClusterWindowBase::ClientWindowFieldMask, osg::ClusterWindowBase::ComposerFieldMask, osg::ClusterWindowBase::ConnectionDestinationFieldMask, osg::ClusterWindowBase::ConnectionInterfaceFieldMask, osg::ClusterWindowBase::ConnectionParamsFieldMask, osg::ClusterWindowBase::ConnectionTypeFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::WindowBase::copyFromBin(), osg::ClusterWindowBase::DirtyFieldMask, osg::ClusterWindowBase::FilterFieldMask, osg::ClusterWindowBase::FrameCountFieldMask, osg::ClusterWindowBase::InterleaveFieldMask, osg::FieldBits::NoField, osg::ClusterWindowBase::ServersFieldMask, osg::ClusterWindowBase::ServiceAddressFieldMask, osg::ClusterWindowBase::ServiceInterfaceFieldMask, and osg::ClusterWindowBase::ServicePortFieldMask.

Referenced by osg::SortFirstWindowBase::copyFromBin(), and osg::MultiDisplayWindowBase::copyFromBin().

00565 {
00566     Inherited::copyFromBin(pMem, whichField);
00567 
00568     if(FieldBits::NoField != (ServersFieldMask & whichField))
00569     {
00570         _mfServers.copyFromBin(pMem);
00571     }
00572 
00573     if(FieldBits::NoField != (ConnectionTypeFieldMask & whichField))
00574     {
00575         _sfConnectionType.copyFromBin(pMem);
00576     }
00577 
00578     if(FieldBits::NoField != (ConnectionInterfaceFieldMask & whichField))
00579     {
00580         _sfConnectionInterface.copyFromBin(pMem);
00581     }
00582 
00583     if(FieldBits::NoField != (ConnectionDestinationFieldMask & whichField))
00584     {
00585         _sfConnectionDestination.copyFromBin(pMem);
00586     }
00587 
00588     if(FieldBits::NoField != (ConnectionParamsFieldMask & whichField))
00589     {
00590         _sfConnectionParams.copyFromBin(pMem);
00591     }
00592 
00593     if(FieldBits::NoField != (ServicePortFieldMask & whichField))
00594     {
00595         _sfServicePort.copyFromBin(pMem);
00596     }
00597 
00598     if(FieldBits::NoField != (ServiceAddressFieldMask & whichField))
00599     {
00600         _sfServiceAddress.copyFromBin(pMem);
00601     }
00602 
00603     if(FieldBits::NoField != (ServiceInterfaceFieldMask & whichField))
00604     {
00605         _sfServiceInterface.copyFromBin(pMem);
00606     }
00607 
00608     if(FieldBits::NoField != (ClientWindowFieldMask & whichField))
00609     {
00610         _sfClientWindow.copyFromBin(pMem);
00611     }
00612 
00613     if(FieldBits::NoField != (InterleaveFieldMask & whichField))
00614     {
00615         _sfInterleave.copyFromBin(pMem);
00616     }
00617 
00618     if(FieldBits::NoField != (FrameCountFieldMask & whichField))
00619     {
00620         _sfFrameCount.copyFromBin(pMem);
00621     }
00622 
00623     if(FieldBits::NoField != (ComposerFieldMask & whichField))
00624     {
00625         _sfComposer.copyFromBin(pMem);
00626     }
00627 
00628     if(FieldBits::NoField != (AutostartFieldMask & whichField))
00629     {
00630         _mfAutostart.copyFromBin(pMem);
00631     }
00632 
00633     if(FieldBits::NoField != (CalibrationFieldMask & whichField))
00634     {
00635         _mfCalibration.copyFromBin(pMem);
00636     }
00637 
00638     if(FieldBits::NoField != (FilterFieldMask & whichField))
00639     {
00640         _mfFilter.copyFromBin(pMem);
00641     }
00642 
00643     if(FieldBits::NoField != (DirtyFieldMask & whichField))
00644     {
00645         _sfDirty.copyFromBin(pMem);
00646     }
00647 
00648 
00649 }

ClusterWindowPtr osg::ClusterWindowBase::create ( void   )  [inline, static, inherited]

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 72 of file OSGClusterWindowBase.inl.

References osg::AttachmentContainerPtr::dcast(), osg::ClusterWindowBase::getClassType(), osg::NullFC, and osg::ClusterWindowBase::shallowCopy().

00073 {
00074     ClusterWindowPtr fc; 
00075 
00076     if(getClassType().getPrototype() != OSG::NullFC) 
00077     {
00078         fc = ClusterWindowPtr::dcast(
00079             getClassType().getPrototype()-> shallowCopy()); 
00080     }
00081     
00082     return fc; 
00083 }

ClusterWindowPtr osg::ClusterWindowBase::createEmpty ( void   )  [inline, static, inherited]

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 87 of file OSGClusterWindowBase.inl.

References osg::FieldContainer::newPtr().

00088 { 
00089     ClusterWindowPtr returnValue; 
00090     
00091     newPtr(returnValue); 
00092 
00093     return returnValue; 
00094 }

FieldContainerPtr osg::ClusterWindowBase::shallowCopy ( void   )  const [virtual, inherited]

Implements osg::FieldContainer.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 282 of file OSGClusterWindowBase.cpp.

References osg::FieldContainer::newPtr().

Referenced by osg::ClusterWindowBase::create().

00283 { 
00284     ClusterWindowPtr returnValue; 
00285 
00286     newPtr(returnValue, dynamic_cast<const ClusterWindow *>(this)); 
00287 
00288     return returnValue; 
00289 }

SFBool * osg::ClusterWindowBase::getSFDirty ( void   )  [inline, protected, inherited]

Definition at line 206 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfDirty.

00207 {
00208     return &_sfDirty;
00209 }

bool & osg::ClusterWindowBase::getDirty ( void   )  [inline, protected, inherited]

Definition at line 445 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfDirty, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by clientSwap(), and updateFilter().

00446 {
00447     return _sfDirty.getValue();
00448 }

const bool & osg::ClusterWindowBase::getDirty ( void   )  const [inline, protected, inherited]

Definition at line 452 of file OSGClusterWindowBase.inl.

References osg::ClusterWindowBase::_sfDirty, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00453 {
00454     return _sfDirty.getValue();
00455 }

void osg::ClusterWindowBase::setDirty ( const bool &  value  )  [inline, protected, inherited]

void osg::ClusterWindowBase::executeSyncImpl ( ClusterWindowBase pOther,
const BitVector whichField 
) [protected, inherited]

Definition at line 652 of file OSGClusterWindowBase.cpp.

References osg::ClusterWindowBase::_mfAutostart, osg::ClusterWindowBase::_mfCalibration, osg::ClusterWindowBase::_mfFilter, osg::ClusterWindowBase::_mfServers, osg::ClusterWindowBase::_sfClientWindow, osg::ClusterWindowBase::_sfComposer, osg::ClusterWindowBase::_sfConnectionDestination, osg::ClusterWindowBase::_sfConnectionInterface, osg::ClusterWindowBase::_sfConnectionParams, osg::ClusterWindowBase::_sfConnectionType, osg::ClusterWindowBase::_sfDirty, osg::ClusterWindowBase::_sfFrameCount, osg::ClusterWindowBase::_sfInterleave, osg::ClusterWindowBase::_sfServiceAddress, osg::ClusterWindowBase::_sfServiceInterface, osg::ClusterWindowBase::_sfServicePort, osg::ClusterWindowBase::AutostartFieldMask, osg::ClusterWindowBase::CalibrationFieldMask, osg::ClusterWindowBase::ClientWindowFieldMask, osg::ClusterWindowBase::ComposerFieldMask, osg::ClusterWindowBase::ConnectionDestinationFieldMask, osg::ClusterWindowBase::ConnectionInterfaceFieldMask, osg::ClusterWindowBase::ConnectionParamsFieldMask, osg::ClusterWindowBase::ConnectionTypeFieldMask, osg::ClusterWindowBase::DirtyFieldMask, osg::WindowBase::executeSyncImpl(), osg::ClusterWindowBase::FilterFieldMask, osg::ClusterWindowBase::FrameCountFieldMask, osg::ClusterWindowBase::InterleaveFieldMask, osg::FieldBits::NoField, osg::ClusterWindowBase::ServersFieldMask, osg::ClusterWindowBase::ServiceAddressFieldMask, osg::ClusterWindowBase::ServiceInterfaceFieldMask, osg::ClusterWindowBase::ServicePortFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::MField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by osg::ClusterWindowBase::executeSync(), osg::SortFirstWindowBase::executeSyncImpl(), and osg::MultiDisplayWindowBase::executeSyncImpl().

00654 {
00655 
00656     Inherited::executeSyncImpl(pOther, whichField);
00657 
00658     if(FieldBits::NoField != (ServersFieldMask & whichField))
00659         _mfServers.syncWith(pOther->_mfServers);
00660 
00661     if(FieldBits::NoField != (ConnectionTypeFieldMask & whichField))
00662         _sfConnectionType.syncWith(pOther->_sfConnectionType);
00663 
00664     if(FieldBits::NoField != (ConnectionInterfaceFieldMask & whichField))
00665         _sfConnectionInterface.syncWith(pOther->_sfConnectionInterface);
00666 
00667     if(FieldBits::NoField != (ConnectionDestinationFieldMask & whichField))
00668         _sfConnectionDestination.syncWith(pOther->_sfConnectionDestination);
00669 
00670     if(FieldBits::NoField != (ConnectionParamsFieldMask & whichField))
00671         _sfConnectionParams.syncWith(pOther->_sfConnectionParams);
00672 
00673     if(FieldBits::NoField != (ServicePortFieldMask & whichField))
00674         _sfServicePort.syncWith(pOther->_sfServicePort);
00675 
00676     if(FieldBits::NoField != (ServiceAddressFieldMask & whichField))
00677         _sfServiceAddress.syncWith(pOther->_sfServiceAddress);
00678 
00679     if(FieldBits::NoField != (ServiceInterfaceFieldMask & whichField))
00680         _sfServiceInterface.syncWith(pOther->_sfServiceInterface);
00681 
00682     if(FieldBits::NoField != (ClientWindowFieldMask & whichField))
00683         _sfClientWindow.syncWith(pOther->_sfClientWindow);
00684 
00685     if(FieldBits::NoField != (InterleaveFieldMask & whichField))
00686         _sfInterleave.syncWith(pOther->_sfInterleave);
00687 
00688     if(FieldBits::NoField != (FrameCountFieldMask & whichField))
00689         _sfFrameCount.syncWith(pOther->_sfFrameCount);
00690 
00691     if(FieldBits::NoField != (ComposerFieldMask & whichField))
00692         _sfComposer.syncWith(pOther->_sfComposer);
00693 
00694     if(FieldBits::NoField != (AutostartFieldMask & whichField))
00695         _mfAutostart.syncWith(pOther->_mfAutostart);
00696 
00697     if(FieldBits::NoField != (CalibrationFieldMask & whichField))
00698         _mfCalibration.syncWith(pOther->_mfCalibration);
00699 
00700     if(FieldBits::NoField != (FilterFieldMask & whichField))
00701         _mfFilter.syncWith(pOther->_mfFilter);
00702 
00703     if(FieldBits::NoField != (DirtyFieldMask & whichField))
00704         _sfDirty.syncWith(pOther->_sfDirty);
00705 
00706 
00707 }

void WindowBase::executeSyncImpl ( WindowBase pOther,
const BitVector whichField 
) [protected, inherited]

Definition at line 390 of file OSGWindowBase.cpp.

References osg::WindowBase::_mfGlObjectLastRefresh, osg::WindowBase::_mfGlObjectLastReinitialize, osg::WindowBase::_mfPort, osg::WindowBase::_sfGlObjectEventCounter, osg::WindowBase::_sfHeight, osg::WindowBase::_sfResizePending, osg::WindowBase::_sfWidth, osg::AttachmentContainer::executeSyncImpl(), osg::WindowBase::GlObjectEventCounterFieldMask, osg::WindowBase::GlObjectLastRefreshFieldMask, osg::WindowBase::GlObjectLastReinitializeFieldMask, osg::WindowBase::HeightFieldMask, osg::FieldBits::NoField, osg::WindowBase::PortFieldMask, osg::WindowBase::ResizePendingFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::WindowBase::WidthFieldMask.

Referenced by osg::WindowBase::executeSync(), osg::XWindowBase::executeSyncImpl(), osg::WIN32WindowBase::executeSyncImpl(), osg::PassiveWindowBase::executeSyncImpl(), osg::GLUTWindowBase::executeSyncImpl(), and osg::ClusterWindowBase::executeSyncImpl().

00392 {
00393 
00394     Inherited::executeSyncImpl(pOther, whichField);
00395 
00396     if(FieldBits::NoField != (WidthFieldMask & whichField))
00397         _sfWidth.syncWith(pOther->_sfWidth);
00398 
00399     if(FieldBits::NoField != (HeightFieldMask & whichField))
00400         _sfHeight.syncWith(pOther->_sfHeight);
00401 
00402     if(FieldBits::NoField != (PortFieldMask & whichField))
00403         _mfPort.syncWith(pOther->_mfPort);
00404 
00405     if(FieldBits::NoField != (ResizePendingFieldMask & whichField))
00406         _sfResizePending.syncWith(pOther->_sfResizePending);
00407 
00408     if(FieldBits::NoField != (GlObjectEventCounterFieldMask & whichField))
00409         _sfGlObjectEventCounter.syncWith(pOther->_sfGlObjectEventCounter);
00410 
00411     if(FieldBits::NoField != (GlObjectLastRefreshFieldMask & whichField))
00412         _mfGlObjectLastRefresh.syncWith(pOther->_mfGlObjectLastRefresh);
00413 
00414     if(FieldBits::NoField != (GlObjectLastReinitializeFieldMask & whichField))
00415         _mfGlObjectLastReinitialize.syncWith(pOther->_mfGlObjectLastReinitialize);
00416 
00417 
00418 }

void AttachmentContainer::executeSyncImpl ( AttachmentContainer pOther,
const BitVector whichField 
) [protected, inherited]

void osg::FieldContainer::executeSyncImpl ( FieldContainer pOther,
const BitVector whichField 
) [inline, protected, inherited]

void osg::ClusterWindowBase::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, virtual, inherited]

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 298 of file OSGClusterWindowBase.cpp.

References osg::ClusterWindowBase::executeSyncImpl().

00300 {
00301     this->executeSyncImpl((ClusterWindowBase *) &other, whichField);
00302 }

static const char* osg::Window::getClassname ( void   )  [inline, static, inherited]

Definition at line 107 of file OSGWindow.h.

00107 { return "Window"; };

void osg::Window::addPort ( const ViewportPtr portP  )  [inherited]

Definition at line 407 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, osg::MField< FieldTypeT, fieldNameSpace >::back(), osg::beginEditCP(), osg::endEditCP(), osg::NullFC, osg::ViewportBase::ParentFieldMask, and osg::MField< FieldTypeT, fieldNameSpace >::push_back().

00408 {
00409     if(portP != NullFC)
00410     {
00411         _mfPort.push_back(portP);
00412 // CHECK CHECK
00413 //        _mfPort.back()->setParent(FieldContainer::getPtr<WindowPtr>(*this));
00414 
00415         beginEditCP(portP, Viewport::ParentFieldMask);
00416         {
00417             _mfPort.back()->setParent(WindowPtr(*this));
00418         }
00419         endEditCP  (portP, Viewport::ParentFieldMask);
00420     }
00421 }

void osg::Window::insertPort ( UInt32  portIndex,
const ViewportPtr portP 
) [inherited]

Definition at line 423 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::endEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::insert(), osg::NullFC, and osg::ViewportBase::ParentFieldMask.

00424 {    
00425     MFViewportPtr::iterator portIt = _mfPort.begin();
00426 
00427     if(portP != NullFC)
00428     {
00429         portIt += portIndex;
00430   
00431 // CHECK CHECK      
00432 //        (*(_mfPort.insert(portIt, portP)))->setParent(
00433 //            FieldContainer::getPtr<WindowPtr>(*this));
00434 
00435         beginEditCP(portP, Viewport::ParentFieldMask);
00436         {
00437             (*(_mfPort.insert(portIt, portP)))->setParent(
00438                 WindowPtr(*this));
00439         }
00440         endEditCP  (portP, Viewport::ParentFieldMask);
00441 
00442     }
00443 }

void osg::Window::replacePort ( UInt32  portIndex,
const ViewportPtr portP 
) [inherited]

Definition at line 446 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, and osg::NullFC.

00447 {
00448     if(portP != NullFC)
00449     {
00450         _mfPort[portIndex]->setParent(NullFC);
00451         _mfPort[portIndex] = portP;
00452 // CHECK CHECK
00453 //        _mfPort.getValue(portIndex)->setParent(
00454 //            FieldContainer::getPtr<WindowPtr>(*this));
00455         _mfPort[portIndex]->setParent(
00456             WindowPtr(*this));
00457     }
00458 }

void osg::Window::replacePortBy ( const ViewportPtr portP,
const ViewportPtr newPortP 
) [inherited]

Definition at line 460 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::find(), and osg::NullFC.

00462 {
00463     MFViewportPtr::iterator portIt = _mfPort.find(portP);
00464 
00465     if(newportP != NullFC)
00466     {
00467         if(portIt != _mfPort.end())
00468         {
00469             (*portIt)->setParent(NullFC);
00470             (*portIt) = newportP;
00471 // CHECK CHECK
00472 //            (*portIt)->setParent(
00473 //                FieldContainer::getPtr<WindowPtr>(*this));
00474             (*portIt)->setParent(
00475                 WindowPtr(*this));
00476         }
00477     }
00478 }

void osg::Window::subPort ( const ViewportPtr portP  )  [inherited]

Definition at line 480 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), osg::MField< FieldTypeT, fieldNameSpace >::find(), and osg::NullFC.

00481 {
00482     MFViewportPtr::iterator portIt = _mfPort.find(portP);
00483 
00484     if(portIt != _mfPort.end())
00485     {
00486         (*portIt)->setParent(NullFC);
00487 
00488         _mfPort.erase(portIt);
00489     }
00490 
00491 }

void osg::Window::subPort ( UInt32  portIndex  )  [inherited]

Definition at line 493 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), and osg::NullFC.

00494 {
00495     MFViewportPtr::iterator portIt = _mfPort.begin();
00496 
00497     portIt += portIndex;
00498 
00499     if(portIt != _mfPort.end())
00500     {
00501         (*portIt)->setParent(NullFC);
00502 
00503         _mfPort.erase(portIt);
00504     }
00505 }

void osg::Window::clearPorts ( void   )  [inherited]

Definition at line 507 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::clear(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::NullFC, and osg::subRefCP().

00508 {
00509     MFViewportPtr::iterator portIt = _mfPort.begin();
00510 
00511     while(portIt != _mfPort.end())
00512     {
00513         (*portIt)->setParent(NullFC);
00514 
00515         subRefCP(*portIt);
00516     }
00517  
00518     _mfPort.clear();
00519 }

static UInt32 osg::Window::registerExtension ( const Char8 s  )  [static, inherited]

static void osg::Window::ignoreExtensions ( const Char8 s  )  [static, inherited]

Referenced by osg::Window::frameInit().

static UInt32 osg::Window::registerFunction ( const Char8 s,
Int32  ext = -1,
UInt32  version = 0xffff 
) [static, inherited]

static void osg::Window::registerConstant ( GLenum  val  )  [static, inherited]

void osg::Window::setGLLibraryName ( const Char8 s  )  [inline, static, inherited]

Set the library name where to find OpenGL extension functions. This has to be called before the first extension function is accessed, and it's safe to call it before osgInit().

Definition at line 121 of file OSGWindow.inl.

References osg::Window::_glLibraryName.

00122 {
00123     _glLibraryName = s;
00124 }

UInt32 osg::Window::getGLVersion ( void   )  [inline, inherited]

Return the version of OpenGL running in the Window in the form 0x<major><major><minor><minor>, e.g. 0x0201 for version 2.1.

Definition at line 129 of file OSGWindow.inl.

References osg::Window::_glVersion.

Referenced by osg::TextureChunk::activate(), osg::TextureChunk::changeFrom(), osg::TextureChunk::deactivate(), osg::TextureChunk::handleGL(), and osg::TextureChunk::handleTexture().

00130 {
00131     return _glVersion;
00132 }

Int32 osg::Window::getExtensionId ( const Char8 s  )  [inline, static, inherited]

Find the id of a registered extension. Return -1 if extension not registered.

Definition at line 137 of file OSGWindow.inl.

References osg::Window::_registeredExtensions.

00138 {
00139     std::vector<std::string>::iterator it;
00140 
00141     it = std::find(_registeredExtensions.begin(),
00142               _registeredExtensions.end(),
00143               s);
00144 
00145     if(it == _registeredExtensions.end())
00146         return -1;
00147 
00148     return Int32(it -_registeredExtensions.begin());
00149 }

bool osg::Window::hasExtension ( UInt32  id  )  [inline, inherited]

Check if the window has the indicated extension.

Warning:
No error checks are done on the passed index!

Definition at line 64 of file OSGWindow.inl.

References osg::Window::_availExtensions.

Referenced by osg::TextureChunk::activate(), osg::SHLParameterChunk::activate(), osg::RegisterCombinersChunk::activate(), osg::ProgramChunk::activate(), osg::PointChunk::activate(), osg::DVRSimpleLUTShader::activate(), osg::CubeTextureChunk::activate(), osg::BlendChunk::activate(), osg::DVRIsoShader::activate_NVRegisterCombinerShading(), osg::TextureChunk::changeFrom(), osg::SHLParameterChunk::changeFrom(), osg::ProgramChunk::changeFrom(), osg::PointChunk::changeFrom(), osg::CubeTextureChunk::changeFrom(), osg::BlendChunk::changeFrom(), osg::TextureChunk::deactivate(), osg::ProgramChunk::deactivate(), osg::PointChunk::deactivate(), osg::CubeTextureChunk::deactivate(), osg::BlendChunk::deactivate(), osg::GeoVBO::draw(), osg::Slices::drawSlices(), GeoPump128(), GeoPump129(), osg::DVRVolume::getTextureMode(), osg::TextureChunk::handleGL(), osg::SHLChunk::handleGL(), osg::ProgramChunk::handleGL(), osg::Geometry::handleGL(), osg::CubeTextureChunk::handleGL(), osg::TextureChunk::handleTexture(), osg::TextureChunk::handleTextureShader(), osg::TextureChunk::hasMultiTexture(), osg::DVRMtexLUTShader::initCombiners(), osg::DVRMtexLUTShader::initialize(), osg::DVRVolume::initializeClipObjects(), osg::DVRSimpleLUTShader::isModeSupported(), osg::DVRIsoShader::isModeSupported(), osg::FBOViewport::render(), osg::DVRMtexLUTShader::renderSlice(), osg::DVRSimpleLUTShader::setupAlphaCorrectionRegisterCombiners(), osg::RenderAction::start(), osg::SHLChunk::updateProgram(), and osg::SHLChunk::updateProgramParameters().

00065 {
00066     return _availExtensions[id];
00067 }

bool osg::Window::hasExtension ( const Char8 s  )  [inherited]

Return the version of OpenGL running in the Window in the form 0x<major><major><minor><minor>, e.g. 0x0201 for version 2.1.

bool osg::Window::hasCommonExtension ( UInt32  id  )  [inline, static, inherited]

Check if the window has the indicated extension.

Definition at line 71 of file OSGWindow.inl.

References osg::Window::_commonExtensions.

Referenced by osg::PhongMaterial::createChunkMaterial(), and osg::PhongMaterial::prepareLocalChunks().

00072 {
00073     if(id >= _commonExtensions.size())
00074         return false;
00075 
00076     return _commonExtensions[id];
00077 }

void * osg::Window::getFunction ( UInt32  id  )  [inline, inherited]

Get the indicated extension function. The id and the returned functions are checked for sanity and a warning is issued if there are problems. Use getFunctionNoCheck if you're sure you don't need them.

Definition at line 84 of file OSGWindow.inl.

References osg::Window::_extFunctions, osg::Window::_registeredFunctions, and FINFO.

Referenced by osg::SHLChunk::activate(), osg::RegisterCombinersChunk::activate(), osg::ProgramChunk::activate(), osg::PointChunk::activate(), osg::DVRSimpleLUTShader::activate(), osg::BlendChunk::activate(), osg::DVRIsoShader::activate_NVRegisterCombinerShading(), osg::TextureChunk::activeTexture(), osg::FBOViewport::bind(), osg::SHLChunk::changeFrom(), osg::ProgramChunk::changeFrom(), osg::PointChunk::changeFrom(), osg::BlendChunk::changeFrom(), osg::FBOViewport::checkFrameBufferStatus(), osg::SHLChunk::deactivate(), osg::ProgramChunk::deactivate(), osg::PointChunk::deactivate(), osg::DVRSimpleLUTShader::deactivate(), osg::BlendChunk::deactivate(), osg::GeoVBO::draw(), osg::Slices::drawSlices(), GeoPump128(), GeoPump129(), osg::SHLChunk::handleGL(), osg::ProgramChunk::handleGL(), osg::TextureChunk::handleTexture(), osg::DVRMtexLUTShader::initCombiners(), osg::DVRIsoShader::initCombiners_Diffuse2Combiners(), osg::DVRIsoShader::initCombiners_DiffuseMultiCombiners(), osg::DVRIsoShader::initCombiners_IsoSurfaceDiffuse(), osg::DVRIsoShader::initCombiners_IsoSurfaceSpecular(), osg::DVRIsoShader::initCombiners_Specular2Combiners(), osg::DVRIsoShader::initCombiners_SpecularMultiCombiners(), osg::FBOViewport::initialize(), osg::FBOViewport::render(), osg::DVRMtexLUTShader::renderSlice(), osg::DVRIsoShader::renderSlice_NVRegisterCombinerShading(), osg::FBOViewport::setTarget(), osg::DVRSimpleLUTShader::setupAlphaCorrectionRegisterCombiners(), osg::DVRIsoShader::setupCombinerParametersDiffuse(), osg::DVRIsoShader::setupCombinerParametersSpecular(), osg::RenderAction::start(), osg::FBOViewport::stop(), osg::GeoVBO::update(), osg::SHLChunk::updateActiveLightsMask(), osg::SHLChunk::updateCameraOrientation(), osg::SHLChunk::updateCameraPosition(), osg::SHLChunk::updateClusterId(), osg::SHLChunk::updateInvViewMatrix(), osg::SHLChunk::updateInvWorldMatrix(), osg::SHLChunk::updateLight0Active(), osg::SHLChunk::updateLight1Active(), osg::SHLChunk::updateLight2Active(), osg::SHLChunk::updateLight3Active(), osg::SHLChunk::updateLight4Active(), osg::SHLChunk::updateLight5Active(), osg::SHLChunk::updateLight6Active(), osg::SHLChunk::updateLight7Active(), osg::SHLChunk::updateOSGParameters(), osg::SHLChunk::updateParameterLocation(), osg::SHLChunk::updateParameterLocations(), osg::SHLChunk::updateParameters(), osg::SHLChunk::updateProgram(), osg::SHLChunk::updateProgramParameters(), osg::SHLChunk::updateStereoLeftEye(), osg::SHLChunk::updateTransInvWorldMatrix(), osg::SHLChunk::updateViewMatrix(), osg::SHLChunk::updateWorldMatrix(), and osg::GeoVBO::~GeoVBO().

00085 {
00086     if(id >= _extFunctions.size())
00087     {
00088         FINFO(("Window::getFunction: illegal id %d!\n", id));
00089         return NULL;
00090     }
00091     if(_extFunctions[id] == NULL)
00092     {
00093         FINFO(("Window::getFunction: function \"%s\" is NULL!\n",
00094                     _registeredFunctions[id].c_str()));
00095         return NULL;
00096     }
00097     return _extFunctions[id];
00098 }

void * osg::Window::getFunctionNoCheck ( UInt32  id  )  [inline, inherited]

Get the indicated extension function.

Warning:
No error checks are done on the passed index nor on the returned function!

Definition at line 104 of file OSGWindow.inl.

References osg::Window::_extFunctions.

00105 {
00106     return _extFunctions[ id ];
00107 }

void osg::Window::dumpExtensions ( void   )  [inherited]

Dump all the registered extensions to std::cout.

See OpenGL Objects & Extension Handling for a description of the OpenGL object concept.

Definition at line 1128 of file OSGWindow.cpp.

References osg::Window::_extensions.

01129 {   
01130     std::vector<std::string>::iterator it;
01131     std::cout << "GL Extensions: ";
01132     for ( it = _extensions.begin(); it != _extensions.end(); it++ )
01133     {
01134         std::cout << it->c_str() << ", ";
01135     }
01136     std::cout << std::endl;       
01137 }

Real32 osg::Window::getConstantValue ( GLenum  id  )  [inline, inherited]

const Vec2f & osg::Window::getConstantValuev ( GLenum  id  )  [inherited]

Return the value of the registered constant, (Inf, Inf) if not registered or no value received yet.

Definition at line 1558 of file OSGWindow.cpp.

References osg::Window::_availConstants, and osg::Inf.

Referenced by osg::Window::getConstantValue().

01559 {
01560     static Vec2f inf(Inf, Inf);
01561 
01562     ConstHash::iterator it = _availConstants.find(id);
01563 
01564     if(it != _availConstants.end())
01565         return _availConstants[id];
01566 
01567     return inf;
01568 }

const std::vector< std::string > & osg::Window::getRegisteredExtensions ( void   )  [inline, static, inherited]

Access the registered extensions.

Definition at line 160 of file OSGWindow.inl.

References osg::Window::_registeredExtensions.

00161 {
00162     return _registeredExtensions;
00163 }

const std::vector< std::string > & osg::Window::getRegisteredFunctions ( void   )  [inline, inherited]

Access the registered functions.

Definition at line 167 of file OSGWindow.inl.

References osg::Window::_registeredFunctions.

00168 {
00169     return _registeredFunctions;
00170 }

const std::vector< std::string > & osg::Window::getExtensions ( void   )  [inline, inherited]

Access the available extensions.

Definition at line 153 of file OSGWindow.inl.

References osg::Window::_extensions.

00154 {
00155     return _extensions;
00156 }

const std::vector< std::string > & osg::Window::getIgnoredExtensions ( void   )  [inline, inherited]

Access the ignored extensions.

Definition at line 174 of file OSGWindow.inl.

References osg::Window::_ignoredExtensions.

00175 {
00176     return _ignoredExtensions;
00177 }

static UInt32 osg::Window::registerGLObject ( GLObjectFunctor  functor,
UInt32  num = 1 
) [static, inherited]

void osg::Window::validateGLObject ( UInt32  id  )  [inherited]

void osg::Window::validateAllGLObjects ( void   )  [inherited]

void osg::Window::setGLObjectId ( UInt32  id,
UInt32  id2 
) [inline, inherited]

Definition at line 179 of file OSGWindow.inl.

References osg::Window::_glObjects, osg::Window::_ids, and SWARNING.

Referenced by osg::Geometry::createVBO(), osg::Geometry::destroyVBO(), osg::TextureChunk::handleGL(), osg::SHLChunk::handleGL(), osg::ProgramChunk::handleGL(), osg::Geometry::handleGL(), osg::CubeTextureChunk::handleGL(), and osg::SHLChunk::updateProgram().

00180 {
00181     if(osgId < _ids.size())
00182     {
00183         _ids[osgId] = id2;
00184     }
00185     else
00186     {
00187         _ids.resize(_glObjects.size());
00188         if(osgId < _ids.size())
00189             _ids[osgId] = id2;
00190         else
00191             SWARNING << "Window::setGLObjectId: id (" << osgId << ") is not valid!" << std::endl;
00192     }
00193 }

UInt32 osg::Window::getGLObjectId ( UInt32  id  )  [inline, inherited]

UInt32 osg::Window::getGLObjectsSize ( void   )  [inline, static, inherited]

Definition at line 204 of file OSGWindow.inl.

References osg::Window::_glObjects.

00205 {
00206     return _glObjects.size();
00207 }

static void osg::Window::refreshGLObject ( UInt32  id  )  [static, inherited]

static void osg::Window::refreshAllGLObjects ( void   )  [static, inherited]

static void osg::Window::reinitializeGLObject ( UInt32  id  )  [static, inherited]

static void osg::Window::reinitializeAllGLObjects ( void   )  [static, inherited]

static void osg::Window::destroyGLObject ( UInt32  id,
UInt32  num = 1 
) [static, inherited]

void osg::Window::unpackIdStatus ( UInt32  idstatus,
UInt32 osgId,
GLObjectStatusE status 
) [inline, static, inherited]

Unpack the id and the status from one UInt32 packed by packIdStatus

Definition at line 226 of file OSGWindow.inl.

References osg::Window::statusMask, and osg::Window::statusShift.

Referenced by osg::TextureChunk::handleGL(), osg::Surface::handleGL(), osg::SHLChunk::handleGL(), osg::ProgramChunk::handleGL(), osg::Geometry::handleGL(), osg::CubeTextureChunk::handleGL(), and osg::ProgramChunk::printCompileError().

00228 {
00229     osgId = idstatus >> statusShift;
00230     status = static_cast<GLObjectStatusE>(idstatus & statusMask);
00231 }

bool osg::Window::isResizePending ( void   )  [inline, inherited]

Definition at line 56 of file OSGWindow.inl.

References osg::WindowBase::_sfResizePending, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::Window::resizeGL().

00057 {
00058     return _sfResizePending.getValue();
00059 }

void osg::Window::resize ( int  width,
int  height 
) [virtual, inherited]

Resize notifier function.

As OpenSG does not do Window System event management it needs to be notified whenever the size of a Window changes.

Definition at line 1695 of file OSGWindow.cpp.

References osg::beginEditCP(), osg::endEditCP(), osg::WindowBase::HeightFieldMask, osg::WindowBase::ResizePendingFieldMask, osg::WindowBase::setHeight(), osg::WindowBase::setResizePending(), osg::WindowBase::setWidth(), and osg::WindowBase::WidthFieldMask.

void osg::Window::resizeGL ( void   )  [virtual, inherited]

Resize function.

This function needs to be called before a Window's Viewports are rendered, to ensure that eventual pending resizes are handled correctly.

Definition at line 1711 of file OSGWindow.cpp.

References osg::beginEditCP(), osg::endEditCP(), osg::WindowBase::getHeight(), osg::WindowBase::getWidth(), osg::Window::isResizePending(), osg::WindowBase::ResizePendingFieldMask, and osg::WindowBase::setResizePending().

Referenced by osg::Window::draw(), osg::FBOViewport::render(), and osg::RenderAction::start().

01712 {
01713     if ( isResizePending () )
01714     {
01715         glViewport( 0, 0, getWidth(), getHeight() );
01716         WindowPtr win(*this);
01717         beginEditCP(win, ResizePendingFieldMask);
01718         setResizePending( false );
01719         endEditCP  (win, ResizePendingFieldMask);
01720     }
01721 }

void osg::Window::setSize ( UInt16  width,
UInt16  height 
) [inline, inherited]

Set the width and height of the Window. Only use if you really know what you're doing. In most cases resize() is a better choice.

Definition at line 50 of file OSGWindow.inl.

References osg::WindowBase::setHeight(), and osg::WindowBase::setWidth().

Referenced by osg::SortFirstWindow::clientPreSync().

00051 {
00052     setHeight(height);
00053     setWidth(width);
00054 }

void osg::Window::draw ( DrawAction action = NULL  )  [virtual, inherited]

Draw the Window using the given DrawAction.

It takes care of all initialisation and cleanup functions and contains just 6 lines of code. If you know that the correct context is active or you want to delay swaps you can just copy and manipulate it.

Definition at line 1603 of file OSGWindow.cpp.

References osg::Window::activate(), osg::Window::drawAllViewports(), osg::Window::frameExit(), osg::Window::frameInit(), osg::Window::resizeGL(), and osg::Window::swap().

01604 {
01605     activate();
01606     frameInit();    // query recently registered GL extensions
01607     
01608     resizeGL();
01609 
01610     drawAllViewports(action);
01611 
01612     swap();
01613     frameExit();    // after frame cleanup: delete GL objects, if needed
01614 }

void osg::Window::drawAllViewports ( DrawAction action = NULL  )  [virtual, inherited]

Draw all the Viewports of the Window using the given DrawAction.

A simple convenience function that loops all Viewports and call their draw method.

Definition at line 1621 of file OSGWindow.cpp.

References osg::WindowBase::_mfPort, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::DrawActionBase::setWindow(), and SWARNING.

Referenced by osg::Window::draw().

01622 {
01623     MFViewportPtr::iterator       portIt  = _mfPort.begin();
01624     MFViewportPtr::const_iterator portEnd = _mfPort.end();
01625 
01626     if(action != NULL)
01627     {
01628         action->setWindow(this);
01629         
01630         while(portIt != portEnd)
01631         {
01632             (*portIt)->draw(action);
01633 
01634             ++portIt;
01635         }
01636     }
01637     else
01638     {
01639         SWARNING << "Window::drawAllViewports: no action!" << std::endl;
01640     }
01641 }

void osg::Window::setupGL ( void   )  [protected, virtual, inherited]

Initialize the OpenGL state OpenSG expects. This should be called once whenever a new Window is opened.

Don't call it directly, call the Window System-specific init() method instead.

Definition at line 1577 of file OSGWindow.cpp.

References osg::Window::frameInit().

Referenced by osg::XWindow::init(), osg::QTWindow::init(), and osg::PassiveWindow::init().

01578 {   
01579     glPixelStorei( GL_UNPACK_ALIGNMENT, 1 );
01580     glPixelStorei( GL_PACK_ALIGNMENT, 1 );
01581     
01582     glDepthFunc( GL_LEQUAL );
01583     glEnable( GL_DEPTH_TEST );
01584     
01585     glEnable( GL_NORMALIZE );
01586     
01587     // switch off default light
01588     GLfloat nul[4]={0,0,0,0};
01589     glLightfv(GL_LIGHT0, GL_DIFFUSE, nul);
01590     glLightfv(GL_LIGHT0, GL_SPECULAR, nul);
01591     
01592     frameInit();    // call it to setup extensions
01593 }

static void osg::Window::initRegisterGLObject ( UInt32  id,
UInt32  num 
) [static, protected, inherited]

UInt32 osg::Window::packIdStatus ( UInt32  osgId,
GLObjectStatusE  status 
) [inline, static, protected, inherited]

Pack the id and the status into one UInt32. Used to pass the id and status to the actual implementation functions.

Definition at line 219 of file OSGWindow.inl.

References osg::Window::statusShift.

Referenced by osg::Window::frameExit().

00220 {
00221     return (osgId << statusShift) | status;
00222 }

void osg::Window::doInitRegisterGLObject ( UInt32  id,
UInt32  num 
) [protected, inherited]

void osg::FieldContainer::onCreate ( const FieldContainer source = NULL  )  [inline, protected, inherited]

Definition at line 318 of file OSGFieldContainerImpl.inl.

Referenced by osg::ShaderParameterChunk::onCreate().

00319 {
00320 }

void osg::FieldContainer::onCreateAspect ( const FieldContainer aspect0,
const FieldContainer source = NULL 
) [inline, protected, inherited]

Definition at line 323 of file OSGFieldContainerImpl.inl.

00325 {
00326 }

SFUInt16 * osg::WindowBase::getSFWidth ( void   )  [inline, inherited]

Definition at line 75 of file OSGWindowBase.inl.

References osg::WindowBase::_sfWidth.

00076 {
00077     return &_sfWidth;
00078 }

SFUInt16 * osg::WindowBase::getSFHeight ( void   )  [inline, inherited]

Definition at line 82 of file OSGWindowBase.inl.

References osg::WindowBase::_sfHeight.

00083 {
00084     return &_sfHeight;
00085 }

MFViewportPtr * osg::WindowBase::getMFPort ( void   )  [inline, inherited]

Definition at line 89 of file OSGWindowBase.inl.

References osg::WindowBase::_mfPort.

00090 {
00091     return &_mfPort;
00092 }

SFBool * osg::WindowBase::getSFResizePending ( void   )  [inline, inherited]

Definition at line 96 of file OSGWindowBase.inl.

References osg::WindowBase::_sfResizePending.

00097 {
00098     return &_sfResizePending;
00099 }

UInt16 & osg::WindowBase::getWidth ( void   )  [inline, inherited]

const UInt16 & osg::WindowBase::getWidth ( void   )  const [inline, inherited]

Definition at line 132 of file OSGWindowBase.inl.

References osg::WindowBase::_sfWidth, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00133 {
00134     return _sfWidth.getValue();
00135 }

UInt16 & osg::WindowBase::getHeight ( void   )  [inline, inherited]

const UInt16 & osg::WindowBase::getHeight ( void   )  const [inline, inherited]

Definition at line 153 of file OSGWindowBase.inl.

References osg::WindowBase::_sfHeight, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00154 {
00155     return _sfHeight.getValue();
00156 }

bool & osg::WindowBase::getResizePending ( void   )  [inline, inherited]

Definition at line 167 of file OSGWindowBase.inl.

References osg::WindowBase::_sfResizePending, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00168 {
00169     return _sfResizePending.getValue();
00170 }

const bool & osg::WindowBase::getResizePending ( void   )  const [inline, inherited]

Definition at line 174 of file OSGWindowBase.inl.

References osg::WindowBase::_sfResizePending, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00175 {
00176     return _sfResizePending.getValue();
00177 }

ViewportPtr & osg::WindowBase::getPort ( const UInt32  index  )  [inline, inherited]

Definition at line 210 of file OSGWindowBase.inl.

References osg::WindowBase::_mfPort.

Referenced by osg::FBOViewport::render().

00211 {
00212     return _mfPort[index];
00213 }

MFViewportPtr & osg::WindowBase::getPort ( void   )  [inline, inherited]

const MFViewportPtr & osg::WindowBase::getPort ( void   )  const [inline, inherited]

Definition at line 224 of file OSGWindowBase.inl.

References osg::WindowBase::_mfPort.

00225 {
00226     return _mfPort;
00227 }

void osg::WindowBase::setWidth ( const UInt16 value  )  [inline, inherited]

void osg::WindowBase::setHeight ( const UInt16 value  )  [inline, inherited]

void osg::WindowBase::setResizePending ( const bool &  value  )  [inline, inherited]

SFUInt32 * osg::WindowBase::getSFGlObjectEventCounter ( void   )  [inline, protected, inherited]

Definition at line 103 of file OSGWindowBase.inl.

References osg::WindowBase::_sfGlObjectEventCounter.

00104 {
00105     return &_sfGlObjectEventCounter;
00106 }

MFUInt32 * osg::WindowBase::getMFGlObjectLastRefresh ( void   )  [inline, protected, inherited]

Definition at line 110 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastRefresh.

00111 {
00112     return &_mfGlObjectLastRefresh;
00113 }

MFUInt32 * osg::WindowBase::getMFGlObjectLastReinitialize ( void   )  [inline, protected, inherited]

Definition at line 117 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastReinitialize.

00118 {
00119     return &_mfGlObjectLastReinitialize;
00120 }

UInt32 & osg::WindowBase::getGlObjectEventCounter ( void   )  [inline, protected, inherited]

Definition at line 188 of file OSGWindowBase.inl.

References osg::WindowBase::_sfGlObjectEventCounter, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00189 {
00190     return _sfGlObjectEventCounter.getValue();
00191 }

const UInt32 & osg::WindowBase::getGlObjectEventCounter ( void   )  const [inline, protected, inherited]

Definition at line 195 of file OSGWindowBase.inl.

References osg::WindowBase::_sfGlObjectEventCounter, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00196 {
00197     return _sfGlObjectEventCounter.getValue();
00198 }

UInt32 & osg::WindowBase::getGlObjectLastRefresh ( UInt32  index  )  [inline, protected, inherited]

Definition at line 231 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastRefresh.

00232 {
00233     return _mfGlObjectLastRefresh[index];
00234 }

MFUInt32 & osg::WindowBase::getGlObjectLastRefresh ( void   )  [inline, protected, inherited]

Definition at line 238 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastRefresh.

00239 {
00240     return _mfGlObjectLastRefresh;
00241 }

const MFUInt32 & osg::WindowBase::getGlObjectLastRefresh ( void   )  const [inline, protected, inherited]

Definition at line 245 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastRefresh.

00246 {
00247     return _mfGlObjectLastRefresh;
00248 }

UInt32 & osg::WindowBase::getGlObjectLastReinitialize ( UInt32  index  )  [inline, protected, inherited]

Definition at line 252 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastReinitialize.

00253 {
00254     return _mfGlObjectLastReinitialize[index];
00255 }

MFUInt32 & osg::WindowBase::getGlObjectLastReinitialize ( void   )  [inline, protected, inherited]

Definition at line 259 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastReinitialize.

Referenced by osg::Window::frameExit(), and osg::Window::onDestroy().

00260 {
00261     return _mfGlObjectLastReinitialize;
00262 }

const MFUInt32 & osg::WindowBase::getGlObjectLastReinitialize ( void   )  const [inline, protected, inherited]

Definition at line 266 of file OSGWindowBase.inl.

References osg::WindowBase::_mfGlObjectLastReinitialize.

00267 {
00268     return _mfGlObjectLastReinitialize;
00269 }

void osg::WindowBase::setGlObjectEventCounter ( const UInt32 value  )  [inline, protected, inherited]

void AttachmentContainer::addAttachment ( const AttachmentPtr fieldContainerP,
UInt16  binding = 0 
) [inherited]

Definition at line 84 of file OSGAttachmentContainer.cpp.

References osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::NullFC, and osg::subRefCP().

Referenced by osg::AttachmentContainer::AttachmentContainer(), osg::Node::onCreate(), and osg::Image::setAttachmentField().

00086 {
00087     UInt32 key;
00088 
00089     if(fieldContainerP == NullFC)
00090         return;
00091 
00092     key = (UInt32 (fieldContainerP->getGroupId()) << 16) | binding;
00093 
00094     addRefCP(fieldContainerP);
00095 
00096     beginEditCP(fieldContainerP, Attachment::ParentsFieldMask);
00097     {
00098         fieldContainerP->addParent(getPtr());
00099     }
00100     endEditCP  (fieldContainerP, Attachment::ParentsFieldMask);
00101 
00102     AttachmentMap::iterator fcI = _attachmentMap.getValue().find(key);
00103 
00104     if(fcI != _attachmentMap.getValue().end())
00105     {
00106         beginEditCP((*fcI).second, Attachment::ParentsFieldMask);
00107         {
00108             (*fcI).second->subParent(getPtr());
00109         }
00110         endEditCP  ((*fcI).second, Attachment::ParentsFieldMask);
00111 
00112         subRefCP((*fcI).second);
00113 
00114         (*fcI).second = fieldContainerP;
00115     }
00116     else
00117     {
00118         _attachmentMap.getValue()[key] = fieldContainerP;
00119     }
00120 }

void AttachmentContainer::subAttachment ( const AttachmentPtr fieldContainerP,
UInt16  binding = 0 
) [inherited]

Definition at line 122 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap, osg::beginEditCP(), osg::endEditCP(), osg::AttachmentContainer::getPtr(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, and osg::subRefCP().

00124 {
00125     UInt32 key;
00126 
00127     AttachmentMap::iterator fcI;
00128 
00129     if(fieldContainerP == NullFC)
00130         return;
00131 
00132     key = (UInt32(fieldContainerP->getGroupId()) << 16) | binding;
00133 
00134     fcI = _attachmentMap.getValue().find(key);
00135 
00136     if(fcI != _attachmentMap.getValue().end())
00137     {
00138         beginEditCP(fieldContainerP, Attachment::ParentsFieldMask);
00139         {
00140             (*fcI).second->subParent(getPtr());
00141         }
00142         endEditCP  (fieldContainerP, Attachment::ParentsFieldMask);
00143 
00144         subRefCP((*fcI).second);
00145 
00146         _attachmentMap.getValue().erase(fcI);
00147     }
00148 }

AttachmentPtr AttachmentContainer::findAttachment ( UInt32  groupId,
UInt16  binding = 0 
) [inherited]

Definition at line 150 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::NullFC.

Referenced by osg::Image::findAttachmentField(), and osg::Image::setAttachmentField().

00152 {
00153     UInt32 key = (UInt32(groupId) << 16) | binding;
00154 
00155     AttachmentMap::iterator fcI = _attachmentMap.getValue().find(key);
00156 
00157     if(fcI == _attachmentMap.getValue().end())
00158     {
00159         return NullFC;
00160     }
00161     else
00162     {
00163         return (*fcI).second;
00164     }
00165 }

AttachmentPtr osg::AttachmentContainer::findAttachment ( const FieldContainerType type,
UInt16  binding = 0 
) [inline, inherited]

Definition at line 57 of file OSGAttachmentContainerImpl.inl.

00060 {
00061     return findAttachment(type.getGroupId(), binding);
00062 }

SFAttachmentMap * AttachmentContainer::getSFAttachments ( void   )  [inherited]

Field Access

Definition at line 170 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap.

00171 {
00172     return &_attachmentMap;
00173 }

AttachmentContainerPtr AttachmentContainer::getPtr ( void   )  [protected, inherited]

UInt16 osg::FieldContainer::getClassGroupId ( void   )  [inline, static, inherited]

Definition at line 71 of file OSGFieldContainerImpl.inl.

References osg::FieldContainer::_type, and osg::FieldContainerType::getGroupId().

00072 {
00073     return _type.getGroupId();
00074 }

UInt32 osg::FieldContainer::getTypeId ( void   )  const [inline, inherited]

Definition at line 77 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getId(), and osg::FieldContainer::getType().

Referenced by osg::TextureChunk::changeFrom(), and osg::CubeTextureChunk::changeFrom().

00078 {
00079     return getType().getId();
00080 }

UInt16 osg::FieldContainer::getGroupId ( void   )  const [inline, inherited]

const Char8 * osg::FieldContainer::getTypeName ( void   )  const [inline, inherited]

Definition at line 89 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getCName(), and osg::FieldContainer::getType().

00090 {
00091     return getType().getCName();
00092 }

Field * osg::FieldContainer::getField ( UInt32  fieldId  )  [inline, inherited]

Generic Field Access

Definition at line 95 of file OSGFieldContainerImpl.inl.

References osg::FieldDescription::getField(), osg::FieldContainerType::getFieldDescription(), and osg::FieldContainer::getType().

Referenced by osg::QFCItem::expand(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup().

00096 {
00097     const FieldDescription *desc = getType().getFieldDescription(fieldId);
00098 
00099     return desc ? desc->getField(*this) : NULL;
00100 }

Field * osg::FieldContainer::getField ( const Char8 fieldName  )  [inline, inherited]

Generic Field Access

Definition at line 103 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::findFieldDescription(), osg::FieldDescription::getField(), and osg::FieldContainer::getType().

00104 {
00105     const FieldDescription *desc =getType().findFieldDescription(fieldName);
00106 
00107     return desc ? desc->getField(*this) : NULL;
00108 }

template<class ObjectPtrT>
void osg::FieldContainer::newPtr ( ObjectPtrT &  result,
const typename ObjectPtrT::StoredObjectType *  prototypeP 
) [inline, static, protected, inherited]

Definition at line 138 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

Referenced by osg::XWindowBase::createEmpty(), osg::WIN32WindowBase::createEmpty(), osg::ViewportBase::createEmpty(), osg::VertexProgramChunkBase::createEmpty(), osg::TwoSidedLightingChunkBase::createEmpty(), osg::TransformChunkBase::createEmpty(), osg::TransformBase::createEmpty(), osg::TileCameraDecoratorBase::createEmpty(), osg::TextureTransformChunkBase::createEmpty(), osg::TextureGrabForegroundBase::createEmpty(), osg::TextureGrabBackgroundBase::createEmpty(), osg::TextureChunkBase::createEmpty(), osg::TextureBackgroundBase::createEmpty(), osg::TexGenChunkBase::createEmpty(), osg::SwitchMaterialBase::createEmpty(), osg::SwitchBase::createEmpty(), osg::SurfaceBase::createEmpty(), osg::StringAttributeMapBase::createEmpty(), osg::StereoBufferViewportBase::createEmpty(), osg::StencilChunkBase::createEmpty(), osg::StateSortingGroupBase::createEmpty(), osg::StateBase::createEmpty(), osg::SpotLightBase::createEmpty(), osg::SortFirstWindowBase::createEmpty(), osg::SolidBackgroundBase::createEmpty(), osg::SlicesBase::createEmpty(), osg::SkyBackgroundBase::createEmpty(), osg::SimpleTexturedMaterialBase::createEmpty(), osg::SimpleStatisticsForegroundBase::createEmpty(), osg::SimpleMaterialBase::createEmpty(), osg::SHLParameterChunkBase::createEmpty(), osg::SHLChunkBase::createEmpty(), osg::ShearedStereoCameraDecoratorBase::createEmpty(), osg::ShaderParameterVec4fBase::createEmpty(), osg::ShaderParameterVec3fBase::createEmpty(), osg::ShaderParameterVec2fBase::createEmpty(), osg::ShaderParameterStringBase::createEmpty(), osg::ShaderParameterRealBase::createEmpty(), osg::ShaderParameterMVec4fBase::createEmpty(), osg::ShaderParameterMVec3fBase::createEmpty(), osg::ShaderParameterMVec2fBase::createEmpty(), osg::ShaderParameterMRealBase::createEmpty(), osg::ShaderParameterMMatrixBase::createEmpty(), osg::ShaderParameterMIntBase::createEmpty(), osg::ShaderParameterMatrixBase::createEmpty(), osg::ShaderParameterIntBase::createEmpty(), osg::ShaderParameterBoolBase::createEmpty(), osg::ScreenGroupBase::createEmpty(), osg::SClipPlaneChunkBase::createEmpty(), osg::ResolutionDisplayFilterBase::createEmpty(), osg::RenderOptionsBase::createEmpty(), osg::RegisterCombinersChunkBase::createEmpty(), osg::QTWindowBase::createEmpty(), osg::ProxyGroupBase::createEmpty(), osg::ProjectionCameraDecoratorBase::createEmpty(), osg::PolygonForegroundBase::createEmpty(), osg::PolygonChunkBase::createEmpty(), osg::PolygonBackgroundBase::createEmpty(), osg::PointLightBase::createEmpty(), osg::PointChunkBase::createEmpty(), osg::PhongMaterialBase::createEmpty(), osg::PerspectiveCameraBase::createEmpty(), osg::PassiveWindowBase::createEmpty(), osg::PassiveViewportBase::createEmpty(), osg::PassiveBackgroundBase::createEmpty(), osg::ParticlesBase::createEmpty(), osg::OrthographicCameraBase::createEmpty(), osg::OffCenterPerspectiveCameraBase::createEmpty(), osg::MultiPassMaterialBase::createEmpty(), osg::MultiDisplayWindowBase::createEmpty(), osg::MatrixCameraDecoratorBase::createEmpty(), osg::MatrixCameraBase::createEmpty(), osg::MaterialPoolBase::createEmpty(), osg::MaterialGroupBase::createEmpty(), osg::MaterialChunkBase::createEmpty(), osg::LogicOpChunkBase::createEmpty(), osg::LineChunkBase::createEmpty(), osg::LightModelChunkBase::createEmpty(), osg::LightEnvBase::createEmpty(), osg::LightChunkBase::createEmpty(), osg::InverseTransformBase::createEmpty(), osg::InlineBase::createEmpty(), osg::ImageForegroundBase::createEmpty(), osg::ImageBase::createEmpty(), osg::ImageBackgroundBase::createEmpty(), osg::GroupBase::createEmpty(), osg::GraphicStatisticsForegroundBase::createEmpty(), osg::GradientBackgroundBase::createEmpty(), osg::GrabForegroundBase::createEmpty(), osg::GLUTWindowBase::createEmpty(), osg::GeometryBase::createEmpty(), osg::FresnelMaterialBase::createEmpty(), osg::FragmentProgramChunkBase::createEmpty(), osg::FileGrabForegroundBase::createEmpty(), osg::FCPtrAttributeMapBase::createEmpty(), osg::FBOViewportBase::createEmpty(), osg::FatBorderChunkBase::createEmpty(), osg::DVRVolumeTextureBase::createEmpty(), osg::DVRVolumeBase::createEmpty(), osg::DVRSimpleShaderBase::createEmpty(), osg::DVRSimpleLUTShaderBase::createEmpty(), osg::DVRMtexLUTShaderBase::createEmpty(), osg::DVRLookupTableBase::createEmpty(), osg::DVRIsoSurfaceBase::createEmpty(), osg::DVRIsoShaderBase::createEmpty(), osg::DVRGeometryBase::createEmpty(), osg::DVRClipObjectsBase::createEmpty(), osg::DVRClipGeometryBase::createEmpty(), osg::DVRAppearanceBase::createEmpty(), osg::DistortionDisplayFilterBase::createEmpty(), osg::DistanceLODBase::createEmpty(), osg::DisplayFilterForegroundBase::createEmpty(), osg::DisplayCalibrationBase::createEmpty(), osg::DirectionalLightBase::createEmpty(), osg::DepthClearBackgroundBase::createEmpty(), osg::DepthChunkBase::createEmpty(), osg::CubeTextureChunkBase::createEmpty(), osg::ComponentTransformBase::createEmpty(), osg::ColorMaskChunkBase::createEmpty(), osg::ColorDisplayFilterBase::createEmpty(), osg::ColorBufferViewportBase::createEmpty(), osg::ClusterWindowBase::createEmpty(), osg::ClipPlaneChunkBase::createEmpty(), osg::ClipPlaneBase::createEmpty(), osg::ChunkMaterialBase::createEmpty(), osg::BlendChunkBase::createEmpty(), osg::BillboardBase::createEmpty(), osg::XWindowBase::shallowCopy(), osg::WIN32WindowBase::shallowCopy(), osg::ViewportBase::shallowCopy(), osg::VertexProgramChunkBase::shallowCopy(), osg::TwoSidedLightingChunkBase::shallowCopy(), osg::TransformChunkBase::shallowCopy(), osg::TransformBase::shallowCopy(), osg::TileCameraDecoratorBase::shallowCopy(), osg::TextureTransformChunkBase::shallowCopy(), osg::TextureGrabForegroundBase::shallowCopy(), osg::TextureGrabBackgroundBase::shallowCopy(), osg::TextureChunkBase::shallowCopy(), osg::TextureBackgroundBase::shallowCopy(), osg::TexGenChunkBase::shallowCopy(), osg::SwitchMaterialBase::shallowCopy(), osg::SwitchBase::shallowCopy(), osg::SurfaceBase::shallowCopy(), osg::StringAttributeMapBase::shallowCopy(), osg::StereoBufferViewportBase::shallowCopy(), osg::StencilChunkBase::shallowCopy(), osg::StateSortingGroupBase::shallowCopy(), osg::StateBase::shallowCopy(), osg::SpotLightBase::shallowCopy(), osg::SortFirstWindowBase::shallowCopy(), osg::SolidBackgroundBase::shallowCopy(), osg::SlicesBase::shallowCopy(), osg::SkyBackgroundBase::shallowCopy(), osg::SimpleTexturedMaterialBase::shallowCopy(), osg::SimpleStatisticsForegroundBase::shallowCopy(), osg::SimpleMaterialBase::shallowCopy(), osg::SHLParameterChunkBase::shallowCopy(), osg::SHLChunkBase::shallowCopy(), osg::ShearedStereoCameraDecoratorBase::shallowCopy(), osg::ShaderParameterVec4fBase::shallowCopy(), osg::ShaderParameterVec3fBase::shallowCopy(), osg::ShaderParameterVec2fBase::shallowCopy(), osg::ShaderParameterStringBase::shallowCopy(), osg::ShaderParameterRealBase::shallowCopy(), osg::ShaderParameterMVec4fBase::shallowCopy(), osg::ShaderParameterMVec3fBase::shallowCopy(), osg::ShaderParameterMVec2fBase::shallowCopy(), osg::ShaderParameterMRealBase::shallowCopy(), osg::ShaderParameterMMatrixBase::shallowCopy(), osg::ShaderParameterMIntBase::shallowCopy(), osg::ShaderParameterMatrixBase::shallowCopy(), osg::ShaderParameterIntBase::shallowCopy(), osg::ShaderParameterBoolBase::shallowCopy(), osg::ScreenGroupBase::shallowCopy(), osg::SClipPlaneChunkBase::shallowCopy(), osg::ResolutionDisplayFilterBase::shallowCopy(), osg::RenderOptionsBase::shallowCopy(), osg::RegisterCombinersChunkBase::shallowCopy(), osg::QTWindowBase::shallowCopy(), osg::ProxyGroupBase::shallowCopy(), osg::ProjectionCameraDecoratorBase::shallowCopy(), osg::PolygonForegroundBase::shallowCopy(), osg::PolygonChunkBase::shallowCopy(), osg::PolygonBackgroundBase::shallowCopy(), osg::PointLightBase::shallowCopy(), osg::PointChunkBase::shallowCopy(), osg::PhongMaterialBase::shallowCopy(), osg::PerspectiveCameraBase::shallowCopy(), osg::PassiveWindowBase::shallowCopy(), osg::PassiveViewportBase::shallowCopy(), osg::PassiveBackgroundBase::shallowCopy(), osg::ParticlesBase::shallowCopy(), osg::OrthographicCameraBase::shallowCopy(), osg::OffCenterPerspectiveCameraBase::shallowCopy(), osg::MultiPassMaterialBase::shallowCopy(), osg::MultiDisplayWindowBase::shallowCopy(), osg::MatrixCameraDecoratorBase::shallowCopy(), osg::MatrixCameraBase::shallowCopy(), osg::MaterialPoolBase::shallowCopy(), osg::MaterialGroupBase::shallowCopy(), osg::MaterialChunkBase::shallowCopy(), osg::LogicOpChunkBase::shallowCopy(), osg::LineChunkBase::shallowCopy(), osg::LightModelChunkBase::shallowCopy(), osg::LightEnvBase::shallowCopy(), osg::LightChunkBase::shallowCopy(), osg::InverseTransformBase::shallowCopy(), osg::InlineBase::shallowCopy(), osg::ImageForegroundBase::shallowCopy(), osg::ImageBase::shallowCopy(), osg::ImageBackgroundBase::shallowCopy(), osg::GroupBase::shallowCopy(), osg::GraphicStatisticsForegroundBase::shallowCopy(), osg::GradientBackgroundBase::shallowCopy(), osg::GrabForegroundBase::shallowCopy(), osg::GLUTWindowBase::shallowCopy(), osg::GeometryBase::shallowCopy(), osg::FresnelMaterialBase::shallowCopy(), osg::FragmentProgramChunkBase::shallowCopy(), osg::FileGrabForegroundBase::shallowCopy(), osg::FCPtrAttributeMapBase::shallowCopy(), osg::FBOViewportBase::shallowCopy(), osg::FatBorderChunkBase::shallowCopy(), osg::DVRVolumeTextureBase::shallowCopy(), osg::DVRVolumeBase::shallowCopy(), osg::DVRSimpleShaderBase::shallowCopy(), osg::DVRSimpleLUTShaderBase::shallowCopy(), osg::DVRMtexLUTShaderBase::shallowCopy(), osg::DVRLookupTableBase::shallowCopy(), osg::DVRIsoSurfaceBase::shallowCopy(), osg::DVRIsoShaderBase::shallowCopy(), osg::DVRGeometryBase::shallowCopy(), osg::DVRClipObjectsBase::shallowCopy(), osg::DVRClipGeometryBase::shallowCopy(), osg::DVRAppearanceBase::shallowCopy(), osg::DistortionDisplayFilterBase::shallowCopy(), osg::DistanceLODBase::shallowCopy(), osg::DisplayFilterForegroundBase::shallowCopy(), osg::DisplayCalibrationBase::shallowCopy(), osg::DirectionalLightBase::shallowCopy(), osg::DepthClearBackgroundBase::shallowCopy(), osg::DepthChunkBase::shallowCopy(), osg::CubeTextureChunkBase::shallowCopy(), osg::ComponentTransformBase::shallowCopy(), osg::ColorMaskChunkBase::shallowCopy(), osg::ColorDisplayFilterBase::shallowCopy(), osg::ColorBufferViewportBase::shallowCopy(), osg::ClusterWindowBase::shallowCopy(), osg::ClipPlaneChunkBase::shallowCopy(), osg::ClipPlaneBase::shallowCopy(), osg::ChunkMaterialBase::shallowCopy(), osg::BlendChunkBase::shallowCopy(), and osg::BillboardBase::shallowCopy().

00141 {
00142     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00143     
00144     UInt8 *pTmp;
00145     
00146     result._containerSize = sizeof(ObjectType);
00147     
00148     pTmp        = 
00149         static_cast<UInt8 *>(operator new(
00150             sizeof(Int32)      + // ReferenceCount
00151             sizeof(UInt32)     + // ContainerId
00152             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00153     
00154     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00155     
00156     pTmp += sizeof(Int32);
00157     
00158     result._storeP = (pTmp + sizeof(UInt32));
00159 
00160 #ifdef OSG_DEBUG_FCPTR
00161     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00162 #endif
00163 
00164     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00165         FieldContainerFactory::the()->registerFieldContainer(result);
00166     
00167     Thread::getCurrentChangeList()->addCreated(
00168         *(reinterpret_cast<UInt32 *>(pTmp)));
00169     
00170     pTmp += sizeof(UInt32);
00171     
00172     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00173 
00174     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00175     {
00176         pTmp = 
00177             reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP));
00178         
00179         pTmp += sizeof(ObjectType);
00180     }
00181     
00182     result->onCreate(prototypeP);
00183 
00184     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00185     {
00186         aObject[i].onCreateAspect(aObject, prototypeP);
00187     }
00188 
00189 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00190 
00191     fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 
00192             Thread::getAspect(),
00193             result._storeP,
00194 //            ObjectType::getClassType().getCName(),
00195             ObjectType::getClassType().getId());
00196 #endif
00197 
00198 #ifdef OSG_DEBUG_TYPED_FCPTR
00199     result.updateTypedStore();
00200 #endif
00201 }

template<class ObjectPtrT>
void osg::FieldContainer::newPtr ( ObjectPtrT &  result  )  [inline, static, protected, inherited]

Definition at line 204 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

00205 {
00206     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00207     
00208     UInt8 *pTmp;
00209     
00210     result._containerSize = sizeof(ObjectType);
00211     
00212     pTmp        =             
00213         static_cast<UInt8 *>(operator new(
00214             sizeof(Int32)      + // ReferenceCount
00215             sizeof(UInt32)     + // ContainerId
00216             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00217     
00218     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00219     
00220     pTmp  += sizeof(Int32);
00221     
00222     result._storeP = (pTmp + sizeof(UInt32));
00223     
00224 #ifdef OSG_DEBUG_FCPTR
00225     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00226 #endif
00227 
00228     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00229         FieldContainerFactory::the()->registerFieldContainer(result);
00230     
00231     Thread::getCurrentChangeList()->addCreated(
00232         *(reinterpret_cast<UInt32 *>(pTmp)));
00233     
00234     pTmp += sizeof(UInt32);
00235     
00236     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00237 
00238     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00239     {
00240         pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType());
00241         
00242         pTmp += sizeof(ObjectType);
00243     }
00244     
00245     result->onCreate();
00246     
00247     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00248     {
00249         aObject[i].onCreateAspect(aObject);
00250     }
00251 
00252 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00253     fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 
00254             Thread::getAspect(),
00255             result._storeP,
00256 //            ObjectType::getClassType().getCName(),
00257             ObjectType::getClassType().getId());
00258 #endif
00259     
00260 #ifdef OSG_DEBUG_TYPED_FCPTR
00261     result.updateTypedStore();
00262 #endif
00263 }

template<class FieldTypeT>
void osg::FieldContainer::beginEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 285 of file OSGFieldContainerImpl.inl.

00286 {
00287 //    fieldR.beginEdit();
00288 }

template<class FieldTypeT>
void osg::FieldContainer::endEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 291 of file OSGFieldContainerImpl.inl.

References osg::endEditCP().

00292 {
00293     FieldContainerPtr tmpPtr(this);
00294     endEditCP(tmpPtr, whichField);
00295 }


Friends And Related Function Documentation

friend class FieldContainer [friend]

friend class ClusterWindowBase [friend]

Definition at line 208 of file OSGClusterWindow.h.

friend class ClusterServer [friend]

Definition at line 209 of file OSGClusterWindow.h.

friend class ClusterClient [friend]

Definition at line 210 of file OSGClusterWindow.h.

friend class GLObject [friend, inherited]

Definition at line 294 of file OSGWindow.h.


Member Data Documentation

Definition at line 185 of file OSGClusterWindow.h.

Referenced by frameInit().

Definition at line 186 of file OSGClusterWindow.h.

Referenced by getStatistics(), init(), and setStatistics().

Definition at line 196 of file OSGClusterWindow.h.

Referenced by init(), initAsync(), and setConnectionCB().

Definition at line 197 of file OSGClusterWindow.h.

Referenced by getNetwork(), and ~ClusterWindow().

Initial value:

 
    (Inherited::MTInfluenceMask) | 
    (static_cast<BitVector>(0x0) << Inherited::NextFieldId)

Reimplemented from osg::WindowBase.

Reimplemented in osg::MultiDisplayWindowBase, and osg::SortFirstWindowBase.

Definition at line 146 of file OSGClusterWindowBase.h.

std::string osg::ClusterWindowBase::_mfServers [protected, inherited]

std::string osg::ClusterWindowBase::_sfConnectionType [protected, inherited]

std::string osg::ClusterWindowBase::_sfConnectionInterface [protected, inherited]

std::string osg::ClusterWindowBase::_sfConnectionDestination [protected, inherited]

std::string osg::ClusterWindowBase::_sfConnectionParams [protected, inherited]

std::string osg::ClusterWindowBase::_sfServiceAddress [protected, inherited]

std::string osg::ClusterWindowBase::_sfServiceInterface [protected, inherited]

std::string osg::ClusterWindowBase::_mfAutostart [protected, inherited]

bool osg::ClusterWindowBase::_sfDirty [protected, inherited]

const Real32 osg::Window::unknownConstant = -1e100 [static, inherited]

const osg::BitVector WindowBase::WidthFieldMask [static, inherited]

const osg::BitVector WindowBase::HeightFieldMask [static, inherited]

const osg::BitVector WindowBase::PortFieldMask [static, inherited]

UInt16 WindowBase::_sfWidth [protected, inherited]

UInt16 WindowBase::_sfHeight [protected, inherited]

ViewportPtr WindowBase::_mfPort [protected, inherited]

bool WindowBase::_sfResizePending [protected, inherited]

Counter for GL object events. Needed for multi-aspect updates. Is used in glObjectLastRefresh and glObjectLastReinitialize.

Definition at line 196 of file OSGWindowBase.h.

Referenced by osg::WindowBase::copyFromBin(), osg::WindowBase::copyToBin(), osg::WindowBase::executeSyncImpl(), osg::WindowBase::getBinSize(), osg::WindowBase::getGlObjectEventCounter(), osg::WindowBase::getSFGlObjectEventCounter(), and osg::WindowBase::setGlObjectEventCounter().

const BitVector osg::FieldContainer::NextFieldMask [static, inherited]

Initial value:

 
                    (TypeTraits<BitVector>::One << NextFieldId)

Definition at line 75 of file OSGFieldContainerImpl.h.

const bool osg::FieldContainer::isNodeCore = false [static, inherited]

Reimplemented in osg::NodeCore.

Definition at line 181 of file OSGFieldContainerImpl.h.

UInt32 osg::FieldContainer::_shares [protected, inherited]

Definition at line 199 of file OSGFieldContainerImpl.h.


The documentation for this class was generated from the following files:

Generated on Mon Mar 17 11:11:24 2008 for OpenSG by  doxygen 1.5.5