Lugre::cGfx2D Class Reference

client only More...

#include <lugre_gfx2D.h>

Inheritance diagram for Lugre::cGfx2D:

Inheritance graph
[legend]
Collaboration diagram for Lugre::cGfx2D:

Collaboration graph
[legend]

List of all members.

Public Types

enum  {
  kGfx2DAlign_Left, kGfx2DAlign_Top, kGfx2DAlign_Right, kGfx2DAlign_Bottom,
  kGfx2DAlign_Center
}

Public Member Functions

 cGfx2D (Ogre::Overlay *pRootOverlay=0, cGfx2D *pDefaultParent=0)
 mpSceneNode is set to 0 if client has not been initialized (e.g. when prototype for luabind is created)
virtual ~cGfx2D ()
void Init ()
void Clear ()
 release attached objects
void InitPanel (cGfx2D *pParent=0)
 old ogre pane, use CCPO instead
void InitCCPO (cGfx2D *pParent=0)
 colour clip PANE overlay
void InitCCTO (cGfx2D *pParent=0)
 colour clip TEXT overlay
void InitBCCPO (cGfx2D *pParent=0)
 border colour clip PANE overlay
void InitSOC (cGfx2D *pParent=0)
 sorted overlay container
void InitRROC (cGfx2D *pParent=0)
 Rob Renderable Overlay container.
void InitText (cGfx2D *pParent=0)
 old ogre text, use CCTO instead
void InitBase (Ogre::OverlayElement *pOverlayElement, cGfx2D *pParent=0)
 assigns mpOverlayElement and sets default parameters
void InitCompass (cGfx2D *pParent=0)
 compass element
void SetPrepareFrameStep (const bool bOn)
void SetVisible (const bool bVisible)
bool GetVisible ()
void SetMaterial (const char *szMat)
void SetBorderMaterial (const char *szMat)
void SetPos (const Ogre::Real x, const Ogre::Real y)
void SetDimensions (const Ogre::Real cx, const Ogre::Real cy)
void SetAlignment (const size_t iHAlign, const size_t iVAlign)
void SetTextAlignment (const size_t iTextAlign)
void SetUV (const Ogre::Real u1, const Ogre::Real v1, const Ogre::Real u2, const Ogre::Real v2)
 only for cColourClipPaneOverlay and panel
void SetPartUV (const int iPart, const Ogre::Real u1, const Ogre::Real v1, const Ogre::Real u2, const Ogre::Real v2)
 only for cBorderColourClipPaneOverlay
void SetClip (const Ogre::Real fCL, const Ogre::Real fCT, const Ogre::Real fCW, const Ogre::Real fCH)
 only for cColourClipPaneOverlay
void SetBorder (const Ogre::Real l, const Ogre::Real t, const Ogre::Real r, const Ogre::Real b)
 only for cBorderColourClipPaneOverlay
void SetCharHeight (const Ogre::Real fHeight)
 only for mpText, default=16
void SetFont (const char *szFont)
 only for mpText, default="TrebuchetMSBold" ? or sth with "BlueHighway"?
void SetText (const char *szText)
void SetAutoWrap (const int iMaxW)
void SetColour (const Ogre::ColourValue &col)
void SetColours (const Ogre::ColourValue &colLT, const Ogre::ColourValue &colRT, const Ogre::ColourValue &colLB, const Ogre::ColourValue &colRB)
 only for cColourClipPaneOverlay and text
void SetPartColours (const int iPart, const Ogre::ColourValue &colLT, const Ogre::ColourValue &colRT, const Ogre::ColourValue &colLB, const Ogre::ColourValue &colRB)
 only for cBorderColourClipPaneOverlay
void SetRotate (const Ogre::Real radians)
 currently just a dummy
Ogre::Real GetLeft ()
 set via SetPos()
Ogre::Real GetTop ()
 set via SetPos()
