📄 transform.cpp
字号:
#include "osg/Transform"#include "osg/MatrixTransform"#include "osgDB/Registry"#include "osgDB/Input"#include "osgDB/Output"#include "osg/Notify"using namespace osg;using namespace osgDB;// forward declare functions to use later.bool Transform_readLocalData(Object& obj, Input& fr);bool Transform_writeLocalData(const Object& obj, Output& fw);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_TransformProxy( new osg::Transform, "Transform", "Object Node Transform Group", &Transform_readLocalData, &Transform_writeLocalData, DotOsgWrapper::READ_AND_WRITE);bool Transform_readLocalData(Object& obj, Input& fr){ bool iteratorAdvanced = false; Transform& transform = static_cast<Transform&>(obj); if (fr[0].matchWord("Type")) { if (fr[1].matchWord("DYNAMIC")) { transform.setDataVariance(osg::Object::DYNAMIC); fr +=2 ; iteratorAdvanced = true; } else if (fr[1].matchWord("STATIC")) { transform.setDataVariance(osg::Object::STATIC); fr +=2 ; iteratorAdvanced = true; } } if (fr[0].matchWord("referenceFrame")) { if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE") || fr[1].matchWord("ABSOLUTE") || fr[1].matchWord("ABSOLUTE_RF")) { transform.setReferenceFrame(Transform::ABSOLUTE_RF); fr += 2; iteratorAdvanced = true; } if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE") || fr[1].matchWord("ABSOLUTE_RF_INHERIT_VIEWPOINT") ) { transform.setReferenceFrame(Transform::ABSOLUTE_RF_INHERIT_VIEWPOINT); fr += 2; iteratorAdvanced = true; } if (fr[1].matchWord("RELATIVE_TO_PARENTS") || fr[1].matchWord("RELATIVE") || fr[1].matchWord("RELATIVE_RF")) { transform.setReferenceFrame(Transform::RELATIVE_RF); fr += 2; iteratorAdvanced = true; } } return iteratorAdvanced;}bool Transform_writeLocalData(const Object& obj, Output& fw){ const Transform& transform = static_cast<const Transform&>(obj); fw.indent() << "referenceFrame "; switch (transform.getReferenceFrame()) { case Transform::ABSOLUTE_RF: fw << "ABSOLUTE\n"; break; case Transform::ABSOLUTE_RF_INHERIT_VIEWPOINT: fw << "ABSOLUTE_RF_INHERIT_VIEWPOINT\n"; break; case Transform::RELATIVE_RF: default: fw << "RELATIVE\n"; }; return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -