fix block meshgen iteration bug
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
f048b26064
commit
8ddb35d0f8
@ -315,7 +315,7 @@ public class BlockMeshgen {
|
|||||||
QuadMesh quad1 = null;
|
QuadMesh quad1 = null;
|
||||||
QuadMesh quad2 = null;
|
QuadMesh quad2 = null;
|
||||||
int zEnd = 0;
|
int zEnd = 0;
|
||||||
for(int i = 0; i < quadMeshes.size(); i++){
|
for(int i = 0; i < quadMeshes.size();){
|
||||||
quad1 = quadMeshes.get(i);
|
quad1 = quadMeshes.get(i);
|
||||||
zEnd = 1;
|
zEnd = 1;
|
||||||
for(int j = i + 1; j < quadMeshes.size(); j++){
|
for(int j = i + 1; j < quadMeshes.size(); j++){
|
||||||
@ -325,7 +325,6 @@ public class BlockMeshgen {
|
|||||||
} else {
|
} else {
|
||||||
BlockMeshgen.meshifyBox(verts,normals,uvs,indices,samplers,quad1,zEnd,quad1.type,verts.size());
|
BlockMeshgen.meshifyBox(verts,normals,uvs,indices,samplers,quad1,zEnd,quad1.type,verts.size());
|
||||||
quad1 = quad2;
|
quad1 = quad2;
|
||||||
zEnd = 1;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1089,6 +1089,101 @@ public class BlockMeshgenTests {
|
|||||||
BlockMeshData meshData = BlockMeshgen.rasterize(chunkData);
|
BlockMeshData meshData = BlockMeshgen.rasterize(chunkData);
|
||||||
|
|
||||||
|
|
||||||
|
//error check result
|
||||||
|
assertEquals(expectedData.length, meshData.vertices.length);
|
||||||
|
|
||||||
|
for(int i = 0; i < expectedData.length; i++){
|
||||||
|
assertEquals(expectedData[i], meshData.vertices[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@UnitTest
|
||||||
|
public void test_rasterize_11(){
|
||||||
|
//expected data
|
||||||
|
float[] expectedData = new float[]{
|
||||||
|
//block 1
|
||||||
|
1,1,1,
|
||||||
|
2,1,1,
|
||||||
|
1,3,1,
|
||||||
|
2,3,1,
|
||||||
|
|
||||||
|
1,1,1,
|
||||||
|
1,1,3,
|
||||||
|
1,3,1,
|
||||||
|
1,3,3,
|
||||||
|
|
||||||
|
1,1,1,
|
||||||
|
1,1,3,
|
||||||
|
2,1,1,
|
||||||
|
2,1,3,
|
||||||
|
|
||||||
|
1,1,3,
|
||||||
|
2,1,3,
|
||||||
|
1,3,3,
|
||||||
|
2,3,3,
|
||||||
|
|
||||||
|
2,1,1,
|
||||||
|
2,1,3,
|
||||||
|
2,3,1,
|
||||||
|
2,3,3,
|
||||||
|
|
||||||
|
1,3,1,
|
||||||
|
1,3,3,
|
||||||
|
2,3,1,
|
||||||
|
2,3,3,
|
||||||
|
|
||||||
|
//block 2
|
||||||
|
2,1,1,
|
||||||
|
3,1,1,
|
||||||
|
2,2,1,
|
||||||
|
3,2,1,
|
||||||
|
|
||||||
|
2,1,1,
|
||||||
|
2,1,2,
|
||||||
|
2,2,1,
|
||||||
|
2,2,2,
|
||||||
|
|
||||||
|
2,1,1,
|
||||||
|
2,1,2,
|
||||||
|
3,1,1,
|
||||||
|
3,1,2,
|
||||||
|
|
||||||
|
2,1,2,
|
||||||
|
3,1,2,
|
||||||
|
2,2,2,
|
||||||
|
3,2,2,
|
||||||
|
|
||||||
|
3,1,1,
|
||||||
|
3,1,2,
|
||||||
|
3,2,1,
|
||||||
|
3,2,2,
|
||||||
|
|
||||||
|
2,2,1,
|
||||||
|
2,2,2,
|
||||||
|
3,2,1,
|
||||||
|
3,2,2,
|
||||||
|
};
|
||||||
|
for(int i = 0; i < expectedData.length; i++){
|
||||||
|
expectedData[i] = expectedData[i] * BlockChunkData.BLOCK_SIZE_MULTIPLIER;
|
||||||
|
}
|
||||||
|
|
||||||
|
//setup data
|
||||||
|
BlockChunkData chunkData = new BlockChunkData();
|
||||||
|
short[] types = new short[BlockChunkData.CHUNK_DATA_WIDTH * BlockChunkData.CHUNK_DATA_WIDTH * BlockChunkData.CHUNK_DATA_WIDTH];
|
||||||
|
chunkData.setType(types);
|
||||||
|
//block 1
|
||||||
|
chunkData.setType(1, 1, 1, (short)1);
|
||||||
|
chunkData.setType(1, 2, 1, (short)1);
|
||||||
|
chunkData.setType(1, 2, 2, (short)1);
|
||||||
|
chunkData.setType(1, 1, 2, (short)1);
|
||||||
|
|
||||||
|
//block 2
|
||||||
|
chunkData.setType(2, 1, 1, (short)1);
|
||||||
|
|
||||||
|
//call
|
||||||
|
BlockMeshData meshData = BlockMeshgen.rasterize(chunkData);
|
||||||
|
|
||||||
|
|
||||||
//error check result
|
//error check result
|
||||||
assertEquals(expectedData.length, meshData.vertices.length);
|
assertEquals(expectedData.length, meshData.vertices.length);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user