#include <OSGVRMLFile.h>
Inheritance diagram for osg::VRMLFile:

Member | |
| void | initIntExtFieldTypeMapper (void) |
| void | initExtIntFieldTypeMapper (void) |
| FieldContainerPtr | findFCByName (const Char8 *szName, NodePtr pNode) |
| void | setContainerFieldValue (const FieldContainerPtr &pFC) |
| FieldContainerPtr | findReference (const Char8 *szName) |
| *NodePtr | _pSceneRootNode |
| NodePtr | _pLightRoot |
| NodePtr | _pCurrentGlobalLight |
| VRMLNodeDesc * | _pCurrNodeDesc |
| std::stack< VRMLNodeDesc * > | _sNodeDescs |
| FieldContainerPtr | _pCurrentFC |
| Field * | _pCurrentField |
| const FieldDescription * | _pCurrentFieldDesc |
| std::stack< FieldContainerPtr > | _fcStack |
| std::stack< Field * > | _fStack |
| std::stack< const FieldDescription * > | _fdStack |
| NameContainerMap | _nameFCMap |
| NameDescriptionMap | _nameDescMap |
Public Types | |
| enum | { CreateNormals = Inherited::LastOption << 1, StripeGeometry = CreateNormals << 1, LogProtoGeneration = StripeGeometry << 1, LogObjectGeneration = LogProtoGeneration << 1, LastOption = LogObjectGeneration } |
Public Member Functions | |
Constructors | |
| * | VRMLFile (void) |
Destructor | |
| *virtual | ~VRMLFile (void) |
Skel replacements | |
| *virtual void | scanStream (std::istream &is) |
| virtual void | scanFile (const Char8 *szFilename) |
| virtual void | beginFieldDecl (const Char8 *szFieldType, const UInt32 uiFieldTypeId, const Char8 *szFieldName) |
| virtual void | beginNode (const Char8 *szNodeTypename, const Char8 *szNodename) |
| virtual void | endNode (void) |
| virtual void | beginScript (const Char8 *szNodename) |
| virtual void | endScript (void) |
| virtual void | beginField (const Char8 *szFieldname, const UInt32 uiFieldTypeId) |
| virtual void | endField (void) |
| virtual void | addFieldValue (const Char8 *szFieldVal) |
| virtual UInt32 | getFieldType (const Char8 *szFieldname) |
| virtual void | use (const Char8 *szName) |
Helper | |
| *void | scanStandardPrototypes (const Char8 *szFilename) |
| void | createStandardPrototypes (void) |
| NodePtr | getRoot (void) |
Protected Types | |
| typedef Parent | Inherited |
| typedef VRMLFile | Self |
| typedef std::map< IDString, FieldContainerPtr > | NameContainerMap |
| typedef std::map< IDString, VRMLNodeDesc * > | NameDescriptionMap |
Private Member Functions | |
| VRMLFile (const VRMLFile &source) | |
| prohibit default function (move to 'public' if needed) | |
| void | operator= (const VRMLFile &source) |
| prohibit default function (move to 'public' if needed) | |
Definition at line 91 of file OSGVRMLFile.h.
|
|
Definition at line 96 of file OSGVRMLFile.h. |
|
|
Definition at line 97 of file OSGVRMLFile.h. |
|
|
Definition at line 178 of file OSGVRMLFile.h. |
|
|
Definition at line 179 of file OSGVRMLFile.h. |
|
|
Definition at line 102 of file OSGVRMLFile.h. 00103 { 00104 CreateNormals = Inherited::LastOption << 1, 00105 StripeGeometry = CreateNormals << 1, 00106 LogProtoGeneration = StripeGeometry << 1, 00107 LogObjectGeneration = LogProtoGeneration << 1, 00108 00109 LastOption = LogObjectGeneration 00110 };
|
|
|
Definition at line 101 of file OSGVRMLFile.cpp. References initExtIntFieldTypeMapper(), and initIntExtFieldTypeMapper(). 00101 : 00102 Inherited(), 00103 00104 // _pRootNode (NullFC), 00105 _pSceneRootNode (NullFC), 00106 00107 _pLightRoot (NullFC), 00108 _pCurrentGlobalLight(NullFC), 00109 00110 _pCurrNodeDesc(NULL), 00111 _sNodeDescs (), 00112 00113 _pCurrentFC (NullFC), 00114 _pCurrentField (NULL), 00115 _pCurrentFieldDesc(NULL), 00116 00117 _fcStack (), 00118 _fStack (), 00119 _fdStack (), 00120 00121 _nameFCMap (), 00122 _nameDescMap() 00123 { 00124 Self::setReferenceHeader("#VRML V2.0 "); 00125 00126 initIntExtFieldTypeMapper(); 00127 initExtIntFieldTypeMapper(); 00128 }
|
|
|
Definition at line 133 of file OSGVRMLFile.cpp.
|
|
|
|
|
|
Definition at line 140 of file OSGVRMLFile.cpp. References _nameFCMap, _pCurrentGlobalLight, _pLightRoot, _pSceneRootNode, FINFO, osg::getSystemTime(), osg::NullFC, osg::VRMLNodeDesc::resetIndent(), startTime, and useTime. Referenced by osg::VRMLInlineDesc::endNode(), and osg::VRMLSceneFileType::read(). 00141 { 00142 startTime = getSystemTime(); 00143 00144 // _pRootNode = NullFC; 00145 _pSceneRootNode = NullFC; 00146 _pLightRoot = NullFC; 00147 _pCurrentGlobalLight = NullFC; 00148 00149 _nameFCMap.clear(); 00150 00151 #ifdef OSG_DEBUG_VRML 00152 VRMLNodeDesc::resetIndent(); 00153 #endif 00154 00155 if(is) 00156 { 00157 Inherited::scanStream(is); 00158 } 00159 00160 FINFO(("Full Time : %lf | Use Time %lf\n", 00161 getSystemTime() - startTime, 00162 useTime)); 00163 }
|
|
|
Definition at line 165 of file OSGVRMLFile.cpp. References _nameFCMap, _pCurrentGlobalLight, _pLightRoot, _pSceneRootNode, FINFO, osg::getSystemTime(), osg::NullFC, osg::VRMLNodeDesc::resetIndent(), startTime, and useTime. Referenced by scanStandardPrototypes(). 00166 { 00167 startTime = getSystemTime(); 00168 00169 // _pRootNode = NullFC; 00170 _pSceneRootNode = NullFC; 00171 _pLightRoot = NullFC; 00172 _pCurrentGlobalLight = NullFC; 00173 00174 _nameFCMap.clear(); 00175 00176 #ifdef OSG_DEBUG_VRML 00177 VRMLNodeDesc::resetIndent(); 00178 #endif 00179 00180 if(szFilename != NULL) 00181 { 00182 Inherited::scanFile(szFilename); 00183 } 00184 00185 FINFO(("Full Time : %lf | Use Time %lf\n", 00186 getSystemTime() - startTime, 00187 useTime)); 00188 }
|
|
||||||||||||||||
|
Definition at line 600 of file OSGVRMLFile.cpp. References _pCurrentFC, _pCurrentField, _pCurrentFieldDesc, _pCurrNodeDesc, and osg::VRMLNodeDesc::getFieldAndDesc(). Referenced by createStandardPrototypes(). 00603 { 00604 Inherited::beginFieldDecl(szFieldType, uiFieldTypeId, szFieldName); 00605 00606 00607 if(_pCurrNodeDesc == 0) 00608 return; 00609 00610 if(szFieldName == NULL) 00611 return; 00612 00613 _pCurrentField = NULL; 00614 _pCurrentFieldDesc = NULL; 00615 00616 _pCurrNodeDesc->getFieldAndDesc(_pCurrentFC, 00617 szFieldName, 00618 _pCurrentField, 00619 _pCurrentFieldDesc); 00620 }
|
|
||||||||||||
|
Definition at line 190 of file OSGVRMLFile.cpp. References _fcStack, _nameDescMap, _nameFCMap, _pCurrentFC, _pCurrNodeDesc, _pSceneRootNode, _sNodeDescs, osg::AttachmentContainer::AttachmentsFieldMask, osg::beginEditCP(), osg::VRMLNodeDesc::beginNode(), osg::Node::ChildrenFieldMask, osg::Node::CoreFieldMask, osg::Node::create(), osg::GroupBase::create(), osg::SimpleAttachment< NameAttachmentDesc >::create(), osg::AttachmentContainerPtr::dcast(), osg::NodePtr::dcast(), osg::endEditCP(), osg::VRMLNodeDesc::getIndent(), osg::VRMLNodeDesc::incIndent(), osg::indentLog(), osg::NullFC, PINFO, osg::VRMLNodeDesc::reset(), setContainerFieldValue(), and osg::VRMLNodeDesc::setOnEndSave(). Referenced by beginScript(). 00192 { 00193 FieldContainerPtr pNewNode; 00194 00195 _pCurrNodeDesc = findNodeDesc(szNodeTypename); 00196 00197 if(_pCurrNodeDesc == NULL) 00198 return; 00199 00200 _sNodeDescs.push(_pCurrNodeDesc); 00201 00202 _pCurrNodeDesc->reset(); 00203 00204 pNewNode = _pCurrNodeDesc->beginNode(szNodeTypename, 00205 szNodename, 00206 _pCurrentFC); 00207 00208 #ifdef OSG_DEBUG_VRML 00209 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00210 PINFO << "Begin Node " << szNodeTypename << std::endl; 00211 00212 VRMLNodeDesc::incIndent(); 00213 #endif 00214 00215 if(szNodename != NULL) 00216 { 00217 if(pNewNode != NullFC) 00218 { 00219 if(pNewNode->getType().isNode() == true) 00220 { 00221 #ifdef OSG_DEBUG_VRML 00222 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00223 PINFO << "Node named : " << szNodename << std::endl; 00224 #endif 00225 00226 NodePtr pNode = NodePtr::dcast(pNewNode); 00227 NamePtr pNodename = Name::create(); 00228 00229 beginEditCP(pNodename); 00230 beginEditCP(pNode,Node::AttachmentsFieldMask); 00231 00232 pNodename->getFieldPtr()->getValue().assign(szNodename); 00233 pNode->addAttachment(pNodename); 00234 00235 endEditCP(pNode,Node::AttachmentsFieldMask); 00236 endEditCP(pNodename); 00237 00238 NameContainerMap::iterator mIt = 00239 _nameFCMap.find(IDStringLink(szNodename)); 00240 00241 if(mIt == _nameFCMap.end()) 00242 { 00243 _nameFCMap[IDString(szNodename)] = pNewNode; 00244 00245 #ifdef OSG_DEBUG_VRML 00246 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00247 PINFO << "Fieldcontainer " << szNodename 00248 << " added to map " << std::endl; 00249 #endif 00250 } 00251 } 00252 else if(pNewNode->getType().isNodeCore() == true) 00253 { 00254 #ifdef OSG_DEBUG_VRML 00255 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00256 PINFO << "Nodecore named : " << szNodename << std::endl; 00257 #endif 00258 NodeCorePtr pNodeCore = NodeCorePtr::dcast(pNewNode); 00259 NamePtr pNodename = Name::create(); 00260 00261 beginEditCP(pNodename); 00262 beginEditCP(pNodeCore,NodeCore::AttachmentsFieldMask); 00263 00264 pNodename->getFieldPtr()->getValue().assign(szNodename); 00265 pNodeCore->addAttachment(pNodename); 00266 00267 endEditCP(pNodeCore,NodeCore::AttachmentsFieldMask); 00268 endEditCP(pNodename); 00269 00270 NameContainerMap::iterator mIt = 00271 _nameFCMap.find(IDStringLink(szNodename)); 00272 00273 if(mIt == _nameFCMap.end()) 00274 { 00275 _nameFCMap[IDString(szNodename)] = pNewNode; 00276 00277 #ifdef OSG_DEBUG_VRML 00278 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00279 PINFO << "Fieldcontainer " << szNodename 00280 << " added to map " << std::endl; 00281 #endif 00282 } 00283 } 00284 else 00285 { 00286 #ifdef OSG_DEBUG_VRML 00287 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00288 PINFO << "Fieldcontainer " << szNodeTypename 00289 << " is neither node nor nodecore " << std::endl; 00290 #endif 00291 00292 NameContainerMap::iterator mIt = 00293 _nameFCMap.find(IDStringLink(szNodename)); 00294 00295 if(mIt == _nameFCMap.end()) 00296 { 00297 _nameFCMap[IDString(szNodename)] = pNewNode; 00298 00299 #ifdef OSG_DEBUG_VRML 00300 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00301 PINFO << "Fieldcontainer " << szNodename 00302 << " added to map " << std::endl; 00303 #endif 00304 } 00305 00306 } 00307 00308 _nameDescMap[IDString(szNodename)] = _pCurrNodeDesc; 00309 00310 #ifdef OSG_DEBUG_VRML 00311 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00312 PINFO << "Desc for " 00313 << szNodename 00314 << " added to map " 00315 << std::endl; 00316 #endif 00317 } 00318 else 00319 { 00320 #ifdef OSG_DEBUG_VRML 00321 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00322 PINFO << "Fieldcontainer " 00323 << szNodeTypename 00324 << "is empty, save on end " 00325 << std::endl; 00326 #endif 00327 00328 if(_pCurrNodeDesc != NULL) 00329 _pCurrNodeDesc->setOnEndSave(szNodename); 00330 00331 _nameDescMap[IDString(szNodename)] = _pCurrNodeDesc; 00332 00333 #ifdef OSG_DEBUG_VRML 00334 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00335 PINFO << "Desc for " 00336 << szNodename 00337 << " added to map " 00338 << std::endl; 00339 #endif 00340 } 00341 } 00342 00343 setContainerFieldValue(pNewNode); 00344 00345 _pCurrentFC = pNewNode; 00346 00347 _fcStack.push(_pCurrentFC); 00348 00349 if(_fcStack.size() == 1) 00350 { 00351 NodePtr pNode = NodePtr::dcast(_pCurrentFC); 00352 00353 if(_pSceneRootNode == NullFC) 00354 { 00355 GroupPtr pGroup = Group::create(); 00356 00357 _pSceneRootNode = Node::create(); 00358 00359 beginEditCP(_pSceneRootNode, Node::CoreFieldMask); 00360 { 00361 _pSceneRootNode->setCore(pGroup); 00362 } 00363 endEditCP (_pSceneRootNode, Node::CoreFieldMask); 00364 } 00365 00366 beginEditCP(_pSceneRootNode, Node::ChildrenFieldMask); 00367 { 00368 _pSceneRootNode->addChild(pNode); 00369 } 00370 endEditCP (_pSceneRootNode, Node::ChildrenFieldMask); 00371 } 00372 }
|
|
|
Definition at line 374 of file OSGVRMLFile.cpp. References _fcStack, _nameFCMap, _pCurrentFC, _pCurrNodeDesc, _sNodeDescs, osg::beginEditCP(), osg::VRMLNodeDesc::clearOnEndSave(), osg::GroupBase::create(), osg::NodePtr::dcast(), osg::VRMLNodeDesc::decIndent(), osg::VRMLNodeDesc::endNode(), osg::NodePtr::getCore(), osg::VRMLNodeDesc::getIndent(), osg::VRMLNodeDesc::getOnEndSave(), osg::VRMLNodeDesc::getSaveFieldContainer(), osg::VRMLNodeDesc::getSavename(), osg::indentLog(), osg::NullFC, PINFO, and SLOG. Referenced by endScript(). 00375 { 00376 if(_pCurrNodeDesc == NULL) 00377 { 00378 #ifdef OSG_DEBUG_VRML 00379 VRMLNodeDesc::decIndent(); 00380 00381 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00382 PINFO << "End Node " << std::endl; 00383 #endif 00384 return; 00385 } 00386 00387 _pCurrNodeDesc->endNode(_pCurrentFC); 00388 00389 if(_pCurrNodeDesc->getOnEndSave() == true) 00390 { 00391 SLOG << "Fieldcontainer " << _pCurrNodeDesc->getSavename() 00392 << " on end Save " << std::endl; 00393 00394 NameContainerMap::iterator mIt = 00395 _nameFCMap.find(IDStringLink(_pCurrNodeDesc->getSavename())); 00396 00397 if(mIt == _nameFCMap.end()) 00398 { 00399 _nameFCMap[IDString(_pCurrNodeDesc->getSavename())] = 00400 _pCurrNodeDesc->getSaveFieldContainer(); 00401 00402 SLOG << "Fieldcontainer " << _pCurrNodeDesc->getSavename() 00403 << " added to map " << std::endl; 00404 } 00405 00406 _pCurrNodeDesc->clearOnEndSave(); 00407 } 00408 00409 _sNodeDescs.pop(); 00410 00411 if(_sNodeDescs.size() != 0) 00412 { 00413 _pCurrNodeDesc = _sNodeDescs.top(); 00414 } 00415 else 00416 { 00417 _pCurrNodeDesc = NULL; 00418 } 00419 00420 if(_pCurrentFC != NullFC) 00421 { 00422 if(_pCurrentFC->getType().isNode() == true) 00423 { 00424 NodePtr pNode = NodePtr::dcast(_pCurrentFC); 00425 00426 if(pNode->getCore() == NullFC) 00427 { 00428 GroupPtr pGroup = Group::create(); 00429 00430 beginEditCP(pNode); 00431 pNode->setCore(pGroup); 00432 beginEditCP(pNode); 00433 } 00434 } 00435 } 00436 00437 _fcStack.pop(); 00438 00439 if(_fcStack.size() != 0) 00440 { 00441 _pCurrentFC = _fcStack.top(); 00442 } 00443 else 00444 { 00445 _pCurrentFC = NullFC; 00446 } 00447 00448 #ifdef OSG_DEBUG_VRML 00449 VRMLNodeDesc::decIndent(); 00450 00451 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00452 PINFO << "End Node " << std::endl; 00453 #endif 00454 }
|
|
|
Definition at line 456 of file OSGVRMLFile.cpp. References beginNode(). 00457 { 00458 beginNode("Script", szNodename); 00459 }
|
|
|
Definition at line 461 of file OSGVRMLFile.cpp. References endNode(). 00462 { 00463 endNode(); 00464 }
|
|
||||||||||||
|
|
|
|
|
Definition at line 590 of file OSGVRMLFile.cpp. References _pCurrentField, _pCurrNodeDesc, and osg::VRMLNodeDesc::addFieldValue(). Referenced by createStandardPrototypes(). 00591 { 00592 Inherited::addFieldValue(szFieldVal); 00593 00594 if(_pCurrNodeDesc != NULL) 00595 { 00596 _pCurrNodeDesc->addFieldValue(_pCurrentField, szFieldVal); 00597 } 00598 }
|
|
|
Definition at line 623 of file OSGVRMLFile.cpp. References _pCurrentFC, _pCurrentField, _pCurrentFieldDesc, _pCurrNodeDesc, osg::VRMLNodeDesc::getFieldAndDesc(), osg::TypeBase::getId(), osg::VRMLNodeDesc::getIndent(), osg::TypeBase::getName(), osg::Field::getType(), osg::indentLog(), and PINFO. 00624 { 00625 UInt32 returnValue = 0; 00626 00627 if(_pCurrNodeDesc == 0) 00628 return returnValue; 00629 00630 if(szFieldname == NULL) 00631 return returnValue; 00632 00633 _pCurrentField = NULL; 00634 _pCurrentFieldDesc = NULL; 00635 00636 _pCurrNodeDesc->getFieldAndDesc(_pCurrentFC, 00637 szFieldname, 00638 _pCurrentField, 00639 _pCurrentFieldDesc); 00640 00641 if(_pCurrentField != NULL) 00642 returnValue = _pCurrentField->getType().getId(); 00643 00644 #ifdef OSG_DEBUG_VRML 00645 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00646 PINFO << "VRMLFile::getFieldType : Got Field and type " 00647 << returnValue << " " 00648 << _pCurrentField << " " 00649 << _pCurrentFieldDesc << " "; 00650 00651 if(_pCurrentField != NULL) 00652 PINFO << _pCurrentField->getType().getName() << std::endl; 00653 else 00654 PINFO << std::endl; 00655 #endif 00656 00657 return returnValue; 00658 }
|
|
|
Definition at line 660 of file OSGVRMLFile.cpp. References _nameDescMap, osg::cloneTree(), osg::NodePtr::dcast(), osg::VRMLNodeDesc::decIndent(), findReference(), osg::VRMLNodeDesc::getIndent(), osg::getSystemTime(), osg::VRMLNodeDesc::incIndent(), osg::indentLog(), osg::NullFC, PINFO, PWARNING, setContainerFieldValue(), osg::VRMLNodeDesc::use(), and useTime. 00661 { 00662 Time beginUse = getSystemTime(); 00663 00664 FieldContainerPtr pUsedFC; 00665 00666 // try to find a container with the given name attachment 00667 00668 #ifdef OSG_DEBUG_VRML 00669 indentLog(VRMLNodeDesc::getIndent(), PINFO); 00670 PINFO << "VRMLFile::use : looking for " 00671 << szName 00672 << std::endl; 00673 00674 VRMLNodeDesc::incIndent(); 00675 #endif 00676 00677 00678 00679 pUsedFC = findReference(szName); 00680 00681 if(pUsedFC == NullFC) 00682 { 00683 PWARNING << "No fieldContainer with name found to use" 00684 << szName 00685 << std::endl; 00686 } 00687 else 00688 { 00689 // assign nodepointer to current sf|mf field 00690 00691 VRMLNodeDesc *pDesc = NULL; 00692 00693 NameDescriptionMap::iterator mIt = 00694 _nameDescMap.find(IDStringLink(szName)); 00695 00696 if(mIt != _nameDescMap.end()) 00697 { 00698 pDesc = mIt->second; 00699 } 00700 00701 if(pUsedFC->getType().isNode()) 00702 { 00703 NodePtr pRootNode = NodePtr::dcast(pUsedFC); 00704 00705 pUsedFC = cloneTree(pRootNode); 00706 } 00707 00708 if(pDesc != NULL) 00709 { 00710 if(pDesc->use(pUsedFC) == false) 00711 { 00712 setContainerFieldValue(pUsedFC); 00713 } 00714 } 00715 else 00716 { 00717 setContainerFieldValue(pUsedFC); 00718 } 00719 } 00720 00721 #ifdef OSG_DEBUG_VRML 00722 VRMLNodeDesc::decIndent(); 00723 #endif 00724 00725 useTime += (getSystemTime() - beginUse); 00726 }
|
|
|
Definition at line 731 of file OSGVRMLFile.cpp. References osg::VRMLNodeDesc::resetIndent(), and scanFile(). 00732 { 00733 #ifdef OSG_DEBUG_VRML 00734 VRMLNodeDesc::resetIndent(); 00735 #endif 00736 00737 preStandardProtos(); 00738 scanFile(szFilename); 00739 postStandardProtos(); 00740 00741 // dumpTable(); 00742 }
|
|
|
Definition at line 744 of file OSGVRMLFile.cpp. References addFieldValue(), beginFieldDecl(), osg::VRMLNodeDesc::resetIndent(), and startTime. Referenced by osg::VRMLInlineDesc::endNode(), and osg::VRMLSceneFileType::read(). 00745 { 00746 #ifdef OSG_DEBUG_VRML 00747 VRMLNodeDesc::resetIndent(); 00748 #endif 00749 00750 preStandardProtos(); 00751 00752 #if 0 00753 PROTO Anchor [ 00754 eventIn MFNode addChildren 00755 eventIn MFNode removeChildren 00756 exposedField MFNode children [] 00757 exposedField SFString description "" 00758 exposedField MFString parameter [] 00759 exposedField MFString url [] 00760 field SFVec3f bboxCenter 0 0 0 00761 field SFVec3f bboxSize -1 -1 -1 00762 ] { } 00763 #endif 00764 00765 beginProto ("Anchor"); 00766 { 00767 beginEventInDecl ("MFNode", Self::OSGmfNode, "addChildren"); 00768 endEventDecl (); 00769 00770 beginEventInDecl ("MFNode", Self::OSGmfNode, "removeChildren"); 00771 endEventDecl (); 00772 00773 beginExposedFieldDecl("MFNode", Self::OSGmfNode, "children"); 00774 endExposedFieldDecl (); 00775 00776 beginExposedFieldDecl("SFString", Self::OSGsfString, "description"); 00777 endExposedFieldDecl (); 00778 00779 beginExposedFieldDecl("MFString", Self::OSGmfString, "parameter"); 00780 endExposedFieldDecl (); 00781 00782 beginExposedFieldDecl("MFString", Self::OSGmfString, "url"); 00783 endExposedFieldDecl (); 00784 00785 beginFieldDecl ("SFVec3f", Self::OSGsfVec3f, "bboxCenter"); 00786 addFieldValue ("0 0 0"); 00787 endFieldDecl (); 00788 00789 beginFieldDecl ("SFVec3f", Self::OSGsfVec3f, "bboxSize"); 00790 addFieldValue ("-1 -1 -1"); 00791 endFieldDecl (); 00792 } 00793 endProto (); 00794 00795 00796 #if 0 00797 PROTO Appearance [ 00798 exposedField SFNode material NULL 00799 exposedField SFNode texture NULL 00800 exposedField SFNode textureTransform NULL 00801 ] { } 00802 #endif 00803 00804 beginProto("Appearance"); 00805 { 00806 beginExposedFieldDecl("SFNode", Self::OSGsfNode, "material"); 00807 // addFieldValue ("NULL"); 00808 endExposedFieldDecl (); 00809 00810 beginExposedFieldDecl("SFNode", Self::OSGsfNode, "texture"); 00811 // addFieldValue ("NULL"); 00812 endExposedFieldDecl (); 00813 00814 beginExposedFieldDecl("SFNode", Self::OSGsfNode, "textureTransform"); 00815 // addFieldValue ("NULL"); 00816 endExposedFieldDecl (); 00817 } 00818 endProto (); 00819 00820 #if 0 00821 PROTO AudioClip [ 00822 exposedField SFString description "" 00823 exposedField SFBool loop FALSE 00824 exposedField SFFloat pitch 1.0 00825 exposedField SFTime startTime 0 00826 exposedField SFTime stopTime 0 00827 exposedField MFString url [] 00828 eventOut SFTime duration_changed 00829 eventOut SFBool isActive 00830 ] { } 00831 #endif 00832 00833 beginProto("AudioClip"); 00834 { 00835 beginExposedFieldDecl("SFString", Self::OSGsfString, "description"); 00836 addFieldValue (""); 00837 endExposedFieldDecl (); 00838 00839 beginExposedFieldDecl("SFBool", Self::OSGsfBool, "loop"); 00840 addFieldValue ("FALSE"); 00841 endExposedFieldDecl (); 00842 00843 beginExposedFieldDecl("SFFloat", Self::OSGsfFloat, "pitch"); 00844 addFieldValue ("1.0"); 00845 endExposedFieldDecl (); 00846 00847 beginExposedFieldDecl("SFTime", Self::OSGsfTime, "startTime"); 00848 addFieldValue ("0"); 00849 endExposedFieldDecl (); 00850 00851 beginExposedFieldDecl("SFTime", Self::OSGsfTime, "stopTime"); 00852 addFieldValue ("0"); 00853 endExposedFieldDecl (); 00854 00855 beginExposedFieldDecl("MFString", Self::OSGmfString, "url"); 00856 endExposedFieldDecl (); 00857 00858 beginEventOutDecl ("SFTime", Self::OSGsfTime, "duration_changed"); 00859 endEventDecl (); 00860 00861 beginEventOutDecl ("SFBool", Self::OSGsfBool, "isActive"); 00862 endEventDecl (); 00863 } 00864 endProto (); 00865 00866 #if 0 00867 PROTO Background [ 00868 eventIn SFBool set_bind 00869 exposedField MFFloat groundAngle [] 00870 exposedField MFColor groundColor [] 00871 exposedField MFString backUrl [] 00872 exposedField MFString bottomUrl [] 00873 exposedField MFString frontUrl [] 00874 exposedField MFString leftUrl [] 00875 exposedField MFString rightUrl [] 00876 exposedField MFString topUrl [] 00877 exposedField MFFloat skyAngle [] 00878 exposedField MFColor skyColor [ 0 0 0 ] 00879 eventOut SFBool isBound 00880 ] { } 00881 #endif 00882 00883 beginProto("Background"); 00884 { 00885 beginEventInDecl ("SFBool", Self::OSGsfBool, "set_bind"); 00886 endEventDecl (); 00887 00888 beginExposedFieldDecl("MFFloat", Self::OSGmfFloat, "groundAngle"); 00889 endExposedFieldDecl (); 00890 00891 beginExposedFieldDecl("MFColor", Self::OSGmfColor, "groundColor"); 00892 endExposedFieldDecl (); 00893 00894 beginExposedFieldDecl("MFString", Self::OSGmfString, "backUrl"); 00895 endExposedFieldDecl (); 00896 00897 beginExposedFieldDecl("MFString", Self::OSGmfString, "bottomUrl"); 00898 endExposedFieldDecl (); 00899 00900 beginExposedFieldDecl("MFString", Self::OSGmfString, "frontUrl"); 00901 endExposedFieldDecl (); 00902 00903 beginExposedFieldDecl("MFString", Self::OSGmfString, "leftUrl"); 00904 endExposedFieldDecl (); 00905 00906 beginExposedFieldDecl("MFString", Self::OSGmfString, "rightUrl"); 00907 endExposedFieldDecl (); 00908 00909 beginExposedFieldDecl("MFString", Self::OSGmfString, "topUrl"); 00910 endExposedFieldDecl (); 00911 00912 beginExposedFieldDecl("MFFloat", Self::OSGmfFloat, "skyAngle"); 00913 endExposedFieldDecl (); 00914 00915 beginExposedFieldDecl("MFColor", Self::OSGmfColor, "skyColor"); 00916 addFieldValue ("0 0 0"); 00917 endExposedFieldDecl (); 00918 00919 beginEventOutDecl ("SFBool", Self::OSGsfBool, "isBound"); 00920 endEventDecl (); 00921 } 00922 endProto (); 00923 00924 00925 #if 0 00926 PROTO Billboard [ 00927 eventIn MFNode addChildren 00928 eventIn MFNode removeChildren 00929 exposedField SFVec3f axisOfRotation 0 1 0 00930 exposedField MFNode children [] 00931 field SFVec3f bboxCenter 0 0 0 00932 field SFVec3f bboxSize -1 -1 -1 00933 ] { } 00934 #endif 00935 00936 beginProto("Billboard"); 00937 { 00938 beginEventInDecl ("MFNode", Self::OSGmfNode, "addChildren"); 00939 endEventDecl (); 00940 00941 beginEventInDecl ("MFNode", Self::OSGmfNode, "removeChildren"); 00942 endEventDecl (); 00943 00944 beginExposedFieldDecl("SFVec3f", Self::OSGsfVec3f, "axisOfRotation"); 00945 addFieldValue |