OSG::BillboardBase Class Reference

Billboard Base Class.

#include <OSGBillboardBase.h>

Inheritance diagram for OSG::BillboardBase:

OSG::Group OSG::GroupBase OSG::NodeCore OSG::AttachmentContainer OSG::FieldContainer OSG::ReflexiveContainer OSG::Billboard List of all members.

dcast



typedef AttachmentContainer Self
typedef FieldContainerAttachment AttachmentObj
typedef FieldContainerAttachmentPtr AttachmentObjPtr
typedef SFFieldContainerAttachmentPtrMap SFAttachmentObjPtrMap
typedef SFAttachmentObjPtrMap::StoredType AttachmentObjPtrMap
typedef AttachmentObjPtrMap::iterator AttachmentObjPtrMapIt
 OSG_GEN_INTERNALPTR (AttachmentContainer)

Public Types

enum  {
  AxisOfRotationFieldId = Inherited::NextFieldId, FocusOnCameraFieldId = AxisOfRotationFieldId + 1, AlignToScreenFieldId = FocusOnCameraFieldId + 1, MinAngleFieldId = AlignToScreenFieldId + 1,
  MaxAngleFieldId = MinAngleFieldId + 1, NextFieldId = MaxAngleFieldId + 1
}
typedef Group Inherited
typedef Group ParentContainer
typedef Inherited::TypeObject TypeObject
typedef TypeObject::InitPhase InitPhase
typedef MFParentFieldContainerPtr ParentField
typedef const MFParentFieldContainerPtr * ParentFieldPtr
typedef MFParentFieldContainerPtr::const_iterator ParentFieldIt
Type definitions


typedef Field *(ReflexiveContainer::*) FieldEditMethod (void)
typedef const Field *(ReflexiveContainer::*) FieldGetMethod (void) const

Public Member Functions

 OSG_GEN_INTERNALPTR (Billboard)
 OSG_GEN_INTERNALPTR (Group)
 OSG_GEN_INTERNALPTR (NodeCore)
 OSG_RC_FIRST_FIELD_DECL (Parents)
 OSG_RC_LAST_FIELD_DECL (Parents)
FieldContainer Get


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


SFVec3f * editSFAxisOfRotation (void)
const SFVec3f * getSFAxisOfRotation (void) const
SFBool * editSFFocusOnCamera (void)
const SFBool * getSFFocusOnCamera (void) const
SFBool * editSFAlignToScreen (void)
const SFBool * getSFAlignToScreen (void) const
SFReal32 * editSFMinAngle (void)
const SFReal32 * getSFMinAngle (void) const
SFReal32 * editSFMaxAngle (void)
const SFReal32 * getSFMaxAngle (void) const
Vec3feditAxisOfRotation (void)
 Get the value of the Billboard::_sfAxisOfRotation field.
const Vec3fgetAxisOfRotation (void) const
 Get the value of the Billboard::_sfAxisOfRotation field.
bool & editFocusOnCamera (void)
 Get the value of the Billboard::_sfFocusOnCamera field.
const bool & getFocusOnCamera (void) const
 Get the value of the Billboard::_sfFocusOnCamera field.
bool & editAlignToScreen (void)
 Get the value of the Billboard::_sfAlignToScreen field.
const bool & getAlignToScreen (void) const
 Get the value of the Billboard::_sfAlignToScreen field.
Real32 & editMinAngle (void)
 Get the value of the Billboard::_sfMinAngle field.
const Real32 & getMinAngle (void) const
 Get the value of the Billboard::_sfMinAngle field.
Real32 & editMaxAngle (void)
 Get the value of the Billboard::_sfMaxAngle field.
const Real32 & getMaxAngle (void) const
 Get the value of the Billboard::_sfMaxAngle field.
Field Set


void setAxisOfRotation (const Vec3f &value)
 Set the value of the Billboard::_sfAxisOfRotation field.
void setFocusOnCamera (const bool &value)
 Set the value of the Billboard::_sfFocusOnCamera field.
