Cool, it works,

        Field *pField = g->getField(Geometry::GLIdFieldId);
        SFInt32 *pIdField = static_cast<SFInt32 *>(pField);
        int id = pIdField->getValue();

thank you very much!!! :-)

Andreas Zieringer wrote:
> Sebastian Knödel schrieb:
>   
>> Andreas Zieringer wrote:
>>     
>>> Hi Sebastian,
>>>
>>>   
>>>       
>>>> Hi there,
>>>>
>>>> I would like to access the Display Lists generated by OpenSG.
>>>> For the moment I use OpenSG only to handle the geometry using the 
>>>> scenegraph infrastructure, but I do the rendering using my own tool.
>>>> To do so I need the geometry as a display list and as far as I know 
>>>> OpenSG stores the geometry by default in such a list.
>>>> But I wasn't able to get the Display List Id. There is a member of 
>>>> GeometryBase getGLId() but its protected and I couldn't find a way to 
>>>> acces it even by reimplementing my own Geometry class, which I derived 
>>>> from GeometryBase.
>>>> My question is:
>>>> Is there a possibility to access the display lists, created by OpenSG?
>>>> If yes, how does it work?
>>>>
>>>> Thank you for any feedback
>>>>
>>>>
>>>> Sebastin Knödel
>>>>     
>>>>         
>>> you can use the reflective interface just search for the "GLId" field 
>>> and read the value.
>>>
>>> Andreas
>>>
>>>   
>>>       
>> If I understand you right I just read out the GLIdFieldId value of my 
>> geometry like
>>
>> int DLid = anyGeo->GLIdFieldId;
>>
>> but this gives me only the "Field value" which is 21 all the time, 
>> because its the 21. field in the set.
>> Any clue?
>>     
>
> this should do the trick.
>
> SFField<Int32> *field = dynamic_cast<SField<Int32> 
> *>(geo->getField("GLId"));
>
> Int32 glid = field->getValue();
>
> Andreas
>
>
>   
>> I also tried to cast the GeometryPtr to my own Type myGeometry, which 
>> doesn't work out right know.
>> The compiler tells me that I cannot convert from 'osg::GeometryPtr' to 
>> 'myGeometry *'.
>> The code looks like that
>>
>> -----
>> class myGeometry : public Geometry
>> {
>> public:
>>     myGeometry(){};
>>
>>     inline int getDListID(PassiveWindowPtr win)    {return 
>> win->getGLObjectId(getGLId());}
>> };
>>
>> myGeometry* myGeo;
>> .
>> .
>> .
>> myGeo = static_cast<myGeometry*>( anyOSGGeo);
>> int DLid = myGeo->getDListID(win);
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Microsoft
>> Defy all challenges. Microsoft(R) Visual Studio 2008.
>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
>> _______________________________________________
>> Opensg-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/opensg-users
>>
>>     
>
>
>   


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to