Commit de0fb85d authored by Matthias Betz's avatar Matthias Betz
Browse files

Add SceneData container for built scene buffers

parent 8ef604ae
package de.hft.stuttgart.citydoctor2.gui.gl;
import java.util.List;
/** Immutable CPU-side result of building the scene; uploaded to the GPU by the GL layer. */
public class SceneData {
private final float[] positions;
private final float[] colors;
private final int[] ids;
private final List<TriangleMeta> triangleMetas;
private final PickRegistry pickRegistry;
private final double[] center;
public SceneData(float[] positions, float[] colors, int[] ids,
List<TriangleMeta> triangleMetas, PickRegistry pickRegistry, double[] center) {
this.positions = positions;
this.colors = colors;
this.ids = ids;
this.triangleMetas = triangleMetas;
this.pickRegistry = pickRegistry;
this.center = center;
}
public float[] positions() { return positions; }
public float[] colors() { return colors; }
public int[] ids() { return ids; }
public List<TriangleMeta> triangleMetas() { return triangleMetas; }
public PickRegistry pickRegistry() { return pickRegistry; }
public double[] center() { return center; }
public int triangleCount() { return triangleMetas.size(); }
}
package de.hft.stuttgart.citydoctor2.gui.gl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import java.util.List;
import org.junit.Test;
public class SceneDataTest {
@Test
public void exposesItsBuffersAndRegistry() {
float[] pos = {0,0,0, 1,0,0, 0,1,0};
float[] col = {1,1,1, 1,1,1, 1,1,1};
int[] ids = {1,1,1};
PickRegistry reg = new PickRegistry();
List<TriangleMeta> metas = List.of(new TriangleMeta(0, null, 2, false));
SceneData data = new SceneData(pos, col, ids, metas, reg, new double[]{5, 6, 7});
assertSame(pos, data.positions());
assertEquals(1, data.triangleMetas().size());
assertEquals(6.0, data.center()[1], 0.0);
assertSame(reg, data.pickRegistry());
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment