handle swapping density correctly

This commit is contained in:
unknown 2024-03-10 17:10:46 -04:00
parent 880cd1b675
commit 1389b47ce1

View File

@ -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);