Ogre::Real GetDerivedLeft ()
 works better for pixel-based coordinates than ogres _getDerivedTop, which seems to need a frame to update =(
Ogre::Real GetDerivedTop ()
Ogre::Real GetWidth ()
Ogre::Real GetHeight ()
bool IsPointWithin (const size_t x, const size_t y)
 hit-test
void GetTextBounds (Ogre::Real &w, Ogre::Real &h)
 for CCTO, see ColourClipTextOverlay.h, returns width,height
int GetGlyphAtPos (const size_t x, const size_t y)
 for CCTO, see ColourClipTextOverlay.h
void GetGlyphBounds (const size_t iIndex, Ogre::Real &l, Ogre::Real &t, Ogre::Real &r, Ogre::Real &b)
 for CCTO, see ColourClipTextOverlay.h , returns left,top,right,bottom

Static Public Member Functions

static std::string GetUniqueName ()
 for ogre naming...
static Ogre::Overlay * CreateOverlay (const char *szName, const size_t iZOrder)
 iZOrder in [0;650]
static void DestroyOverlay (Ogre::Overlay *pOverlay)
static void LuaRegister (lua_State *L)
 lua binding
static void PrepareFrame ()
 called immediately before rendering each frame

Public Attributes

Ogre::Overlay * mpRootOverlay
 set by constructor used in InitBase, not owned by cGfx2D,
cGfx2DmpDefaultParent
Ogre::Overlay * mpParent_Overlay
 set by init, used for detach on release
cSmartPtr< cGfx2DmpParent_Gfx2D
Ogre::OverlayElement * mpOverlayElement
Ogre::OverlayContainer * mpOverlayContainer
Ogre::PanelOverlayElement * mpPanel
cColourClipPaneOverlaympCCPO
cColourClipTextOverlaympCCTO
cBorderColourClipPaneOverlaympBCCPO
cSortedOverlayContainermpSOC
cRobRenderableOverlaympRROC
cCompassOverlaympCompass
Ogre::TextAreaOverlayElement * mpText
cSmartPtr< cGfx3DmpTrackPosTarget
 SetPosition on projected 3d coordinates.
Vector2 mvTrackPosOffset
 in pixels, affects tracking mpTrackPosTarget and mbTrackMouse
Vector2 mvTrackPosTargetSizeFactor
Vector2 mvTrackPosOwnSizeFactor
Vector2 mvTrackClampMin
 left top border, in pixels, clamps projected target pos
Vector2 mvTrackClampMax
 right bottom border
Vector2 mvTrackSetSizeFactor
 for mbTrackSetSize
bool mbTrackClamp
bool mbTrackHideIfClamped
 warning, overrides manual visibility
bool mbTrackHideIfBehindCam
 warning, overrides manual visibility
bool mbTrackClampMaxXIfBehindCam
bool mbTrackClampMaxYIfBehindCam
bool mbTrackSetSize
 see also mvTrackSetSizeFactor
bool mbTrackMouse

Static Public Attributes

static unsigned int miCount

Private Member Functions

void PrepareFrameStep ()
 handles stuff that has to be done every frame, right before rendering, e.g. tracking a 3d position in 2d

Private Attributes

std::list< cGfx2D * >::iterator mPrepareFrameItor
 points to self, for constant time removal
bool mbPrepareFrameStep
 true if PrepareFrameStep should be called every frame, dont change manually, use SetPrepareFrameStep

Static Private Attributes

static std::list< cGfx2D * > gPrepareFrameStepper


Detailed Description

client only

Definition at line 60 of file lugre_gfx2D.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
kGfx2DAlign_Left 
kGfx2DAlign_Top 
kGfx2DAlign_Right 
kGfx2DAlign_Bottom 
kGfx2DAlign_Center 

Definition at line 63 of file lugre_gfx2D.h.


Constructor & Destructor Documentation

Lugre::cGfx2D::cGfx2D ( Ogre::Overlay *  pRootOverlay = 0,
cGfx2D pDefaultParent = 0 
)

mpSceneNode is set to 0 if client has not been initialized (e.g. when prototype for luabind is created)

Definition at line 134 of file lugre_gfx2D.cpp.

References Init(), miCount, mpDefaultParent, mpRootOverlay, and PROFILE.

Lugre::cGfx2D::~cGfx2D (  )  [virtual]

Definition at line 141 of file lugre_gfx2D.cpp.

References Clear(), miCount, and PROFILE.


Member Function Documentation

void Lugre::cGfx2D::Init (  ) 

void Lugre::cGfx2D::Clear (  ) 

release attached objects

Definition at line 178 of file lugre_gfx2D.cpp.

References Init(), mpOverlayContainer, mpOverlayElement, mpParent_Gfx2D, mpParent_Overlay, PROFILE, and SetPrepareFrameStep().

Referenced by ~cGfx2D().

std::string Lugre::cGfx2D::GetUniqueName (  )  [static]

Ogre::Overlay * Lugre::cGfx2D::CreateOverlay ( const char *  szName,
const size_t  iZOrder 
) [static]

iZOrder in [0;650]

Definition at line 208 of file lugre_gfx2D.cpp.

Referenced by Lugre::cDialog::cDialog(), and Lugre::cGfx2D_L::CreateCursorGfx2D().

void Lugre::cGfx2D::DestroyOverlay ( Ogre::Overlay *  pOverlay  )  [static]

Definition at line 215 of file lugre_gfx2D.cpp.

Referenced by Lugre::cDialog::~cDialog().

void Lugre::cGfx2D::InitPanel ( cGfx2D pParent = 0  ) 

old ogre pane, use CCPO instead

initialises a PanelOverlayElement (possibly-textured-2d-rect and/or element-group) element

Definition at line 225 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpOverlayContainer, mpPanel, and PROFILE.

void Lugre::cGfx2D::InitCCPO ( cGfx2D pParent = 0  ) 

colour clip PANE overlay

initialises a cColourClipPaneOverlay

Definition at line 232 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpCCPO, mpOverlayContainer, and PROFILE.

void Lugre::cGfx2D::InitCCTO ( cGfx2D pParent = 0  ) 

colour clip TEXT overlay

initialises a cColourClipPaneOverlay

Definition at line 239 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpCCTO, and PROFILE.

void Lugre::cGfx2D::InitBCCPO ( cGfx2D pParent = 0  ) 

border colour clip PANE overlay

initialises a cColourClipPaneOverlay

Definition at line 246 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpBCCPO, mpOverlayContainer, and PROFILE.

void Lugre::cGfx2D::InitSOC ( cGfx2D pParent = 0  ) 

sorted overlay container

initialises a cColourClipPaneOverlay

Definition at line 253 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpOverlayContainer, mpSOC, and PROFILE.

void Lugre::cGfx2D::InitRROC ( cGfx2D pParent = 0  ) 

Rob Renderable Overlay container.

initialises a RobRenderableOverlay

Definition at line 260 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpOverlayContainer, mpRROC, and PROFILE.

void Lugre::cGfx2D::InitText ( cGfx2D pParent = 0  ) 

old ogre text, use CCTO instead

initialises a TextAreaOverlayElement

Definition at line 267 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpText, and PROFILE.

void Lugre::cGfx2D::InitBase ( Ogre::OverlayElement *  pOverlayElement,
cGfx2D pParent = 0 
)

assigns mpOverlayElement and sets default parameters

Definition at line 281 of file lugre_gfx2D.cpp.

References assert, mpDefaultParent, mpOverlayContainer, mpOverlayElement, mpParent_Gfx2D, mpParent_Overlay, mpRootOverlay, and PROFILE.

Referenced by InitBCCPO(), InitCCPO(), InitCCTO(), InitCompass(), InitPanel(), InitRROC(), InitSOC(), and InitText().

void Lugre::cGfx2D::InitCompass ( cGfx2D pParent = 0  ) 

compass element

Definition at line 273 of file lugre_gfx2D.cpp.

References GetUniqueName(), InitBase(), mpCompass, mpOverlayContainer, and PROFILE.

void Lugre::cGfx2D::SetPrepareFrameStep ( const bool  bOn  ) 

Definition at line 69 of file lugre_gfx2D.cpp.

References assert, gPrepareFrameStepper, mbPrepareFrameStep, and mPrepareFrameItor.

Referenced by Clear().

void Lugre::cGfx2D::SetVisible ( const bool  bVisible  ) 

Definition at line 313 of file lugre_gfx2D.cpp.

References mpOverlayElement.

Referenced by PrepareFrameStep().

bool Lugre::cGfx2D::GetVisible (  ) 

Definition at line 319 of file lugre_gfx2D.cpp.

References mpOverlayElement.

Referenced by Lugre::cWidget::IsUnderPos().

void Lugre::cGfx2D::SetMaterial ( const char *  szMat  ) 

Definition at line 324 of file lugre_gfx2D.cpp.

References mpOverlayElement, and PROFILE.

void Lugre::cGfx2D::SetBorderMaterial ( const char *  szMat  ) 

void Lugre::cGfx2D::SetPos ( const Ogre::Real  x,
const Ogre::Real  y 
)

in pixels, rotation is around SetScroll() , SetOffset() is in local (rotated) coords, might also depend on alignment ? sets OverlayELEMENT-pos

Definition at line 337 of file lugre_gfx2D.cpp.

References mpOverlayElement, and PROFILE.

Referenced by PrepareFrameStep().

void Lugre::cGfx2D::SetDimensions ( const Ogre::Real  cx,
const Ogre::Real  cy 
)

Referenced by PrepareFrameStep().

void Lugre::cGfx2D::SetAlignment ( const size_t  iHAlign,
const size_t  iVAlign 
)

changes the origin of coordinates, e.g. bottom+right align make 0,0 be at the bottom right of the screen/parent does NOT change text or grafical alignment, postive coordinates still mean the lower right, and the position of the element is still at its left,top corner TODO : might be only local for rotation...

Definition at line 369 of file lugre_gfx2D.cpp.

References kGfx2DAlign_Bottom, kGfx2DAlign_Center, kGfx2DAlign_Left, kGfx2DAlign_Right, kGfx2DAlign_Top, mpOverlayElement, and PROFILE.

void Lugre::cGfx2D::SetTextAlignment ( const size_t  iTextAlign  ) 

void Lugre::cGfx2D::SetUV ( const Ogre::Real  u1,
const Ogre::Real  v1,
const Ogre::Real  u2,
const Ogre::Real  v2 
)

void Lugre::cGfx2D::SetPartUV ( const int  iPart,
const Ogre::Real  u1,
const Ogre::Real  v1,
const Ogre::Real  u2,
const Ogre::Real  v2 
)

void Lugre::cGfx2D::SetClip ( const Ogre::Real  fCL,
const Ogre::Real  fCT,
const Ogre::Real  fCW,
const Ogre::Real  fCH 
)

void Lugre::cGfx2D::SetBorder ( const Ogre::Real  l,
const Ogre::Real  t,
const Ogre::Real  r,
const Ogre::Real  b 
)

void Lugre::cGfx2D::SetCharHeight ( const Ogre::Real  fHeight  ) 

only for mpText, default=16

Definition at line 410 of file lugre_gfx2D.cpp.

References mpCCTO, mpText, PROFILE, and Lugre::cColourClipTextOverlay::setCharHeight().

void Lugre::cGfx2D::SetFont ( const char *  szFont  ) 

only for mpText, default="TrebuchetMSBold" ? or sth with "BlueHighway"?

Definition at line 416 of file lugre_gfx2D.cpp.

References mpCCTO, mpText, PROFILE, and Lugre::cColourClipTextOverlay::setFontName().

void Lugre::cGfx2D::SetText ( const char *  szText  ) 

Definition at line 421 of file lugre_gfx2D.cpp.

References mpOverlayElement, Lugre::printdebug(), and PROFILE.

void Lugre::cGfx2D::SetAutoWrap ( const int  iMaxW  ) 

Definition at line 434 of file lugre_gfx2D.cpp.

References mpCCTO, and Lugre::cColourClipTextOverlay::SetAutoWrap().

void Lugre::cGfx2D::SetColour ( const Ogre::ColourValue &  col  ) 

Definition at line 438 of file lugre_gfx2D.cpp.

References PROFILE, and SetColours().

void Lugre::cGfx2D::SetColours ( const Ogre::ColourValue &  colLT,
const Ogre::ColourValue &  colRT,
const Ogre::ColourValue &  colLB,
const Ogre::ColourValue &  colRB 
)

void Lugre::cGfx2D::SetPartColours ( const int  iPart,
const Ogre::ColourValue &  colLT,
const Ogre::ColourValue &  colRT,
const Ogre::ColourValue &  colLB,
const Ogre::ColourValue &  colRB 
)

void Lugre::cGfx2D::SetRotate ( const Ogre::Real  radians  ) 

currently just a dummy

Definition at line 454 of file lugre_gfx2D.cpp.

References PROFILE.

Ogre::Real Lugre::cGfx2D::GetLeft (  ) 

set via SetPos()

Definition at line 459 of file lugre_gfx2D.cpp.

References mpOverlayElement.

Ogre::Real Lugre::cGfx2D::GetTop (  ) 

set via SetPos()

works better for pixel-based coordinates than ogres _getDerivedLeft, which seems to need a frame to update =(

Definition at line 465 of file lugre_gfx2D.cpp.

References mpOverlayElement.

Ogre::Real Lugre::cGfx2D::GetDerivedLeft (  ) 

works better for pixel-based coordinates than ogres _getDerivedTop, which seems to need a frame to update =(

Definition at line 471 of file lugre_gfx2D.cpp.

References GetDerivedLeft(), mpOverlayElement, and mpParent_Gfx2D.

Referenced by GetDerivedLeft(), IsPointWithin(), Lugre::cWidget::IsUnderPos(), and Lugre::cWidget::UpdateClip().

Ogre::Real Lugre::cGfx2D::GetDerivedTop (  ) 

Ogre::Real Lugre::cGfx2D::GetWidth (  ) 

Definition at line 488 of file lugre_gfx2D.cpp.

References mpOverlayElement.

Referenced by IsPointWithin(), PrepareFrameStep(), and Lugre::cWidget::UpdateClip().

Ogre::Real Lugre::cGfx2D::GetHeight (  ) 

Definition at line 493 of file lugre_gfx2D.cpp.

References mpOverlayElement.

Referenced by IsPointWithin(), PrepareFrameStep(), and Lugre::cWidget::UpdateClip().

bool Lugre::cGfx2D::IsPointWithin ( const size_t  x,
const size_t  y 
)

hit-test

Definition at line 498 of file lugre_gfx2D.cpp.

References GetDerivedLeft(), GetDerivedTop(), GetHeight(), GetWidth(), and mpOverlayElement.

Referenced by Lugre::cWidget::IsUnderPos().

void Lugre::cGfx2D::GetTextBounds ( Ogre::Real &  w,
Ogre::Real &  h 
)

for CCTO, see ColourClipTextOverlay.h, returns width,height

Definition at line 505 of file lugre_gfx2D.cpp.

References Lugre::cColourClipTextOverlay::GetTextBounds(), and mpCCTO.

int Lugre::cGfx2D::GetGlyphAtPos ( const size_t  x,
const size_t  y 
)

for CCTO, see ColourClipTextOverlay.h

Definition at line 509 of file lugre_gfx2D.cpp.

References Lugre::cColourClipTextOverlay::GetGlyphAtPos(), and mpCCTO.

void Lugre::cGfx2D::GetGlyphBounds ( const size_t  iIndex,
Ogre::Real &  l,
Ogre::Real &  t,
Ogre::Real &  r,
Ogre::Real &  b 
)

for CCTO, see ColourClipTextOverlay.h , returns left,top,right,bottom

Definition at line 513 of file lugre_gfx2D.cpp.

References Lugre::cColourClipTextOverlay::GetGlyphBounds(), and mpCCTO.

void Lugre::cGfx2D::LuaRegister ( lua_State *  L  )  [static]

lua binding

Definition at line 667 of file lugre_gfx2D_L.cpp.

References PROFILE.

void Lugre::cGfx2D::PrepareFrameStep (  )  [private]

void Lugre::cGfx2D::PrepareFrame (  )  [static]

called immediately before rendering each frame

Definition at line 84 of file lugre_gfx2D.cpp.

References Lugre::giGfx2DFrameCounter, gPrepareFrameStepper, and PrepareFrameStep().

Referenced by Lugre::cGame::RenderOneFrame().


Member Data Documentation

unsigned int Lugre::cGfx2D::miCount [static]

Definition at line 61 of file lugre_gfx2D.h.

Referenced by cGfx2D(), Lugre::cGfx2D_L::GetGfx2DCount(), and ~cGfx2D().

set by constructor used in InitBase, not owned by cGfx2D,

Definition at line 83 of file lugre_gfx2D.h.

Referenced by cGfx2D(), and InitBase().

Definition at line 84 of file lugre_gfx2D.h.

Referenced by cGfx2D(), and InitBase().

set by init, used for detach on release

Definition at line 87 of file lugre_gfx2D.h.

Referenced by Clear(), Init(), and InitBase().

Definition at line 88 of file lugre_gfx2D.h.

Referenced by Clear(), GetDerivedLeft(), GetDerivedTop(), Init(), and InitBase().

Ogre::OverlayElement* Lugre::cGfx2D::mpOverlayElement

Ogre::OverlayContainer* Lugre::cGfx2D::mpOverlayContainer

Ogre::PanelOverlayElement* Lugre::cGfx2D::mpPanel

Definition at line 95 of file lugre_gfx2D.h.

Referenced by Init(), InitPanel(), and SetUV().

Definition at line 96 of file lugre_gfx2D.h.

Referenced by Init(), InitCCPO(), SetClip(), SetColours(), and SetUV().

Definition at line 99 of file lugre_gfx2D.h.

Referenced by Init(), and InitSOC().

Definition at line 100 of file lugre_gfx2D.h.

Referenced by Init(), and InitRROC().

Definition at line 101 of file lugre_gfx2D.h.

Referenced by InitCompass().

Ogre::TextAreaOverlayElement* Lugre::cGfx2D::mpText

Definition at line 102 of file lugre_gfx2D.h.

Referenced by Init(), InitText(), SetCharHeight(), SetFont(), and SetTextAlignment().

SetPosition on projected 3d coordinates.

Definition at line 107 of file lugre_gfx2D.h.

Referenced by PrepareFrameStep().

in pixels, affects tracking mpTrackPosTarget and mbTrackMouse

Definition at line 108 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

Definition at line 109 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

Definition at line 110 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

left top border, in pixels, clamps projected target pos

Definition at line 111 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

right bottom border

Definition at line 112 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

for mbTrackSetSize

Definition at line 113 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

Definition at line 114 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

warning, overrides manual visibility

Definition at line 115 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

warning, overrides manual visibility

Definition at line 116 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

Definition at line 117 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

Definition at line 118 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

see also mvTrackSetSizeFactor

Definition at line 119 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

Definition at line 120 of file lugre_gfx2D.h.

Referenced by Init(), and PrepareFrameStep().

std::list< cGfx2D * > Lugre::cGfx2D::gPrepareFrameStepper [static, private]

Definition at line 172 of file lugre_gfx2D.h.

Referenced by PrepareFrame(), and SetPrepareFrameStep().

std::list<cGfx2D*>::iterator Lugre::cGfx2D::mPrepareFrameItor [private]

points to self, for constant time removal

Definition at line 173 of file lugre_gfx2D.h.

Referenced by SetPrepareFrameStep().

true if PrepareFrameStep should be called every frame, dont change manually, use SetPrepareFrameStep

Definition at line 174 of file lugre_gfx2D.h.

Referenced by Init(), and SetPrepareFrameStep().


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

Generated on Wed Feb 8 06:00:21 2012 for cpp by  doxygen 1.5.6