Hello Alois,
That's a very nice addition. I've been asking how and where to add this
more than once, and you simply did ;-)
I have a comment however:
Why didn't you add the FID (Feature ID) too?
Anyways: I would really like this to be merged to the OSG.
cheers
Sebastian
Hi guys,
I am very proud to present my first contribution to OSG. It is a small
extension of the OpenFlight-plugin for reading Surface Material Codes
and adding this code as description to the geode.
I have seen, the OpenFlight-Load does not support the Surface Material
Code (SMC) attribute. Therefore all Surface Mateial Codes of models in
flt-Format will be lost when reading into OSG. So I made a change in
the OpenFlight plugin, which reads the SMC and adds a description to
the geode (the OSG-nodes have no such element). The description will
be: 'SMC:<surfaceCode>'. Example: if the surface-code is 1234, the
description will be 'SMC:1234'.
Adding this desciption can be enabled/disabled with the import-option
,preserveNonOsgAttrsAsDescription' (default is disabled). If it is
set, the description will be added, if it is not set, SMC will be
ignored (=> like it was without this change). It would make sense to
describe this new option in the wiki-page:
http://www.openscenegraph.org/projects/osg/wiki/Support/KnowledgeBase/OpenFlight.
I tested this change with a lot of flt-models containing different SMC
and it worked flawless.
The base for my changes was OSG-3.0.1.
Following changes I made:
src/osgPlugins/OpenFlight/Document.h & Document.cpp:
New member-variable bool _preserveNonOsgAttrsAsDescription which will
be set to false in the constructor and getter/setter-methods for it
added (getPreserveNonOsgAttrsAsDescription() and
setPreserveNonOsgAttrsAsDescription())
src/osgPlugins/OpenFlight/ReaderWriterFLT.cpp:
In the constructor FLTReaderWriter()preserveNonOsgAttrsAsDescription
will be declared as import-option
In readNode() the new option preserveNonOsgAttrsAsDescription will be
read and set (also an OSG_DEBUG will be made)
src/osgPlugins/OpenFlight/GeometryRecords.cpp:
In Face::readRecord() the surface will be read and if
preserveNonOsgAttrsAsDescription-option is set, the description will
be generated and added to the geode
In Mesh::readRecord() the surface will be read and if
preserveNonOsgAttrsAsDescription-option is set, the description will
be generated and added to the geode
I hope you can add this to the trunc, otherwise please inform me why
this is not possible.
Cheers
WeSee
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org