void setAlignToScreen (const bool &value)
 Set the value of the Billboard::_sfAlignToScreen field.
void setMinAngle (const Real32 &value)
 Set the value of the Billboard::_sfMinAngle field.
void setMaxAngle (const Real32 &value)
 Set the value of the Billboard::_sfMaxAngle field.
Binary Access


virtual UInt32 getBinSize (ConstFieldMaskArg whichField)
virtual void copyToBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, ConstFieldMaskArg whichField)
Copy


virtual FieldContainerPtr shallowCopy (void) const
Sync


virtual void changed (ConstFieldMaskArg whichField, UInt32 origin, BitVector detail)
Dump


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


 OSG_GEN_INTERNALPTR (FieldContainer)
 OSG_RC_FIRST_FIELD_DECL (ChangedCallbacks)
 OSG_RC_LAST_FIELD_DECL (ChangedCallbacks)
Constructors


 OSG_RC_FIRST_FIELD_DECL (Attachments)
 OSG_RC_LAST_FIELD_DECL (Attachments)
Helper


const MFParentFieldContainerPtr & getParents (void) const
Get


const MFParentFieldContainerPtr * getMFParents (void) const
Changed


virtual void accumulateMatrix (Matrixr &result)
MT Destruction


virtual void adjustVolume (Volume &volume)
Comparison


virtual void invalidateVolume (void)
Dump


void addParent (FieldContainerPtrConst &parent, const UInt16 uiStoredInFieldId=InvalidParentEPos)
void subParent (FieldContainerPtrConst &parent)
Set


void addAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0)
void subAttachment (const AttachmentObjPtr attachmentP, UInt16 binding=0)
AttachmentObjPtr findAttachment (UInt32 groupId, UInt16 binding=0)
AttachmentObjPtr findAttachment (const FieldContainerType &type, UInt16 binding=0)
your_category


const SFAttachmentObjPtrMapgetSFAttachments (void) const
Set


void callChangedFunctors (ConstFieldMaskArg whichField)
Container Access


UInt32 addChangedFunctor (ChangedFunctor func, std::string createSymbol)
template<class FunctorT>
void subChangedFunctor (FunctorT func)
void subChangedFunctor (UInt32 uiId)
void clearChangedFunctors (void)
Field Flags


const FieldFlagsgetFieldFlags (void)
Helper


OSG_SYSTEM_DLLMAPPING void addReference (void)
OSG_SYSTEM_DLLMAPPING void subReference (void)
OSG_SYSTEM_DLLMAPPING void subReferenceLocalVar (void)
OSG_SYSTEM_DLLMAPPING Int32 getRefCount (void) const
dcast


OSG_SYSTEM_DLLMAPPING UInt32 getTypeId (void) const
OSG_SYSTEM_DLLMAPPING UInt16 getGroupId (void) const
OSG_SYSTEM_DLLMAPPING const
Char8 * 
getTypeName (void) const
Get Field


OSG_SYSTEM_DLLMAPPING UInt32 getNumFields (void) const
OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr editField (UInt32 fieldId)
OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr editField (const Char8 *fieldName)
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr getField (UInt32 fieldId) const
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr getField (const Char8 *fieldName) const
Get Field Description


OSG_SYSTEM_DLLMAPPING FieldDescriptionBasegetFieldDescription (UInt32 fieldId)
OSG_SYSTEM_DLLMAPPING FieldDescriptionBasegetFieldDescription (const Char8 *fieldName)
Comparison


OSG_SYSTEM_DLLMAPPING EditFieldHandlePtr invalidEditField (void)
OSG_SYSTEM_DLLMAPPING GetFieldHandlePtr invalidGetField (void) const

Static Public Member Functions

Class Get


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


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

Public Attributes

dcast


 OSG_ABSTR_FIELD_CONTAINER_DECL

Static Public Attributes

static const OSG::BitVector AxisOfRotationFieldMask
static const OSG::BitVector FocusOnCameraFieldMask
static const OSG::BitVector AlignToScreenFieldMask
static const OSG::BitVector MinAngleFieldMask
static const OSG::BitVector MaxAngleFieldMask
static const OSG::BitVector NextFieldMask
static const bool isNodeCore = true

Protected Member Functions

Constructors


 BillboardBase (void)
 BillboardBase (const BillboardBase &source)
Destructors


virtual ~BillboardBase (void)
Generic Field Access


GetFieldHandlePtr getHandleAxisOfRotation (void) const
EditFieldHandlePtr editHandleAxisOfRotation (void)
GetFieldHandlePtr getHandleFocusOnCamera (void) const
EditFieldHandlePtr editHandleFocusOnCamera (void)
GetFieldHandlePtr getHandleAlignToScreen (void) const
EditFieldHandlePtr editHandleAlignToScreen (void)
GetFieldHandlePtr getHandleMinAngle (void) const
EditFieldHandlePtr editHandleMinAngle (void)
GetFieldHandlePtr getHandleMaxAngle (void) const
EditFieldHandlePtr editHandleMaxAngle (void)
Sync


virtual void resolveLinks (void)
Action Callbacks


ActionBase::ResultE renderEnter (Action *action)
ActionBase::ResultE renderLeave (Action *action)
ActionBase::ResultE intersect (Action *action)
Edit


GetFieldHandlePtr getHandleParents (void) const
Sync


EditFieldHandlePtr editHandleAttachments (void)
GetFieldHandlePtr getHandleAttachments (void) const
Edit


OSG_SYSTEM_DLLMAPPING void subReferenceUnresolved (void)
MT Construction


OSG_SYSTEM_DLLMAPPING void onCreateAspect (const FieldContainer *createAspect, const FieldContainer *source=NULL)
OSG_SYSTEM_DLLMAPPING void onCreate (const FieldContainer *source=NULL)
virtual OSG_SYSTEM_DLLMAPPING
void 
onDestroy (UInt32 uiContainerId)
Changed


OSG_SYSTEM_DLLMAPPING void onCreate (const ReflexiveContainer *source=NULL)
virtual OSG_SYSTEM_DLLMAPPING
void 
onDestroyAspect (UInt32 uiContainerId, UInt32 uiAspect)
MT Construction


virtual OSG_SYSTEM_DLLMAPPING
bool 
deregister (UInt32 uiContainerId)
MT Construction


OSG_SYSTEM_DLLMAPPING void registerChangedContainer (void)
virtual OSG_SYSTEM_DLLMAPPING
void 
registerChangedContainerV (void)
Local Edit


void editSField (ConstFieldMaskArg whichField)
template<class FieldT>
void editMField (ConstFieldMaskArg whichField, FieldT &oField)
MT Destruction


void execEndEdit (ConstFieldMaskArg whichField)
void clearChangeEntry (ContainerChangeEntry *pRef)
Edit


OSG_SYSTEM_DLLMAPPING void setId (UInt32 uiContainerId)
OSG_SYSTEM_DLLMAPPING UInt32 getId (void) const

Static Protected Member Functions

static void classDescInserter (TypeObject &oType)
static Char8 * getClassname (void)
static void classDescInserter (TypeObject &oType)
Init


static void initMethod (InitPhase ePhase)
Fields


static void classDescInserter (TypeObject &oType)
MT Construction


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

Protected Attributes

Fields


SFVec3f _sfAxisOfRotation
SFBool _sfFocusOnCamera
SFBool _sfAlignToScreen
SFReal32 _sfMinAngle
SFReal32 _sfMaxAngle
Fields


MFParentFieldContainerPtr _mfParents
Fields


SFAttachmentObjPtrMap _sfAttachments
Type information


FieldFlags_pFieldFlags
MFChangedFunctorCallback _mfChangedFunctors
Int32 _iRefCount
Member


BitVector _bvChanged
ContainerChangeEntry_pContainerChanges
UInt32 _uiContainerId

Static Protected Attributes

static TypeObject _type

Private Member Functions

void operator= (const BillboardBase &source)

Detailed Description

