📄 io_lightpointnode.cpp
字号:
#include <osgSim/LightPointNode>#include <osgSim/LightPoint>#include <osg/ref_ptr>#include "IO_LightPoint.h"#include <iostream>#include <string>#include <osgDB/Registry>#include <osgDB/Input>#include <osgDB/Output>#include <osgDB/ParameterOutput>using namespace osgSim;bool LightPointNode_readLocalData(osg::Object &obj, osgDB::Input &fr);bool LightPointNode_writeLocalData(const osg::Object &obj, osgDB::Output &fw);osgDB::RegisterDotOsgWrapperProxy LightPointNode_Proxy( new LightPointNode, "LightPointNode", "Object Node LightPointNode", &LightPointNode_readLocalData, &LightPointNode_writeLocalData);bool LightPointNode_readLocalData(osg::Object &obj, osgDB::Input &fr){ LightPointNode &lightpointnode = static_cast<LightPointNode &>(obj); bool itAdvanced = false; if (fr.matchSequence("num_lightpoints %d")) { // Could allocate space for lightpoints here fr += 2; itAdvanced = true; } if (fr.matchSequence("minPixelSize %f")) { float size = 0.0f; fr[1].getFloat(size); lightpointnode.setMinPixelSize(size); fr += 2; itAdvanced = true; } if (fr.matchSequence("maxPixelSize %f")) { float size = 30.0f; fr[1].getFloat(size); lightpointnode.setMaxPixelSize(size); fr += 2; itAdvanced = true; } if (fr.matchSequence("maxVisibleDistance2 %f")) { float distance = FLT_MAX; fr[1].getFloat(distance); lightpointnode.setMaxVisibleDistance2(distance); fr += 2; itAdvanced = true; } if (fr[0].matchWord("pointSprite")) { if (fr[1].matchWord("FALSE")) { lightpointnode.setPointSprite(false); fr+=2; itAdvanced = true; } else if (fr[1].matchWord("TRUE")) { lightpointnode.setPointSprite(true); fr+=2; itAdvanced = true; } } if (fr[0].matchWord("lightPoint")) { LightPoint lp; if (readLightPoint(lp, fr)) { lightpointnode.addLightPoint(lp); itAdvanced = true; } } return itAdvanced;}bool LightPointNode_writeLocalData(const osg::Object &obj, osgDB::Output &fw){ const LightPointNode &lightpointnode = static_cast<const LightPointNode &>(obj); fw.indent() << "num_lightpoints " << lightpointnode.getNumLightPoints() << std::endl; fw.indent() << "minPixelSize " << lightpointnode.getMinPixelSize() << std::endl; fw.indent() << "maxPixelSize " << lightpointnode.getMaxPixelSize() << std::endl; fw.indent() << "maxVisibleDistance2 " << lightpointnode.getMaxVisibleDistance2() << std::endl; fw.indent() << "pointSprite " << ( lightpointnode.getPointSprite() ? "TRUE" : "FALSE" ) << std::endl; LightPointNode::LightPointList const lightpointlist = lightpointnode.getLightPointList(); LightPointNode::LightPointList::const_iterator itr; for (itr = lightpointlist.begin(); itr != lightpointlist.end(); itr++) { writeLightPoint((*itr), fw); } return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -