diff --git a/src/osgPlugins/flt/flt2osg.cpp b/src/osgPlugins/flt/flt2osg.cpp index 1226bd072..945705640 100644 --- a/src/osgPlugins/flt/flt2osg.cpp +++ b/src/osgPlugins/flt/flt2osg.cpp @@ -386,7 +386,7 @@ void ConvertFromFLT::visitLongID(osg::Group& osgParent, LongIDRecord* rec) } -void ConvertFromFLT::visitComment(osg::Group& osgParent, CommentRecord* rec) +void ConvertFromFLT::visitComment(osg::Node& osgParent, CommentRecord* rec) { SComment *pSComment = (SComment*)rec->getData(); @@ -2018,6 +2018,13 @@ void ConvertFromFLT::visitLightPoint(osg::Group& osgParent, LightPointRecord* re dgset->setNormalBinding(osg::Geometry::BIND_PER_VERTEX); osgSim::LightPointNode *lpNode = new osgSim::LightPointNode(); + + for(int i=0; i < rec->getNumChildren(); i++) + { + Record* child = rec->getChild(i); + if( child->classOpcode() == COMMENT_OP) visitComment(*lpNode, (CommentRecord*)child); + } + lpNode->setMinPixelSize( pSLightPoint->sfMinPixelSize); lpNode->setMaxPixelSize( pSLightPoint->sfMaxPixelSize); @@ -2052,8 +2059,12 @@ void ConvertFromFLT::visitLightPoint(osg::Group& osgParent, LightPointRecord* re // calc azimuth angles osg::Vec2 pNormal( normal.x(), normal.y() ); float lng = pNormal.normalize(); - float azimAngle = acos( pNormal.y() ); - if( pNormal.y() > 0.0f ) azimAngle = - azimAngle; + float azimAngle = 0.0f; + if( lng > 0.0000001) + { + azimAngle = acos( pNormal.y() ); + if( pNormal.y() > 0.0f ) azimAngle = - azimAngle; + } float minAzimuth = azimAngle - lobeHorz/2.0f; float maxAzimuth = azimAngle + lobeHorz/2.0f; diff --git a/src/osgPlugins/flt/flt2osg.h b/src/osgPlugins/flt/flt2osg.h index 1854f3b5e..5ff79cc29 100644 --- a/src/osgPlugins/flt/flt2osg.h +++ b/src/osgPlugins/flt/flt2osg.h @@ -125,7 +125,7 @@ class ConvertFromFLT osg::Group* visitMatrix(osg::Group& osgParent, const osg::Group& osgPrimary, MatrixRecord* rec); osg::Group* visitGeneralMatrix(osg::Group& osgParent, const osg::Group& osgPrimary, GeneralMatrixRecord* rec); void visitLongID(osg::Group& osgParent, LongIDRecord* rec); - void visitComment(osg::Group& osgParent, CommentRecord* rec); + void visitComment(osg::Node& osgParent, CommentRecord* rec); // Palette records void visitColorPalette(osg::Group& osgParent, ColorPaletteRecord* rec);