Hi Vincent,
On Sat, 2004-05-15 at 09:03, Vincent VIVANLOC wrote:
> 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 ?
if I understand it right, no. If you want to share data between
different FCs, you need to create a new one and point to it. That's the
way geometries share their data and materials share their textures.
>
> Second question
> --------------------
> All is compiling right but linking gives me serious headaches.
Yeah, compiling is easy, linking is where it gets interesting. ;)
> Under MSVC, extern symbol not defined / gcc : gnu.linkonce
Huh? How does a gnu symbol get into a MS build? Have you tried mxiing
gcc and MSVC?
> 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
That looks more like a missing preprocessor symbol to define the static
members in only one object file and library.
> I have tried to build my FCs and NodeCores as static
> libraries. It helps but some gnu.linkonce are still annoying me.
If it works, all the better. In general we don't use static libraries
much, so I don't have much experience with them.
>
> Is this due to fact AnimTransform uses SkinData FC,
> which is also used by SkinGeom ?
It shouldn't be, we use the same FCs all over the place.
> I have removed SkinData member from AnimTransform and
> things are working now.
I think the problem is that you're trying to use the SkinData as a
member in the Field, and not a pointer to it. Do to our memeory layout
of multithread safety you can't put FieldContainers into other classes,
you have to use pointers to them, and FCPtr at that.
Hope it helps
Dirk
-------------------------------------------------------
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