osg::ProjectionCameraDecorator Class Reference
[Stereo Camera Decorators]

Camera Decorator for head-tracked stereo setups, see Camera Decorators for a description. More...

#include <OSGProjectionCameraDecorator.h>

Inheritance diagram for osg::ProjectionCameraDecorator:

osg::ProjectionCameraDecoratorBase osg::StereoCameraDecorator osg::StereoCameraDecoratorBase osg::CameraDecorator osg::CameraDecoratorBase osg::Camera osg::CameraBase osg::AttachmentContainer osg::FieldContainer

List of all members.

Public Types

enum  {
  UserFieldId = Inherited::NextFieldId, SurfaceFieldId = UserFieldId + 1, LeftFieldId = SurfaceFieldId + 1, BottomFieldId = LeftFieldId + 1,
  NormalFieldId = BottomFieldId + 1, WidthFieldId = NormalFieldId + 1, HeightFieldId = WidthFieldId + 1, NextFieldId = HeightFieldId + 1
}
typedef
ProjectionCameraDecoratorPtr 
Ptr
enum  { LeftEyeFieldId = Inherited::NextFieldId, EyeSeparationFieldId = LeftEyeFieldId + 1, NextFieldId = EyeSeparationFieldId + 1 }
enum  { DecorateeFieldId = Inherited::NextFieldId, NextFieldId = DecorateeFieldId + 1 }
enum  { BeaconFieldId = Inherited::NextFieldId, NearFieldId = BeaconFieldId + 1, FarFieldId = NearFieldId + 1, NextFieldId = FarFieldId + 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
access


virtual void getViewing (Matrix &result, UInt32 width, UInt32 height)
virtual void getProjection (Matrix &result, UInt32 width, UInt32 height)
virtual void getProjectionTranslation (Matrix &result, UInt32 width, UInt32 height)
FieldContainer Get


virtual FieldContainerType & getType (void)
virtual const FieldContainerType & getType (void) const
virtual UInt32 getContainerSize (void) const
Field Get


SFNodePtr * getSFUser (void)
 Get the ProjectionCameraDecorator::_sfUser field.
MFPnt3f * getMFSurface (void)
 Get the ProjectionCameraDecorator::_mfSurface field.
SFReal32 * getSFWidth (void)
 Get the ProjectionCameraDecorator::_sfWidth field.
SFReal32 * getSFHeight (void)
 Get the ProjectionCameraDecorator::_sfHeight field.
NodePtr & getUser (void)
 Get the value of the ProjectionCameraDecorator::_sfUser field.
const NodePtr & getUser (void) const
 Get the value of the ProjectionCameraDecorator::_sfUser field.
Real32 & getWidth (void)
 Get the value of the ProjectionCameraDecorator::_sfWidth field.
const Real32 & getWidth (void) const
 Get the value of the ProjectionCameraDecorator::_sfWidth field.
Real32 & getHeight (void)
 Get the value of the ProjectionCameraDecorator::_sfHeight field.
const Real32 & getHeight (void) const
 Get the value of the ProjectionCameraDecorator::_sfHeight field.
Pnt3f & getSurface (const UInt32 index)
 Get the value of the index element the ProjectionCameraDecorator::_mfSurface field.
MFPnt3f & getSurface (void)
 Get the ProjectionCameraDecorator::_mfSurface field.
const MFPnt3f & getSurface (void) const
 Get the ProjectionCameraDecorator::_mfSurface field.
Field Set


void setUser (const NodePtr &value)
 Set the value of the ProjectionCameraDecorator::_sfUser field.
void setWidth (const Real32 &value)
 Set the value of the ProjectionCameraDecorator::_sfWidth field.
void setHeight (const Real32 &value)
 Set the value of the ProjectionCameraDecorator::_sfHeight 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


SFBool * getSFLeftEye (void)
 Get the StereoCameraDecorator::_sfLeftEye field.
SFReal32 * getSFEyeSeparation (void)
 Get the StereoCameraDecorator::_sfEyeSeparation field.
bool & getLeftEye (void)
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
const bool & getLeftEye (void) const
 Get the value of the StereoCameraDecorator::_sfLeftEye field.
Real32 & getEyeSeparation (void)
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
const Real32 & getEyeSeparation (void) const
 Get the value of the StereoCameraDecorator::_sfEyeSeparation field.
Field Set


void setLeftEye (const bool &value)
 Set the value of the StereoCameraDecorator::_sfLeftEye field.
void setEyeSeparation (const Real32 &value)
 Set the value of the StereoCameraDecorator::_sfEyeSeparation field.
your_category


virtual void draw (DrawAction *action, const Viewport &port)
Field Get


SFCameraPtr * getSFDecoratee (void)
SFNodePtr * getSFBeacon (void)
SFReal32 * getSFNear (void)
SFReal32 * getSFFar (void)
CameraPtr & getDecoratee (void)
const CameraPtr & getDecoratee (void) const
NodePtr & getBeacon (void)
const NodePtr & getBeacon (void) const
Real32 & getNear (void)
const Real32 & getNear (void) const
Real32 & getFar (void)
const Real32 & getFar (void) const
Field Set


void setDecoratee (const CameraPtr &value)
void setBeacon (const NodePtr &value)
void setNear (const Real32 &value)
void setFar (const Real32 &value)
Setup Rendering


virtual void setup (DrawActionBase *action, const Viewport &port)
virtual void setupProjection (DrawActionBase *action, const Viewport &port)
Access Parameters


virtual void getFrustum (FrustumVolume &result, const Viewport &port)
virtual void getFrustum (FrustumVolume &result, UInt32 width, UInt32 height)
virtual void getWorldToScreen (Matrix &result, const Viewport &port)
virtual void getDecoration (Matrix &result, UInt32 width, UInt32 height)
Intersection Helper


bool calcViewRay (Line &line, Int32 x, Int32 y, const Viewport &port)
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 ProjectionCameraDecoratorPtr create (void)
 create a new instance of the class
static ProjectionCameraDecoratorPtr 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 UserFieldMask
static const osg::BitVector SurfaceFieldMask
static const osg::BitVector LeftFieldMask
static const osg::BitVector BottomFieldMask
static const osg::BitVector NormalFieldMask
static const osg::BitVector WidthFieldMask
static const osg::BitVector HeightFieldMask
static const osg::BitVector MTInfluenceMask
static const osg::BitVector LeftEyeFieldMask
static const osg::BitVector EyeSeparationFieldMask
static const osg::BitVector DecorateeFieldMask
static const osg::BitVector BeaconFieldMask
static const osg::BitVector NearFieldMask
static const osg::BitVector FarFieldMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = false

Protected Member Functions

Constructors


