Hi Robert,

Did you finally accept this submission?, Do you want I change it to
add the comments you said?

Cheers,
Rafa.


2011/5/12 Rafa Gaitan <[email protected]>:
> Hi Wang Rui and Robert,
>
> 2011/5/12 Wang Rui <[email protected]>:
>> Hi Rafa,
>>
>> Sorry for not following the thread in time. Of course I'd like to see
>> the serializers to be used in more fields besides file I/O operations.
>> And your changes will surely make it possible. The comments are good
>> to me, too.
>>
>> In the last year I posted some of my work with the reflection
>> framework using the wrappers. It's not a submission so you can't find
>> it in the source code. You may read and download the example code at:
>> http://lists.openscenegraph.org/htdig.cgi/osg-users-openscenegraph.org/2010-June/042270.html
>
> Thank you I will take a look at this.
>
>
>>
>> The main problem I've met is that custom wrapper serializers
>> (ADD_USER_SERIALZIER) can hardly be reused here so that the reflection
>> framework will be useless because some very basic methods like
>> adding/removing children are impossible to be done. I've no idea about
>> the solution at present and hope someone will give me a flash of
>> miraculous brightness someday. :-)
>
> Currently, my idea is not use it as a complete reflection system, only
> for a generic setter/getter of basic properties. I've been playing
> with this in a similar way that the xml iterator works. If you find an
> osg::Object, you explore the properties if you find a USER object, go
> deep and so on.
>
> For example I did my own PropertySet and Property classes (they are
> similar to the proposal of meta objects in osg, but less powerful) and
> a PropertyInputIterator and PropertyOutputIterator.. after apply the
> serializer I have a similar graph in a way that I can explore it. By
> now are only tests, but I didn't find yet the most handy solution :).
>
> Rafa.
>
>
>>
>> Regards,
>>
>> Wang Rui
>>
>>
>> 2011/5/12 Rafa Gaitan <[email protected]>:
>>> Hi Robert,
>>>
>>> Yes, it make sense to me. I didn't want to change too much that class
>>> to maintain compatibility, that's why I added that methods. Maybe Wang
>>> Rui can comment more about this, he is the master of the serializers!
>>> :).
>>>
>>> I'm also thinking about the possibility of add methods to request
>>> "properties" or "serializers" of an osg::Object class and "read" and
>>> "write" that values. So it can be exported to a gui easily. What do
>>> you think? Maybe a helper method in osgDB::Serializer?,
>>> osgDB::Registry.
>>>
>>> Greets,
>>> Rafa.
>>>
>>>
>>> 2011/5/12 Robert Osfield <[email protected]>:
>>>> Hi Rafa,
>>>>
>>>> I'm just merging your changes but feel that we need to add some
>>>> doxygen comments to clarify what the set*Iterator(..) and start(..)
>>>> methods relate to.  My first bash at these comments follows:
>>>>
>>>>    /// set an input iterator, used directly when not using
>>>> InputStream with a traditional file releated stream.
>>>>    void setInputIterator( InputIterator* ii ) { _in = ii; }
>>>>
>>>>    /// start reading from InputStream treating it as a traditional
>>>> file releated stream, handles headers and versioning
>>>>    ReadType start( InputIterator* );
>>>>
>>>> And
>>>>
>>>>
>>>>    /// set an output iterator, used directly when not using
>>>> OutputStream with a traditional file releated stream.
>>>>    void setOutputIterator( OutputIterator* oi ) { _out = oi; }
>>>>
>>>>    /// start writing to OutputStream treating it as a traditional
>>>> file releated stream, handles headers and versioning
>>>>    void start( OutputIterator* outIterator, WriteType type );
>>>>
>>>> Does this make sense?  Feel free to suggest better wording.
>>>>
>>>> Cheers,
>>>> Robert.
>>>>
>>>>
>>>> On Sat, May 7, 2011 at 9:12 AM, Rafa Gaitan <[email protected]> wrote:
>>>>> Hi Robert,
>>>>>
>>>>> I've been playing around with serializers in order to use it as a
>>>>> "generic" property mechanism for osg::Object.
>>>>>
>>>>> The main problem I have found is that InputStream and OutputStream
>>>>> only takes the stream when you call start method, and in that case it
>>>>> attaches to the stream buffer some stuff, useful for files but not for
>>>>> runtime/gui usage. I have added a simple setInputIterator and
>>>>> setOutputIterator to the classes so now you can easily serialize
>>>>> values without version and other stuff.
>>>>>
>>>>> Writing matrix:
>>>>> osgDB::OutputStream os(0);
>>>>> std::stringstream sstream;
>>>>> os.setOutputIterator(new AsciiOutputIterator(&sstream));
>>>>> os << matrix;
>>>>> std::string value = sstream.str();
>>>>>
>>>>> Reading matrix:
>>>>> osgDB::InputStream is(0);
>>>>> std::stringstream sstream(value);
>>>>> is.setInputIterator(new AsciiInputIterator(&sstream));
>>>>> osg::Matrixf mat2;
>>>>> is >> mat2;
>>>>>
>>>>> Maybe this can be used with the Metadata mechanism that is in
>>>>> discussion in the osg-user list, so generic values can be read by a
>>>>> GUI in a string like format, or even generic properties of objects.
>>>>>
>>>>> Cheers,
>>>>> Rafa.
>>>>>
>>>>>
>>>>> --
>>>>> Rafael Gaitán Linares
>>>>> Instituto de Automática e Informática Industrial  http://www.ai2.upv.es
>>>>> http://gvsig3d.blogspot.com
>>>>> Ciudad Politécnica de la Innovación
>>>>> Universidad Politécnica de Valencia
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>
>>>
>>>
>>>
>>> --
>>> Rafael Gaitán Linares
>>> Instituto de Automática e Informática Industrial  http://www.ai2.upv.es
>>> http://gvsig3d.blogspot.com
>>> Ciudad Politécnica de la Innovación
>>> Universidad Politécnica de Valencia
>>> _______________________________________________
>>> 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
>>
>
>
>
> --
> Rafael Gaitán Linares
> Instituto de Automática e Informática Industrial  http://www.ai2.upv.es
> http://gvsig3d.blogspot.com
> Ciudad Politécnica de la Innovación
> Universidad Politécnica de Valencia
>



-- 
Rafael Gaitán Linares
Instituto de Automática e Informática Industrial  http://www.ai2.upv.es
http://gvsig3d.blogspot.com
Ciudad Politécnica de la Innovación
Universidad Politécnica de Valencia
_______________________________________________
osg-submissions mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org

Reply via email to