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