Definition at line 82 of file OSGBillboardBase.h.


Member Typedef Documentation

Reimplemented from OSG::Group.

Reimplemented in OSG::Billboard.

Definition at line 86 of file OSGBillboardBase.h.

Reimplemented from OSG::GroupBase.

Definition at line 87 of file OSGBillboardBase.h.

Reimplemented from OSG::GroupBase.

Definition at line 89 of file OSGBillboardBase.h.

Reimplemented from OSG::GroupBase.

Definition at line 90 of file OSGBillboardBase.h.

typedef MFParentFieldContainerPtr OSG::NodeCore::ParentField [inherited]

Definition at line 77 of file OSGNodeCore.h.

typedef const MFParentFieldContainerPtr* OSG::NodeCore::ParentFieldPtr [inherited]

Definition at line 78 of file OSGNodeCore.h.

typedef MFParentFieldContainerPtr::const_iterator OSG::NodeCore::ParentFieldIt [inherited]

Definition at line 79 of file OSGNodeCore.h.

Definition at line 70 of file OSGAttachmentContainer.h.

typedef FieldContainerAttachmentPtr OSG::AttachmentContainer::AttachmentObjPtr [inherited]

Definition at line 71 of file OSGAttachmentContainer.h.

typedef SFFieldContainerAttachmentPtrMap OSG::AttachmentContainer::SFAttachmentObjPtrMap [inherited]

Definition at line 72 of file OSGAttachmentContainer.h.

typedef SFAttachmentObjPtrMap::StoredType OSG::AttachmentContainer::AttachmentObjPtrMap [inherited]

Definition at line 74 of file OSGAttachmentContainer.h.

typedef AttachmentObjPtrMap::iterator OSG::AttachmentContainer::AttachmentObjPtrMapIt [inherited]

Definition at line 75 of file OSGAttachmentContainer.h.

typedef Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldEditMethod(void) [inherited]

Definition at line 79 of file OSGReflexiveContainer.h.

typedef const Field*(ReflexiveContainer::*) OSG::ReflexiveContainer::FieldGetMethod(void) const [inherited]

Definition at line 81 of file OSGReflexiveContainer.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
AxisOfRotationFieldId 
FocusOnCameraFieldId 
AlignToScreenFieldId 
MinAngleFieldId 
MaxAngleFieldId 
NextFieldId 

Definition at line 98 of file OSGBillboardBase.h.

00099     {
00100         AxisOfRotationFieldId = Inherited::NextFieldId,
00101         FocusOnCameraFieldId = AxisOfRotationFieldId + 1,
00102         AlignToScreenFieldId = FocusOnCameraFieldId + 1,
00103         MinAngleFieldId = AlignToScreenFieldId + 1,
00104         MaxAngleFieldId = MinAngleFieldId + 1,
00105         NextFieldId = MaxAngleFieldId + 1
00106     };


Constructor & Destructor Documentation

OSG::BillboardBase::BillboardBase ( void   )  [protected]

Definition at line 483 of file OSGBillboardBase.cpp.

00483                                  :
00484     Inherited(),
00485     _sfAxisOfRotation         (Vec3f(0.f, 1.f, 0.f)),
00486     _sfFocusOnCamera          (bool(true)),
00487     _sfAlignToScreen          (bool(false)),
00488     _sfMinAngle               (Real32(0.0f)),
00489     _sfMaxAngle               (Real32(-1.0f))
00490 {
00491 }

OSG::BillboardBase::BillboardBase ( const BillboardBase source  )  [protected]

Definition at line 493 of file OSGBillboardBase.cpp.

00493                                                         :
00494     Inherited(source),
00495     _sfAxisOfRotation         (source._sfAxisOfRotation         ),
00496     _sfFocusOnCamera          (source._sfFocusOnCamera          ),
00497     _sfAlignToScreen          (source._sfAlignToScreen          ),
00498     _sfMinAngle               (source._sfMinAngle               ),
00499     _sfMaxAngle               (source._sfMaxAngle               )
00500 {
00501 }

