swapping arrays correctly
All checks were successful
studiorailgun/fluid-sim/pipeline/head This commit looks good

This commit is contained in:
unknown 2024-03-10 17:04:36 -04:00
parent 67f12b7eb4
commit f1d3c3d011

View File

@ -178,16 +178,17 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
{ {
//swap vector fields //swap vector fields
for(int i = 0; i < numChunks; i++){ for(int i = 0; i < numChunks; i++){
chunkJRaw = getChunk(i); Chunk * currentChunk = chunks[i];
chunkMask = (*env)->GetIntField(env,chunkJRaw,chunkmaskJId); chunkJRaw = currentChunk->jchunk;
d = getBuffArr(dJId); chunkMask = currentChunk->chunkMask;
d0 = getBuffArr(d0JId); d = currentChunk->jd;
u = getBuffArr(uJId); d0 = currentChunk->jd0;
v = getBuffArr(vJId); u = currentChunk->ju;
w = getBuffArr(wJId); v = currentChunk->jv;
u0 = getBuffArr(u0JId); w = currentChunk->jw;
v0 = getBuffArr(v0JId); u0 = currentChunk->ju0;
w0 = getBuffArr(w0JId); v0 = currentChunk->jv0;
w0 = currentChunk->jw0;
setBuffArr(uJId,u0); setBuffArr(uJId,u0);
setBuffArr(u0JId,u); setBuffArr(u0JId,u);
@ -196,6 +197,19 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
setBuffArr(wJId,w0); setBuffArr(wJId,w0);
setBuffArr(w0JId,w); setBuffArr(w0JId,w);
jobject tmpObj;
tmpObj = currentChunk->ju;
currentChunk->ju = currentChunk->ju0;
currentChunk->ju0 = u;
tmpObj = currentChunk->jv;
currentChunk->jv = currentChunk->jv0;
currentChunk->jv0 = v;
tmpObj = currentChunk->jw;
currentChunk->jw = currentChunk->jw0;
currentChunk->jw0 = w;
} }
//copy neighbors //copy neighbors
for(int i = 0; i < numChunks; i++){ for(int i = 0; i < numChunks; i++){
@ -392,16 +406,17 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
{ {
//swap vector fields //swap vector fields
for(int i = 0; i < numChunks; i++){ for(int i = 0; i < numChunks; i++){
chunkJRaw = getChunk(i); Chunk * currentChunk = chunks[i];
chunkMask = (*env)->GetIntField(env,chunkJRaw,chunkmaskJId); chunkJRaw = currentChunk->jchunk;
d = getBuffArr(dJId); chunkMask = currentChunk->chunkMask;
d0 = getBuffArr(d0JId); d = currentChunk->jd;
u = getBuffArr(uJId); d0 = currentChunk->jd0;
v = getBuffArr(vJId); u = currentChunk->ju;
w = getBuffArr(wJId); v = currentChunk->jv;
u0 = getBuffArr(u0JId); w = currentChunk->jw;
v0 = getBuffArr(v0JId); u0 = currentChunk->ju0;
w0 = getBuffArr(w0JId); v0 = currentChunk->jv0;
w0 = currentChunk->jw0;
setBuffArr(uJId,u0); setBuffArr(uJId,u0);
setBuffArr(u0JId,u); setBuffArr(u0JId,u);
@ -410,6 +425,19 @@ JNIEXPORT void JNICALL Java_electrosphere_FluidSim_simulate(
setBuffArr(wJId,w0); setBuffArr(wJId,w0);
setBuffArr(w0JId,w); setBuffArr(w0JId,w);
jobject tmpObj;
tmpObj = currentChunk->ju;
currentChunk->ju = currentChunk->ju0;
currentChunk->ju0 = u;
tmpObj = currentChunk->jv;
currentChunk->jv = currentChunk->jv0;
currentChunk->jv0 = v;
tmpObj = currentChunk->jw;
currentChunk->jw = currentChunk->jw0;
currentChunk->jw0 = w;
} }
//copy neighbors //copy neighbors
for(int i = 0; i < numChunks; i++){ for(int i = 0; i < numChunks; i++){