 ProjectionCameraDecorator (void)
 ProjectionCameraDecorator (const ProjectionCameraDecorator &source)
Destructors


virtual ~ProjectionCameraDecorator (void)
internal


void updateData (void)
Field Get


SFPlane * getSFLeft (void)
 Get the ProjectionCameraDecorator::_sfLeft field.
SFPlane * getSFBottom (void)
 Get the ProjectionCameraDecorator::_sfBottom field.
SFPlane * getSFNormal (void)
 Get the ProjectionCameraDecorator::_sfNormal field.
Plane & getLeft (void)
 Get the value of the ProjectionCameraDecorator::_sfLeft field.
const Plane & getLeft (void) const
 Get the value of the ProjectionCameraDecorator::_sfLeft field.
Plane & getBottom (void)
 Get the value of the ProjectionCameraDecorator::_sfBottom field.
const Plane & getBottom (void) const
 Get the value of the ProjectionCameraDecorator::_sfBottom field.
Plane & getNormal (void)
 Get the value of the ProjectionCameraDecorator::_sfNormal field.
const Plane & getNormal (void) const
 Get the value of the ProjectionCameraDecorator::_sfNormal field.
Field Set


void setLeft (const Plane &value)
 Set the value of the ProjectionCameraDecorator::_sfLeft field.
void setBottom (const Plane &value)
 Set the value of the ProjectionCameraDecorator::_sfBottom field.
void setNormal (const Plane &value)
 Set the value of the ProjectionCameraDecorator::_sfNormal field.
Sync


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


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


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


void executeSyncImpl (CameraBase *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


SFNodePtr _sfUser
MFPnt3f _mfSurface
SFPlane _sfLeft
SFPlane _sfBottom
SFPlane _sfNormal
SFReal32 _sfWidth
SFReal32 _sfHeight
Fields


SFBool _sfLeftEye
SFReal32 _sfEyeSeparation
Fields


SFCameraPtr _sfDecoratee
Fields


SFNodePtr _sfBeacon
SFReal32 _sfNear
SFReal32 _sfFar
Fields


SFAttachmentMap _attachmentMap
Member


UInt32 _shares

Private Types

typedef
ProjectionCameraDecoratorBase 
Inherited

Private Member Functions

void operator= (const ProjectionCameraDecorator &source)

Static Private Member Functions

static void initMethod (void)

Friends

class FieldContainer
class ProjectionCameraDecoratorBase


Detailed Description

The decorator for tracked projection screens, see PageSystemWindowCameraDecoratorsStereoProjection for a description.

The parameters are defined by the _sfUser and _mfSurface fields.

Definition at line 55 of file OSGProjectionCameraDecorator.h.


Member Typedef Documentation

Reimplemented from osg::ProjectionCameraDecoratorBase.

Definition at line 59 of file OSGProjectionCameraDecorator.h.

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 96 of file OSGProjectionCameraDecoratorBase.h.


Member Enumeration Documentation

anonymous enum [inherited]

Enumerator:
UserFieldId 
SurfaceFieldId 
LeftFieldId 
BottomFieldId 
NormalFieldId 
WidthFieldId 
HeightFieldId 
NextFieldId 

Definition at line 98 of file OSGProjectionCameraDecoratorBase.h.

00099     {
00100         UserFieldId    = Inherited::NextFieldId,
00101         SurfaceFieldId = UserFieldId    + 1,
00102         LeftFieldId    = SurfaceFieldId + 1,
00103         BottomFieldId  = LeftFieldId    + 1,
00104         NormalFieldId  = BottomFieldId  + 1,
00105         WidthFieldId   = NormalFieldId  + 1,
00106         HeightFieldId  = WidthFieldId   + 1,
00107         NextFieldId    = HeightFieldId  + 1
00108     };

anonymous enum [inherited]

Enumerator:
LeftEyeFieldId 
EyeSeparationFieldId 
NextFieldId 

Definition at line 93 of file OSGStereoCameraDecoratorBase.h.

00094     {
00095         LeftEyeFieldId       = Inherited::NextFieldId,
00096         EyeSeparationFieldId = LeftEyeFieldId       + 1,
00097         NextFieldId          = EyeSeparationFieldId + 1
00098     };

anonymous enum [inherited]

Enumerator:
DecorateeFieldId 
NextFieldId 

Definition at line 92 of file OSGCameraDecoratorBase.h.

anonymous enum [inherited]

Enumerator:
BeaconFieldId 
NearFieldId 
FarFieldId 
NextFieldId 

Definition at line 94 of file OSGCameraBase.h.

00095     {
00096         BeaconFieldId = Inherited::NextFieldId,
00097         NearFieldId   = BeaconFieldId + 1,
00098         FarFieldId    = NearFieldId   + 1,
00099         NextFieldId   = FarFieldId    + 1
00100     };

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

ProjectionCameraDecorator::ProjectionCameraDecorator ( void   )  [protected]

Definition at line 79 of file OSGProjectionCameraDecorator.cpp.

00079                                                          :
00080     Inherited()
00081 {
00082 }

ProjectionCameraDecorator::ProjectionCameraDecorator ( const ProjectionCameraDecorator &  source  )  [protected]

Definition at line 84 of file OSGProjectionCameraDecorator.cpp.

00084                                                                                             :
00085     Inherited(source)
00086 {
00087 }

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

Definition at line 89 of file OSGProjectionCameraDecorator.cpp.

00090 {
00091 }


Member Function Documentation

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

Reimplemented from osg::StereoCameraDecorator.

Definition at line 99 of file OSGProjectionCameraDecorator.cpp.

References osg::StereoCameraDecorator::changed(), osg::ProjectionCameraDecoratorBase::SurfaceFieldMask, and updateData().

00100 {
00101     Inherited::changed(whichField, origin);
00102     
00103     if(whichField & SurfaceFieldMask)
00104         updateData();
00105 }

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

Reimplemented from osg::StereoCameraDecorator.

Definition at line 107 of file OSGProjectionCameraDecorator.cpp.

References SLOG.

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

void ProjectionCameraDecorator::getViewing ( Matrix &  result,
UInt32  width,
UInt32  height 
) [virtual]

Reimplemented from osg::CameraDecorator.

Definition at line 152 of file OSGProjectionCameraDecorator.cpp.

References FWARNING, osg::ProjectionCameraDecoratorBase::getUser(), osg::TransformationMatrix< ValueTypeT >::invert(), osg::NullFC, and osg::TransformationMatrix< ValueTypeT >::setIdentity().

00155 {
00156     if ( getUser() == NullFC )
00157     {
00158         FWARNING(("ProjectionCameraDecorator::getViewing: no user!"));
00159         result.setIdentity();
00160         return;
00161     }   
00162 
00163     getUser()->getToWorld( result );  
00164     result.invert();
00165 }

void ProjectionCameraDecorator::getProjection ( Matrix &  result,
UInt32  width,
UInt32  height 
) [virtual]

Reimplemented from osg::CameraDecorator.

Definition at line 167 of file OSGProjectionCameraDecorator.cpp.

References osg::Plane::distance(), FWARNING, osg::ProjectionCameraDecoratorBase::getBottom(), osg::CameraDecoratorBase::getDecoratee(), osg::StereoCameraDecoratorBase::getEyeSeparation(), osg::ProjectionCameraDecoratorBase::getHeight(), osg::ProjectionCameraDecoratorBase::getLeft(), osg::StereoCameraDecoratorBase::getLeftEye(), osg::ProjectionCameraDecoratorBase::getNormal(), osg::ProjectionCameraDecoratorBase::getUser(), osg::ProjectionCameraDecoratorBase::getWidth(), osg::TransformationMatrix< ValueTypeT >::invert(), osg::MatrixFrustum(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::NullFC, and osg::TransformationMatrix< ValueTypeT >::setIdentity().

00170 {
00171     CameraPtr camera = getDecoratee();
00172     
00173     if(camera == NullFC)
00174     {
00175         FWARNING(("ProjectionCameraDecorator::getProjection: no decoratee!\n"));
00176         result.setIdentity();
00177         return;
00178     }
00179     
00180     Matrix cam,user;
00181     
00182     camera->getBeacon()->getToWorld(cam);
00183     getUser()->getToWorld(user);    
00184     cam.invert();
00185     
00186     cam.mult(user);
00187     
00188     Pnt3f viewer(cam[3]);
00189     
00190     Real32 eyeFac;
00191     
00192     if(getLeftEye())
00193     {
00194         eyeFac=-.5;
00195     }
00196     else
00197     {
00198         eyeFac=+.5;
00199     }
00200     
00201     viewer += Vec3f(cam[0]) * eyeFac * getEyeSeparation();
00202       
00203     Real32 dist = getNormal().distance(viewer),
00204            dl   = getLeft  ().distance(viewer),
00205            db   = getBottom().distance(viewer),
00206            f    = camera->getNear() / dist;
00207     
00208     MatrixFrustum(result, -dl * f, (getWidth ()-dl) * f,
00209                           -db * f, (getHeight()-db) * f,
00210                           camera->getNear(), camera->getFar() );
00211 }                                       

void ProjectionCameraDecorator::getProjectionTranslation ( Matrix &  result,
UInt32  width,
UInt32  height 
) [virtual]

Reimplemented from osg::CameraDecorator.

Definition at line 214 of file OSGProjectionCameraDecorator.cpp.

References osg::VectorInterface< ValueTypeT, StorageInterfaceT >::cross(), FFATAL, osg::ProjectionCameraDecoratorBase::getBottom(), osg::CameraDecoratorBase::getDecoratee(), osg::StereoCameraDecoratorBase::getEyeSeparation(), osg::StereoCameraDecoratorBase::getLeftEye(), osg::ProjectionCameraDecoratorBase::getNormal(), osg::ProjectionCameraDecoratorBase::getUser(), osg::QuaternionBase< ValueTypeT >::getValue(), osg::QuaternionBase< ValueTypeT >::getValueAsAxisDeg(), osg::TransformationMatrix< ValueTypeT >::invert(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::NullFC, osg::TransformationMatrix< ValueTypeT >::setIdentity(), osg::TransformationMatrix< ValueTypeT >::setValue(), and osg::QuaternionBase< ValueTypeT >::setValueAsAxisDeg().

00217 {
00218     CameraPtr camera = getDecoratee();
00219     
00220     if(camera == NullFC)
00221     {
00222         FFATAL(("ProjectionCameraDecorator::getProjectionTranslation: "
00223                 "no decoratee!\n"));
00224         result.setIdentity();
00225         return;
00226     }
00227     
00228     Matrix cam,user;
00229     
00230     camera->getBeacon()->getToWorld(cam);
00231     getUser()->getToWorld(user);
00232     
00233     cam.invert();
00234     cam.mult(user);
00235     
00236     Vec3f dir(getNormal().getNormal()),
00237           up (getBottom().getNormal()),
00238           right;
00239     Vec3f pos(cam[3]);
00240     
00241     Real32 eyeFac;
00242     
00243     if(getLeftEye())
00244     {
00245         eyeFac=-.5;
00246     }
00247     else
00248     {
00249         eyeFac=+.5;
00250     }
00251     
00252     pos += Vec3f(cam[0]) * eyeFac * getEyeSeparation();
00253     
00254     right = up.cross(dir);
00255     up = dir.cross(right);
00256     
00257     result.setIdentity();
00258     result.setValue(right, up, dir, pos);
00259     result.invert();
00260 
00261     result.mult(cam);
00262 #if 0
00263 static bool hack = true;
00264     Quaternion q( getNormal().getNormal(), Vec3f(0,0,1));    
00265  
00266     Vec3f v;
00267     Real32 a;
00268     q.getValueAsAxisDeg(v,a);
00269    
00270     // HACKKK
00271     if(hack && a > 50)
00272     {
00273         q.getValue(result);   
00274         
00275         Real32 ang1 = 54.44;
00276         Real32 ang2 = 6.27;
00277         
00278         if(v[1] < 0)    ang1 = -ang1;
00279         
00280         Quaternion q1,q2;
00281         Matrix m1,m2;
00282         
00283         q1.setValueAsAxisDeg(0,1,0,ang1);
00284         q2.setValueAsAxisDeg(1,0,0,ang2);
00285         
00286         q1.getValue(m1);
00287         q2.getValue(m2);
00288         
00289         result = m2;
00290         result.mult(m1);
00291     } 
00292 #endif 
00293 }                                       

void ProjectionCameraDecorator::updateData ( void   )  [protected]

Update dependent data, i.e. the internal Field values.

Definition at line 115 of file OSGProjectionCameraDecorator.cpp.

References osg::beginEditCP(), osg::ProjectionCameraDecoratorBase::BottomFieldMask, osg::VectorInterface< ValueTypeT, StorageInterfaceT >::cross(), osg::endEditCP(), FWARNING, osg::ProjectionCameraDecoratorBase::getSurface(), osg::ProjectionCameraDecoratorBase::HeightFieldMask, osg::PointInterface< ValueTypeT, StorageInterfaceT >::isZero(), osg::ProjectionCameraDecoratorBase::LeftFieldMask, osg::VectorInterface< ValueTypeT, StorageInterfaceT >::length(), osg::ProjectionCameraDecoratorBase::NormalFieldMask, and osg::ProjectionCameraDecoratorBase::WidthFieldMask.

Referenced by changed().

00116 {
00117     if(getSurface().size() != 4)
00118     {
00119         FWARNING(("ProjectionCameraDecorator: only defined for 4 point "
00120                   "surfaces!\n"));
00121         return;
00122     }
00123 
00124     Pnt3f p0(getSurface()[0]);
00125     Vec3f d1,d2,n;
00126     
00127     d1 = getSurface()[1] - p0;
00128     d2 = getSurface()[3] - p0;
00129     
00130     n = d1.cross(d2);
00131     if(n.isZero())
00132     {
00133         FWARNING(("ProjectionCameraDecorator: normal is zero, surface "
00134                   "ill-defined!\n"));
00135         return;
00136     }
00137     
00138     ProjectionCameraDecoratorPtr ptr(this);
00139     beginEditCP(ptr, LeftFieldMask  | BottomFieldMask | NormalFieldMask |
00140                      WidthFieldMask | HeightFieldMask );
00141     ptr->setLeft  (Plane(d1,p0));
00142     ptr->setBottom(Plane(d2,p0));
00143     ptr->setNormal(Plane(n ,p0));
00144     ptr->setWidth (d1.length());
00145     ptr->setHeight(d2.length());
00146     endEditCP  (ptr, LeftFieldMask  | BottomFieldMask | NormalFieldMask |
00147                      WidthFieldMask | HeightFieldMask );
00148     
00149 } 

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

Reimplemented from osg::StereoCameraDecorator.

Definition at line 95 of file OSGProjectionCameraDecorator.cpp.

00096 {
00097 }

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

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

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 58 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 65 of file OSGProjectionCameraDecoratorBase.inl.

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

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

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

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 172 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::ProjectionCameraDecoratorBase::_type.

00173 {
00174     return _type; 
00175 } 

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

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 177 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::ProjectionCameraDecoratorBase::_type.

00178 {
00179     return _type;
00180 } 

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

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 192 of file OSGProjectionCameraDecoratorBase.cpp.

00193 { 
00194     return sizeof(ProjectionCameraDecorator); 
00195 }

SFNodePtr * osg::ProjectionCameraDecoratorBase::getSFUser ( void   )  [inline, inherited]

Definition at line 101 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_sfUser.

00102 {
00103     return &_sfUser;
00104 }

MFPnt3f * osg::ProjectionCameraDecoratorBase::getMFSurface ( void   )  [inline, inherited]

Definition at line 108 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_mfSurface.

00109 {
00110     return &_mfSurface;
00111 }

SFReal32 * osg::ProjectionCameraDecoratorBase::getSFWidth ( void   )  [inline, inherited]

Definition at line 136 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_sfWidth.

00137 {
00138     return &_sfWidth;
00139 }

SFReal32 * osg::ProjectionCameraDecoratorBase::getSFHeight ( void   )  [inline, inherited]

Definition at line 143 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_sfHeight.

00144 {
00145     return &_sfHeight;
00146 }

NodePtr & osg::ProjectionCameraDecoratorBase::getUser ( void   )  [inline, inherited]

const NodePtr & osg::ProjectionCameraDecoratorBase::getUser ( void   )  const [inline, inherited]

Real32 & osg::ProjectionCameraDecoratorBase::getWidth ( void   )  [inline, inherited]

Definition at line 235 of file OSGProjectionCameraDecoratorBase.inl.

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

Referenced by getProjection().

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

const Real32 & osg::ProjectionCameraDecoratorBase::getWidth ( void   )  const [inline, inherited]

Real32 & osg::ProjectionCameraDecoratorBase::getHeight ( void   )  [inline, inherited]

Definition at line 256 of file OSGProjectionCameraDecoratorBase.inl.

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

Referenced by getProjection().

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

const Real32 & osg::ProjectionCameraDecoratorBase::getHeight ( void   )  const [inline, inherited]

Pnt3f & osg::ProjectionCameraDecoratorBase::getSurface ( const UInt32  index  )  [inline, inherited]

Definition at line 278 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_mfSurface.

00279 {
00280     return _mfSurface[index];
00281 }

MFPnt3f & osg::ProjectionCameraDecoratorBase::getSurface ( void   )  [inline, inherited]

Definition at line 285 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_mfSurface.

Referenced by updateData().

00286 {
00287     return _mfSurface;
00288 }

const MFPnt3f & osg::ProjectionCameraDecoratorBase::getSurface ( void   )  const [inline, inherited]

Definition at line 292 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_mfSurface.

00293 {
00294     return _mfSurface;
00295 }

void osg::ProjectionCameraDecoratorBase::setUser ( const NodePtr &  value  )  [inline, inherited]

void osg::ProjectionCameraDecoratorBase::setWidth ( const Real32 &  value  )  [inline, inherited]

void osg::ProjectionCameraDecoratorBase::setHeight ( const Real32 &  value  )  [inline, inherited]

UInt32 ProjectionCameraDecoratorBase::getBinSize ( const BitVector &  whichField  )  [virtual, inherited]

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 267 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::ProjectionCameraDecoratorBase::_mfSurface, osg::ProjectionCameraDecoratorBase::_sfBottom, osg::ProjectionCameraDecoratorBase::_sfHeight, osg::ProjectionCameraDecoratorBase::_sfLeft, osg::ProjectionCameraDecoratorBase::_sfNormal, osg::ProjectionCameraDecoratorBase::_sfUser, osg::ProjectionCameraDecoratorBase::_sfWidth, osg::ProjectionCameraDecoratorBase::BottomFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::StereoCameraDecoratorBase::getBinSize(), osg::ProjectionCameraDecoratorBase::HeightFieldMask, osg::ProjectionCameraDecoratorBase::LeftFieldMask, osg::FieldBits::NoField, osg::ProjectionCameraDecoratorBase::NormalFieldMask, osg::ProjectionCameraDecoratorBase::SurfaceFieldMask, osg::ProjectionCameraDecoratorBase::UserFieldMask, and osg::ProjectionCameraDecoratorBase::WidthFieldMask.

00268 {
00269     UInt32 returnValue = Inherited::getBinSize(whichField);
00270 
00271     if(FieldBits::NoField != (UserFieldMask & whichField))
00272     {
00273         returnValue += _sfUser.getBinSize();
00274     }
00275 
00276     if(FieldBits::NoField != (SurfaceFieldMask & whichField))
00277     {
00278         returnValue += _mfSurface.getBinSize();
00279     }
00280 
00281     if(FieldBits::NoField != (LeftFieldMask & whichField))
00282     {
00283         returnValue += _sfLeft.getBinSize();
00284     }
00285 
00286     if(FieldBits::NoField != (BottomFieldMask & whichField))
00287     {
00288         returnValue += _sfBottom.getBinSize();
00289     }
00290 
00291     if(FieldBits::NoField != (NormalFieldMask & whichField))
00292     {
00293         returnValue += _sfNormal.getBinSize();
00294     }
00295 
00296     if(FieldBits::NoField != (WidthFieldMask & whichField))
00297     {
00298         returnValue += _sfWidth.getBinSize();
00299     }
00300 
00301     if(FieldBits::NoField != (HeightFieldMask & whichField))
00302     {
00303         returnValue += _sfHeight.getBinSize();
00304     }
00305 
00306 
00307     return returnValue;
00308 }

void ProjectionCameraDecoratorBase::copyToBin ( BinaryDataHandler &  pMem,
const BitVector &  whichField 
) [virtual, inherited]

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 310 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::ProjectionCameraDecoratorBase::_mfSurface, osg::ProjectionCameraDecoratorBase::_sfBottom, osg::ProjectionCameraDecoratorBase::_sfHeight, osg::ProjectionCameraDecoratorBase::_sfLeft, osg::ProjectionCameraDecoratorBase::_sfNormal, osg::ProjectionCameraDecoratorBase::_sfUser, osg::ProjectionCameraDecoratorBase::_sfWidth, osg::ProjectionCameraDecoratorBase::BottomFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::StereoCameraDecoratorBase::copyToBin(), osg::ProjectionCameraDecoratorBase::HeightFieldMask, osg::ProjectionCameraDecoratorBase::LeftFieldMask, osg::FieldBits::NoField, osg::ProjectionCameraDecoratorBase::NormalFieldMask, osg::ProjectionCameraDecoratorBase::SurfaceFieldMask, osg::ProjectionCameraDecoratorBase::UserFieldMask, and osg::ProjectionCameraDecoratorBase::WidthFieldMask.

00312 {
00313     Inherited::copyToBin(pMem, whichField);
00314 
00315     if(FieldBits::NoField != (UserFieldMask & whichField))
00316     {
00317         _sfUser.copyToBin(pMem);
00318     }
00319 
00320     if(FieldBits::NoField != (SurfaceFieldMask & whichField))
00321     {
00322         _mfSurface.copyToBin(pMem);
00323     }
00324 
00325     if(FieldBits::NoField != (LeftFieldMask & whichField))
00326     {
00327         _sfLeft.copyToBin(pMem);
00328     }
00329 
00330     if(FieldBits::NoField != (BottomFieldMask & whichField))
00331     {
00332         _sfBottom.copyToBin(pMem);
00333     }
00334 
00335     if(FieldBits::NoField != (NormalFieldMask & whichField))
00336     {
00337         _sfNormal.copyToBin(pMem);
00338     }
00339 
00340     if(FieldBits::NoField != (WidthFieldMask & whichField))
00341     {
00342         _sfWidth.copyToBin(pMem);
00343     }
00344 
00345     if(FieldBits::NoField != (HeightFieldMask & whichField))
00346     {
00347         _sfHeight.copyToBin(pMem);
00348     }
00349 
00350 
00351 }

void ProjectionCameraDecoratorBase::copyFromBin ( BinaryDataHandler &  pMem,
const BitVector &  whichField 
) [virtual, inherited]

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 353 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::ProjectionCameraDecoratorBase::_mfSurface, osg::ProjectionCameraDecoratorBase::_sfBottom, osg::ProjectionCameraDecoratorBase::_sfHeight, osg::ProjectionCameraDecoratorBase::_sfLeft, osg::ProjectionCameraDecoratorBase::_sfNormal, osg::ProjectionCameraDecoratorBase::_sfUser, osg::ProjectionCameraDecoratorBase::_sfWidth, osg::ProjectionCameraDecoratorBase::BottomFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::StereoCameraDecoratorBase::copyFromBin(), osg::ProjectionCameraDecoratorBase::HeightFieldMask, osg::ProjectionCameraDecoratorBase::LeftFieldMask, osg::FieldBits::NoField, osg::ProjectionCameraDecoratorBase::NormalFieldMask, osg::ProjectionCameraDecoratorBase::SurfaceFieldMask, osg::ProjectionCameraDecoratorBase::UserFieldMask, and osg::ProjectionCameraDecoratorBase::WidthFieldMask.

00355 {
00356     Inherited::copyFromBin(pMem, whichField);
00357 
00358     if(FieldBits::NoField != (UserFieldMask & whichField))
00359     {
00360         _sfUser.copyFromBin(pMem);
00361     }
00362 
00363     if(FieldBits::NoField != (SurfaceFieldMask & whichField))
00364     {
00365         _mfSurface.copyFromBin(pMem);
00366     }
00367 
00368     if(FieldBits::NoField != (LeftFieldMask & whichField))
00369     {
00370         _sfLeft.copyFromBin(pMem);
00371     }
00372 
00373     if(FieldBits::NoField != (BottomFieldMask & whichField))
00374     {
00375         _sfBottom.copyFromBin(pMem);
00376     }
00377 
00378     if(FieldBits::NoField != (NormalFieldMask & whichField))
00379     {
00380         _sfNormal.copyFromBin(pMem);
00381     }
00382 
00383     if(FieldBits::NoField != (WidthFieldMask & whichField))
00384     {
00385         _sfWidth.copyFromBin(pMem);
00386     }
00387 
00388     if(FieldBits::NoField != (HeightFieldMask & whichField))
00389     {
00390         _sfHeight.copyFromBin(pMem);
00391     }
00392 
00393 
00394 }

ProjectionCameraDecoratorPtr osg::ProjectionCameraDecoratorBase::create ( void   )  [inline, static, inherited]

Definition at line 72 of file OSGProjectionCameraDecoratorBase.inl.

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

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

ProjectionCameraDecoratorPtr osg::ProjectionCameraDecoratorBase::createEmpty ( void   )  [inline, static, inherited]

Definition at line 87 of file OSGProjectionCameraDecoratorBase.inl.

References osg::FieldContainer::newPtr().

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

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

Implements osg::FieldContainer.

Definition at line 183 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::FieldContainer::newPtr().

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

00184 { 
00185     ProjectionCameraDecoratorPtr returnValue; 
00186 
00187     newPtr(returnValue, dynamic_cast<const ProjectionCameraDecorator *>(this)); 
00188 
00189     return returnValue; 
00190 }

SFPlane * osg::ProjectionCameraDecoratorBase::getSFLeft ( void   )  [inline, protected, inherited]

Definition at line 115 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_sfLeft.

00116 {
00117     return &_sfLeft;
00118 }

SFPlane * osg::ProjectionCameraDecoratorBase::getSFBottom ( void   )  [inline, protected, inherited]

Definition at line 122 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_sfBottom.

00123 {
00124     return &_sfBottom;
00125 }

SFPlane * osg::ProjectionCameraDecoratorBase::getSFNormal ( void   )  [inline, protected, inherited]

Definition at line 129 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_sfNormal.

00130 {
00131     return &_sfNormal;
00132 }

Plane & osg::ProjectionCameraDecoratorBase::getLeft ( void   )  [inline, protected, inherited]

Definition at line 172 of file OSGProjectionCameraDecoratorBase.inl.

References osg::ProjectionCameraDecoratorBase::_sfLeft, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by getProjection().

00173 {
00174     return _sfLeft.getValue();
00175 }

const Plane & osg::ProjectionCameraDecoratorBase::getLeft ( void   )  const [inline, protected, inherited]

Plane & osg::ProjectionCameraDecoratorBase::getBottom ( void   )  [inline, protected, inherited]

const Plane & osg::ProjectionCameraDecoratorBase::getBottom ( void   )  const [inline, protected, inherited]

Plane & osg::ProjectionCameraDecoratorBase::getNormal ( void   )  [inline, protected, inherited]

const Plane & osg::ProjectionCameraDecoratorBase::getNormal ( void   )  const [inline, protected, inherited]

void osg::ProjectionCameraDecoratorBase::setLeft ( const Plane &  value  )  [inline, protected, inherited]

void osg::ProjectionCameraDecoratorBase::setBottom ( const Plane &  value  )  [inline, protected, inherited]

void osg::ProjectionCameraDecoratorBase::setNormal ( const Plane &  value  )  [inline, protected, inherited]

void ProjectionCameraDecoratorBase::executeSyncImpl ( ProjectionCameraDecoratorBase *  pOther,
const BitVector &  whichField 
) [protected, inherited]

Definition at line 397 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::ProjectionCameraDecoratorBase::_mfSurface, osg::ProjectionCameraDecoratorBase::_sfBottom, osg::ProjectionCameraDecoratorBase::_sfHeight, osg::ProjectionCameraDecoratorBase::_sfLeft, osg::ProjectionCameraDecoratorBase::_sfNormal, osg::ProjectionCameraDecoratorBase::_sfUser, osg::ProjectionCameraDecoratorBase::_sfWidth, osg::ProjectionCameraDecoratorBase::BottomFieldMask, osg::StereoCameraDecoratorBase::executeSyncImpl(), osg::ProjectionCameraDecoratorBase::HeightFieldMask, osg::ProjectionCameraDecoratorBase::LeftFieldMask, osg::FieldBits::NoField, osg::ProjectionCameraDecoratorBase::NormalFieldMask, osg::ProjectionCameraDecoratorBase::SurfaceFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), osg::ProjectionCameraDecoratorBase::UserFieldMask, and osg::ProjectionCameraDecoratorBase::WidthFieldMask.

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

00399 {
00400 
00401     Inherited::executeSyncImpl(pOther, whichField);
00402 
00403     if(FieldBits::NoField != (UserFieldMask & whichField))
00404         _sfUser.syncWith(pOther->_sfUser);
00405 
00406     if(FieldBits::NoField != (SurfaceFieldMask & whichField))
00407         _mfSurface.syncWith(pOther->_mfSurface);
00408 
00409     if(FieldBits::NoField != (LeftFieldMask & whichField))
00410         _sfLeft.syncWith(pOther->_sfLeft);
00411 
00412     if(FieldBits::NoField != (BottomFieldMask & whichField))
00413         _sfBottom.syncWith(pOther->_sfBottom);
00414 
00415     if(FieldBits::NoField != (NormalFieldMask & whichField))
00416         _sfNormal.syncWith(pOther->_sfNormal);
00417 
00418     if(FieldBits::NoField != (WidthFieldMask & whichField))
00419         _sfWidth.syncWith(pOther->_sfWidth);
00420 
00421     if(FieldBits::NoField != (HeightFieldMask & whichField))
00422         _sfHeight.syncWith(pOther->_sfHeight);
00423 
00424 
00425 }

void StereoCameraDecoratorBase::executeSyncImpl ( StereoCameraDecoratorBase *  pOther,
const BitVector &  whichField 
) [protected, inherited]

void CameraDecoratorBase::executeSyncImpl ( CameraDecoratorBase *  pOther,
const BitVector &  whichField 
) [protected, inherited]

void CameraBase::executeSyncImpl ( CameraBase *  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 ProjectionCameraDecoratorBase::executeSync ( FieldContainer &  other,
const BitVector &  whichField 
) [protected, virtual, inherited]

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 199 of file OSGProjectionCameraDecoratorBase.cpp.

References osg::ProjectionCameraDecoratorBase::executeSyncImpl().

00201 {
00202     this->executeSyncImpl((ProjectionCameraDecoratorBase *) &other, whichField);
00203 }

SFBool * osg::StereoCameraDecoratorBase::getSFLeftEye ( void   )  [inline, inherited]

Definition at line 75 of file OSGStereoCameraDecoratorBase.inl.

References osg::StereoCameraDecoratorBase::_sfLeftEye.

00076 {
00077     return &_sfLeftEye;
00078 }

SFReal32 * osg::StereoCameraDecoratorBase::getSFEyeSeparation ( void   )  [inline, inherited]

Definition at line 82 of file OSGStereoCameraDecoratorBase.inl.

References osg::StereoCameraDecoratorBase::_sfEyeSeparation.

00083 {
00084     return &_sfEyeSeparation;
00085 }

bool & osg::StereoCameraDecoratorBase::getLeftEye ( void   )  [inline, inherited]

const bool & osg::StereoCameraDecoratorBase::getLeftEye ( void   )  const [inline, inherited]

Real32 & osg::StereoCameraDecoratorBase::getEyeSeparation ( void   )  [inline, inherited]

const Real32 & osg::StereoCameraDecoratorBase::getEyeSeparation ( void   )  const [inline, inherited]

void osg::StereoCameraDecoratorBase::setLeftEye ( const bool &  value  )  [inline, inherited]

void osg::StereoCameraDecoratorBase::setEyeSeparation ( const Real32 &  value  )  [inline, inherited]

void CameraDecorator::draw ( DrawAction *  action,
const Viewport &  port 
) [virtual, inherited]

Reimplemented from osg::Camera.

Definition at line 100 of file OSGCameraDecorator.cpp.

References FWARNING, osg::CameraDecoratorBase::getDecoratee(), and osg::NullFC.

00102 {
00103     CameraPtr camera = getDecoratee();
00104     if(camera == NullFC)
00105     {
00106         FWARNING(("CameraDecorator::draw: no decoratee!\n"));
00107         return;
00108     }
00109     camera->draw(action, port);
00110 }

SFCameraPtr * osg::CameraDecoratorBase::getSFDecoratee ( void   )  [inline, inherited]

Definition at line 74 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::_sfDecoratee.

00075 {
00076     return &_sfDecoratee;
00077 }

SFNodePtr * osg::CameraDecoratorBase::getSFBeacon ( void   )  [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 98 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00099 {
00100     return getDecoratee()->getSFBeacon();
00101 }

SFReal32 * osg::CameraDecoratorBase::getSFNear ( void   )  [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 104 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00105 {
00106     return getDecoratee()->getSFNear();
00107 }

SFReal32 * osg::CameraDecoratorBase::getSFFar ( void   )  [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 110 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00111 {
00112     return getDecoratee()->getSFFar();
00113 }

CameraPtr & osg::CameraDecoratorBase::getDecoratee ( void   )  [inline, inherited]

const CameraPtr & osg::CameraDecoratorBase::getDecoratee ( void   )  const [inline, inherited]

Definition at line 86 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::_sfDecoratee, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00087 {
00088     return _sfDecoratee.getValue();
00089 }

NodePtr & osg::CameraDecoratorBase::getBeacon ( void   )  [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 117 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00118 {
00119     return getDecoratee()->getBeacon();
00120 }

const NodePtr & osg::CameraDecoratorBase::getBeacon ( void   )  const [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 123 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00124 {
00125     return getDecoratee()->getBeacon();
00126 }

Real32 & osg::CameraDecoratorBase::getNear ( void   )  [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 137 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00138 {
00139     return getDecoratee()->getNear();
00140 }

const Real32 & osg::CameraDecoratorBase::getNear ( void   )  const [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 143 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00144 {
00145     return getDecoratee()->getNear();
00146 }

Real32 & osg::CameraDecoratorBase::getFar ( void   )  [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 157 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00158 {
00159     return getDecoratee()->getFar();
00160 }

const Real32 & osg::CameraDecoratorBase::getFar ( void   )  const [inline, virtual, inherited]

Reimplemented from osg::CameraBase.

Definition at line 163 of file OSGCameraDecoratorBase.inl.

References osg::CameraDecoratorBase::getDecoratee().

00164 {
00165     return getDecoratee()->getFar();
00166 }

void osg::CameraDecoratorBase::setDecoratee ( const CameraPtr &  value  )  [inline, inherited]

void osg::CameraDecoratorBase::setBeacon ( const NodePtr &  value  )  [inline, virtual, inherited]

void osg::CameraDecoratorBase::setNear ( const Real32 &  value  )  [inline, virtual, inherited]

void osg::CameraDecoratorBase::setFar ( const Real32 &  value  )  [inline, virtual, inherited]

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

Reimplemented in osg::MatrixCamera, osg::OffCenterPerspectiveCamera, osg::PerspectiveCamera, and osg::TileCameraDecorator.

Definition at line 73 of file OSGCamera.h.

00073 { return "Camera"; };

void Camera::setup ( DrawActionBase *  action,
const Viewport &  port 
) [virtual, inherited]

Setup OpenGL for rendering, call all the necessary commands to start rendering with this camera.

Definition at line 109 of file OSGCamera.cpp.

References osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::Camera::getProjection(), osg::Camera::getProjectionTranslation(), osg::TransformationMatrix< ValueTypeT >::getValues(), osg::Camera::getViewing(), and osg::TransformationMatrix< ValueTypeT >::mult().

00111 {
00112     Matrix m, t;
00113 
00114     // set the projection
00115 
00116     getProjection           ( m, port.getPixelWidth(), port.getPixelHeight() );
00117     getProjectionTranslation( t, port.getPixelWidth(), port.getPixelHeight() );
00118 
00119     m.mult(t);
00120 
00121     //SDEBUG << "Projection matrix: " << m << std::endl;
00122 
00123     glMatrixMode( GL_PROJECTION );
00124     glLoadMatrixf( m.getValues() );
00125 
00126     // set the viewing
00127 
00128     getViewing( m, port.getPixelWidth(), port.getPixelHeight() );
00129 
00130     //SDEBUG << "Viewing matrix: " << m << std::endl;
00131     
00132     glMatrixMode( GL_MODELVIEW );
00133     glLoadMatrixf( m.getValues() );
00134 }

void Camera::setupProjection ( DrawActionBase *  action,
const Viewport &  port 
) [virtual, inherited]

Setup OpenGL projection for rendering.

Definition at line 138 of file OSGCamera.cpp.

References osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::Camera::getProjection(), osg::Camera::getProjectionTranslation(), osg::TransformationMatrix< ValueTypeT >::getValues(), and osg::TransformationMatrix< ValueTypeT >::mult().

Referenced by osg::RenderAction::start().

00140 {
00141     Matrix m, t;
00142 
00143     // set the projection
00144 
00145     getProjection           ( m, port.getPixelWidth(), port.getPixelHeight() );
00146     getProjectionTranslation( t, port.getPixelWidth(), port.getPixelHeight() );
00147 
00148     m.mult(t);
00149 
00150     //SDEBUG << "Projection matrix: " << m << std::endl;
00151 
00152     glMatrixMode( GL_PROJECTION );
00153     glLoadMatrixf( m.getValues() );
00154 }

void Camera::getFrustum ( FrustumVolume &  result,
const Viewport &  p 
) [virtual, inherited]

Calculate the frustum of this camera's visible area.

Definition at line 202 of file OSGCamera.cpp.

References osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::Camera::getProjection(), osg::Camera::getProjectionTranslation(), osg::Camera::getViewing(), osg::TransformationMatrix< ValueTypeT >::mult(), and osg::FrustumVolume::setPlanes().

Referenced by osg::DrawActionBase::start().

00203 {
00204     Matrix mv,prt,pr;
00205     
00206     getProjection           (pr , p.getPixelWidth(), p.getPixelHeight());
00207     getProjectionTranslation(prt, p.getPixelWidth(), p.getPixelHeight());
00208     getViewing              (mv , p.getPixelWidth(), p.getPixelHeight());
00209 
00210     pr.mult(prt);
00211     pr.mult(mv );
00212     
00213     result.setPlanes(pr);
00214 }

void Camera::getFrustum ( FrustumVolume &  result,
UInt32  width,
UInt32  height 
) [virtual, inherited]

Calculate the frustum of this camera's visible area (w,h instead port).

Definition at line 218 of file OSGCamera.cpp.

References osg::Camera::getProjection(), osg::Camera::getProjectionTranslation(), osg::Camera::getViewing(), osg::TransformationMatrix< ValueTypeT >::mult(), and osg::FrustumVolume::setPlanes().

00220 {
00221     Matrix mv,prt,pr;
00222     
00223     getProjection           (pr , width, height);
00224     getProjectionTranslation(prt, width, height);
00225     getViewing              (mv , width, height);
00226 
00227     pr.mult(prt);
00228     pr.mult(mv );
00229     
00230     result.setPlanes(pr);
00231 }

void Camera::getWorldToScreen ( Matrix &  result,
const Viewport &  p 
) [virtual, inherited]

Calculate the matrix that transforms world coordinates into the screen coordinate system for this camera.

Definition at line 236 of file OSGCamera.cpp.

References osg::Viewport::getPixelHeight(), osg::Viewport::getPixelWidth(), osg::Camera::getProjection(), osg::Camera::getProjectionTranslation(), osg::Camera::getViewing(), and osg::TransformationMatrix< ValueTypeT >::mult().

Referenced by osg::ScreenGroup::calcMatrix(), and osg::RenderAction::start().

00237 {
00238     Matrix mv,prt,pr;
00239     
00240     getProjection           (result, p.getPixelWidth(), p.getPixelHeight());
00241     getProjectionTranslation(prt   , p.getPixelWidth(), p.getPixelHeight());
00242     getViewing              (mv    , p.getPixelWidth(), p.getPixelHeight());
00243 
00244     result.mult(prt);
00245     result.mult(mv );
00246 }

void Camera::getDecoration ( Matrix &  result,
UInt32  width,
UInt32  height 
) [virtual, inherited]

Get/calculate the decoration matrix for this camera. The default is identity.

Reimplemented in osg::ShearedStereoCameraDecorator, and osg::TileCameraDecorator.

Definition at line 250 of file OSGCamera.cpp.

References osg::TransformationMatrix< ValueTypeT >::setIdentity().

Referenced by osg::PolygonBackground::clear(), and osg::PolygonForeground::draw().

00251 {
00252     result.setIdentity();
00253 }

bool Camera::calcViewRay ( Line &  line,
Int32  x,
Int32  y,
const Viewport &  port 
) [inherited]

Calculate a ray that starts at the camera position and goes through the pixel x, y in the viewport port. x and y are relative to the parent window's upper left corner.

Definition at line 259 of file OSGCamera.cpp.

References osg::ViewportBase::getParent(), osg::Viewport::getPixelHeight(), osg::Viewport::getPixelLeft(), osg::Viewport::getPixelTop(), osg::Viewport::getPixelWidth(), osg::Camera::getProjection(), osg::Camera::getProjectionTranslation(), osg::Camera::getViewing(), osg::TransformationMatrix< ValueTypeT >::invertFrom(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::TransformationMatrix< ValueTypeT >::multFullMatrixPnt(), and osg::Line::setValue().

00260 {
00261     if(port.getPixelWidth() <= 0 || port.getPixelHeight() <= 0)
00262     {
00263         return false;
00264     }
00265     
00266     Matrix proj, projtrans, view;
00267 
00268     getProjection(proj, port.getPixelWidth(), port.getPixelHeight());
00269     getProjectionTranslation(projtrans, port.getPixelWidth(), 
00270                                 port.getPixelHeight());
00271     getViewing(view, port.getPixelWidth(), port.getPixelHeight());
00272     
00273     Matrix wctocc = proj;
00274     wctocc.mult(projtrans);
00275     wctocc.mult(view);
00276 
00277     Matrix cctowc;
00278     cctowc.invertFrom(wctocc);
00279        
00280     Real32  rx = (x - port.getPixelLeft()) / (Real32) port.getPixelWidth()
00281                     * 2.f - 1.f,
00282             ry = 1.f - ((y - (port.getParent()->getHeight() - 
00283                               port.getPixelTop())
00284                         ) / 
00285                         (Real32) port.getPixelHeight()
00286                        ) * 2.f;
00287             
00288     Pnt3f from, at;
00289     cctowc.multFullMatrixPnt(Pnt3f(rx, ry, -1), from);
00290     cctowc.multFullMatrixPnt(Pnt3f(rx, ry,  1), at);
00291     
00292     line.setValue(from, at-from);
00293 
00294     return true;
00295 }

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::ProjectionCameraDecoratorBase.

Definition at line 124 of file OSGProjectionCameraDecorator.h.

friend class ProjectionCameraDecoratorBase [friend]

Definition at line 125 of file OSGProjectionCameraDecorator.h.


Member Data Documentation

Initial value:

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

Reimplemented from osg::StereoCameraDecoratorBase.

Definition at line 119 of file OSGProjectionCameraDecoratorBase.h.

bool StereoCameraDecoratorBase::_sfLeftEye [protected, inherited]

const osg::BitVector CameraBase::BeaconFieldMask [static, inherited]

const osg::BitVector CameraBase::NearFieldMask [static, inherited]

const osg::BitVector CameraBase::FarFieldMask [static, inherited]

NodePtr CameraBase::_sfBeacon [protected, inherited]

The object that define's the camera's coordinate system. The camera is positioned at the origin of the system and looks doen the negative z-axis (OpenGL-style).

Definition at line 176 of file OSGCameraBase.h.

Referenced by osg::CameraBase::copyFromBin(), osg::CameraBase::copyToBin(), osg::CameraBase::executeSyncImpl(), osg::CameraBase::getBeacon(), osg::CameraBase::getBinSize(), osg::CameraBase::getSFBeacon(), and osg::CameraBase::setBeacon().

Real32 CameraBase::_sfNear [protected, inherited]

Real32 CameraBase::_sfFar [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 11:23:18 2008 for OpenSG by  doxygen 1.5.5