I'm sorry if I have added confusion to the discussion.
In your submission email, you said: "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)." But descriptions are available pretty much everywhere,
so I wanted to make sure you knew that in case it affected your design. If you
are still content with your design the way it is, then please ignore my post.
-Paul
On 11/28/2012 3:13 AM, We See wrote:
Hi Paul,
You are right, I simply did not recognize, that descriptions also can be stored
in drawable (maybe because addDescription() is implemented in osg::Node)! So
for Face it would be possible to store the description in the drawable itself,
but for Mesh we still have to store the desciption in the geode.
In the OpenFlight-plugin the change would be very small, in Face::readRecord():
the line:
_geode->addDescription(ss.str());
changes to:
_geometry->getOrCreateUserDataContainer()->getDescriptions().push_back(ss.str());
For the user of the SMC, it would be little more difficult, because he should
not only check the descriptions of geodes for SMC, but also the drawables, but
the flexibility will get bigger, because he can have different SMC per drawable
in the same geode.
On the other way, if we look into code of Face::readRecord() in the switch (and
some lines below) where the Geode (or Billboard) will be allocated, we can see,
a Geode always will only contain one single drawable.
Conclusion
If we store the description always in the geode, the user has it a little bit
easier, but can not have different SMC per drawable in the same geode.
If we store the description for faces in the drawable, the user has it a little
bit more complicated to examine the SMC and could have different SMC per
drawable in future (when OpenFlight-plugin is supporting more than 1 drawable
per geode for Face).
Actually I am unsure, which solution should be favorised, but the solution with
SMC per drawable is (in my view) more future-oriented.
@Robert Osfield: what do you think and who is finally responsible for merging
this part of code to OSG?
-WeSee
Paul Martz wrote:
The the email I quoted. I was just wondering if there was a reason to limit
storing of SMCs in the description lists of Geodes only. It appears that SMCs
could be stored in the descriptions of any Node type.
-Paul
On 11/27/2012 9:56 AM, We See wrote:
Hi Paul,
Yes, DescriptionLists are part of UserDataContainer and are implemented in
osg::Node, so descriptions can be added to every class inherited from osg::Node.
But what has it to do with the SMC extension of OpenFlight-plugin?
-WeSee
Paul Martz wrote:
DescriptionLists are part of UserDataContainer now, right? So they could be
attached to any Node, not just Geode.
-Paul
On 11/16/2012 5:35 AM, WeSee wrote:
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
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
_______________________________________________
osg-submissions mailing list
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
------------------
Post generated by Mail2Forum
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=51253#51253
_______________________________________________
osg-submissions mailing list
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
_______________________________________________
osg-submissions mailing list
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
------------------
Post generated by Mail2Forum
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=51259#51259
_______________________________________________
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