osg::VRMLGeometryPointSetDesc Class Reference
[VRML-specific File Input/Output]

VRML Point Set Desc. More...

#include <OSGVRMLNodeDescs.h>

Inheritance diagram for osg::VRMLGeometryPointSetDesc:

osg::VRMLNodeDesc

List of all members.

Member



FieldNameTypeHash _mFieldTypes
GenericAttPtr _pGenAtt
FieldContainerPtr _pNodeProto
FieldContainerPtr _pNodeCoreProto
Field_pCurrField
std::string _szCurrentName
bool _bSaveOnEnd
static UInt32 _uiIndent = 0
FieldgetField (FieldContainerPtr pFC1, FieldContainerPtr pFC2, GenericAttPtr pGenAtt, const Char8 *szFieldname)

Public Member Functions

Constructors


 VRMLGeometryPointSetDesc (void)
Destructor


virtual ~VRMLGeometryPointSetDesc (void)
Helper


virtual void init (const Char8 *szName)
Get


virtual bool prototypeAddField (const Char8 *szFieldType, const UInt32 uiFieldTypeId, const Char8 *szFieldName)
virtual void getFieldAndDesc (FieldContainerPtr pFC, const Char8 *szFieldname, Field *&pField, const FieldDescription *&pDesc)
Node


virtual FieldContainerPtr beginNode (const Char8 *szTypename, const Char8 *szName, FieldContainerPtr pCurrentFC)
virtual void endNode (FieldContainerPtr pFC)
Field Value


virtual void addFieldValue (Field *pField, const Char8 *szFieldVal)
Dump


virtual void dump (const Char8 *szNodeName)
Helper


virtual void reset (void)
virtual void setOnEndSave (const Char8 *szName)
virtual void clearOnEndSave (void)
virtual bool getOnEndSave (void)
virtual const Char8getSavename (void)
virtual FieldContainerPtr getSaveFieldContainer (void)
Field


virtual FieldgetField (const Char8 *szFieldname)
Prototypes


virtual void prototypeAddFieldValue (const Char8 *szFieldVal)
virtual void endProtoInterface (void)
FieldValue


virtual bool use (FieldContainerPtr)

Static Public Member Functions

Class Get


static UInt32 getIndent (void)
static void incIndent (void)
static void decIndent (void)
static void resetIndent (void)

Protected Types

typedef std::map< const Char8
*, UInt32, LTString
FieldNameTypeHash

Protected Attributes

Member


bool _bInIndex
UInt32 _uiNumVertices
GeoPTypesPtr _pTypeField
GeoPLengthsPtr _pLengthField

Private Types

typedef VRMLNodeDesc Inherited

Private Member Functions

 VRMLGeometryPointSetDesc (const VRMLGeometryPointSetDesc &source)
 prohibit default function (move to 'public' if needed)
void operator= (const VRMLGeometryPointSetDesc &source)
 prohibit default function (move to 'public' if needed)


Detailed Description

VRML Geometry Point Set description

Definition at line 535 of file OSGVRMLNodeDescs.h.


Member Typedef Documentation

Definition at line 618 of file OSGVRMLNodeDescs.h.

typedef std::map< const Char8 *, UInt32, LTString> osg::VRMLNodeDesc::FieldNameTypeHash [protected, inherited]

Definition at line 298 of file OSGVRMLNodeDescs.h.


Constructor & Destructor Documentation

VRMLGeometryPointSetDesc::VRMLGeometryPointSetDesc ( void   ) 

Definition at line 1522 of file OSGVRMLNodeDescs.cpp.

01522                                                        :
01523     Inherited     (),
01524 
01525     _bInIndex     (false),
01526     _uiNumVertices(0),
01527 
01528     _pTypeField   (NullFC    ),
01529     _pLengthField (NullFC    )
01530 {
01531 }

VRMLGeometryPointSetDesc::~VRMLGeometryPointSetDesc ( void   )  [virtual]

Definition at line 1536 of file OSGVRMLNodeDescs.cpp.

01537 {
01538 }

osg::VRMLGeometryPointSetDesc::VRMLGeometryPointSetDesc ( const VRMLGeometryPointSetDesc source  )  [private]


