Hi,

I am still struggling with my skinning (mesh morphing nodes).
I have defined several nodes with fcdEdit to define my structure

2 Fields containers SkinData / AnimData
2 Node cores : SkinGeom derived from Geometry / AnimTransform, from Transform

The basic ideas is to use FCs like 'static' members (e.g. matrix palette, 
boolean
drawing flags) to avoid data replication and sweep all my scene graph each time
I want to modify/access to these members.

So SkinGeom uses SkinData via pointer
and AnimTransform uses AnimData+SkinData via pointers too



First question
----------------
Is there a smarter way to create something like a static member ?


Second question
--------------------
All is compiling right but linking gives me serious headaches.

Under MSVC, extern symbol not defined / gcc : gnu.linkonce
Moreover, then I am not able to access to Transform members
since they seems to be not longer defined.
(AnimTransform is derived form Transform)

see annex for details

I have tried to build my FCs and NodeCores as static
libraries. It helps but some  gnu.linkonce are still annoying me.



Is this due to fact AnimTransform uses SkinData FC,
which is also used by SkinGeom ?

I have removed SkinData member from AnimTransform and
things are working now.



Annex
--------

Strange gcc linking errors

OSGKeyFrameAnimTransformBase.o(.osg::SField<osg::FCPtr<osg::FieldContainerPtr, 
osg::SkinData>,
0>::gnu.linkonce.t.getClassType(void) +0x4): In function 
`osg::TransformationMatrix<float> *
__copy<osg::TransformationMatrix<float> *, osg::TransformationMatrix<float> *,
int>(osg::TransformationMatrix<float> *, osg::TransformationMatrix<float> *,
osg::TransformationMatrix<float> *, random_access_iterator_tag, int *)':
/usr/local/include/OpenSG/OSGFieldContainerPtrImpl.inl: undefined reference to
`osg::SField<osg::FCPtr<osg::FieldContainerPtr, osg::SkinData>, 0>::_fieldType'
OSGKeyFrameAnimTransformBase.o
(.osg::SField<osg::FCPtr<osg::FieldContainerPtr, osg::SkinData>, 
0>::gnu.linkonce.t.getType(void)
const+0x7):/usr/local/include/OpenSG/OSGFieldContainerPtrImpl.inl: undefined 
reference to
`osg::SField<osg::FCPtr<osg::FieldContainerPtr, osg::SkinData>, 0>::_fieldType'




-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to