#include #include #include #include #include #include #include #include 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(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(obj); sector.getAzimuthRange(minAzimuth, maxAzimuth, fadeAngle); fw.indent()<<"azimuthRange "<(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(obj); float minElevation = sector.getMinElevation(); float maxElevation = sector.getMaxElevation(); float fadeAngle = sector.getFadeAngle(); fw.indent()<<"elevationRange "<(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(obj); float minElevation = sector.getMinElevation(); float maxElevation = sector.getMaxElevation(); float fadeAngle = sector.getFadeAngle(); fw.indent()<<"elevationRange "<(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(obj); const osg::Vec3& axis = sector.getAxis(); fw.indent()<<"axis "<(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(obj); const osg::Vec3& axis = sector.getDirection(); fw.indent()<<"direction "<