Member Function Documentation

void VRMLGeometryPointSetDesc::init ( const Char8 szName  )  [virtual]

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1543 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_pGenAtt, osg::VRMLNodeDesc::_pNodeCoreProto, osg::VRMLNodeDesc::_pNodeProto, osg::DynFieldAttachment< AttachmentDescT >::create(), osg::GeometryBase::create(), osg::Node::create(), osg::VRMLNodeDesc::getIndent(), osg::indentLog(), and PINFO.

01544 {
01545 #ifdef OSG_DEBUG_VRML
01546     indentLog(getIndent(), PINFO);
01547     PINFO << "GeoDesc::init : " << szName << std::endl;
01548 #endif
01549 
01550     _pNodeProto     = Node::create();
01551     _pNodeCoreProto = Geometry::create();
01552 
01553     _pGenAtt = GenericAtt::create();
01554     _pGenAtt->setInternal(true);
01555 }

bool VRMLGeometryPointSetDesc::prototypeAddField ( const Char8 szFieldType,
const UInt32  uiFieldTypeId,
const Char8 szFieldName 
) [virtual]

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1560 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_pCurrField, osg::VRMLNodeDesc::getIndent(), osg::indentLog(), PINFO, osg::VRMLNodeDesc::prototypeAddField(), and osg::stringcasecmp().

01563 {
01564     bool bFound = false;
01565 
01566     _pCurrField = NULL;
01567 
01568     if(szFieldname == NULL)
01569         return false;
01570 
01571     if(stringcasecmp("coord", szFieldname) == 0)
01572     {
01573         bFound = true;
01574     }
01575     else if(stringcasecmp("color", szFieldname) == 0)
01576     {
01577         bFound = true;
01578     }
01579 
01580     if(bFound == true)
01581     {
01582 #ifdef OSG_DEBUG_VRML
01583         indentLog(getIndent(), PINFO);
01584         PINFO << "GeoDesc::prototypeAddField : internal "
01585               << szFieldname << std::endl;
01586 #endif
01587 
01588         return true;
01589     }
01590     else
01591     {
01592         return Inherited::prototypeAddField(szFieldType,
01593                                             uiFieldTypeId,
01594                                             szFieldname);
01595     }
01596 }

void VRMLGeometryPointSetDesc::getFieldAndDesc ( FieldContainerPtr  pFC,
const Char8 szFieldname,
Field *&  pField,
const FieldDescription *&  pDesc 
) [virtual]

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1599 of file OSGVRMLNodeDescs.cpp.

References _bInIndex, osg::AttachmentContainerPtr::dcast(), osg::NodePtr::dcast(), osg::NodePtr::getCore(), osg::VRMLNodeDesc::getFieldAndDesc(), osg::VRMLNodeDesc::getIndent(), osg::indentLog(), osg::NullFC, PINFO, PWARNING, and osg::stringcasecmp().

01604 {
01605 #ifdef OSG_DEBUG_VRML
01606     indentLog(getIndent(), PINFO);
01607     PINFO << "GeoDesc::getFieldAndDesc : request "
01608           << szFieldname
01609           << std::endl;
01610 #endif
01611 
01612     if(szFieldname == NULL)
01613         return;
01614 
01615     if(pFC == NullFC)
01616         return;
01617 
01618     NodePtr pNode = NodePtr::dcast(pFC);
01619 
01620     if(pNode == NullFC)
01621     {
01622         PWARNING << "GeoDesc::getFieldAndDesc : No Node" << std::endl;
01623         return;
01624     }
01625 
01626     NodeCorePtr pNodeCore = pNode->getCore();
01627 
01628     GeometryPtr pGeo      = GeometryPtr::dcast(pNodeCore);
01629 
01630     if(pGeo == NullFC)
01631     {
01632         PWARNING << "GeoDesc::getFieldAndDesc : No Geo" << std::endl;
01633         return;
01634     }
01635 
01636     _bInIndex = false;
01637 
01638     if(stringcasecmp("coord", szFieldname) == 0)
01639     {
01640 #ifdef OSG_DEBUG_VRML
01641         indentLog(getIndent(), PINFO);
01642         PINFO << "GeoDesc::getFieldAndDesc : internal "
01643               << szFieldname << std::endl;
01644 #endif
01645         pField = pGeo->getField("positions");
01646 
01647         if(pField != NULL)
01648             pDesc = pGeo->getType().findFieldDescription("positions");
01649     }
01650     else if(stringcasecmp("color", szFieldname) == 0)
01651     {
01652 #ifdef OSG_DEBUG_VRML
01653         indentLog(getIndent(), PINFO);
01654         PINFO << "GeoDesc::getFieldAndDesc : internal "
01655               << szFieldname << std::endl;
01656 #endif
01657 
01658         pField = pGeo->getField("colors");
01659 
01660         if(pField != NULL)
01661             pDesc = pGeo->getType().findFieldDescription("colors");
01662     }
01663     else
01664     {
01665         VRMLNodeDesc::getFieldAndDesc(pGeo,
01666                                       szFieldname,
01667                                       pField,
01668                                       pDesc);
01669     }
01670 }

