Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::ClipPlaneChunk Class Reference
[OpenGL State Handling]

State chunk for user-defined clipping planes. See ClipPlaneChunk for a description. More...

#include <OSGClipPlaneChunk.h>

Inheritance diagram for osg::ClipPlaneChunk:

osg::ClipPlaneChunkBase osg::StateChunk osg::StateChunkBase osg::Attachment osg::FieldContainer List of all members.

Public Types

typedef ClipPlaneChunkPtr Ptr
enum  { EquationFieldId = Inherited::NextFieldId, EnableFieldId = EquationFieldId + 1, BeaconFieldId = EnableFieldId + 1, NextFieldId = BeaconFieldId + 1 }

Public Member Functions

Chunk Class Access
*virtual const StateChunkClassgetClass (void) const
Sync
*virtual void changed (BitVector whichField, UInt32 origin)
Output
*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
State
*virtual void activate (DrawActionBase *action, UInt32 index=0)
virtual void changeFrom (DrawActionBase *action, StateChunk *old, UInt32 index=0)
virtual void deactivate (DrawActionBase *action, UInt32 index=0)
Comparison
*virtual Real32 switchCost (StateChunk *chunk)
virtual bool operator< (const StateChunk &other) const
virtual bool operator== (const StateChunk &other) const
virtual bool operator!= (const StateChunk &other) const
FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get
*SFVec4fgetSFEquation (void)
 Get the ClipPlaneChunk::_sfEquation field.
SFBoolgetSFEnable (void)
 Get the ClipPlaneChunk::_sfEnable field.
SFNodePtrgetSFBeacon (void)
 Get the ClipPlaneChunk::_sfBeacon field.
Vec4fgetEquation (void)
 Get the value of the ClipPlaneChunk::_sfEquation field.
const Vec4fgetEquation (void) const
 Get the value of the ClipPlaneChunk::_sfEquation field.
bool & getEnable (void)
 Get the value of the ClipPlaneChunk::_sfEnable field.
const bool & getEnable (void) const
 Get the value of the ClipPlaneChunk::_sfEnable field.
NodePtrgetBeacon (void)
 Get the value of the ClipPlaneChunk::_sfBeacon field.
const NodePtrgetBeacon (void) const
 Get the value of the ClipPlaneChunk::_sfBeacon field.
Field Set
*void setEquation (const Vec4f &value)
 Set the value of the ClipPlaneChunk::_sfEquation field.
void setEnable (const bool &value)
 Set the value of the ClipPlaneChunk::_sfEnable field.
void setBeacon (const NodePtr &value)
 Set the value of the ClipPlaneChunk::_sfBeacon 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

Static Public Member Functions

Static Chunk Class Access
*static UInt32 getStaticClassId (void)
static const StateChunkClassgetStaticClass (void)
Class Get
*static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction
*static ClipPlaneChunkPtr create (void)
 create a new instance of the class
static ClipPlaneChunkPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype

Static Public Attributes

static const osg::BitVector EquationFieldMask
static const osg::BitVector EnableFieldMask
static const osg::BitVector BeaconFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector InternalFieldMask = (1 << Attachment::InternalFieldId)
static const BitVector ParentsFieldMask = (1 << Attachment::ParentsFieldId)
static const BitVector NextFieldMask

Protected Member Functions

Constructors
ClipPlaneChunk (void)
 ClipPlaneChunk (const ClipPlaneChunk &source)
Destructors
*virtual ~ClipPlaneChunk (void)
Sync
*void executeSyncImpl (ClipPlaneChunkBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)

Static Protected Member Functions

static void initMethod (void)

Protected Attributes

Fields
*SFVec4f _sfEquation
SFBool _sfEnable
SFNodePtr _sfBeacon

Private Types

typedef ClipPlaneChunkBase Inherited

Private Member Functions

void operator= (const ClipPlaneChunk &source)

Static Private Attributes

static StateChunkClass _class

Friends

class FieldContainer
class ClipPlaneChunkBase

Detailed Description

See ClipPlaneChunk for a description.

This chunk wraps glCLipPlane() (osg::ClipPlaneChunk::_sfEquation) and glEnable(GL_CLIP_PLANEi) (osg::ClipPlaneChunk::_sfEnable). The coordinate system the plane is in is defined by osg::ClipPlaneChunk::_sfBeacon.

Definition at line 55 of file OSGClipPlaneChunk.h.


Member Typedef Documentation

typedef ClipPlaneChunkBase osg::ClipPlaneChunk::Inherited [private]
 

Reimplemented from osg::ClipPlaneChunkBase.

Definition at line 142 of file OSGClipPlaneChunk.h.

typedef ClipPlaneChunkPtr osg::ClipPlaneChunkBase::Ptr [inherited]
 

Reimplemented from osg::StateChunkBase.

Definition at line 92 of file OSGClipPlaneChunkBase.h.


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumerator:
EquationFieldId 
EnableFieldId 
BeaconFieldId 
NextFieldId 

Reimplemented from osg::Attachment.

Definition at line 94 of file OSGClipPlaneChunkBase.h.

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


Constructor & Destructor Documentation

ClipPlaneChunk::ClipPlaneChunk void   )  [protected]
 

Definition at line 89 of file OSGClipPlaneChunk.cpp.

00089                                    :
00090     Inherited()
00091 {
00092 }

ClipPlaneChunk::ClipPlaneChunk const ClipPlaneChunk source  )  [protected]
 

Definition at line 94 of file OSGClipPlaneChunk.cpp.

00094                                                            :
00095     Inherited(source)
00096 {
00097 }

ClipPlaneChunk::~ClipPlaneChunk void   )  [protected, virtual]
 

Definition at line 99 of file OSGClipPlaneChunk.cpp.

00100 {
00101 }


Member Function Documentation

const StateChunkClass * ClipPlaneChunk::getClass void   )  const [virtual]
 

Reimplemented from osg::StateChunk.

Definition at line 105 of file OSGClipPlaneChunk.cpp.

References _class.

00106 {
00107      return &_class;
00108 }

UInt32 osg::ClipPlaneChunk::getStaticClassId void   )  [inline, static]
 

Reimplemented from osg::StateChunk.

Definition at line 46 of file OSGClipPlaneChunk.inl.

References osg::StateChunkClass::getId(), and getStaticClass().

00047 {
00048     return getStaticClass()->getId();
00049 }

const StateChunkClass * osg::ClipPlaneChunk::getStaticClass void   )  [inline, static]
 

Reimplemented from osg::StateChunk.

Definition at line 52 of file OSGClipPlaneChunk.inl.

References _class.

Referenced by getStaticClassId().

00053 {
00054     return &ClipPlaneChunk::_class;
00055 }

void ClipPlaneChunk::changed BitVector  whichField,
UInt32  origin
[virtual]
 

Reimplemented from osg::StateChunk.

Definition at line 112 of file OSGClipPlaneChunk.cpp.

00113 {
00114 }

void ClipPlaneChunk::dump UInt32  uiIndent = 0,
const BitVector  bvFlags = 0
const [virtual]
 

Reimplemented from osg::StateChunk.

Definition at line 118 of file OSGClipPlaneChunk.cpp.

References SLOG.

00120 {
00121     SLOG << "Dump ClipPlaneChunk NI" << std::endl;
00122 }

void ClipPlaneChunk::activate DrawActionBase action,
UInt32  idx = 0
[virtual]
 

Activate the chunk, i.e. set the OpenGl state covered by the chunk which is different from the default state to the given state.

Reimplemented from osg::StateChunk.

Definition at line 127 of file OSGClipPlaneChunk.cpp.

