NullPointerException when cloning Object3D

Started by Derkai, March 05, 2011, 04:49:50 PM

Previous topic - Next topic

Derkai

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?

Derkai

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

EgonOlsen

#2
I'll look at it to see if i can add a warning or an error when cloning a stripped object.