FieldContainerPtr VRMLGeometryPointSetDesc::beginNode ( const Char8 szTypename,
const Char8 szName,
FieldContainerPtr  pCurrentFC 
) [virtual]

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1675 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_pGenAtt, osg::VRMLNodeDesc::_pNodeCoreProto, osg::VRMLNodeDesc::_pNodeProto, osg::beginEditCP(), osg::AttachmentContainerPtr::dcast(), osg::NodePtr::dcast(), osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::dcast(), osg::endEditCP(), osg::VRMLNodeDesc::getIndent(), osg::VRMLNodeDesc::incIndent(), osg::indentLog(), osg::NullFC, and PINFO.

01679 {
01680     FieldContainerPtr pFC         = NullFC;
01681     NodePtr           pNode       = NullFC;
01682     NodeCorePtr       pNodeCore   = NullFC;
01683     GenericAttPtr     pAtt        = NullFC;
01684 
01685     if(_pNodeProto != NullFC)
01686     {
01687         FieldContainerPtr pAttClone = _pGenAtt->clone();
01688 
01689         pAtt = GenericAttPtr::dcast(pAttClone);
01690 
01691         if(pAtt != NullFC)
01692         {
01693             pAtt->setInternal(true);
01694         }
01695 
01696         pFC = _pNodeProto->shallowCopy();
01697 
01698         pNode = NodePtr::dcast(pFC);
01699 
01700         pFC = _pNodeCoreProto->shallowCopy();
01701 
01702         pNodeCore = NodeCorePtr::dcast(pFC);
01703 
01704         beginEditCP(pNode);
01705         {
01706             pNode    ->setCore      (pNodeCore);
01707             pNodeCore->addAttachment(pAtt);
01708         }
01709         endEditCP  (pNode);
01710     }
01711 
01712 #ifdef OSG_DEBUG_VRML
01713     indentLog(getIndent(), PINFO);
01714     PINFO << "Begin Geo " << &(*pNode) << std::endl;
01715 
01716     incIndent();
01717 #endif
01718 
01719     return pNode;
01720 }

void VRMLGeometryPointSetDesc::endNode ( FieldContainerPtr  pFC  )  [virtual]

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1722 of file OSGVRMLNodeDescs.cpp.

References osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::calcVertexNormals(), osg::GroupBase::create(), osg::GeoProperty< GeoPropertyDesc >::create(), osg::FCPtr< BasePtrTypeT, FieldContainerTypeT >::dcast(), osg::AttachmentContainerPtr::dcast(), osg::NodePtr::dcast(), osg::VRMLNodeDesc::decIndent(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), osg::NodePtr::getCore(), osg::VRMLNodeDesc::getFieldAndDesc(), osg::VRMLNodeDesc::getIndent(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::indentLog(), osg::GeometryBase::LengthsFieldMask, osg::NullFC, PINFO, PWARNING, osg::setIndexFromVRMLData(), osg::MField< FieldTypeT, fieldNameSpace >::size(), and osg::GeometryBase::TypesFieldMask.

01723 {
01724     NodePtr     pNode = NullFC;
01725     GeometryPtr pGeo  = NullFC;
01726 
01727     if(pFC == NullFC)
01728     {
01729         return;
01730     }
01731 
01732     pNode = NodePtr::dcast(pFC);
01733 
01734     if(pNode == NullFC)
01735     {
01736         return;
01737     }
01738 
01739     pGeo = GeometryPtr::dcast(pNode->getCore());
01740 
01741     if(pGeo == NullFC)
01742     {
01743         return;
01744     }
01745 
01746     GeoPLengthsUI32Ptr pLengths = GeoPLengthsUI32::create();
01747     GeoPTypesUI8Ptr    pTypes   = GeoPTypesUI8::create();
01748 
01749     GeoPositionsPtr    pPos     = pGeo->getPositions();
01750     GeoPositions3fPtr  pCoords  = GeoPositions3fPtr::dcast(pPos);
01751 
01752     if(pCoords == NullFC)
01753         return;
01754 
01755     GeoPLengthsUI32::StoredFieldType *pLenField  =
01756         pLengths->getFieldPtr();
01757 
01758     GeoPTypesUI8   ::StoredFieldType *pTypeField =
01759         pTypes ->getFieldPtr();
01760 
01761     beginEditCP(pLengths);
01762     {
01763         pLenField->push_back(pCoords->getFieldPtr()->size());
01764     }
01765     endEditCP  (pLengths);
01766 
01767     beginEditCP(pTypes);
01768     {
01769         pTypeField->push_back(GL_POINTS);
01770     }
01771     endEditCP  (pTypes);
01772 
01773     beginEditCP(pGeo,
01774                 Geometry::TypesFieldMask |
01775                 Geometry::LengthsFieldMask);
01776     {
01777         pGeo->setLengths(pLengths);
01778         pGeo->setTypes  (pTypes  );
01779     }
01780     endEditCP  (pGeo,
01781                 Geometry::TypesFieldMask |
01782                 Geometry::LengthsFieldMask);
01783 
01784 #if 0
01785           Field            *pField = NULL;
01786     const FieldDescription *pDesc  = NULL;
01787 
01788     MFInt32  *pCoordIndex           = NULL;
01789     MFInt32  *pNormalIndex          = NULL;
01790     MFInt32  *pColorIndex           = NULL;
01791     MFInt32  *pTexCoordIndex        = NULL;
01792     SFBool   *pConvex               = NULL;
01793     SFBool   *pCcw                  = NULL;
01794     SFBool   *pNormalPerVertex      = NULL;
01795     SFBool   *pColorPerVertex       = NULL;
01796     SFReal32 *pCreaseAngle          = NULL;
01797 
01798     Inherited::getFieldAndDesc(pFC,
01799                                "coordIndex",
01800                                pField,
01801                                pDesc);
01802 
01803     if(pField != NULL)
01804     {
01805         pCoordIndex = static_cast<MFInt32 *>(pField);
01806     }
01807 
01808     Inherited::getFieldAndDesc(pFC,
01809                                "normalIndex",
01810                                pField,
01811                                pDesc);
01812 
01813     if(pField != NULL)
01814     {
01815         pNormalIndex = static_cast<MFInt32 *>(pField);
01816     }
01817 
01818     Inherited::getFieldAndDesc(pFC,
01819                                "colorIndex",
01820                                pField,
01821                                pDesc);
01822 
01823     if(pField != NULL)
01824     {
01825         pColorIndex = static_cast<MFInt32 *>(pField);
01826     }
01827 
01828     Inherited::getFieldAndDesc(pFC,
01829                                "texCoordIndex",
01830                                pField,
01831                                pDesc);
01832 
01833     if(pField != NULL)
01834     {
01835         pTexCoordIndex = static_cast<MFInt32 *>(pField);
01836     }
01837 
01838 
01839 
01840     Inherited::getFieldAndDesc(pFC,
01841                                "convex",
01842                                pField,
01843                                pDesc);
01844 
01845     if(pField != NULL)
01846     {
01847         pConvex = static_cast<SFBool *>(pField);
01848     }
01849 
01850     Inherited::getFieldAndDesc(pFC,
01851                                "ccw",
01852                                pField,
01853                                pDesc);
01854 
01855     if(pField != NULL)
01856     {
01857         pCcw = static_cast<SFBool *>(pField);
01858     }
01859 
01860     Inherited::getFieldAndDesc(pFC,
01861                                "normalPerVertex",
01862                                pField,
01863                                pDesc);
01864 
01865     if(pField != NULL)
01866     {
01867         pNormalPerVertex = static_cast<SFBool *>(pField);
01868     }
01869 
01870     Inherited::getFieldAndDesc(pFC,
01871                                "colorPerVertex",
01872                                pField,
01873                                pDesc);
01874 
01875     if(pField != NULL)
01876     {
01877         pColorPerVertex = static_cast<SFBool *>(pField);
01878     }
01879 
01880     Inherited::getFieldAndDesc(pFC,
01881                                "creaseAngle",
01882                                pField,
01883                                pDesc);
01884 
01885     if(pField != NULL)
01886     {
01887         pCreaseAngle = static_cast<SFReal32 *>(pField);
01888     }
01889 
01890     beginEditCP(pGeo);
01891 
01892     if(_bIsFaceSet == true)
01893     {
01894         if(pCoordIndex         != NULL &&
01895            pCoordIndex->size() >     2 &&
01896            pNormalIndex        != NULL &&
01897            pColorIndex         != NULL &&
01898            pTexCoordIndex      != NULL &&
01899            pConvex             != NULL &&
01900            pCcw                != NULL &&
01901            pNormalPerVertex    != NULL &&
01902            pColorPerVertex     != NULL &&
01903            pCreaseAngle        != NULL)
01904         {
01905 #ifdef OSG_DEBUG_VRML
01906             indentLog(getIndent(), PINFO);
01907             PINFO << "Geo create faceset " << &(*pNode) << std::endl;
01908 #endif
01909 
01910             setIndexFromVRMLData(pGeo,
01911                                  pCoordIndex     ->getValues(),
01912                                  pNormalIndex    ->getValues(),
01913                                  pColorIndex     ->getValues(),
01914                                  pTexCoordIndex  ->getValues(),
01915                                  pConvex         ->getValue() ,
01916                                  pCcw            ->getValue() ,
01917                                  pNormalPerVertex->getValue() ,
01918                                  pColorPerVertex ->getValue() ,
01919                                  false, // create normal; not yet :)
01920                                  true);
01921 
01922             //if((0 != (_uiOptions & VRMLFile::CreateNormals) )    &&
01923             //   (pGeo->getNormals() == NullFC))
01924             if(pGeo->getNormals() == NullFC)
01925             {
01926 #ifdef OSG_DEBUG_VRML
01927                 indentLog(getIndent(), PINFO);
01928                 PINFO << "Geo create normals " << &(*pNode) << std::endl;
01929 #endif
01930 
01931                 OSG::calcVertexNormals(pGeo, pCreaseAngle->getValue());
01932             }
01933         }
01934         else
01935         {
01936 #if 0  // What's the point of doing that?
01937             PWARNING << "Invalid geometry replaced by a group" << std::endl;
01938 
01939             GroupPtr pGr = Group::create();
01940 
01941             MFNodePtr           pGeoParents = pGeo->getParents ();
01942             MFNodePtr::iterator parentsIt   = pGeoParents.begin();
01943             MFNodePtr::iterator endParents  = pGeoParents.end  ();
01944 
01945             while(parentsIt != endParents)
01946             {
01947                 (*parentsIt)->setCore(pGr);
01948 
01949                 ++parentsIt;
01950             }
01951 #endif
01952         }
01953     }
01954     else
01955     {
01956         vector<Int32> dummyVec;
01957         bool          dummybool = false;
01958 
01959         if(pCoordIndex         != NULL &&
01960            pCoordIndex->size() >     1 &&
01961            pColorIndex         != NULL &&
01962            pColorPerVertex     != NULL)
01963         {
01964 #ifdef OSG_DEBUG_VRML
01965             indentLog(getIndent(), PINFO);
01966             PINFO << "Geo create lineset " << &(*pNode) << std::endl;
01967 #endif
01968 
01969             setIndexFromVRMLData(pGeo,
01970                                  pCoordIndex    ->getValues(),
01971                                  dummyVec ,
01972                                  pColorIndex    ->getValues(),
01973                                  dummyVec ,
01974                                  dummybool,
01975                                  dummybool,
01976                                  dummybool,
01977                                  pColorPerVertex->getValue() ,
01978                                  false,  // create normal; not yet :)
01979                                  false);
01980         }
01981         else
01982         {
01983 #if 0  // What's the point of doing that?
01984 
01985             PWARNING << "Invalid geometry replaced by a group" << std::endl;
01986 
01987             GroupPtr pGr = Group::create();
01988 
01989             MFNodePtr           pGeoParents = pGeo->getParents ();
01990             MFNodePtr::iterator parentsIt   = pGeoParents.begin();
01991             MFNodePtr::iterator endParents  = pGeoParents.end  ();
01992 
01993             while(parentsIt != endParents)
01994             {
01995                 (*parentsIt)->setCore(pGr);
01996 
01997                 ++parentsIt;
01998             }
01999 #endif
02000         }
02001     }
02002 
02003     endEditCP(pGeo);
02004 
02005 #ifdef OSG_DEBUG_VRML
02006     decIndent();
02007 
02008     indentLog(getIndent(), PINFO);
02009     PINFO << "End Geo " << &(*pNode) << std::endl;
02010 #endif
02011 #endif
02012 }

void VRMLGeometryPointSetDesc::addFieldValue ( Field pField,
const Char8 szFieldVal 
) [virtual]

Reimplemented from osg::VRMLNodeDesc.

Definition at line 2014 of file OSGVRMLNodeDescs.cpp.

References osg::Field::pushValueByStr().

02016 {
02017     if(pField != NULL)
02018     {
02019         pField->pushValueByStr(szFieldVal);
02020     }
02021 }

void VRMLGeometryPointSetDesc::dump ( const Char8 szNodeName  )  [virtual]

Reimplemented from osg::VRMLNodeDesc.

Definition at line 2026 of file OSGVRMLNodeDescs.cpp.

02027 {
02028 }

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

UInt32 VRMLNodeDesc::getIndent ( void   )  [static, inherited]

Definition at line 128 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_uiIndent.

Referenced by osg::VRMLNodeFactory< BaseT >::addFieldValue(), osg::VRMLNodeFactory< BaseT >::beginEventInDecl(), osg::VRMLNodeFactory< BaseT >::beginEventOutDecl(), osg::VRMLViewpointDesc::beginNode(), osg::VRMLInlineDesc::beginNode(), osg::VRMLGroupDesc::beginNode(), osg::VRMLSwitchDesc::beginNode(), osg::VRMLLODDesc::beginNode(), osg::VRMLPixelTextureDesc::beginNode(), osg::VRMLImageTextureDesc::beginNode(), osg::VRMLTextureTransformDesc::beginNode(), osg::VRMLAppearanceDesc::beginNode(), beginNode(), osg::VRMLGeometryDesc::beginNode(), osg::VRMLShapeDesc::beginNode(), osg::VRMLFile::beginNode(), osg::VRMLNodeFactory< BaseT >::beginProto(), osg::VRMLFile::endField(), osg::VRMLViewpointDesc::endNode(), osg::VRMLInlineDesc::endNode(), osg::VRMLExtrusionDesc::endNode(), osg::VRMLGroupDesc::endNode(), osg::VRMLSwitchDesc::endNode(), osg::VRMLLODDesc::endNode(), osg::VRMLPixelTextureDesc::endNode(), osg::VRMLImageTextureDesc::endNode(), osg::VRMLTextureTransformDesc::endNode(), osg::VRMLAppearanceDesc::endNode(), osg::VRMLGeometryObjectDesc::endNode(), endNode(), osg::VRMLGeometryDesc::endNode(), osg::VRMLShapeDesc::endNode(), osg::VRMLFile::endNode(), osg::VRMLNodeFactory< BaseT >::findNodeDesc(), osg::VRMLNodeDesc::getField(), osg::VRMLViewpointDesc::getFieldAndDesc(), osg::VRMLInlineDesc::getFieldAndDesc(), osg::VRMLExtrusionDesc::getFieldAndDesc(), osg::VRMLGroupDesc::getFieldAndDesc(), osg::VRMLSwitchDesc::getFieldAndDesc(), osg::VRMLLODDesc::getFieldAndDesc(), osg::VRMLAppearanceDesc::getFieldAndDesc(), osg::VRMLGeometryObjectDesc::getFieldAndDesc(), osg::VRMLGeometryPartDesc::getFieldAndDesc(), getFieldAndDesc(), osg::VRMLGeometryDesc::getFieldAndDesc(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::VRMLNodeDesc::getFieldAndDesc(), osg::VRMLFile::getFieldType(), osg::VRMLInlineDesc::init(), osg::VRMLExtrusionDesc::init(), osg::VRMLGroupDesc::init(), osg::VRMLSwitchDesc::init(), osg::VRMLLODDesc::init(), osg::VRMLPixelTextureDesc::init(), osg::VRMLImageTextureDesc::init(), osg::VRMLTextureTransformDesc::init(), osg::VRMLMaterialDesc::init(), osg::VRMLAppearanceDesc::init(), osg::VRMLGeometryObjectDesc::init(), osg::VRMLGeometryPartDesc::init(), init(), osg::VRMLGeometryDesc::init(), osg::VRMLShapeDesc::init(), osg::VRMLPixelTextureDesc::prototypeAddField(), osg::VRMLImageTextureDesc::prototypeAddField(), osg::VRMLTextureTransformDesc::prototypeAddField(), osg::VRMLMaterialDesc::prototypeAddField(), osg::VRMLGeometryPartDesc::prototypeAddField(), prototypeAddField(), osg::VRMLGeometryDesc::prototypeAddField(), osg::VRMLShapeDesc::prototypeAddField(), osg::VRMLNodeDesc::prototypeAddField(), osg::VRMLFile::setContainerFieldValue(), and osg::VRMLFile::use().

00129 {
00130     return _uiIndent;
00131 }

void VRMLNodeDesc::incIndent ( void   )  [static, inherited]

void VRMLNodeDesc::decIndent ( void   )  [static, inherited]

void VRMLNodeDesc::resetIndent ( void   )  [static, inherited]

void VRMLNodeDesc::reset ( void   )  [virtual, inherited]

void VRMLNodeDesc::setOnEndSave ( const Char8 szName  )  [virtual, inherited]

Definition at line 209 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_bSaveOnEnd, and osg::VRMLNodeDesc::_szCurrentName.

Referenced by osg::VRMLFile::beginNode().

00210 {
00211     _szCurrentName = szName; // does that make a copy? I expect it to...
00212     _bSaveOnEnd = true;
00213 }

void VRMLNodeDesc::clearOnEndSave ( void   )  [virtual, inherited]

Definition at line 215 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_bSaveOnEnd.

Referenced by osg::VRMLFile::endNode().

00216 {
00217     _bSaveOnEnd = false;
00218 }

bool VRMLNodeDesc::getOnEndSave ( void   )  [virtual, inherited]

Definition at line 220 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_bSaveOnEnd.

Referenced by osg::VRMLFile::endNode().

00221 {
00222     return _bSaveOnEnd;
00223 }

const Char8 * VRMLNodeDesc::getSavename ( void   )  [virtual, inherited]

Definition at line 225 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_szCurrentName.

Referenced by osg::VRMLFile::endNode().

00226 {
00227     return _szCurrentName.c_str();
00228 }

FieldContainerPtr VRMLNodeDesc::getSaveFieldContainer ( void   )  [virtual, inherited]

Reimplemented in osg::VRMLAppearanceDesc.

Definition at line 230 of file OSGVRMLNodeDescs.cpp.

References osg::NullFC.

Referenced by osg::VRMLFile::endNode().

00231 {
00232     return NullFC;
00233 }

Field * VRMLNodeDesc::getField ( const Char8 szFieldname  )  [virtual, inherited]

Field * VRMLNodeDesc::getField ( FieldContainerPtr  pFC1,
FieldContainerPtr  pFC2,
GenericAttPtr  pGenAtt,
const Char8 szFieldname 
) [protected, inherited]

Definition at line 607 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::decIndent(), osg::VRMLNodeDesc::getIndent(), osg::VRMLNodeDesc::incIndent(), osg::indentLog(), osg::NullFC, and PINFO.

00611 {
00612     Field *returnValue = NULL;
00613 
00614     if(szFieldname == NULL)
00615     {
00616         return returnValue;
00617     }
00618 
00619 #ifdef OSG_DEBUG_VRML
00620     indentLog(getIndent(), PINFO);
00621     PINFO << "VRMLNodeDesc::getField " << std::endl;
00622 
00623     incIndent();
00624 
00625     indentLog(getIndent(), PINFO);
00626     PINFO << "Trying to find field : " << szFieldname << std::endl;
00627 #endif
00628 
00629     if(pFC1 != NullFC)
00630     {
00631         returnValue = pFC1->getField(szFieldname);
00632     }
00633 
00634 #ifdef OSG_DEBUG_VRML
00635     incIndent();
00636 
00637     indentLog(getIndent(), PINFO);
00638     PINFO << "Got this from node : " << returnValue << std::endl;
00639 #endif
00640 
00641     if(returnValue != NULL)
00642         return returnValue;
00643 
00644     if(pFC2 != NullFC)
00645     {
00646         returnValue = pFC2->getField(szFieldname);
00647 
00648 #ifdef OSG_DEBUG_VRML
00649         indentLog(getIndent(), PINFO);
00650         PINFO << "Got this from nodecore : " << returnValue << std::endl;
00651 #endif
00652     }
00653     else
00654     {
00655 #ifdef OSG_DEBUG_VRML
00656         indentLog(getIndent(), PINFO);
00657         PINFO << "No core to check" << std::endl;
00658 #endif
00659     }
00660 
00661 
00662     if(returnValue != NULL)
00663         return returnValue;
00664 
00665     if(pGenAtt != NullFC)
00666     {
00667         returnValue = pGenAtt->getField(szFieldname);
00668     }
00669 
00670 #ifdef OSG_DEBUG_VRML
00671     indentLog(getIndent(), PINFO);
00672     PINFO << "Got this from attachment : " << returnValue << std::endl;
00673 
00674     decIndent();
00675     decIndent();
00676 #endif
00677 
00678     return returnValue;
00679 }

void VRMLNodeDesc::prototypeAddFieldValue ( const Char8 szFieldVal  )  [virtual, inherited]

Definition at line 477 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_pCurrField, and osg::Field::pushValueByStr().

Referenced by osg::VRMLNodeFactory< BaseT >::addFieldValue().

00478 {
00479     if(_pCurrField       != NULL)
00480     {
00481         _pCurrField->pushValueByStr(szFieldVal);
00482     }
00483 }

void VRMLNodeDesc::endProtoInterface ( void   )  [virtual, inherited]

bool VRMLNodeDesc::use ( FieldContainerPtr   )  [virtual, inherited]

Reimplemented in osg::VRMLAppearanceDesc.

Definition at line 560 of file OSGVRMLNodeDescs.cpp.

Referenced by osg::VRMLFile::use().

00561 {
00562     return false;
00563 }


Member Data Documentation

Definition at line 608 of file OSGVRMLNodeDescs.h.

Referenced by getFieldAndDesc().

Definition at line 609 of file OSGVRMLNodeDescs.h.

Definition at line 611 of file OSGVRMLNodeDescs.h.

Definition at line 612 of file OSGVRMLNodeDescs.h.

UInt32 VRMLNodeDesc::_uiIndent = 0 [static, protected, inherited]

Definition at line 307 of file OSGVRMLNodeDescs.h.

Field* osg::VRMLNodeDesc::_pCurrField [protected, inherited]

std::string osg::VRMLNodeDesc::_szCurrentName [protected, inherited]

bool osg::VRMLNodeDesc::_bSaveOnEnd [protected, inherited]


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

Generated on Mon Mar 17 11:12:13 2008 for OpenSG by  doxygen 1.5.5