References osg::Action::getActNode(), osg::ClipPlaneChunkBase::getBeacon(), osg::DrawActionBase::getCameraToWorld(), osg::ClipPlaneChunkBase::getEnable(), osg::ClipPlaneChunkBase::getEquation(), osg::TransformationMatrix< ValueTypeT >::getValues(), GLdouble, osg::TransformationMatrix< ValueTypeT >::invert(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::NullFC, SWARNING, and osg::RenderAction::top_matrix().

00128 {
00129     RenderAction *ra = dynamic_cast<RenderAction *>(action);
00130 
00131     Matrix beaconMat;
00132 
00133     if(ra != NULL)
00134     {
00135         beaconMat = ra->top_matrix();
00136     }
00137     else
00138     {
00139         beaconMat = action->getActNode()->getToWorld();
00140     }
00141 
00142 
00143     Matrix cameraMat = action->getCameraToWorld();
00144 
00145     cameraMat.invert();
00146 
00147     if(getBeacon() != NullFC) 
00148     {
00149         getBeacon()->getToWorld(beaconMat);
00150     }
00151     else
00152     {
00153         SWARNING << "NO beacon" << std::endl;
00154     }
00155 
00156     cameraMat.mult(beaconMat);
00157 
00158     if(getEnable())
00159     {
00160         GLdouble glEq[4];
00161         Vec4f   & eq = getEquation();
00162         glEq[0] = eq[0];
00163         glEq[1] = eq[1];
00164         glEq[2] = eq[2];
00165         glEq[3] = eq[3];
00166         
00167         glPushMatrix();
00168         glLoadMatrixf(cameraMat.getValues());
00169         
00170         glClipPlane( GL_CLIP_PLANE0 + idx, glEq);
00171         glEnable( GL_CLIP_PLANE0 + idx);
00172         
00173         glPopMatrix();
00174     }
00175 }

void ClipPlaneChunk::changeFrom DrawActionBase action,
StateChunk old_chunk,
UInt32  idx = 0
[virtual]
 

Change from an old chunk of the same type to this chunk. Note that in general no type checking is done, make sure to use this on a legal combination of chunks!

Reimplemented from osg::StateChunk.

Definition at line 180 of file OSGClipPlaneChunk.cpp.

References osg::Action::getActNode(), osg::ClipPlaneChunkBase::getBeacon(), osg::DrawActionBase::getCameraToWorld(), osg::ClipPlaneChunkBase::getEnable(), osg::ClipPlaneChunkBase::getEquation(), osg::TransformationMatrix< ValueTypeT >::getValues(), GLdouble, osg::TransformationMatrix< ValueTypeT >::invert(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::NullFC, SWARNING, and osg::RenderAction::top_matrix().

00182 {
00183     ClipPlaneChunk const *old = dynamic_cast<ClipPlaneChunk const*>(old_chunk);
00184 
00185     // change from me to me?
00186     // this assumes I haven't changed in the meantime. is that a valid assumption?
00187     if(old == this)
00188         return;
00189 
00190 
00191     RenderAction *ra = dynamic_cast<RenderAction *>(action);
00192 
00193     Matrix beaconMat;
00194 
00195     if(ra != NULL)
00196     {
00197         beaconMat = ra->top_matrix();
00198     }
00199     else
00200     {
00201         beaconMat = action->getActNode()->getToWorld();
00202     }
00203 
00204 
00205     Matrix cameraMat = action->getCameraToWorld();
00206 
00207     cameraMat.invert();
00208 
00209     if (getBeacon() != NullFC) 
00210     {
00211         getBeacon()->getToWorld(beaconMat);
00212     }
00213     else
00214     {
00215         SWARNING << "ClipPlaneChunk::changeFrom: NO beacon" << std::endl;
00216     }
00217 
00218     cameraMat.mult(beaconMat);
00219 
00220     if(getEnable() != old->getEnable() ||
00221        getBeacon() != old->getBeacon())
00222     {
00223         if(getEnable())
00224         {
00225             GLdouble glEq[4];
00226             Vec4f   & eq = getEquation();
00227             glEq[0] = eq[0];
00228             glEq[1] = eq[1];
00229             glEq[2] = eq[2];
00230             glEq[3] = eq[3];
00231             
00232             glPushMatrix();
00233             glLoadMatrixf(cameraMat.getValues());
00234         
00235             glClipPlane( GL_CLIP_PLANE0 + idx, glEq);
00236             glEnable( GL_CLIP_PLANE0 + idx);
00237     
00238             glPopMatrix();
00239         }
00240         else
00241         {
00242             glDisable( GL_CLIP_PLANE0 + idx);
00243         }
00244     }
00245     else
00246     {
00247         ;//SWARNING << " - are the SAME" <<  std::endl;
00248     }
00249 }

void ClipPlaneChunk::deactivate DrawActionBase action,
UInt32  idx = 0
[virtual]
 

Deactivate the chunk, i.e. set the OpenGl state covered by the chunk which is different from the default state to the default state.

Reimplemented from osg::StateChunk.

Definition at line 252 of file OSGClipPlaneChunk.cpp.

References osg::ClipPlaneChunkBase::getEnable().

00253 {
00254     if(getEnable())
00255     {
00256         glDisable( GL_CLIP_PLANE0 + idx);
00257     }
00258 }

Real32 ClipPlaneChunk::switchCost StateChunk chunk  )  [virtual]
 

Calculate how expensive it is to switch from one instance of the chunk class to another. In most cases not implemented yet, will return 0.

Reimplemented from osg::StateChunk.

Definition at line 263 of file OSGClipPlaneChunk.cpp.

00264 {
00265     return 0;
00266 }

bool ClipPlaneChunk::operator< const StateChunk other  )  const [virtual]
 

