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 FieldContainerType & getType (void)
virtual const FieldContainerType & getType (void) const
virtual UInt32 getContainerSize (void) const
Field Get


MFString * getMFFormats (void)
 Get the SimpleStatisticsForeground::_mfFormats field.
SFReal32 * getSFSize (void)
 Get the SimpleStatisticsForeground::_sfSize field.
SFColor4f * getSFColor (void)
 Get the SimpleStatisticsForeground::_sfColor field.
SFColor4f * getSFShadowColor (void)
 Get the SimpleStatisticsForeground::_sfShadowColor field.
SFColor4f * getSFBgColor (void)
 Get the SimpleStatisticsForeground::_sfBgColor field.
SFString * getSFFamily (void)
 Get the SimpleStatisticsForeground::_sfFamily field.
SFVec2f * getSFShadowOffset (void)
 Get the SimpleStatisticsForeground::_sfShadowOffset field.
SFUInt8 * getSFHorizontalAlign (void)
 Get the SimpleStatisticsForeground::_sfHorizontalAlign field.
SFUInt8 * getSFVerticalAlign (void)
 Get the SimpleStatisticsForeground::_sfVerticalAlign field.
SFColor4f * getSFBorderColor (void)
 Get the SimpleStatisticsForeground::_sfBorderColor field.
SFVec2f * getSFBorderOffset (void)
 Get the SimpleStatisticsForeground::_sfBorderOffset field.
SFVec2f * getSFTextMargin (void)
 Get the SimpleStatisticsForeground::_sfTextMargin field.
Real32 & getSize (void)
 Get the value of the SimpleStatisticsForeground::_sfSize field.
const Real32 & getSize (void) const
 Get the value of the SimpleStatisticsForeground::_sfSize field.
Color4f & getColor (void)
 Get the value of the SimpleStatisticsForeground::_sfColor field.
const Color4f & getColor (void) const
 Get the value of the SimpleStatisticsForeground::_sfColor field.
Color4f & getShadowColor (void)
 Get the value of the SimpleStatisticsForeground::_sfShadowColor field.
const Color4f & getShadowColor (void) const
 Get the value of the SimpleStatisticsForeground::_sfShadowColor field.
Color4f & getBgColor (void)
 Get the value of the SimpleStatisticsForeground::_sfBgColor field.
const Color4f & getBgColor (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.
Vec2f & getShadowOffset (void)
 Get the value of the SimpleStatisticsForeground::_sfShadowOffset field.
const Vec2f & getShadowOffset (void) const
 Get the value of the SimpleStatisticsForeground::_sfShadowOffset field.
UInt8 & getHorizontalAlign (void)
 Get the value of the SimpleStatisticsForeground::_sfHorizontalAlign field.
const UInt8 & getHorizontalAlign (void) const
 Get the value of the SimpleStatisticsForeground::_sfHorizontalAlign field.
UInt8 & getVerticalAlign (void)
 Get the value of the SimpleStatisticsForeground::_sfVerticalAlign field.
const UInt8 & getVerticalAlign (void) const
 Get the value of the SimpleStatisticsForeground::_sfVerticalAlign field.
Color4f & getBorderColor (void)
 Get the value of the SimpleStatisticsForeground::_sfBorderColor field.
const Color4f & getBorderColor (void) const
 Get the value of the SimpleStatisticsForeground::_sfBorderColor field.
Vec2f & getBorderOffset (void)
 Get the value of the SimpleStatisticsForeground::_sfBorderOffset field.
const Vec2f & getBorderOffset (void) const
 Get the value of the SimpleStatisticsForeground::_sfBorderOffset field.
Vec2f & getTextMargin (void)
 Get the value of the SimpleStatisticsForeground::_sfTextMargin field.
const Vec2f & getTextMargin (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.
MFString & getFormats (void)
 Get the SimpleStatisticsForeground::_mfFormats field.
const MFString & getFormats (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


MFInt32 * getMFElementIDs (void)
 Get the StatisticsForeground::_mfElementIDs field.
SFStatCollector * getSFCollector (void)
 Get the StatisticsForeground::_sfCollector field.
StatCollector & getCollector (void)
 Get the value of the StatisticsForeground::_sfCollector field.
const StatCollector & getCollector (void) const
 Get the value of the StatisticsForeground::_sfCollector field.
Int32 & getElementIDs (const UInt32 index)
 Get the value of the index element the StatisticsForeground::_mfElementIDs field.
MFInt32 & getElementIDs (void)
 Get the StatisticsForeground::_mfElementIDs field.
const MFInt32 & getElementIDs (void) const
 Get the StatisticsForeground::_mfElementIDs field.
Field Set


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


SFBool * getSFActive (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)


SFAttachmentMap * getSFAttachments (void)
Get Instance Type Information


UInt32 getTypeId (void) const
UInt16 getGroupId (void) const
const Char8 * getTypeName (void) const


Field * getField (UInt32 fieldId)
Field * getField (const Char8 *fieldName)

Static Public Member Functions

Class Get


static FieldContainerType & getClassType (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