thank you for the fast answer ;)

well, it seems that deepCloneTree doesn't copy none of my attachments ( 
which are three, all of Name type with bindings 551 552 553 )...

in fact it's strange because looking at deepCloneAttachments() code ( 
which is called by deepCloneTree() ) at least one attachment per type 
should be cloned correctly...

ok i'll try to implement an ad-hoc clone function, or better i'll try 
not to clone nothing anymore ;)

cheers

Francesco

Carsten Neumann ha scritto:
>       Hi Francesco
> 
> Francesco Tamagni wrote:
>> hi to all! 
>> i'm experiencing some problems using attachments in NodePtrs.
>>
>> Specifically, i'm adding Name attachments with multiple different IDs, 
>> on a single Node. Everything works perfectly until i ->clone() the node, 
>> when all attachments seems to get lost.
> 
> yes, that is a known limitation of the cloneTree function (which is 
> called by clone and probably should be preferred over the member 
> function). The difficulty is that cloneTree only duplicates the Node 
> structure and shares all cores, so you would end up with the same 
> Attachment used by to Nodes. Especially in the case of NameAttachments 
> this can be very confusing if the names are changed, because it would 
> affect all Nodes that share the attachment. It was found less confusing 
> to simply not copy the attachments. Essentially the problem with cloning 
> is that depending on circumstances one wants very different behavior 
> from the functions, but retain a simple interface ;)
> 
>> ( but the same situation can be obtained using deepCloneTree() )
> 
> I'm sorry, are you saying that deepCloneTree does not copy the 
> attachments either ?
> Looking at the code there might be a problem when multiple attachments 
> of the same type (e.g. multiple NameAttachments) with different 
> "binding" values are attached to one Node, it looks like only one 
> (probably the last) would be copied. Could you please clarify what 
> happens when you use deepCloneTree ?
> 
>> is it an expected behaviour? what am i missing? what should i do to 
>> clone my attachments too?
> 
> Since cloneTree is not a large or complex function you might just want 
> to copy its contents and make your own cloning function. To get an 
> independent copy of the attachments you can use deepCloneAttachments 
> (see Source/System/FieldContainer/Impl/OSGNodeImpl.h near the bottom of 
> the file).
> 
>       Hope it helps,
>               Carsten
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> 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 2005.
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