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

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

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

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

typedef VRMLNodeDesc osg::VRMLGeometryPointSetDesc::Inherited [private]
 

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 1519 of file OSGVRMLNodeDescs.cpp.

01519                                                        :
01520     Inherited     (),
01521 
01522     _bInIndex     (false),
01523     _uiNumVertices(0),
01524 
01525     _pTypeField   (NullFC    ),
01526     _pLengthField (NullFC    )
01527 {
01528 }

VRMLGeometryPointSetDesc::~VRMLGeometryPointSetDesc void   )  [virtual]
 

Definition at line 1533 of file OSGVRMLNodeDescs.cpp.

01534 {
01535 }

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


Member Function Documentation

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

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1540 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.

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

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

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1557 of file OSGVRMLNodeDescs.cpp.

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

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

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

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1596 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().

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

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

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1672 of file OSGVRMLNodeDescs.cpp.

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

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

void VRMLGeometryPointSetDesc::endNode FieldContainerPtr  pFC  )  [virtual]
 

Reimplemented from osg::VRMLNodeDesc.

Definition at line 1719 of file OSGVRMLNodeDescs.cpp.

References osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::calcVertexNormals(), osg::GroupBase::create(), osg::GeoProperty< GeoPropertyDesc >::create(), 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.

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

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

Reimplemented from osg::VRMLNodeDesc.

Definition at line 2011 of file OSGVRMLNodeDescs.cpp.

References osg::Field::pushValueByStr().

02013 {
02014     if(pField != NULL)
02015     {
02016         pField->pushValueByStr(szFieldVal);
02017     }
02018 }

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

Reimplemented from osg::VRMLNodeDesc.

Definition at line 2023 of file OSGVRMLNodeDescs.cpp.

02024 {
02025 }

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::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::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::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]
 

Definition at line 133 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_uiIndent.

Referenced by 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::VRMLNodeDesc::getField(), osg::VRMLInlineDesc::getFieldAndDesc(), osg::VRMLExtrusionDesc::getFieldAndDesc(), osg::VRMLGroupDesc::getFieldAndDesc(), osg::VRMLSwitchDesc::getFieldAndDesc(), osg::VRMLLODDesc::getFieldAndDesc(), osg::VRMLAppearanceDesc::getFieldAndDesc(), osg::VRMLGeometryObjectDesc::getFieldAndDesc(), osg::VRMLGeometryPartDesc::getFieldAndDesc(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::VRMLNodeDesc::getFieldAndDesc(), osg::VRMLShapeDesc::prototypeAddField(), and osg::VRMLFile::use().

00134 {
00135     _uiIndent += 4;
00136 }

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

Definition at line 138 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_uiIndent, and PWARNING.

Referenced by osg::VRMLFile::endField(), osg::VRMLViewpointDesc::endNode(), osg::VRMLInlineDesc::endNode(), osg::VRMLGroupDesc::endNode(), osg::VRMLSwitchDesc::endNode(), osg::VRMLLODDesc::endNode(), osg::VRMLPixelTextureDesc::endNode(), osg::VRMLImageTextureDesc::endNode(), osg::VRMLTextureTransformDesc::endNode(), osg::VRMLAppearanceDesc::endNode(), endNode(), osg::VRMLGeometryDesc::endNode(), osg::VRMLShapeDesc::endNode(), osg::VRMLFile::endNode(), osg::VRMLNodeDesc::getField(), osg::VRMLInlineDesc::getFieldAndDesc(), osg::VRMLExtrusionDesc::getFieldAndDesc(), osg::VRMLGroupDesc::getFieldAndDesc(), osg::VRMLSwitchDesc::getFieldAndDesc(), osg::VRMLLODDesc::getFieldAndDesc(), osg::VRMLAppearanceDesc::getFieldAndDesc(), osg::VRMLGeometryObjectDesc::getFieldAndDesc(), osg::VRMLGeometryPartDesc::getFieldAndDesc(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::VRMLNodeDesc::getFieldAndDesc(), osg::VRMLShapeDesc::prototypeAddField(), and osg::VRMLFile::use().

00139 {
00140     if(_uiIndent < 4)
00141     {
00142         PWARNING << "Indent smaller 4 decremented" << std::endl;
00143 
00144         _uiIndent = 4;
00145     }
00146 
00147     _uiIndent -= 4;
00148 }

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

Definition at line 150 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_uiIndent.

Referenced by osg::VRMLFile::createStandardPrototypes(), osg::VRMLFile::scanFile(), osg::VRMLFile::scanStandardPrototypes(), and osg::VRMLFile::scanStream().

00151 {
00152     _uiIndent = 0;
00153 }

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

Reimplemented in osg::VRMLMaterialDesc, osg::VRMLTextureTransformDesc, osg::VRMLImageTextureDesc, osg::VRMLPixelTextureDesc, and osg::VRMLViewpointDesc.

Definition at line 205 of file OSGVRMLNodeDescs.cpp.

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

00206 {
00207 }

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]
 

Definition at line 238 of file OSGVRMLNodeDescs.cpp.

References osg::VRMLNodeDesc::_pGenAtt, osg::VRMLNodeDesc::_pNodeCoreProto, and osg::VRMLNodeDesc::_pNodeProto.

Referenced by osg::VRMLNodeDesc::prototypeAddField().

00239 {
00240     return getField(_pNodeProto, _pNodeCoreProto, _pGenAtt, szFieldname);
00241 }

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

Definition at line 604 of file OSGVRMLNodeDescs.cpp.

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

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

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

Definition at line 474 of file OSGVRMLNodeDescs.cpp.

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

00475 {
00476     if(_pCurrField       != NULL)
00477     {
00478         _pCurrField->pushValueByStr(szFieldVal);
00479     }
00480 }

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

Reimplemented in osg::VRMLMaterialDesc, osg::VRMLTextureTransformDesc, osg::VRMLImageTextureDesc, osg::VRMLPixelTextureDesc, osg::VRMLLODDesc, osg::VRMLSwitchDesc, osg::VRMLGroupDesc, osg::VRMLExtrusionDesc, osg::VRMLInlineDesc, and osg::VRMLViewpointDesc.

Definition at line 482 of file OSGVRMLNodeDescs.cpp.

00483 {
00484 }