📄 io_sector.cpp
字号:
#include <osgSim/Sector>#include <osg/io_utils>#include <iostream>#include <string>#include <osgDB/Registry>#include <osgDB/Input>#include <osgDB/Output>#include <osgDB/ParameterOutput>bool AzimSector_readLocalData(osg::Object &obj, osgDB::Input &fr);bool AzimSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw);osgDB::RegisterDotOsgWrapperProxy AzimSector_Proxy( new osgSim::AzimSector, "AzimSector", "Object AzimSector", &AzimSector_readLocalData, &AzimSector_writeLocalData, osgDB::DotOsgWrapper::READ_AND_WRITE);bool AzimSector_readLocalData(osg::Object &obj, osgDB::Input &fr){ bool iteratorAdvanced = false; osgSim::AzimSector §or = static_cast<osgSim::AzimSector &>(obj); if (fr.matchSequence("azimuthRange %f %f %f")) { float minAzimuth; float maxAzimuth; float fadeRange; fr[1].getFloat(minAzimuth); fr[2].getFloat(maxAzimuth); fr[3].getFloat(fadeRange); fr += 4; sector.setAzimuthRange(minAzimuth, maxAzimuth, fadeRange); iteratorAdvanced = true; } return iteratorAdvanced;}bool AzimSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw){ float minAzimuth, maxAzimuth, fadeAngle; const osgSim::AzimSector §or = static_cast<const osgSim::AzimSector &>(obj); sector.getAzimuthRange(minAzimuth, maxAzimuth, fadeAngle); fw.indent()<<"azimuthRange "<<minAzimuth<< " "<<maxAzimuth<< " "<<fadeAngle<<std::endl; return true;}/******************************************************************/bool ElevationSector_readLocalData(osg::Object &obj, osgDB::Input &fr);bool ElevationSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw);osgDB::RegisterDotOsgWrapperProxy ElevationSector_Proxy( new osgSim::ElevationSector, "ElevationSector", "Object ElevationSector", &ElevationSector_readLocalData, &ElevationSector_writeLocalData, osgDB::DotOsgWrapper::READ_AND_WRITE);bool ElevationSector_readLocalData(osg::Object &obj, osgDB::Input &fr){ bool iteratorAdvanced = false; osgSim::ElevationSector §or = static_cast<osgSim::ElevationSector &>(obj); if (fr.matchSequence("elevationRange %f %f %f")) { float minElevation; float maxElevation; float fadeAngle; fr[1].getFloat(minElevation); fr[2].getFloat(maxElevation); fr[3].getFloat(fadeAngle); fr += 4; sector.setElevationRange(minElevation, maxElevation, fadeAngle); iteratorAdvanced = true; } return iteratorAdvanced;}bool ElevationSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw){ const osgSim::ElevationSector §or = static_cast<const osgSim::ElevationSector &>(obj); float minElevation = sector.getMinElevation(); float maxElevation = sector.getMaxElevation(); float fadeAngle = sector.getFadeAngle(); fw.indent()<<"elevationRange "<<minElevation<< " "<<maxElevation<< " "<<fadeAngle<<std::endl; return true;}/******************************************************************/bool AzimElevationSector_readLocalData(osg::Object &obj, osgDB::Input &fr);bool AzimElevationSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw);osgDB::RegisterDotOsgWrapperProxy AzimElevationSector_Proxy( new osgSim::AzimElevationSector, "AzimElevationSector", "Object AzimElevationSector", &AzimElevationSector_readLocalData, &AzimElevationSector_writeLocalData, osgDB::DotOsgWrapper::READ_AND_WRITE);bool AzimElevationSector_readLocalData(osg::Object &obj, osgDB::Input &fr){ bool iteratorAdvanced = false; osgSim::AzimElevationSector §or = static_cast<osgSim::AzimElevationSector &>(obj); if (fr.matchSequence("azimuthRange %f %f %f")) { float minAzimuth; float maxAzimuth; float fadeAngle; fr[1].getFloat(minAzimuth); fr[2].getFloat(maxAzimuth); fr[3].getFloat(fadeAngle); fr += 4; sector.setAzimuthRange(minAzimuth, maxAzimuth, fadeAngle); iteratorAdvanced = true; } if (fr.matchSequence("elevationRange %f %f %f")) { float minElevation; float maxElevation; float fadeAngle; fr[1].getFloat(minElevation); fr[2].getFloat(maxElevation); fr[3].getFloat(fadeAngle); fr += 4; sector.setElevationRange(minElevation, maxElevation, fadeAngle); iteratorAdvanced = true; } return iteratorAdvanced;}bool AzimElevationSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw){ const osgSim::AzimElevationSector §or = static_cast<const osgSim::AzimElevationSector &>(obj); float minElevation = sector.getMinElevation(); float maxElevation = sector.getMaxElevation(); float fadeAngle = sector.getFadeAngle(); fw.indent()<<"elevationRange "<<minElevation<< " "<<maxElevation<< " "<<fadeAngle<<std::endl; float minAzimuth, maxAzimuth; sector.getAzimuthRange(minAzimuth, maxAzimuth, fadeAngle); fw.indent()<<"azimuthRange "<<minAzimuth<< " "<<maxAzimuth<< " "<<fadeAngle<<std::endl; return true;}/******************************************************************/bool ConeSector_readLocalData(osg::Object &obj, osgDB::Input &fr);bool ConeSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw);osgDB::RegisterDotOsgWrapperProxy ConeSector_Proxy( new osgSim::ConeSector, "ConeSector", "Object ConeSector", &ConeSector_readLocalData, &ConeSector_writeLocalData, osgDB::DotOsgWrapper::READ_AND_WRITE);bool ConeSector_readLocalData(osg::Object &obj, osgDB::Input &fr){ bool iteratorAdvanced = false; osgSim::ConeSector §or = static_cast<osgSim::ConeSector &>(obj); if (fr.matchSequence("axis %f %f %f")) { float x, y, z; fr[1].getFloat(x); fr[2].getFloat(y); fr[3].getFloat(z); fr += 4; sector.setAxis(osg::Vec3(x, y, z)); iteratorAdvanced = true; } if (fr.matchSequence("angle %f %f")) { float angle; float fadeangle; fr[1].getFloat(angle); fr[2].getFloat(fadeangle); fr += 3; sector.setAngle(angle, fadeangle); iteratorAdvanced = true; } return iteratorAdvanced;}bool ConeSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw){ const osgSim::ConeSector §or = static_cast<const osgSim::ConeSector &>(obj); const osg::Vec3& axis = sector.getAxis(); fw.indent()<<"axis "<<axis<<std::endl; float angle = sector.getAngle(); float fadeangle = sector.getFadeAngle(); fw.indent()<<"angle "<<angle<<" "<<fadeangle<<std::endl; return true;}/******************************************************************/bool DirectionalSector_readLocalData(osg::Object &obj, osgDB::Input &fr);bool DirectionalSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw);osgDB::RegisterDotOsgWrapperProxy DirectionalSector_Proxy( new osgSim::DirectionalSector, "DirectionalSector", "Object DirectionalSector", &DirectionalSector_readLocalData, &DirectionalSector_writeLocalData, osgDB::DotOsgWrapper::READ_AND_WRITE);bool DirectionalSector_readLocalData(osg::Object &obj, osgDB::Input &fr){ bool iteratorAdvanced = false; osgSim::DirectionalSector §or = static_cast<osgSim::DirectionalSector &>(obj); if (fr.matchSequence("direction %f %f %f")) { float x, y, z; fr[1].getFloat(x); fr[2].getFloat(y); fr[3].getFloat(z); fr += 4; sector.setDirection(osg::Vec3(x, y, z)); iteratorAdvanced = true; } if (fr.matchSequence("angles %f %f %f %f")) { float horizangle; float vertangle; float rollangle; float fadeangle; fr[1].getFloat(horizangle); fr[2].getFloat(vertangle); fr[3].getFloat(rollangle); fr[4].getFloat(fadeangle); fr += 5; sector.setHorizLobeAngle(horizangle); sector.setVertLobeAngle(vertangle); sector.setLobeRollAngle(rollangle); sector.setFadeAngle(fadeangle); iteratorAdvanced = true; } return iteratorAdvanced;}bool DirectionalSector_writeLocalData(const osg::Object &obj, osgDB::Output &fw){ const osgSim::DirectionalSector §or = static_cast<const osgSim::DirectionalSector &>(obj); const osg::Vec3& axis = sector.getDirection(); fw.indent()<<"direction "<<axis<<std::endl; float horizangle = sector.getHorizLobeAngle(); float vertangle = sector.getVertLobeAngle(); float rollangle = sector.getLobeRollAngle(); float fadeangle = sector.getFadeAngle(); fw.indent()<<"angles "<<horizangle<<" "<<vertangle<<" "<<rollangle<<" "<<fadeangle<<std::endl; return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -