#include <OSGVRMLNodeDescs.h>
Inheritance diagram for osg::VRMLGeometryDesc:

Member | |
| Field * | getField (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 | |
| * | VRMLGeometryDesc (bool bIsFaceSet) |
Destructor | |
| *virtual | ~VRMLGeometryDesc (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 Char8 * | getSavename (void) |
| virtual FieldContainerPtr | getSaveFieldContainer (void) |
Field | |
| *virtual Field * | getField (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 | _bIsFaceSet |
| bool | _bInIndex |
| UInt32 | _uiNumVertices |
| GeoPTypesPtr | _pTypeField |
| GeoPLengthsPtr | _pLengthField |
Private Types | |
| typedef VRMLNodeDesc | Inherited |
Private Member Functions | |
| VRMLGeometryDesc (const VRMLGeometryDesc &source) | |
| prohibit default function (move to 'public' if needed) | |
| void | operator= (const VRMLGeometryDesc &source) |
| prohibit default function (move to 'public' if needed) | |
Definition at line 434 of file OSGVRMLNodeDescs.h.
|
|
Definition at line 519 of file OSGVRMLNodeDescs.h. |
|
|
Definition at line 298 of file OSGVRMLNodeDescs.h. |
|
|
Definition at line 985 of file OSGVRMLNodeDescs.cpp. 00985 : 00986 Inherited (), 00987 00988 _bIsFaceSet (bIsFaceSet), 00989 00990 _bInIndex (false), 00991 _uiNumVertices(0), 00992 00993 _pTypeField (NullFC ), 00994 _pLengthField (NullFC ) 00995 { 00996 }
|
|
|
Definition at line 1001 of file OSGVRMLNodeDescs.cpp.
|
|
|
|
|
|
Reimplemented from osg::VRMLNodeDesc. Definition at line 1008 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. 01009 { 01010 #ifdef OSG_DEBUG_VRML 01011 indentLog(getIndent(), PINFO); 01012 PINFO << "GeoDesc::init : " << szName << std::endl; 01013 #endif 01014 01015 _pNodeProto = Node::create(); 01016 _pNodeCoreProto = Geometry::create(); 01017 01018 _pGenAtt = GenericAtt::create(); 01019 _pGenAtt->setInternal(true); 01020 }
|
|
||||||||||||||||
|
Reimplemented from osg::VRMLNodeDesc. Definition at line 1025 of file OSGVRMLNodeDescs.cpp. References osg::VRMLNodeDesc::_pCurrField, osg::VRMLNodeDesc::getIndent(), osg::indentLog(), PINFO, osg::VRMLNodeDesc::prototypeAddField(), and osg::stringcasecmp(). 01028 { 01029 bool bFound = false; 01030 01031 _pCurrField = NULL; 01032 01033 if(szFieldname == NULL) 01034 return false; 01035 01036 if(stringcasecmp("coord", szFieldname) == 0) 01037 { 01038 bFound = true; 01039 } 01040 else if(stringcasecmp("normal", szFieldname) == 0) 01041 { 01042 bFound = true; 01043 } 01044 else if(stringcasecmp("color", szFieldname) == 0) 01045 { 01046 bFound = true; 01047 } 01048 else if(stringcasecmp("texCoord", szFieldname) == 0) 01049 { 01050 bFound = true; 01051 } 01052 01053 if(bFound == true) 01054 { 01055 #ifdef OSG_DEBUG_VRML 01056 indentLog(getIndent(), PINFO); 01057 PINFO << "GeoDesc::prototypeAddField : internal " 01058 << szFieldname << std::endl; 01059 #endif 01060 01061 return true; 01062 } 01063 else 01064 { 01065 return Inherited::prototypeAddField(szFieldType, 01066 uiFieldTypeId, 01067 szFieldname); 01068 } 01069 }
|
|
||||||||||||||||||||
|
Reimplemented from osg::VRMLNodeDesc. Definition at line 1072 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(). 01077 { 01078 #ifdef OSG_DEBUG_VRML 01079 indentLog(getIndent(), PINFO); 01080 PINFO << "GeoDesc::getFieldAndDesc : request " 01081 << szFieldname 01082 << std::endl; 01083 #endif 01084 01085 if(szFieldname == NULL) 01086 return; 01087 01088 if(pFC == NullFC) 01089 return; 01090 01091 NodePtr pNode = NodePtr::dcast(pFC); 01092 01093 if(pNode == NullFC) 01094 { 01095 PWARNING << "GeoDesc::getFieldAndDesc : No Node" << std::endl; 01096 return; 01097 } 01098 01099 NodeCorePtr pNodeCore = pNode->getCore(); 01100 01101 GeometryPtr pGeo = GeometryPtr::dcast(pNodeCore); 01102 01103 if(pGeo == NullFC) 01104 { 01105 PWARNING << "GeoDesc::getFieldAndDesc : No Geo" << std::endl; 01106 return; 01107 } 01108 01109 _bInIndex = false; 01110 01111 if(stringcasecmp("coord", szFieldname) == 0) 01112 { 01113 #ifdef OSG_DEBUG_VRML 01114 indentLog(getIndent(), PINFO); 01115 PINFO << "GeoDesc::getFieldAndDesc : internal " 01116 << szFieldname << std::endl; 01117 #endif 01118 pField = pGeo->getField("positions"); 01119 01120 if(pField != NULL) 01121 pDesc = pGeo->getType().findFieldDescription("positions"); 01122 } 01123 else if(stringcasecmp("normal", szFieldname) == 0) 01124 { 01125 #ifdef OSG_DEBUG_VRML 01126 indentLog(getIndent(), PINFO); 01127 PINFO << "GeoDesc::getFieldAndDesc : internal " 01128 << szFieldname << std::endl; 01129 #endif 01130 01131 pField = pGeo->getField("normals"); 01132 01133 if(pField != NULL) 01134 pDesc = pGeo->getType().findFieldDescription("normals"); 01135 } 01136 else if(stringcasecmp("color", szFieldname) == 0) 01137 { 01138 #ifdef OSG_DEBUG_VRML 01139 indentLog(getIndent(), PINFO); 01140 PINFO << "GeoDesc::getFieldAndDesc : internal " 01141 << szFieldname << std::endl; 01142 #endif 01143 01144 pField = pGeo->getField("colors"); 01145 01146 if(pField != NULL) 01147 pDesc = pGeo->getType().findFieldDescription("colors"); 01148 } 01149 else if(stringcasecmp("texCoord", szFieldname) == 0) 01150 { 01151 #ifdef OSG_DEBUG_VRML 01152 indentLog(getIndent(), PINFO); 01153 PINFO << "GeoDesc::getFieldAndDesc : internal " 01154 << szFieldname << std::endl; 01155 #endif 01156 01157 pField = pGeo->getField("texCoords"); 01158 01159 if(pField != NULL) 01160 pDesc = pGeo->getType().findFieldDescription("texCoords"); 01161 } 01162 else 01163 { 01164 VRMLNodeDesc::getFieldAndDesc(pGeo, 01165 szFieldname, 01166 pField, 01167 pDesc); 01168 } 01169 }
|
|
||||||||||||||||
|
Reimplemented from osg::VRMLNodeDesc. Definition at line 1174 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. 01178 { 01179 FieldContainerPtr pFC = NullFC; 01180 NodePtr pNode = NullFC; 01181 NodeCorePtr pNodeCore = NullFC; 01182 GenericAttPtr pAtt = NullFC; 01183 01184 if(_pNodeProto != NullFC) 01185 { 01186 FieldContainerPtr pAttClone = _pGenAtt->clone(); 01187 01188 pAtt = GenericAttPtr::dcast(pAttClone); 01189 01190 if(pAtt != NullFC) 01191 { 01192 pAtt->setInternal(true); 01193 } 01194 01195 pFC = _pNodeProto->shallowCopy(); 01196 01197 pNode = NodePtr::dcast(pFC); 01198 01199 pFC = _pNodeCoreProto->shallowCopy(); 01200 01201 pNodeCore = NodeCorePtr::dcast(pFC); 01202 01203 beginEditCP(pNode); 01204 { 01205 pNode ->setCore (pNodeCore); 01206 pNodeCore->addAttachment(pAtt); 01207 } 01208 endEditCP (pNode); 01209 } 01210 01211 #ifdef OSG_DEBUG_VRML 01212 indentLog(getIndent(), PINFO); 01213 PINFO << "Begin Geo " << &(*pNode) << std::endl; 01214 01215 incIndent(); 01216 #endif 01217 01218 return pNode; 01219 }
|
|
|
Reimplemented from osg::VRMLNodeDesc. Definition at line 1221 of file OSGVRMLNodeDescs.cpp. References _bIsFaceSet, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::calcVertexNormals(), osg::Node::CoreFieldMask, osg::GroupBase::create(), osg::createConvexPrimitives(), osg::createSharedIndex(), 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::NullFC, PINFO, PWARNING, osg::setIndexFromVRMLData(), and osg::MField< FieldTypeT, fieldNameSpace >::size(). 01222 { 01223 NodePtr pNode = NullFC; 01224 GeometryPtr pGeo = NullFC; 01225 01226 if(pFC == NullFC) 01227 { 01228 return; 01229 } 01230 01231 pNode = NodePtr::dcast(pFC); 01232 01233 if(pNode == NullFC) 01234 { 01235 return; 01236 } 01237 01238 pGeo = GeometryPtr::dcast(pNode->getCore()); 01239 01240 if(pGeo == NullFC) 01241 { 01242 return; 01243 } 01244 01245 Field *pField = NULL; 01246 const FieldDescription *pDesc = NULL; 01247 01248 MFInt32 *pCoordIndex = NULL; 01249 MFInt32 *pNormalIndex = NULL; 01250 MFInt32 *pColorIndex = NULL; 01251 MFInt32 *pTexCoordIndex = NULL; 01252 SFBool *pConvex = NULL; 01253 SFBool *pCcw = NULL; 01254 SFBool *pNormalPerVertex = NULL; 01255 SFBool *pColorPerVertex = NULL; 01256 SFReal32 *pCreaseAngle = NULL; 01257 01258 Inherited::getFieldAndDesc(pFC, 01259 "coordIndex", 01260 pField, 01261 pDesc); 01262 01263 if(pField != NULL) 01264 { 01265 pCoordIndex = static_cast<MFInt32 *>(pField); 01266 } 01267 01268 Inherited::getFieldAndDesc(pFC, 01269 "normalIndex", 01270 pField, 01271 pDesc); 01272 01273 if(pField != NULL) 01274 { 01275 pNormalIndex = static_cast<MFInt32 *>(pField); 01276 } 01277 01278 Inherited::getFieldAndDesc(pFC, 01279 "colorIndex", 01280 pField, 01281 pDesc); 01282 01283 if(pField != NULL) 01284 { 01285 pColorIndex = static_cast<MFInt32 *>(pField); 01286 } 01287 01288 Inherited::getFieldAndDesc(pFC, 01289 "texCoordIndex", 01290 pField, 01291 pDesc); 01292 01293 if(pField != NULL) 01294 { 01295 pTexCoordIndex = static_cast<MFInt32 *>(pField); 01296 } 01297 01298 01299 01300 Inherited::getFieldAndDesc(pFC, 01301 "convex", 01302 pField, 01303 pDesc); 01304 01305 if(pField != NULL) 01306 { 01307 pConvex = static_cast<SFBool *>(pField); 01308 } 01309 01310 Inherited::getFieldAndDesc(pFC, 01311 "ccw", 01312 pField, 01313 pDesc); 01314 01315 if(pField != NULL) 01316 { 01317 pCcw = static_cast<SFBool *>(pField); 01318 } 01319 01320 Inherited::getFieldAndDesc(pFC, 01321 "normalPerVertex", 01322 pField, 01323 pDesc); 01324 01325 if(pField != NULL) 01326 { 01327 pNormalPerVertex = static_cast<SFBool *>(pField); 01328 } 01329 01330 Inherited::getFieldAndDesc(pFC, 01331 "colorPerVertex", 01332 pField, 01333 pDesc); 01334 01335 if(pField != NULL) 01336 { 01337 pColorPerVertex = static_cast<SFBool *>(pField); 01338 } 01339 01340 Inherited::getFieldAndDesc(pFC, 01341 "creaseAngle", 01342 pField, 01343 pDesc); 01344 01345 if(pField != NULL) 01346 { 01347 pCreaseAngle = static_cast<SFReal32 *>(pField); 01348 } 01349 01350 if(_bIsFaceSet == true) 01351 { 01352 if(pCoordIndex != NULL && 01353 pCoordIndex->size() > 2 && 01354 pNormalIndex != NULL && 01355 pColorIndex != NULL && 01356 pTexCoordIndex != NULL && 01357 pConvex != NULL && 01358 pCcw != NULL && 01359 pNormalPerVertex != NULL && 01360 pColorPerVertex != NULL && 01361 pCreaseAngle != NULL) 01362 { 01363 beginEditCP(pGeo); 01364 #ifdef OSG_DEBUG_VRML 01365 indentLog(getIndent(), PINFO); 01366 PINFO << "Geo create faceset " << &(*pNode) << std::endl; 01367 #endif 01368 01369 setIndexFromVRMLData(pGeo, 01370 pCoordIndex ->getValues(), 01371 pNormalIndex ->getValues(), 01372 pColorIndex ->getValues(), 01373 pTexCoordIndex ->getValues(), 01374 pConvex ->getValue() , 01375 pCcw ->getValue() , 01376 pNormalPerVertex->getValue() , 01377 pColorPerVertex ->getValue() , 01378 false, // create normal; not yet :) 01379 true); 01380 01381 if (pConvex->getValue() == false) 01382 createConvexPrimitives( pGeo ); 01383 01384 // TODO: Need some option _uiOptions param 01385 createSharedIndex( pGeo); 01386 01387 //if((0 != (_uiOptions & VRMLFile::CreateNormals) ) && 01388 // (pGeo->getNormals() == NullFC)) 01389 01390 if(pGeo->getNormals() == NullFC) 01391 { 01392 #ifdef OSG_DEBUG_VRML 01393 indentLog(getIndent(), PINFO); 01394 PINFO << "Geo create normals " << &(*pNode) << std::endl; 01395 #endif 01396 01397 OSG::calcVertexNormals(pGeo, pCreaseAngle->getValue()); 01398 } 01399 } 01400 else 01401 { 01402 #if 0 // What's the point of doing that? 01403 PWARNING << "Invalid geometry replaced by a group" << std::endl; 01404 01405 GroupPtr pGr = Group::create(); 01406 01407 MFNodePtr pGeoParents = pGeo->getParents (); 01408 MFNodePtr::iterator parentsIt = pGeoParents.begin(); 01409 MFNodePtr::iterator endParents = pGeoParents.end (); 01410 01411 // this makes pGeo invalid! 01412 while(parentsIt != endParents) 01413 { 01414 beginEditCP(*parentsIt, Node::CoreFieldMask); 01415 (*parentsIt)->setCore(pGr); 01416 endEditCP(*parentsIt, Node::CoreFieldMask); 01417 01418 ++parentsIt; 01419 } 01420 pGeo = NullFC; 01421 #endif 01422 } 01423 } 01424 else 01425 { 01426 std::vector<Int32> dummyVec; 01427 bool dummybool = false; 01428 01429 if(pCoordIndex != NULL && 01430 pCoordIndex->size() > 1 && 01431 pColorIndex != NULL && 01432 pColorPerVertex != NULL) 01433 { 01434 beginEditCP(pGeo); 01435 #ifdef OSG_DEBUG_VRML 01436 indentLog(getIndent(), PINFO); 01437 PINFO << "Geo create lineset " << &(*pNode) << std::endl; 01438 #endif 01439 01440 setIndexFromVRMLData(pGeo, 01441 pCoordIndex ->getValues(), 01442 dummyVec , 01443 pColorIndex ->getValues(), 01444 dummyVec , 01445 dummybool, 01446 dummybool, 01447 dummybool, 01448 pColorPerVertex->getValue() , 01449 false, // create normal; not yet :) 01450 false); 01451 } 01452 else 01453 { 01454 #if 0 // What's the point of doing that? 01455 PWARNING << "Invalid geometry replaced by a group" << std::endl; 01456 01457 GroupPtr pGr = Group::create(); 01458 01459 MFNodePtr pGeoParents = pGeo->getParents (); 01460 MFNodePtr::iterator parentsIt = pGeoParents.begin(); 01461 MFNodePtr::iterator endParents = pGeoParents.end (); 01462 01463 // this makes pGeo invalid! 01464 while(parentsIt != endParents) 01465 { 01466 beginEditCP(*parentsIt, Node::CoreFieldMask); 01467 (*parentsIt)->setCore(pGr); 01468 endEditCP(*parentsIt, Node::CoreFieldMask); 01469 01470 ++parentsIt; 01471 } 01472 pGeo = NullFC; 01473 #endif 01474 } 01475 } 01476 01477 // on invalid geometries pGeo is set to NullFC! 01478 if(pGeo != NullFC) 01479 endEditCP(pGeo); 01480 01481 #ifdef OSG_DEBUG_VRML 01482 decIndent(); 01483 01484 indentLog(getIndent(), PINFO); 01485 PINFO << "End Geo " << &(*pNode) << std::endl; 01486 #endif 01487 }
|
|
||||||||||||
|
Reimplemented from osg::VRMLNodeDesc. Definition at line 1489 of file OSGVRMLNodeDescs.cpp. References osg::Field::pushValueByStr(). 01491 { 01492 if(pField != NULL) 01493 { 01494 pField->pushValueByStr(szFieldVal); 01495 } 01496 }
|
|
|
Reimplemented from osg::VRMLNodeDesc. Definition at line 1501 of file OSGVRMLNodeDescs.cpp.
|
|
|
|
|
|
|
|
|
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 }
|
|
|
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().
|
|
|
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 }
|
|
|
Definition at line 215 of file OSGVRMLNodeDescs.cpp. References osg::VRMLNodeDesc::_bSaveOnEnd. Referenced by osg::VRMLFile::endNode(). 00216 { 00217 _bSaveOnEnd = false; 00218 }
|
|
|
Definition at line 220 of file OSGVRMLNodeDescs.cpp. References osg::VRMLNodeDesc::_bSaveOnEnd. Referenced by osg::VRMLFile::endNode(). 00221 { 00222 return _bSaveOnEnd; 00223 }
|
|
|
Definition at line 225 of file OSGVRMLNodeDescs.cpp. References osg::VRMLNodeDesc::_szCurrentName. Referenced by osg::VRMLFile::endNode(). 00226 { 00227 return _szCurrentName.c_str(); 00228 }
|
|
|
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 }
|
|
|
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 }
|
|
||||||||||||||||||||
|
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 }
|
|
|
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 }
|
|