OSG::BillboardBase::~BillboardBase ( void   )  [protected, virtual]

Definition at line 506 of file OSGBillboardBase.cpp.

00507 {
00508 }


Member Function Documentation

OSG::BillboardBase::OSG_GEN_INTERNALPTR ( Billboard   ) 

OSG::FieldContainerType & OSG::BillboardBase::getClassType ( void   )  [inline, static]

Reimplemented from OSG::GroupBase.

Definition at line 56 of file OSGBillboardBase.inl.

References _type.

Referenced by create(), OSG::SplitGraphOp::isGroup(), and OSG::MergeGraphOp::isGroup().

00057 {
00058     return _type;
00059 }

OSG::UInt32 OSG::BillboardBase::getClassTypeId ( void   )  [inline, static]

Reimplemented from OSG::GroupBase.

Definition at line 63 of file OSGBillboardBase.inl.

References _type, and OSG::TypeBase::getId().

00064 {
00065     return _type.getId();
00066 }

OSG::UInt16 OSG::BillboardBase::getClassGroupId ( void   )  [inline, static]

Reimplemented from OSG::GroupBase.

Definition at line 69 of file OSGBillboardBase.inl.

References _type, and OSG::ReflexiveContainerType::getGroupId().

00070 {
00071     return _type.getGroupId();
00072 }

FieldContainerType & OSG::BillboardBase::getType ( void   )  [virtual]

Reimplemented from OSG::GroupBase.

Definition at line 245 of file OSGBillboardBase.cpp.

References _type.

00246 {
00247     return _type;
00248 }

const FieldContainerType & OSG::BillboardBase::getType ( void   )  const [virtual]

Reimplemented from OSG::GroupBase.

Definition at line 250 of file OSGBillboardBase.cpp.

References _type.

00251 {
00252     return _type;
00253 }

UInt32 OSG::BillboardBase::getContainerSize ( void   )  const [virtual]

Reimplemented from OSG::GroupBase.

Definition at line 255 of file OSGBillboardBase.cpp.

00256 {
00257     return sizeof(Billboard);
00258 }

SFVec3f * OSG::BillboardBase::editSFAxisOfRotation ( void   ) 

Definition at line 263 of file OSGBillboardBase.cpp.

References _sfAxisOfRotation, AxisOfRotationFieldMask, and OSG::FieldContainer::editSField().

00264 {
00265     editSField(AxisOfRotationFieldMask);
00266 
00267     return &_sfAxisOfRotation;
00268 }

const SFVec3f * OSG::BillboardBase::getSFAxisOfRotation ( void   )  const

Definition at line 270 of file OSGBillboardBase.cpp.

References _sfAxisOfRotation.

00271 {
00272     return &_sfAxisOfRotation;
00273 }

SFBool * OSG::BillboardBase::editSFFocusOnCamera ( void   ) 

Definition at line 282 of file OSGBillboardBase.cpp.

References _sfFocusOnCamera, OSG::FieldContainer::editSField(), and FocusOnCameraFieldMask.

00283 {
00284     editSField(FocusOnCameraFieldMask);
00285 
00286     return &_sfFocusOnCamera;
00287 }

const SFBool * OSG::BillboardBase::getSFFocusOnCamera ( void   )  const

Definition at line 289 of file OSGBillboardBase.cpp.

References _sfFocusOnCamera.

00290 {
00291     return &_sfFocusOnCamera;
00292 }

SFBool * OSG::BillboardBase::editSFAlignToScreen ( void   ) 

Definition at line 301 of file OSGBillboardBase.cpp.

References _sfAlignToScreen, AlignToScreenFieldMask, and OSG::FieldContainer::editSField().

00302 {
00303     editSField(AlignToScreenFieldMask);
00304 
00305     return &_sfAlignToScreen;
00306 }

const SFBool * OSG::BillboardBase::getSFAlignToScreen ( void   )  const

Definition at line 308 of file OSGBillboardBase.cpp.

References _sfAlignToScreen.

