osg::SimpleStatisticsForeground Class Reference

Simple Statistics Foreground class. See Simple Statistics Foreground for a description. More...

#include <OSGSimpleStatisticsForeground.h>

Inheritance diagram for osg::SimpleStatisticsForeground:

osg::SimpleStatisticsForegroundBase osg::StatisticsForeground osg::StatisticsForegroundBase osg::Foreground osg::ForegroundBase osg::AttachmentContainer osg::FieldContainer

List of all members.

Modes



enum
osg::SimpleStatisticsForeground::{ Left = 0, Middle, Right
HorizontalAlignE
enum
osg::SimpleStatisticsForeground::{ Top = 0, Center, Bottom
VerticalAlignE

Public Types

enum  {
  FormatsFieldId = Inherited::NextFieldId, SizeFieldId = FormatsFieldId + 1, ColorFieldId = SizeFieldId + 1, ShadowColorFieldId = ColorFieldId + 1,
  BgColorFieldId = ShadowColorFieldId + 1, FamilyFieldId = BgColorFieldId + 1, ShadowOffsetFieldId = FamilyFieldId + 1, HorizontalAlignFieldId = ShadowOffsetFieldId + 1,
  VerticalAlignFieldId = HorizontalAlignFieldId + 1, BorderColorFieldId = VerticalAlignFieldId + 1, BorderOffsetFieldId = BorderColorFieldId + 1, TextMarginFieldId = BorderOffsetFieldId + 1,
  NextFieldId = TextMarginFieldId + 1
}
typedef
SimpleStatisticsForegroundPtr 
Ptr
enum  { ElementIDsFieldId = Inherited::NextFieldId, CollectorFieldId = ElementIDsFieldId + 1, NextFieldId = CollectorFieldId + 1 }
enum  { ActiveFieldId = Inherited::NextFieldId, NextFieldId = ActiveFieldId + 1 }
enum  { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

Sync


virtual void changed (BitVector whichField, UInt32 origin)
Output


virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
Draw


virtual void draw (DrawActionBase *action, Viewport *port)
Convenience Functions


void addElement (StatElemDescBase &desc, const char *format=NULL)
void addElement (Int32 id, const char *format=NULL)
void addText (const char *text)
void clearElems (void)
FieldContainer Get


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


MFStringgetMFFormats (void)
 Get the SimpleStatisticsForeground::_mfFormats field.
SFReal32getSFSize (void)
 Get the SimpleStatisticsForeground::_sfSize field.
SFColor4fgetSFColor (void)
 Get the SimpleStatisticsForeground::_sfColor field.
SFColor4fgetSFShadowColor (void)
 Get the SimpleStatisticsForeground::_sfShadowColor field.
SFColor4fgetSFBgColor (void)
 Get the SimpleStatisticsForeground::_sfBgColor field.
SFStringgetSFFamily (void)
 Get the SimpleStatisticsForeground::_sfFamily field.
SFVec2fgetSFShadowOffset (void)
 Get the SimpleStatisticsForeground::_sfShadowOffset field.
SFUInt8getSFHorizontalAlign (void)
 Get the SimpleStatisticsForeground::_sfHorizontalAlign field.
SFUInt8getSFVerticalAlign (void)
 Get the SimpleStatisticsForeground::_sfVerticalAlign field.
SFColor4fgetSFBorderColor (void)
 Get the SimpleStatisticsForeground::_sfBorderColor field.
SFVec2fgetSFBorderOffset (void)
 Get the SimpleStatisticsForeground::_sfBorderOffset field.
SFVec2fgetSFTextMargin (void)
 Get the SimpleStatisticsForeground::_sfTextMargin field.
Real32getSize (void)
 Get the value of the SimpleStatisticsForeground::_sfSize field.
const Real32getSize (void) const
 Get the value of the SimpleStatisticsForeground::_sfSize field.
Color4fgetColor (void)
 Get the value of the SimpleStatisticsForeground::_sfColor field.
const Color4fgetColor (void) const
 Get the value of the SimpleStatisticsForeground::_sfColor field.
Color4fgetShadowColor (void)
 Get the value of the SimpleStatisticsForeground::_sfShadowColor field.
const Color4fgetShadowColor (void) const
 Get the value of the SimpleStatisticsForeground::_sfShadowColor field.
Color4fgetBgColor (void)
 Get the value of the SimpleStatisticsForeground::_sfBgColor field.
const Color4fgetBgColor (void) const
 Get the value of the SimpleStatisticsForeground::_sfBgColor field.
std::string & getFamily (void)
 Get the value of the SimpleStatisticsForeground::_sfFamily field.
const std::string & getFamily (void) const
 Get the value of the SimpleStatisticsForeground::_sfFamily field.
Vec2fgetShadowOffset (void)
 Get the value of the SimpleStatisticsForeground::_sfShadowOffset field.
const Vec2fgetShadowOffset (void) const
 Get the value of the SimpleStatisticsForeground::_sfShadowOffset field.
UInt8getHorizontalAlign (void)
 Get the value of the SimpleStatisticsForeground::_sfHorizontalAlign field.
const UInt8getHorizontalAlign (void) const
 Get the value of the SimpleStatisticsForeground::_sfHorizontalAlign field.
UInt8getVerticalAlign (void)
 Get the value of the SimpleStatisticsForeground::_sfVerticalAlign field.
const UInt8getVerticalAlign (void) const
 Get the value of the SimpleStatisticsForeground::_sfVerticalAlign field.
Color4fgetBorderColor (void)
 Get the value of the SimpleStatisticsForeground::_sfBorderColor field.
const Color4fgetBorderColor (void) const
 Get the value of the SimpleStatisticsForeground::_sfBorderColor field.
Vec2fgetBorderOffset (void)
 Get the value of the SimpleStatisticsForeground::_sfBorderOffset field.
const Vec2fgetBorderOffset (void) const
 Get the value of the SimpleStatisticsForeground::_sfBorderOffset field.
Vec2fgetTextMargin (void)
 Get the value of the SimpleStatisticsForeground::_sfTextMargin field.
const Vec2fgetTextMargin (void) const
 Get the value of the SimpleStatisticsForeground::_sfTextMargin field.
std::string & getFormats (const UInt32 index)
 Get the value of the index element the SimpleStatisticsForeground::_mfFormats field.
MFStringgetFormats (void)
 Get the SimpleStatisticsForeground::_mfFormats field.
const MFStringgetFormats (void) const
 Get the SimpleStatisticsForeground::_mfFormats field.
Field Set


void setSize (const Real32 &value)
 Set the value of the SimpleStatisticsForeground::_sfSize field.
void setColor (const Color4f &value)
 Set the value of the SimpleStatisticsForeground::_sfColor field.
void setShadowColor (const Color4f &value)
 Set the value of the SimpleStatisticsForeground::_sfShadowColor field.
void setBgColor (const Color4f &value)
 Set the value of the SimpleStatisticsForeground::_sfBgColor field.
void setFamily (const std::string &value)
 Set the value of the SimpleStatisticsForeground::_sfFamily field.
void setShadowOffset (const Vec2f &value)
 Set the value of the SimpleStatisticsForeground::_sfShadowOffset field.
void setHorizontalAlign (const UInt8 &value)
 Set the value of the SimpleStatisticsForeground::_sfHorizontalAlign field.
void setVerticalAlign (const UInt8 &value)
 Set the value of the SimpleStatisticsForeground::_sfVerticalAlign field.
void setBorderColor (const Color4f &value)
 Set the value of the SimpleStatisticsForeground::_sfBorderColor field.
void setBorderOffset (const Vec2f &value)
 Set the value of the SimpleStatisticsForeground::_sfBorderOffset field.
void setTextMargin (const Vec2f &value)
 Set the value of the SimpleStatisticsForeground::_sfTextMargin 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
Field Get


MFInt32getMFElementIDs (void)
 Get the StatisticsForeground::_mfElementIDs field.
SFStatCollectorgetSFCollector (void)
 Get the StatisticsForeground::_sfCollector field.
StatCollectorgetCollector (void)
 Get the value of the StatisticsForeground::_sfCollector field.
const StatCollectorgetCollector (void) const
 Get the value of the StatisticsForeground::_sfCollector field.
Int32getElementIDs (const UInt32 index)
 Get the value of the index element the StatisticsForeground::_mfElementIDs field.
MFInt32getElementIDs (void)
 Get the StatisticsForeground::_mfElementIDs field.
const MFInt32getElementIDs (void) const
 Get the StatisticsForeground::_mfElementIDs field.
Field Set


void setCollector (const StatCollector &value)
 Set the value of the StatisticsForeground::_sfCollector field.
Field Get


SFBoolgetSFActive (void)
 Get the Foreground::_sfActive field.
bool & getActive (void)
 Get the value of the Foreground::_sfActive field.
const bool & getActive (void) const
 Get the value of the Foreground::_sfActive field.
Field Set


void setActive (const bool &value)
 Set the value of the Foreground::_sfActive 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
SimpleStatisticsForegroundPtr 
create (void)
 create a new instance of the class
static
SimpleStatisticsForegroundPtr 
createEmpty (void)
 create an empty new instance of the class, do not copy the prototype
Class Get


static const char * getClassname (void)
Get Class Type Information


static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector FormatsFieldMask
static const osg::BitVector SizeFieldMask
static const osg::BitVector ColorFieldMask
static const osg::BitVector ShadowColorFieldMask
static const osg::BitVector BgColorFieldMask
static const osg::BitVector FamilyFieldMask
static const osg::BitVector ShadowOffsetFieldMask
static const osg::BitVector HorizontalAlignFieldMask
static const osg::BitVector VerticalAlignFieldMask
static const osg::BitVector BorderColorFieldMask
static const osg::BitVector BorderOffsetFieldMask
static const osg::BitVector TextMarginFieldMask
static const osg::BitVector MTInfluenceMask
static const osg::BitVector ElementIDsFieldMask
static const osg::BitVector CollectorFieldMask
static const osg::BitVector ActiveFieldMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = false

Protected Member Functions

Constructors


 SimpleStatisticsForeground (void)
 SimpleStatisticsForeground (const SimpleStatisticsForeground &source)
Destructors


virtual ~SimpleStatisticsForeground (void)
Sync


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


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


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


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


void executeSyncImpl (FieldContainer *pOther, const BitVector &whichField)
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)
MT Construction


void onCreate (const FieldContainer *source=NULL)
void onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL)
MT Destruction


virtual void onDestroy (void)

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

Fields


MFString _mfFormats
SFReal32 _sfSize
SFColor4f _sfColor
SFColor4f _sfShadowColor
SFColor4f _sfBgColor
SFString _sfFamily
SFVec2f _sfShadowOffset
SFUInt8 _sfHorizontalAlign
SFUInt8 _sfVerticalAlign
SFColor4f _sfBorderColor
SFVec2f _sfBorderOffset
SFVec2f _sfTextMargin
Fields


MFInt32 _mfElementIDs
SFStatCollector _sfCollector
Fields


SFBool _sfActive
Fields


SFAttachmentMap _attachmentMap
Member


UInt32 _shares

Private Types

typedef
SimpleStatisticsForegroundBase 
Inherited

Private Member Functions

void initText (const std::string &family, Real32 size)
void drawCharacters (const TextLayoutResult &layoutResult) const
void operator= (const SimpleStatisticsForeground &source)

Static Private Member Functions

static void initMethod (void)

Private Attributes

TextTXFFace_face
TextureChunkPtr _texchunk

Friends

class FieldContainer
class SimpleStatisticsForegroundBase


Detailed Description

SimpleStatisticsForeground displays the Statistics info as simple text lines. See Simple Statistics Foreground for a description.

The format string for the given elements are stored in the _mfFormats Field, the size and color used for all lines in _sfSize and _sfColor.

Definition at line 61 of file OSGSimpleStatisticsForeground.h.


Member Typedef Documentation

Reimplemented from osg::SimpleStatisticsForegroundBase.

Definition at line 65 of file OSGSimpleStatisticsForeground.h.

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 101 of file OSGSimpleStatisticsForegroundBase.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
Left 
Middle 
Right 

Definition at line 74 of file OSGSimpleStatisticsForeground.h.

anonymous enum

Enumerator:
Top 
Center 
Bottom 

Definition at line 75 of file OSGSimpleStatisticsForeground.h.

anonymous enum [inherited]

Enumerator:
FormatsFieldId 
SizeFieldId 
ColorFieldId 
ShadowColorFieldId 
BgColorFieldId 
FamilyFieldId 
ShadowOffsetFieldId 
HorizontalAlignFieldId 
VerticalAlignFieldId 
BorderColorFieldId 
BorderOffsetFieldId 
TextMarginFieldId 
NextFieldId 

Definition at line 103 of file OSGSimpleStatisticsForegroundBase.h.

00104     {
00105         FormatsFieldId         = Inherited::NextFieldId,
00106         SizeFieldId            = FormatsFieldId         + 1,
00107         ColorFieldId           = SizeFieldId            + 1,
00108         ShadowColorFieldId     = ColorFieldId           + 1,
00109         BgColorFieldId         = ShadowColorFieldId     + 1,
00110         FamilyFieldId          = BgColorFieldId         + 1,
00111         ShadowOffsetFieldId    = FamilyFieldId          + 1,
00112         HorizontalAlignFieldId = ShadowOffsetFieldId    + 1,
00113         VerticalAlignFieldId   = HorizontalAlignFieldId + 1,
00114         BorderColorFieldId     = VerticalAlignFieldId   + 1,
00115         BorderOffsetFieldId    = BorderColorFieldId     + 1,
00116         TextMarginFieldId      = BorderOffsetFieldId    + 1,
00117         NextFieldId            = TextMarginFieldId      + 1
00118     };

anonymous enum [inherited]

Enumerator:
ElementIDsFieldId 
CollectorFieldId 
NextFieldId 

Definition at line 93 of file OSGStatisticsForegroundBase.h.

00094     {
00095         ElementIDsFieldId = Inherited::NextFieldId,
00096         CollectorFieldId  = ElementIDsFieldId + 1,
00097         NextFieldId       = CollectorFieldId  + 1
00098     };

anonymous enum [inherited]

Enumerator:
ActiveFieldId 
NextFieldId 

Definition at line 92 of file OSGForegroundBase.h.

00093     {
00094         ActiveFieldId = Inherited::NextFieldId,
00095         NextFieldId   = ActiveFieldId + 1
00096     };

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

SimpleStatisticsForeground::SimpleStatisticsForeground ( void   )  [protected]

Definition at line 73 of file OSGSimpleStatisticsForeground.cpp.

00073                                                            :
00074     Inherited(), _face(0), _texchunk()
00075 {
00076 }

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

Definition at line 78 of file OSGSimpleStatisticsForeground.cpp.

References _face, _texchunk, osg::addRefCP(), osg::addRefP(), and osg::NullFC.

00078                                                                                                :
00079     Inherited(), _face(source._face), _texchunk(source._texchunk)
00080 {
00081     if (_face != 0)
00082         addRefP(_face);
00083     if (_texchunk != NullFC)
00084         addRefCP(_texchunk);
00085 }

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

Definition at line 88 of file OSGSimpleStatisticsForeground.cpp.

References _face, _texchunk, osg::NullFC, osg::subRefCP(), and osg::subRefP().

00089 {
00090     if (_face != 0)
00091         subRefP(_face);
00092     if (_texchunk != NullFC)
00093         subRefCP(_texchunk);
00094 }


Member Function Documentation

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

Reimplemented from osg::StatisticsForeground.

Definition at line 102 of file OSGSimpleStatisticsForeground.cpp.

References osg::StatisticsForeground::changed().

00103 {
00104     Inherited::changed(whichField, origin);
00105 }

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

Reimplemented from osg::StatisticsForeground.

Definition at line 108 of file OSGSimpleStatisticsForeground.cpp.

References SLOG.

00109 {
00110     SLOG << "Dump SimpleStatisticsForeground NI" << std::endl;
00111 }

void SimpleStatisticsForeground::draw ( DrawActionBase action,
Viewport port 
) [virtual]

Draw the statistics lines.

Implements osg::StatisticsForeground.

Definition at line 194 of file OSGSimpleStatisticsForeground.cpp.

References _face, _texchunk, osg::TextLayoutParam::ALIGN_BEGIN, Bottom, Center, drawCharacters(), osg::ForegroundBase::getActive(), osg::SimpleStatisticsForegroundBase::getBgColor(), osg::SimpleStatisticsForegroundBase::getBorderColor(), osg::SimpleStatisticsForegroundBase::getBorderOffset(), osg::StatisticsForegroundBase::getCollector(), osg::SimpleStatisticsForegroundBase::getColor(), osg::StatElem::getDesc(), osg::StatCollector::getElem(), osg::StatisticsForegroundBase::getElementIDs(), osg::SimpleStatisticsForegroundBase::getFamily(), osg::SimpleStatisticsForegroundBase::getFormats(), osg::SimpleStatisticsForegroundBase::getHorizontalAlign(), osg::StatElemDescBase::getName(), osg::StatCollector::getNumOfElems(), osg::TextTXFFace::getParam(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::TextTXFFace::getScale(), osg::SimpleStatisticsForegroundBase::getShadowColor(), osg::SimpleStatisticsForegroundBase::getShadowOffset(), osg::SimpleStatisticsForegroundBase::getSize(), osg::SimpleStatisticsForegroundBase::getTextMargin(), osg::SimpleStatisticsForegroundBase::getVerticalAlign(), initText(), osg::TextTXFFace::layout(), Left, osg::TextLayoutParam::majorAlignment, Middle, osg::TextLayoutParam::minorAlignment, osg::StatElem::putToString(), Right, osg::TextTXFParam::size, osg::MField< FieldTypeT, fieldNameSpace >::size(), osg::TextLayoutParam::spacing, osg::IDString::str(), osg::TextLayoutResult::textBounds, and Top.

00195 {
00196     if (getActive() == false)
00197         return;
00198     
00199     if (_face == 0)
00200         initText(getFamily(), getSize());
00201 
00202     if (!getCollector().getNumOfElems() && !getElementIDs().size())
00203         return; // nothing to do
00204 
00205     Real32  pw = Real32(port->getPixelWidth ());
00206     Real32  ph = Real32(port->getPixelHeight());
00207 
00208     if (pw < 1 || ph < 1)
00209         return;
00210 
00211     glPushAttrib(GL_LIGHTING_BIT | GL_POLYGON_BIT | GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
00212 
00213     glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
00214     glDisable(GL_DEPTH_TEST);
00215     glDisable(GL_COLOR_MATERIAL);
00216     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
00217     glEnable(GL_BLEND);
00218 
00219     glMatrixMode(GL_MODELVIEW);
00220     glPushMatrix();
00221     glLoadIdentity();
00222 
00223     glMatrixMode(GL_PROJECTION);
00224     glPushMatrix();
00225     glLoadIdentity();
00226 
00227     // Set viewport. We want to map one unit to one pixel on the
00228     // screen. Some sources in the internet say that we should
00229     // add an offset of -0.375 to prevent rounding errors. Don't
00230     // know if that is true, but it seems to work.
00231     glOrtho(0 - 0.375, pw - 0.375, 0 - 0.375, ph - 0.375, 0, 1);
00232 
00233     // retrieve text
00234     std::vector < std::string > stat;
00235 
00236     StatCollector   *col = &getCollector();
00237     StatElem        *el;
00238 
00239     if(getElementIDs().size() != 0)
00240     {
00241         for(UInt32 i = 0; i < getElementIDs().size(); ++i)
00242         {
00243             Int32 id(getElementIDs()[i]);
00244             el = ((id >= 0) ? col->getElem(id) : 0);
00245 
00246             stat.resize(stat.size() + 1);
00247             std::vector < std::string >::iterator str = stat.end() - 1;
00248 
00249             const char  *format = NULL;
00250             if(i < getFormats().size() && getFormats()[i].length())
00251             {
00252               format = getFormats()[i].c_str();
00253             }
00254 
00255             if (el)
00256                 el->putToString(*str, format);
00257             else
00258                 *str = format;
00259         }
00260     }
00261     else    // fallback, show all elements
00262     {
00263         for(UInt32 i = 0; i < col->getNumOfElems(); ++i)
00264         {
00265             el = col->getElem(i, false);
00266             if(el)
00267             {
00268                 std::string desc(el->getDesc()->getName().str()), eltext;
00269 
00270                 el->putToString(eltext);
00271                 desc = desc + " : " + eltext;
00272 
00273                 stat.resize(stat.size() + 1);
00274                 std::vector < std::string >::iterator str = stat.end() - 1;
00275                 *str = desc;
00276             }
00277         }
00278     }
00279 
00280     TextLayoutParam layoutParam;
00281     layoutParam.spacing = 1.1;
00282     layoutParam.majorAlignment = TextLayoutParam::ALIGN_BEGIN;
00283     layoutParam.minorAlignment = TextLayoutParam::ALIGN_BEGIN;
00284 
00285     TextLayoutResult layoutResult;
00286     _face->layout(stat, layoutParam, layoutResult);
00287 
00288     Real32 scale = 1 / _face->getScale();
00289     Real32 size = _face->getParam().size;
00290     Real32 textWidth = layoutResult.textBounds.x() * scale + size + getTextMargin().x() * 2.0f;
00291     Real32 textHeight = layoutResult.textBounds.y() * scale + size + getTextMargin().y() * 2.0f;
00292 
00293     // Let's do some simple form of layout management
00294     Real32 orthoX = 0, orthoY = ph;
00295 
00296     switch ( getHorizontalAlign() )
00297     {
00298         case Right:
00299             orthoX = pw - textWidth;
00300             break;
00301         case Middle:
00302             orthoX = (pw - textWidth) * 0.5;
00303             break;
00304         case Left:
00305         default:
00306             break;
00307     }
00308 
00309     switch ( getVerticalAlign() )
00310     {
00311         case Bottom:
00312             orthoY = textHeight;
00313             break;
00314         case Center:
00315             orthoY = (ph - textHeight) * 0.5 + textHeight;
00316             break;
00317         case Top:
00318         default:
00319             break;
00320     }
00321 
00322     glTranslatef(orthoX, orthoY, 0.0);
00323 
00324     // draw background
00325     glColor4fv((GLfloat*)getBgColor().getValuesRGBA());
00326     glBegin(GL_QUADS);
00327         glVertex2f(0, -textHeight);
00328         glVertex2f(textWidth, -textHeight);
00329         glVertex2f(textWidth, 0);
00330         glVertex2f(0, 0);
00331     glEnd();
00332 
00333     // draw border
00334     if(getBorderColor().red() >= 0.0f)
00335     {
00336         glColor4fv((GLfloat*)getBorderColor().getValuesRGBA());
00337         glBegin(GL_LINE_LOOP);
00338             glVertex2f(getBorderOffset().x(), -textHeight + 1 + getBorderOffset().y());
00339             glVertex2f(textWidth - 1 - getBorderOffset().x(), -textHeight + 1 + getBorderOffset().y());
00340             glVertex2f(textWidth - 1 - getBorderOffset().x(), -1 - getBorderOffset().y());
00341             glVertex2f(getBorderOffset().x(), -1 - getBorderOffset().y());
00342         glEnd();
00343     }
00344 
00345     // draw text
00346     glTranslatef(0.5 * size + getTextMargin().x(), -0.5 * size - getTextMargin().y(), 0.0);
00347 
00348     _texchunk->activate(action);
00349 
00350     glColor4fv((GLfloat*)getShadowColor().getValuesRGBA());
00351     glPushMatrix();
00352     glTranslatef(getShadowOffset().x(), getShadowOffset().y(), 0);
00353     glScalef(scale, scale, 1);
00354     drawCharacters(layoutResult);
00355 
00356     glColor4fv((GLfloat*)getColor().getValuesRGBA());
00357     glPopMatrix();
00358     glScalef(scale, scale, 1);
00359     drawCharacters(layoutResult);
00360 
00361     _texchunk->deactivate(action);
00362 
00363     glMatrixMode(GL_PROJECTION);
00364     glPopMatrix();
00365 
00366     glMatrixMode(GL_MODELVIEW);
00367     glPopMatrix();
00368 
00369     glPopAttrib();
00370 }

void SimpleStatisticsForeground::addElement ( StatElemDescBase desc,
const char *  format = NULL 
)

Convenience function to add an element and format.

Definition at line 115 of file OSGSimpleStatisticsForeground.cpp.

References osg::StatisticsForegroundBase::getElementIDs(), osg::SimpleStatisticsForegroundBase::getFormats(), osg::StatElemDescBase::getID(), and osg::MField< FieldTypeT, fieldNameSpace >::push_back().

Referenced by addText().

00117 {
00118     getElementIDs().push_back(desc.getID());
00119     getFormats().push_back(format ? format : "");
00120 }

void SimpleStatisticsForeground::addElement ( Int32  id,
const char *  format = NULL 
)

Convenience function to add an element and format.

Definition at line 124 of file OSGSimpleStatisticsForeground.cpp.

References osg::StatisticsForegroundBase::getElementIDs(), osg::SimpleStatisticsForegroundBase::getFormats(), and osg::MField< FieldTypeT, fieldNameSpace >::push_back().

00125 {
00126     getElementIDs().push_back(id);
00127     getFormats().push_back(format ? format : "");
00128 }

void SimpleStatisticsForeground::addText ( const char *  text  ) 

Convenience function to add a line of text.

Definition at line 132 of file OSGSimpleStatisticsForeground.cpp.

References addElement().

00133 {
00134     addElement( -1, text );
00135 }

void SimpleStatisticsForeground::clearElems ( void   ) 

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

Reimplemented from osg::StatisticsForeground.

Definition at line 97 of file OSGSimpleStatisticsForeground.cpp.

00098 {
00099 }

void SimpleStatisticsForeground::initText ( const std::string &  family,
Real32  size 
) [private]

Initialize the text used. It is compiled into the library as StatisticsDefaultFontData and used as a TXF font.

Definition at line 149 of file OSGSimpleStatisticsForeground.cpp.

References _face, _texchunk, osg::addRefCP(), osg::addRefP(), osg::beginEditCP(), osg::TextureChunkBase::create(), osg::TextTXFFace::create(), osg::endEditCP(), osg::getStatisticsDefaultFont(), osg::getStatisticsDefaultFontTexture(), osg::TextTXFFace::getTexture(), osg::NullFC, osg::TextTXFParam::size, osg::TextFace::STYLE_PLAIN, osg::subRefCP(), and osg::subRefP().

Referenced by draw().

00150 {
00151     // Cleanup
00152     if (_face != 0)
00153         subRefP(_face);
00154     if (_texchunk != NullFC)
00155         subRefCP(_texchunk);
00156 
00157     // Create the font
00158     if (family.empty() == false)
00159     {
00160         TextTXFParam param;
00161         param.size = static_cast<UInt32>(size);
00162         _face = TextTXFFace::create(family, TextFace::STYLE_PLAIN, param);
00163         if (_face != 0)
00164         {
00165             _texchunk = TextureChunk::create();
00166             beginEditCP(_texchunk);
00167             {
00168                 ImagePtr texture = _face->getTexture();
00169                 _texchunk->setImage(texture);
00170                 _texchunk->setWrapS(GL_CLAMP);
00171                 _texchunk->setWrapT(GL_CLAMP);
00172                 _texchunk->setMinFilter(GL_NEAREST);
00173                 _texchunk->setMagFilter(GL_NEAREST);
00174                 _texchunk->setEnvMode(GL_MODULATE);
00175             }
00176             endEditCP(_texchunk);
00177         }
00178     }
00179 
00180     // We failed to create the font - fallback to the default font
00181     if (_face == 0)
00182     {
00183         _face = getStatisticsDefaultFont();
00184         _texchunk = getStatisticsDefaultFontTexture();
00185     }
00186 
00187     // Increment reference counters
00188     addRefP(_face);
00189     addRefCP(_texchunk);
00190 }

void SimpleStatisticsForeground::drawCharacters ( const TextLayoutResult layoutResult  )  const [private]

Definition at line 372 of file OSGSimpleStatisticsForeground.cpp.

References _face, osg::TextTXFGlyph::COORD_BOTTOM, osg::TextTXFGlyph::COORD_LEFT, osg::TextTXFGlyph::COORD_RIGHT, osg::TextTXFGlyph::COORD_TOP, osg::TextTXFGlyph::getHeight(), osg::TextLayoutResult::getNumGlyphs(), osg::TextTXFGlyph::getTexCoord(), osg::TextTXFFace::getTXFGlyph(), osg::TextTXFGlyph::getWidth(), osg::TextLayoutResult::indices, and osg::TextLayoutResult::positions.

Referenced by draw().

00373 {
00374     glBegin(GL_QUADS);
00375 
00376     UInt32 i, numGlyphs = layoutResult.getNumGlyphs();
00377     Real32 width, height;
00378     for(i = 0; i < numGlyphs; ++i)
00379     {
00380         const TextTXFGlyph &glyph = _face->getTXFGlyph(layoutResult.indices[i]);
00381         width = glyph.getWidth();
00382         height = glyph.getHeight();
00383         // No need to draw invisible glyphs
00384         if ((width <= 0.f) || (height <= 0.f))
00385             continue;
00386 
00387         // Calculate coordinates
00388         const Vec2f &pos = layoutResult.positions[i];
00389         Real32 posLeft = pos.x();
00390         Real32 posTop = pos.y();
00391         Real32 posRight = pos.x() + width;
00392         Real32 posBottom = pos.y() - height;
00393         Real32 texCoordLeft = glyph.getTexCoord(TextTXFGlyph::COORD_LEFT);
00394         Real32 texCoordTop = glyph.getTexCoord(TextTXFGlyph::COORD_TOP);
00395         Real32 texCoordRight = glyph.getTexCoord(TextTXFGlyph::COORD_RIGHT);
00396         Real32 texCoordBottom = glyph.getTexCoord(TextTXFGlyph::COORD_BOTTOM);
00397 
00398         // lower left corner
00399         glTexCoord2f(texCoordLeft, texCoordBottom);
00400         glVertex2f(posLeft, posBottom);
00401 
00402         // lower right corner
00403         glTexCoord2f(texCoordRight, texCoordBottom);
00404         glVertex2f(posRight, posBottom);
00405 
00406         // upper right corner
00407         glTexCoord2f(texCoordRight, texCoordTop);
00408         glVertex2f(posRight, posTop);
00409 
00410         // upper left corner
00411         glTexCoord2f(texCoordLeft, texCoordTop);
00412         glVertex2f(posLeft, posTop);
00413     }
00414 
00415     glEnd();
00416 }

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

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 58 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 65 of file OSGSimpleStatisticsForegroundBase.inl.

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

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

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 227 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::SimpleStatisticsForegroundBase::_type.

00228 {
00229     return _type; 
00230 } 

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 232 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::SimpleStatisticsForegroundBase::_type.

00233 {
00234     return _type;
00235 } 

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 247 of file OSGSimpleStatisticsForegroundBase.cpp.

00248 { 
00249     return sizeof(SimpleStatisticsForeground); 
00250 }

MFString * osg::SimpleStatisticsForegroundBase::getMFFormats ( void   )  [inline, inherited]

Definition at line 101 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_mfFormats.

00102 {
00103     return &_mfFormats;
00104 }

SFReal32 * osg::SimpleStatisticsForegroundBase::getSFSize ( void   )  [inline, inherited]

Definition at line 108 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfSize.

00109 {
00110     return &_sfSize;
00111 }

SFColor4f * osg::SimpleStatisticsForegroundBase::getSFColor ( void   )  [inline, inherited]

Definition at line 115 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfColor.

00116 {
00117     return &_sfColor;
00118 }

SFColor4f * osg::SimpleStatisticsForegroundBase::getSFShadowColor ( void   )  [inline, inherited]

Definition at line 122 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfShadowColor.

00123 {
00124     return &_sfShadowColor;
00125 }

SFColor4f * osg::SimpleStatisticsForegroundBase::getSFBgColor ( void   )  [inline, inherited]

Definition at line 129 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfBgColor.

00130 {
00131     return &_sfBgColor;
00132 }

SFString * osg::SimpleStatisticsForegroundBase::getSFFamily ( void   )  [inline, inherited]

Definition at line 136 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfFamily.

00137 {
00138     return &_sfFamily;
00139 }

SFVec2f * osg::SimpleStatisticsForegroundBase::getSFShadowOffset ( void   )  [inline, inherited]

Definition at line 143 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfShadowOffset.

00144 {
00145     return &_sfShadowOffset;
00146 }

SFUInt8 * osg::SimpleStatisticsForegroundBase::getSFHorizontalAlign ( void   )  [inline, inherited]

Definition at line 150 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfHorizontalAlign.

00151 {
00152     return &_sfHorizontalAlign;
00153 }

SFUInt8 * osg::SimpleStatisticsForegroundBase::getSFVerticalAlign ( void   )  [inline, inherited]

Definition at line 157 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfVerticalAlign.

00158 {
00159     return &_sfVerticalAlign;
00160 }

SFColor4f * osg::SimpleStatisticsForegroundBase::getSFBorderColor ( void   )  [inline, inherited]

Definition at line 164 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfBorderColor.

00165 {
00166     return &_sfBorderColor;
00167 }

SFVec2f * osg::SimpleStatisticsForegroundBase::getSFBorderOffset ( void   )  [inline, inherited]

Definition at line 171 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfBorderOffset.

00172 {
00173     return &_sfBorderOffset;
00174 }

SFVec2f * osg::SimpleStatisticsForegroundBase::getSFTextMargin ( void   )  [inline, inherited]

Definition at line 178 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfTextMargin.

00179 {
00180     return &_sfTextMargin;
00181 }

Real32 & osg::SimpleStatisticsForegroundBase::getSize ( void   )  [inline, inherited]

Definition at line 186 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfSize, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw().

00187 {
00188     return _sfSize.getValue();
00189 }

const Real32 & osg::SimpleStatisticsForegroundBase::getSize ( void   )  const [inline, inherited]

Color4f & osg::SimpleStatisticsForegroundBase::getColor ( void   )  [inline, inherited]

Definition at line 207 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfColor, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw().

00208 {
00209     return _sfColor.getValue();
00210 }

const Color4f & osg::SimpleStatisticsForegroundBase::getColor ( void   )  const [inline, inherited]

Color4f & osg::SimpleStatisticsForegroundBase::getShadowColor ( void   )  [inline, inherited]

const Color4f & osg::SimpleStatisticsForegroundBase::getShadowColor ( void   )  const [inline, inherited]

Color4f & osg::SimpleStatisticsForegroundBase::getBgColor ( void   )  [inline, inherited]

Definition at line 249 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfBgColor, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw().

00250 {
00251     return _sfBgColor.getValue();
00252 }

const Color4f & osg::SimpleStatisticsForegroundBase::getBgColor ( void   )  const [inline, inherited]

std::string & osg::SimpleStatisticsForegroundBase::getFamily ( void   )  [inline, inherited]

Definition at line 270 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfFamily, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw().

00271 {
00272     return _sfFamily.getValue();
00273 }

const std::string & osg::SimpleStatisticsForegroundBase::getFamily ( void   )  const [inline, inherited]

Vec2f & osg::SimpleStatisticsForegroundBase::getShadowOffset ( void   )  [inline, inherited]

const Vec2f & osg::SimpleStatisticsForegroundBase::getShadowOffset ( void   )  const [inline, inherited]

UInt8 & osg::SimpleStatisticsForegroundBase::getHorizontalAlign ( void   )  [inline, inherited]

const UInt8 & osg::SimpleStatisticsForegroundBase::getHorizontalAlign ( void   )  const [inline, inherited]

UInt8 & osg::SimpleStatisticsForegroundBase::getVerticalAlign ( void   )  [inline, inherited]

const UInt8 & osg::SimpleStatisticsForegroundBase::getVerticalAlign ( void   )  const [inline, inherited]

Color4f & osg::SimpleStatisticsForegroundBase::getBorderColor ( void   )  [inline, inherited]

const Color4f & osg::SimpleStatisticsForegroundBase::getBorderColor ( void   )  const [inline, inherited]

Vec2f & osg::SimpleStatisticsForegroundBase::getBorderOffset ( void   )  [inline, inherited]

const Vec2f & osg::SimpleStatisticsForegroundBase::getBorderOffset ( void   )  const [inline, inherited]

Vec2f & osg::SimpleStatisticsForegroundBase::getTextMargin ( void   )  [inline, inherited]

Definition at line 396 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_sfTextMargin, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by draw().

00397 {
00398     return _sfTextMargin.getValue();
00399 }

const Vec2f & osg::SimpleStatisticsForegroundBase::getTextMargin ( void   )  const [inline, inherited]

std::string & osg::SimpleStatisticsForegroundBase::getFormats ( const UInt32  index  )  [inline, inherited]

Definition at line 418 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_mfFormats.

00419 {
00420     return _mfFormats[index];
00421 }

MFString & osg::SimpleStatisticsForegroundBase::getFormats ( void   )  [inline, inherited]

Definition at line 425 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_mfFormats.

Referenced by addElement(), clearElems(), and draw().

00426 {
00427     return _mfFormats;
00428 }

const MFString & osg::SimpleStatisticsForegroundBase::getFormats ( void   )  const [inline, inherited]

Definition at line 432 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::SimpleStatisticsForegroundBase::_mfFormats.

00433 {
00434     return _mfFormats;
00435 }

void osg::SimpleStatisticsForegroundBase::setSize ( const Real32 value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setColor ( const Color4f value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setShadowColor ( const Color4f value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setBgColor ( const Color4f value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setFamily ( const std::string &  value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setShadowOffset ( const Vec2f value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setHorizontalAlign ( const UInt8 value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setVerticalAlign ( const UInt8 value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setBorderColor ( const Color4f value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setBorderOffset ( const Vec2f value  )  [inline, inherited]

void osg::SimpleStatisticsForegroundBase::setTextMargin ( const Vec2f value  )  [inline, inherited]

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 332 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::SimpleStatisticsForegroundBase::_mfFormats, osg::SimpleStatisticsForegroundBase::_sfBgColor, osg::SimpleStatisticsForegroundBase::_sfBorderColor, osg::SimpleStatisticsForegroundBase::_sfBorderOffset, osg::SimpleStatisticsForegroundBase::_sfColor, osg::SimpleStatisticsForegroundBase::_sfFamily, osg::SimpleStatisticsForegroundBase::_sfHorizontalAlign, osg::SimpleStatisticsForegroundBase::_sfShadowColor, osg::SimpleStatisticsForegroundBase::_sfShadowOffset, osg::SimpleStatisticsForegroundBase::_sfSize, osg::SimpleStatisticsForegroundBase::_sfTextMargin, osg::SimpleStatisticsForegroundBase::_sfVerticalAlign, osg::SimpleStatisticsForegroundBase::BgColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderOffsetFieldMask, osg::SimpleStatisticsForegroundBase::ColorFieldMask, osg::SimpleStatisticsForegroundBase::FamilyFieldMask, osg::SimpleStatisticsForegroundBase::FormatsFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::StatisticsForegroundBase::getBinSize(), osg::SimpleStatisticsForegroundBase::HorizontalAlignFieldMask, osg::FieldBits::NoField, osg::SimpleStatisticsForegroundBase::ShadowColorFieldMask, osg::SimpleStatisticsForegroundBase::ShadowOffsetFieldMask, osg::SimpleStatisticsForegroundBase::SizeFieldMask, osg::SimpleStatisticsForegroundBase::TextMarginFieldMask, and osg::SimpleStatisticsForegroundBase::VerticalAlignFieldMask.

00333 {
00334     UInt32 returnValue = Inherited::getBinSize(whichField);
00335 
00336     if(FieldBits::NoField != (FormatsFieldMask & whichField))
00337     {
00338         returnValue += _mfFormats.getBinSize();
00339     }
00340 
00341     if(FieldBits::NoField != (SizeFieldMask & whichField))
00342     {
00343         returnValue += _sfSize.getBinSize();
00344     }
00345 
00346     if(FieldBits::NoField != (ColorFieldMask & whichField))
00347     {
00348         returnValue += _sfColor.getBinSize();
00349     }
00350 
00351     if(FieldBits::NoField != (ShadowColorFieldMask & whichField))
00352     {
00353         returnValue += _sfShadowColor.getBinSize();
00354     }
00355 
00356     if(FieldBits::NoField != (BgColorFieldMask & whichField))
00357     {
00358         returnValue += _sfBgColor.getBinSize();
00359     }
00360 
00361     if(FieldBits::NoField != (FamilyFieldMask & whichField))
00362     {
00363         returnValue += _sfFamily.getBinSize();
00364     }
00365 
00366     if(FieldBits::NoField != (ShadowOffsetFieldMask & whichField))
00367     {
00368         returnValue += _sfShadowOffset.getBinSize();
00369     }
00370 
00371     if(FieldBits::NoField != (HorizontalAlignFieldMask & whichField))
00372     {
00373         returnValue += _sfHorizontalAlign.getBinSize();
00374     }
00375 
00376     if(FieldBits::NoField != (VerticalAlignFieldMask & whichField))
00377     {
00378         returnValue += _sfVerticalAlign.getBinSize();
00379     }
00380 
00381     if(FieldBits::NoField != (BorderColorFieldMask & whichField))
00382     {
00383         returnValue += _sfBorderColor.getBinSize();
00384     }
00385 
00386     if(FieldBits::NoField != (BorderOffsetFieldMask & whichField))
00387     {
00388         returnValue += _sfBorderOffset.getBinSize();
00389     }
00390 
00391     if(FieldBits::NoField != (TextMarginFieldMask & whichField))
00392     {
00393         returnValue += _sfTextMargin.getBinSize();
00394     }
00395 
00396 
00397     return returnValue;
00398 }

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 400 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::SimpleStatisticsForegroundBase::_mfFormats, osg::SimpleStatisticsForegroundBase::_sfBgColor, osg::SimpleStatisticsForegroundBase::_sfBorderColor, osg::SimpleStatisticsForegroundBase::_sfBorderOffset, osg::SimpleStatisticsForegroundBase::_sfColor, osg::SimpleStatisticsForegroundBase::_sfFamily, osg::SimpleStatisticsForegroundBase::_sfHorizontalAlign, osg::SimpleStatisticsForegroundBase::_sfShadowColor, osg::SimpleStatisticsForegroundBase::_sfShadowOffset, osg::SimpleStatisticsForegroundBase::_sfSize, osg::SimpleStatisticsForegroundBase::_sfTextMargin, osg::SimpleStatisticsForegroundBase::_sfVerticalAlign, osg::SimpleStatisticsForegroundBase::BgColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderOffsetFieldMask, osg::SimpleStatisticsForegroundBase::ColorFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::StatisticsForegroundBase::copyToBin(), osg::SimpleStatisticsForegroundBase::FamilyFieldMask, osg::SimpleStatisticsForegroundBase::FormatsFieldMask, osg::SimpleStatisticsForegroundBase::HorizontalAlignFieldMask, osg::FieldBits::NoField, osg::SimpleStatisticsForegroundBase::ShadowColorFieldMask, osg::SimpleStatisticsForegroundBase::ShadowOffsetFieldMask, osg::SimpleStatisticsForegroundBase::SizeFieldMask, osg::SimpleStatisticsForegroundBase::TextMarginFieldMask, and osg::SimpleStatisticsForegroundBase::VerticalAlignFieldMask.

00402 {
00403     Inherited::copyToBin(pMem, whichField);
00404 
00405     if(FieldBits::NoField != (FormatsFieldMask & whichField))
00406     {
00407         _mfFormats.copyToBin(pMem);
00408     }
00409 
00410     if(FieldBits::NoField != (SizeFieldMask & whichField))
00411     {
00412         _sfSize.copyToBin(pMem);
00413     }
00414 
00415     if(FieldBits::NoField != (ColorFieldMask & whichField))
00416     {
00417         _sfColor.copyToBin(pMem);
00418     }
00419 
00420     if(FieldBits::NoField != (ShadowColorFieldMask & whichField))
00421     {
00422         _sfShadowColor.copyToBin(pMem);
00423     }
00424 
00425     if(FieldBits::NoField != (BgColorFieldMask & whichField))
00426     {
00427         _sfBgColor.copyToBin(pMem);
00428     }
00429 
00430     if(FieldBits::NoField != (FamilyFieldMask & whichField))
00431     {
00432         _sfFamily.copyToBin(pMem);
00433     }
00434 
00435     if(FieldBits::NoField != (ShadowOffsetFieldMask & whichField))
00436     {
00437         _sfShadowOffset.copyToBin(pMem);
00438     }
00439 
00440     if(FieldBits::NoField != (HorizontalAlignFieldMask & whichField))
00441     {
00442         _sfHorizontalAlign.copyToBin(pMem);
00443     }
00444 
00445     if(FieldBits::NoField != (VerticalAlignFieldMask & whichField))
00446     {
00447         _sfVerticalAlign.copyToBin(pMem);
00448     }
00449 
00450     if(FieldBits::NoField != (BorderColorFieldMask & whichField))
00451     {
00452         _sfBorderColor.copyToBin(pMem);
00453     }
00454 
00455     if(FieldBits::NoField != (BorderOffsetFieldMask & whichField))
00456     {
00457         _sfBorderOffset.copyToBin(pMem);
00458     }
00459 
00460     if(FieldBits::NoField != (TextMarginFieldMask & whichField))
00461     {
00462         _sfTextMargin.copyToBin(pMem);
00463     }
00464 
00465 
00466 }

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 468 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::SimpleStatisticsForegroundBase::_mfFormats, osg::SimpleStatisticsForegroundBase::_sfBgColor, osg::SimpleStatisticsForegroundBase::_sfBorderColor, osg::SimpleStatisticsForegroundBase::_sfBorderOffset, osg::SimpleStatisticsForegroundBase::_sfColor, osg::SimpleStatisticsForegroundBase::_sfFamily, osg::SimpleStatisticsForegroundBase::_sfHorizontalAlign, osg::SimpleStatisticsForegroundBase::_sfShadowColor, osg::SimpleStatisticsForegroundBase::_sfShadowOffset, osg::SimpleStatisticsForegroundBase::_sfSize, osg::SimpleStatisticsForegroundBase::_sfTextMargin, osg::SimpleStatisticsForegroundBase::_sfVerticalAlign, osg::SimpleStatisticsForegroundBase::BgColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderOffsetFieldMask, osg::SimpleStatisticsForegroundBase::ColorFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::StatisticsForegroundBase::copyFromBin(), osg::SimpleStatisticsForegroundBase::FamilyFieldMask, osg::SimpleStatisticsForegroundBase::FormatsFieldMask, osg::SimpleStatisticsForegroundBase::HorizontalAlignFieldMask, osg::FieldBits::NoField, osg::SimpleStatisticsForegroundBase::ShadowColorFieldMask, osg::SimpleStatisticsForegroundBase::ShadowOffsetFieldMask, osg::SimpleStatisticsForegroundBase::SizeFieldMask, osg::SimpleStatisticsForegroundBase::TextMarginFieldMask, and osg::SimpleStatisticsForegroundBase::VerticalAlignFieldMask.

00470 {
00471     Inherited::copyFromBin(pMem, whichField);
00472 
00473     if(FieldBits::NoField != (FormatsFieldMask & whichField))
00474     {
00475         _mfFormats.copyFromBin(pMem);
00476     }
00477 
00478     if(FieldBits::NoField != (SizeFieldMask & whichField))
00479     {
00480         _sfSize.copyFromBin(pMem);
00481     }
00482 
00483     if(FieldBits::NoField != (ColorFieldMask & whichField))
00484     {
00485         _sfColor.copyFromBin(pMem);
00486     }
00487 
00488     if(FieldBits::NoField != (ShadowColorFieldMask & whichField))
00489     {
00490         _sfShadowColor.copyFromBin(pMem);
00491     }
00492 
00493     if(FieldBits::NoField != (BgColorFieldMask & whichField))
00494     {
00495         _sfBgColor.copyFromBin(pMem);
00496     }
00497 
00498     if(FieldBits::NoField != (FamilyFieldMask & whichField))
00499     {
00500         _sfFamily.copyFromBin(pMem);
00501     }
00502 
00503     if(FieldBits::NoField != (ShadowOffsetFieldMask & whichField))
00504     {
00505         _sfShadowOffset.copyFromBin(pMem);
00506     }
00507 
00508     if(FieldBits::NoField != (HorizontalAlignFieldMask & whichField))
00509     {
00510         _sfHorizontalAlign.copyFromBin(pMem);
00511     }
00512 
00513     if(FieldBits::NoField != (VerticalAlignFieldMask & whichField))
00514     {
00515         _sfVerticalAlign.copyFromBin(pMem);
00516     }
00517 
00518     if(FieldBits::NoField != (BorderColorFieldMask & whichField))
00519     {
00520         _sfBorderColor.copyFromBin(pMem);
00521     }
00522 
00523     if(FieldBits::NoField != (BorderOffsetFieldMask & whichField))
00524     {
00525         _sfBorderOffset.copyFromBin(pMem);
00526     }
00527 
00528     if(FieldBits::NoField != (TextMarginFieldMask & whichField))
00529     {
00530         _sfTextMargin.copyFromBin(pMem);
00531     }
00532 
00533 
00534 }

SimpleStatisticsForegroundPtr osg::SimpleStatisticsForegroundBase::create ( void   )  [inline, static, inherited]

Definition at line 72 of file OSGSimpleStatisticsForegroundBase.inl.

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

Referenced by osg::SimpleSceneManager::initialize().

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

SimpleStatisticsForegroundPtr osg::SimpleStatisticsForegroundBase::createEmpty ( void   )  [inline, static, inherited]

Definition at line 87 of file OSGSimpleStatisticsForegroundBase.inl.

References osg::FieldContainer::newPtr().

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

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

Implements osg::FieldContainer.

Definition at line 238 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::FieldContainer::newPtr().

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

00239 { 
00240     SimpleStatisticsForegroundPtr returnValue; 
00241 
00242     newPtr(returnValue, dynamic_cast<const SimpleStatisticsForeground *>(this)); 
00243 
00244     return returnValue; 
00245 }

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

Definition at line 537 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::SimpleStatisticsForegroundBase::_mfFormats, osg::SimpleStatisticsForegroundBase::_sfBgColor, osg::SimpleStatisticsForegroundBase::_sfBorderColor, osg::SimpleStatisticsForegroundBase::_sfBorderOffset, osg::SimpleStatisticsForegroundBase::_sfColor, osg::SimpleStatisticsForegroundBase::_sfFamily, osg::SimpleStatisticsForegroundBase::_sfHorizontalAlign, osg::SimpleStatisticsForegroundBase::_sfShadowColor, osg::SimpleStatisticsForegroundBase::_sfShadowOffset, osg::SimpleStatisticsForegroundBase::_sfSize, osg::SimpleStatisticsForegroundBase::_sfTextMargin, osg::SimpleStatisticsForegroundBase::_sfVerticalAlign, osg::SimpleStatisticsForegroundBase::BgColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderColorFieldMask, osg::SimpleStatisticsForegroundBase::BorderOffsetFieldMask, osg::SimpleStatisticsForegroundBase::ColorFieldMask, osg::StatisticsForegroundBase::executeSyncImpl(), osg::SimpleStatisticsForegroundBase::FamilyFieldMask, osg::SimpleStatisticsForegroundBase::FormatsFieldMask, osg::SimpleStatisticsForegroundBase::HorizontalAlignFieldMask, osg::FieldBits::NoField, osg::SimpleStatisticsForegroundBase::ShadowColorFieldMask, osg::SimpleStatisticsForegroundBase::ShadowOffsetFieldMask, osg::SimpleStatisticsForegroundBase::SizeFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SimpleStatisticsForegroundBase::TextMarginFieldMask, and osg::SimpleStatisticsForegroundBase::VerticalAlignFieldMask.

Referenced by osg::SimpleStatisticsForegroundBase::executeSync().

00539 {
00540 
00541     Inherited::executeSyncImpl(pOther, whichField);
00542 
00543     if(FieldBits::NoField != (FormatsFieldMask & whichField))
00544         _mfFormats.syncWith(pOther->_mfFormats);
00545 
00546     if(FieldBits::NoField != (SizeFieldMask & whichField))
00547         _sfSize.syncWith(pOther->_sfSize);
00548 
00549     if(FieldBits::NoField != (ColorFieldMask & whichField))
00550         _sfColor.syncWith(pOther->_sfColor);
00551 
00552     if(FieldBits::NoField != (ShadowColorFieldMask & whichField))
00553         _sfShadowColor.syncWith(pOther->_sfShadowColor);
00554 
00555     if(FieldBits::NoField != (BgColorFieldMask & whichField))
00556         _sfBgColor.syncWith(pOther->_sfBgColor);
00557 
00558     if(FieldBits::NoField != (FamilyFieldMask & whichField))
00559         _sfFamily.syncWith(pOther->_sfFamily);
00560 
00561     if(FieldBits::NoField != (ShadowOffsetFieldMask & whichField))
00562         _sfShadowOffset.syncWith(pOther->_sfShadowOffset);
00563 
00564     if(FieldBits::NoField != (HorizontalAlignFieldMask & whichField))
00565         _sfHorizontalAlign.syncWith(pOther->_sfHorizontalAlign);
00566 
00567     if(FieldBits::NoField != (VerticalAlignFieldMask & whichField))
00568         _sfVerticalAlign.syncWith(pOther->_sfVerticalAlign);
00569 
00570     if(FieldBits::NoField != (BorderColorFieldMask & whichField))
00571         _sfBorderColor.syncWith(pOther->_sfBorderColor);
00572 
00573     if(FieldBits::NoField != (BorderOffsetFieldMask & whichField))
00574         _sfBorderOffset.syncWith(pOther->_sfBorderOffset);
00575 
00576     if(FieldBits::NoField != (TextMarginFieldMask & whichField))
00577         _sfTextMargin.syncWith(pOther->_sfTextMargin);
00578 
00579 
00580 }

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

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

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

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

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 254 of file OSGSimpleStatisticsForegroundBase.cpp.

References osg::SimpleStatisticsForegroundBase::executeSyncImpl().

00256 {
00257     this->executeSyncImpl((SimpleStatisticsForegroundBase *) &other, whichField);
00258 }

MFInt32 * osg::StatisticsForegroundBase::getMFElementIDs ( void   )  [inline, inherited]

Definition at line 75 of file OSGStatisticsForegroundBase.inl.

References osg::StatisticsForegroundBase::_mfElementIDs.

00076 {
00077     return &_mfElementIDs;
00078 }

SFStatCollector * osg::StatisticsForegroundBase::getSFCollector ( void   )  [inline, inherited]

Definition at line 82 of file OSGStatisticsForegroundBase.inl.

References osg::StatisticsForegroundBase::_sfCollector.

00083 {
00084     return &_sfCollector;
00085 }

StatCollector & osg::StatisticsForegroundBase::getCollector ( void   )  [inline, inherited]

const StatCollector & osg::StatisticsForegroundBase::getCollector ( void   )  const [inline, inherited]

Int32 & osg::StatisticsForegroundBase::getElementIDs ( const UInt32  index  )  [inline, inherited]

Definition at line 112 of file OSGStatisticsForegroundBase.inl.

References osg::StatisticsForegroundBase::_mfElementIDs.

00113 {
00114     return _mfElementIDs[index];
00115 }

MFInt32 & osg::StatisticsForegroundBase::getElementIDs ( void   )  [inline, inherited]

const MFInt32 & osg::StatisticsForegroundBase::getElementIDs ( void   )  const [inline, inherited]

Definition at line 126 of file OSGStatisticsForegroundBase.inl.

References osg::StatisticsForegroundBase::_mfElementIDs.

00127 {
00128     return _mfElementIDs;
00129 }

void osg::StatisticsForegroundBase::setCollector ( const StatCollector value  )  [inline, inherited]

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

Reimplemented in osg::ImageForeground.

Definition at line 74 of file OSGForeground.h.

00074 { return "Foreground"; };

SFBool * osg::ForegroundBase::getSFActive ( void   )  [inline, inherited]

Definition at line 75 of file OSGForegroundBase.inl.

References osg::ForegroundBase::_sfActive.

00076 {
00077     return &_sfActive;
00078 }

bool & osg::ForegroundBase::getActive ( void   )  [inline, inherited]

const bool & osg::ForegroundBase::getActive ( void   )  const [inline, inherited]

Definition at line 90 of file OSGForegroundBase.inl.

References osg::ForegroundBase::_sfActive, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00091 {
00092     return _sfActive.getValue();
00093 }

void osg::ForegroundBase::setActive ( const bool &  value  )  [inline, 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 }

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 }

void FieldContainer::onDestroy ( void   )  [protected, virtual, inherited]


Friends And Related Function Documentation

friend class FieldContainer [friend]

Reimplemented from osg::SimpleStatisticsForegroundBase.

Definition at line 139 of file OSGSimpleStatisticsForeground.h.

friend class SimpleStatisticsForegroundBase [friend]

Definition at line 140 of file OSGSimpleStatisticsForeground.h.


Member Data Documentation

Initial value:

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

Reimplemented from osg::StatisticsForegroundBase.

Definition at line 134 of file OSGSimpleStatisticsForegroundBase.h.

std::string osg::SimpleStatisticsForegroundBase::_mfFormats [protected, inherited]

std::string osg::SimpleStatisticsForegroundBase::_sfFamily [protected, inherited]

bool ForegroundBase::_sfActive [protected, inherited]

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 12:15:00 2008 for OpenSG by  doxygen 1.5.5