Hello all,
I have a little problem when cloning objects. I hope someone can help me, before I go crazy. :-X
I create my base object:
float[] positions = ...
float[] uvs = ...
int[] indices = ...
_base = new Object3D(positions, uvs, indices, -1);
_base.strip();
_base.build(true);
_base.compile();
In my render/update loop i create a clone and add it to the world:
_clone1 = _base.cloneObject();
_clone1.shareCompiledData(_base);
_clone1.build();
_clone1.compile();
_world.addObject(_clone1);
Some frames later, I remove the first clone from the world:
_world.removeObject(_clone1);
The same frame I want to add another clone, wich gives me a NullPointerException:
_clone2 = _base.cloneObject(); // NullPointerException in GLSurfaceView$GLThread.run() line: 1120
_clone2.shareCompiledData(_base);
_clone2.build();
_clone2.compile();
_world.addObject(_clone2);
(Well there is a litte more code the this, but posting all would be to much for this one post. I hope this is enough.)
I tried everything now to find out why and how, but cant find any solution. What am I doing wrong or dont I understand here?
Allright, I was going crazy to soon.
The answer is simple: Don't strip the base object. Removing _base.strip(); solved the problem.
P.S.: Thanks for jPCT-AE, makes life much easier... well, most of the time. :P
I'll look at it to see if i can add a warning or an error when cloning a stripped object.