Calculate how expensive it is to switch from one instance of the chunk class to another. In most cases not implemented yet, will return 0.

Reimplemented from osg::StateChunk.

Definition at line 268 of file OSGClipPlaneChunk.cpp.

00269 {
00270     return this < &other;
00271 }

bool ClipPlaneChunk::operator== const StateChunk other  )  const [virtual]
 

Compare two chunks. In most cases not implemented yet, will return false.

Reimplemented from osg::StateChunk.

Definition at line 273 of file OSGClipPlaneChunk.cpp.

References osg::ClipPlaneChunkBase::getBeacon(), osg::ClipPlaneChunkBase::getEnable(), and osg::ClipPlaneChunkBase::getEquation().

00274 {
00275     ClipPlaneChunk const *tother = dynamic_cast<ClipPlaneChunk const*>(&other);
00276 
00277     if(!tother)
00278         return false;
00279 
00280     if(getEnable() != tother->getEnable())
00281         return false;
00282 
00283     if(getEquation() != tother->getEquation())
00284         return false;
00285 
00286     if(getBeacon() != tother->getBeacon())
00287         return false;
00288     
00289     return true;
00290 }

bool ClipPlaneChunk::operator!= const StateChunk other  )  const [virtual]
 

Calculate how expensive it is to switch from one instance of the chunk class to another. In most cases not implemented yet, will return 0.

Reimplemented from osg::StateChunk.

Definition at line 292 of file OSGClipPlaneChunk.cpp.

00293 {
00294     return ! (*this == other);
00295 }

void osg::ClipPlaneChunk::operator= const ClipPlaneChunk source  )  [private]
 

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

Reimplemented from osg::StateChunkBase.

Definition at line 58 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 65 of file OSGClipPlaneChunkBase.inl.

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

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

FieldContainerType & ClipPlaneChunkBase::getType void   )  [virtual, inherited]
 

Reimplemented from osg::StateChunkBase.

Definition at line 129 of file OSGClipPlaneChunkBase.cpp.

References osg::ClipPlaneChunkBase::_type.

00130 {
00131     return _type; 
00132 } 

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

Reimplemented from osg::StateChunkBase.

Definition at line 134 of file OSGClipPlaneChunkBase.cpp.

References osg::ClipPlaneChunkBase::_type.

00135 {
00136     return _type;
00137 } 

UInt32 ClipPlaneChunkBase::getContainerSize void   )  const [virtual, inherited]
 

Reimplemented from osg::StateChunkBase.

Definition at line 149 of file OSGClipPlaneChunkBase.cpp.

00150 { 
00151     return sizeof(ClipPlaneChunk); 
00152 }

SFVec4f * osg::ClipPlaneChunkBase::getSFEquation void   )  [inline, inherited]
 

Definition at line 101 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEquation.

00102 {
00103     return &_sfEquation;
00104 }

