diff --git a/src/main/c/fluidsim.c b/src/main/c/fluidsim.c index a472e33..d4c99b7 100644 --- a/src/main/c/fluidsim.c +++ b/src/main/c/fluidsim.c @@ -695,18 +695,24 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate( { //swap vector fields for(int i = 0; i < numChunks; i++){ - chunkJRaw = getChunk(i); - chunkMask = (*env)->GetIntField(env,chunkJRaw,chunkmaskJId); - d = getBuffArr(dJId); - d0 = getBuffArr(d0JId); - u = getBuffArr(uJId); - v = getBuffArr(vJId); - w = getBuffArr(wJId); - u0 = getBuffArr(u0JId); - v0 = getBuffArr(v0JId); - w0 = getBuffArr(w0JId); + Chunk * currentChunk = chunks[i]; + chunkJRaw = currentChunk->jchunk; + chunkMask = currentChunk->chunkMask; + d = currentChunk->jd; + d0 = currentChunk->jd0; + u = currentChunk->ju; + v = currentChunk->jv; + w = currentChunk->jw; + u0 = currentChunk->ju0; + v0 = currentChunk->jv0; + w0 = currentChunk->jw0; setBuffArr(dJId,d0); setBuffArr(d0JId,d); + + jobject tmpObj; + tmpObj = currentChunk->jd; + currentChunk->jd = currentChunk->jd0; + currentChunk->jd0 = d; } for(int i = 0; i < numChunks; i++){ chunkJRaw = getChunk(i); @@ -758,18 +764,24 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate( { //swap vector fields for(int i = 0; i < numChunks; i++){ - chunkJRaw = getChunk(i); - chunkMask = (*env)->GetIntField(env,chunkJRaw,chunkmaskJId); - d = getBuffArr(dJId); - d0 = getBuffArr(d0JId); - u = getBuffArr(uJId); - v = getBuffArr(vJId); - w = getBuffArr(wJId); - u0 = getBuffArr(u0JId); - v0 = getBuffArr(v0JId); - w0 = getBuffArr(w0JId); + Chunk * currentChunk = chunks[i]; + chunkJRaw = currentChunk->jchunk; + chunkMask = currentChunk->chunkMask; + d = currentChunk->jd; + d0 = currentChunk->jd0; + u = currentChunk->ju; + v = currentChunk->jv; + w = currentChunk->jw; + u0 = currentChunk->ju0; + v0 = currentChunk->jv0; + w0 = currentChunk->jw0; setBuffArr(dJId,d0); setBuffArr(d0JId,d); + + jobject tmpObj; + tmpObj = currentChunk->jd; + currentChunk->jd = currentChunk->jd0; + currentChunk->jd0 = d; } for(int i = 0; i < numChunks; i++){ chunkJRaw = getChunk(i);