Hi,

I finally realized where the error occurs: The program hangs on the makeSphere() (or makeSphereGeo()) call. I tried makeBox() instead, and it works. I also tried makePlane(), makeTorus(), makeCone(), makeCylinder() and makeConicalFrustum(), they all work well, only makeSphere() and makeSphereGeo() cause the program to hang...

I just added this as a bug report on the source-forge site. (By the way, I'm using the .tar.gz version of OpenSG 1.2 that's available from the OpenSG web site... I haven't tried a CVS version yet.)

Anyway, my test application works fine now, the scene-graph is replicated correctly, and I can render additional objects in the client.

Thanks,
  Robert


Dirk Reiners schrieb:
        Hi Robert,

On Sat, 2004-01-10 at 19:50, Robert Hinn wrote:

Hi,

I finally got it working: The scene graph is replicated, and changes during runtime are also replicated. It took me some time to figure out the *Ptr->dcast() stuff, I was a bit puzzled at first that I couldn't simply cast variables the usual way ;-)


Yeah, the Ptrs hide a bunch of stuff, but transparent downcast is not
one of them. Maybe once we can overload dynamic_cast... ;)


Like you suggested, I solved the "finding the root node" problem by registering a functor with the remote aspect. It took me a while to figure out that I had to listen for the change of a Name type FieldContainer, not the creation of a Node (or Name... upon creation the Name is empty...).


OK.


So my first steps in OpenSG are working out well so far, but I still got one problem: All runs well until I change something on my client side, e.g. creating a node. I thought about the following:
  receiveSync
  add client-only nodes
  show scene
  remove client-only nodes again
  clear change-list

However, upon removing the nodes, I get "subChild: not one of my children"-like warnings. So I changed this to:
  receive sync
  show scene
  clear change list
while managing an additional scene (just a NodePtr) with additional nodes. However, even without trying to add them to the root node of the scene graph, my client hangs whenever I try to create a new node. I even tried clearing the change-list immediately afterwards, before displaying the scene, and before receiving the next sync, but to no avail. I'm not using any beginEditCP() and endEditCP() calls on the client side, only on the server side (I want the server to manage the scene common to all clients, and the clients just to add some additional individual nodes, which aren't sent back to the server)...

Any idea on why my client hangs when creating a new node?


In general you should always do begin/endEdits, otherwise some internal
inconsistencies might appear that can lead to crashes. They are needed
not only for Cluster situations, but always.

Where exactly does it hang? During rendering after the changes or during
the creation?

The subChild warnings sound like you add your client Nodes to the global
root. That might be a problem, as the child list of that Node is updated
from the server. It should work better if you create the real root on
the client's and add the server's root as a child of that. You can then
add other children on the same level and they should not interfere.



Thanks a lot so far, without your (and Rasmus') help, I wouldn't have realized that I had to search for the root node on the client side!


Yeah, that Clustering is not really designed for these distribution
problems, but it's pretty general.


PS: the makeTorus() function doesn't seem to add the created node to the change list, it only worked when I created the geometry and node separately like in the testRemoteAspect example... Is this on purpose?


Hmm, that's surprising. It should, and it certainly is in the code to do
that. I'll add it as a bug report.

Thanks

        Dirk




-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users




-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to