SFBool * osg::ClipPlaneChunkBase::getSFEnable void   )  [inline, inherited]
 

Definition at line 108 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEnable.

00109 {
00110     return &_sfEnable;
00111 }

SFNodePtr * osg::ClipPlaneChunkBase::getSFBeacon void   )  [inline, inherited]
 

Definition at line 115 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfBeacon.

00116 {
00117     return &_sfBeacon;
00118 }

Vec4f & osg::ClipPlaneChunkBase::getEquation void   )  [inline, inherited]
 

Definition at line 123 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEquation, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), and operator==().

00124 {
00125     return _sfEquation.getValue();
00126 }

const Vec4f & osg::ClipPlaneChunkBase::getEquation void   )  const [inline, inherited]
 

Definition at line 130 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEquation, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00131 {
00132     return _sfEquation.getValue();
00133 }

bool & osg::ClipPlaneChunkBase::getEnable void   )  [inline, inherited]
 

Definition at line 144 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEnable, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), deactivate(), and operator==().

00145 {
00146     return _sfEnable.getValue();
00147 }

const bool & osg::ClipPlaneChunkBase::getEnable void   )  const [inline, inherited]
 

Definition at line 151 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEnable, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00152 {
00153     return _sfEnable.getValue();
00154 }

NodePtr & osg::ClipPlaneChunkBase::getBeacon void   )  [inline, inherited]
 

Definition at line 165 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by activate(), changeFrom(), and operator==().

00166 {
00167     return _sfBeacon.getValue();
00168 }

const NodePtr & osg::ClipPlaneChunkBase::getBeacon void   )  const [inline, inherited]
 

Definition at line 172 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

void osg::ClipPlaneChunkBase::setEquation const Vec4f value  )  [inline, inherited]
 

Definition at line 137 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEquation, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00138 {
00139     _sfEquation.setValue(value);
00140 }

void osg::ClipPlaneChunkBase::setEnable const bool &  value  )  [inline, inherited]
 

Definition at line 158 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfEnable, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00159 {
00160     _sfEnable.setValue(value);
00161 }

void osg::ClipPlaneChunkBase::setBeacon const NodePtr value  )  [inline, inherited]
 

Definition at line 179 of file OSGClipPlaneChunkBase.inl.

References osg::ClipPlaneChunkBase::_sfBeacon, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00180 {
00181     _sfBeacon.setValue(value);
00182 }

UInt32 ClipPlaneChunkBase::getBinSize const BitVector whichField  )  [virtual, inherited]
 

Reimplemented from osg::StateChunkBase.

Definition at line 215 of file OSGClipPlaneChunkBase.cpp.

References osg::ClipPlaneChunkBase::_sfBeacon, osg::ClipPlaneChunkBase::_sfEnable, osg::ClipPlaneChunkBase::_sfEquation, osg::ClipPlaneChunkBase::BeaconFieldMask, osg::ClipPlaneChunkBase::EnableFieldMask, osg::ClipPlaneChunkBase::EquationFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::StateChunkBase::getBinSize(), and osg::FieldBits::NoField.

00216 {
00217     UInt32 returnValue = Inherited::getBinSize(whichField);
00218 
00219     if(FieldBits::NoField != (EquationFieldMask & whichField))
00220     {
00221         returnValue += _sfEquation.getBinSize();
00222     }
00223 
00224     if(FieldBits::NoField != (EnableFieldMask & whichField))
00225     {
00226         returnValue += _sfEnable.getBinSize();
00227     }
00228 
00229     if(FieldBits::NoField != (BeaconFieldMask & whichField))
00230     {
00231         returnValue += _sfBeacon.getBinSize();
00232     }
00233 
00234 
00235     return returnValue;
00236 }

void ClipPlaneChunkBase::copyToBin BinaryDataHandler pMem,
const BitVector whichField
[virtual, inherited]
 

Reimplemented from osg::StateChunkBase.

Definition at line 238 of file OSGClipPlaneChunkBase.cpp.