00309 {
00310     return &_sfAlignToScreen;
00311 }

SFReal32 * OSG::BillboardBase::editSFMinAngle ( void   ) 

Definition at line 320 of file OSGBillboardBase.cpp.

References _sfMinAngle, OSG::FieldContainer::editSField(), and MinAngleFieldMask.

00321 {
00322     editSField(MinAngleFieldMask);
00323 
00324     return &_sfMinAngle;
00325 }

const SFReal32 * OSG::BillboardBase::getSFMinAngle ( void   )  const

Definition at line 327 of file OSGBillboardBase.cpp.

References _sfMinAngle.

00328 {
00329     return &_sfMinAngle;
00330 }

SFReal32 * OSG::BillboardBase::editSFMaxAngle ( void   ) 

Definition at line 339 of file OSGBillboardBase.cpp.

References _sfMaxAngle, OSG::FieldContainer::editSField(), and MaxAngleFieldMask.

00340 {
00341     editSField(MaxAngleFieldMask);
00342 
00343     return &_sfMaxAngle;
00344 }

const SFReal32 * OSG::BillboardBase::getSFMaxAngle ( void   )  const

Definition at line 346 of file OSGBillboardBase.cpp.

References _sfMaxAngle.

00347 {
00348     return &_sfMaxAngle;
00349 }

Vec3f & OSG::BillboardBase::editAxisOfRotation ( void   )  [inline]

Definition at line 79 of file OSGBillboardBase.inl.

References _sfAxisOfRotation, AxisOfRotationFieldMask, and OSG::FieldContainer::editSField().

00080 {
00081     editSField(AxisOfRotationFieldMask);
00082 
00083     return _sfAxisOfRotation.getValue();
00084 }

const Vec3f & OSG::BillboardBase::getAxisOfRotation ( void   )  const [inline]

Definition at line 88 of file OSGBillboardBase.inl.

References _sfAxisOfRotation.

Referenced by OSG::Billboard::calcMatrix().

00089 {
00090     return _sfAxisOfRotation.getValue();
00091 }

bool & OSG::BillboardBase::editFocusOnCamera ( void   )  [inline]

Definition at line 112 of file OSGBillboardBase.inl.

References _sfFocusOnCamera, OSG::FieldContainer::editSField(), and FocusOnCameraFieldMask.

00113 {
00114     editSField(FocusOnCameraFieldMask);
00115 
00116     return _sfFocusOnCamera.getValue();
00117 }

const bool & OSG::BillboardBase::getFocusOnCamera ( void   )  const [inline]

Definition at line 121 of file OSGBillboardBase.inl.

References _sfFocusOnCamera.

00122 {
00123     return _sfFocusOnCamera.getValue();
00124 }

bool & OSG::BillboardBase::editAlignToScreen ( void   )  [inline]

Definition at line 145 of file OSGBillboardBase.inl.

References _sfAlignToScreen, AlignToScreenFieldMask, and OSG::FieldContainer::editSField().

00146 {
00147     editSField(AlignToScreenFieldMask);
00148 
00149     return _sfAlignToScreen.getValue();
00150 }

const bool & OSG::BillboardBase::getAlignToScreen ( void   )  const [inline]

Definition at line 154 of file OSGBillboardBase.inl.

References _sfAlignToScreen.

00155 {
00156     return _sfAlignToScreen.getValue();
00157 }

Real32 & OSG::BillboardBase::editMinAngle ( void   )  [inline]

Definition at line 178 of file OSGBillboardBase.inl.

References _sfMinAngle, OSG::FieldContainer::editSField(), and MinAngleFieldMask.

00179 {
00180     editSField(MinAngleFieldMask);
00181 
00182     return _sfMinAngle.getValue();
00183 }

const Real32 & OSG::BillboardBase::getMinAngle ( void   )  const [inline]

Definition at line 187 of file OSGBillboardBase.inl.

References _sfMinAngle.

Referenced by OSG::Billboard::calcMatrix().

00188 {
00189     return _sfMinAngle.getValue();
00190 }