References osg::ClipPlaneChunkBase::_sfBeacon, osg::ClipPlaneChunkBase::_sfEnable, osg::ClipPlaneChunkBase::_sfEquation, osg::ClipPlaneChunkBase::BeaconFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::StateChunkBase::copyToBin(), osg::ClipPlaneChunkBase::EnableFieldMask, osg::ClipPlaneChunkBase::EquationFieldMask, and osg::FieldBits::NoField.

00240 {
00241     Inherited::copyToBin(pMem, whichField);
00242 
00243     if(FieldBits::NoField != (EquationFieldMask & whichField))
00244     {
00245         _sfEquation.copyToBin(pMem);
00246     }
00247 
00248     if(FieldBits::NoField != (EnableFieldMask & whichField))
00249     {
00250         _sfEnable.copyToBin(pMem);
00251     }
00252 
00253     if(FieldBits::NoField != (BeaconFieldMask & whichField))
00254     {
00255         _sfBeacon.copyToBin(pMem);
00256     }
00257 
00258 
00259 }

void ClipPlaneChunkBase::copyFromBin BinaryDataHandler pMem,
const BitVector whichField
[virtual, inherited]
 

Reimplemented from osg::StateChunkBase.

Definition at line 261 of file OSGClipPlaneChunkBase.cpp.

References osg::ClipPlaneChunkBase::_sfBeacon, osg::ClipPlaneChunkBase::_sfEnable, osg::ClipPlaneChunkBase::_sfEquation, osg::ClipPlaneChunkBase::BeaconFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::StateChunkBase::copyFromBin(), osg::ClipPlaneChunkBase::EnableFieldMask, osg::ClipPlaneChunkBase::EquationFieldMask, and osg::FieldBits::NoField.

00263 {
00264     Inherited::copyFromBin(pMem, whichField);
00265 
00266     if(FieldBits::NoField != (EquationFieldMask & whichField))
00267     {
00268         _sfEquation.copyFromBin(pMem);
00269     }
00270 
00271     if(FieldBits::NoField != (EnableFieldMask & whichField))
00272     {
00273         _sfEnable.copyFromBin(pMem);
00274     }
00275 
00276     if(FieldBits::NoField != (BeaconFieldMask & whichField))
00277     {
00278         _sfBeacon.copyFromBin(pMem);
00279     }
00280 
00281 
00282 }

ClipPlaneChunkPtr osg::ClipPlaneChunkBase::create void   )  [inline, static, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 72 of file OSGClipPlaneChunkBase.inl.

References osg::AttachmentPtr::dcast(), osg::ClipPlaneChunkBase::getClassType(), osg::FieldContainerType::getPrototype(), osg::NullFC, and osg::ClipPlaneChunkBase::shallowCopy().

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

ClipPlaneChunkPtr osg::ClipPlaneChunkBase::createEmpty void   )  [inline, static, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 87 of file OSGClipPlaneChunkBase.inl.

References osg::FieldContainer::newPtr().

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

FieldContainerPtr ClipPlaneChunkBase::shallowCopy void   )  const [virtual, inherited]
 

Reimplemented from osg::Attachment.

Definition at line 140 of file OSGClipPlaneChunkBase.cpp.

References osg::FieldContainer::newPtr().

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

00141 { 
00142     ClipPlaneChunkPtr returnValue; 
00143 
00144     newPtr(returnValue, dynamic_cast<const ClipPlaneChunk *>(this)); 
00145 
00146     return returnValue; 
00147 }

void ClipPlaneChunkBase::executeSyncImpl ClipPlaneChunkBase pOther,
const BitVector whichField
[protected, inherited]
 

Definition at line 285 of file OSGClipPlaneChunkBase.cpp.

References osg::ClipPlaneChunkBase::_sfBeacon, osg::ClipPlaneChunkBase::_sfEnable, osg::ClipPlaneChunkBase::_sfEquation, osg::ClipPlaneChunkBase::BeaconFieldMask, osg::ClipPlaneChunkBase::EnableFieldMask, osg::ClipPlaneChunkBase::EquationFieldMask, osg::StateChunkBase::executeSyncImpl(), osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by osg::ClipPl