MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / RemoteLayer

Class RemoteLayer

src/main/java/trace/graphics/remote/RemoteLayer.kt:11–243  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9import java.nio.ByteBuffer
10import java.nio.ByteOrder
11import java.nio.FloatBuffer
12import java.nio.IntBuffer
13
14class RemoteLayer(val websocket: NewNanoHTTPD, val max_vertex: Int, val max_element: Int, val element_dim: Int, var channel_name: String) {
15
16 var vertexBufferB: ByteBuffer
17 var vertexBufferF: FloatBuffer
18 var vertexChanged = false
19
20 var colorBufferB: ByteBuffer
21 var colorBufferF: FloatBuffer
22 var colorChanged = false
23
24 var textureBufferB: ByteBuffer
25 var textureBufferF: FloatBuffer
26 var textureChanged = false
27
28 var elementBufferB: ByteBuffer
29 var elementBufferI: IntBuffer
30 var elementChanged = false
31
32 var numVertex = 0
33 var numElement = 0
34
35 init {
36
37 if (channel_name.length > 30) {
38 channel_name = channel_name.substring(0, 15) + channel_name.hashCode() + channel_name.substring(channel_name.length - 2)
39 }
40
41 vertexBufferB = ByteBuffer.allocate(4 * max_vertex * 3 + 2 * 64).order(ByteOrder.nativeOrder())
42 vertexBufferF = vertexBufferB.position(2 * 64).asFloatBuffer()
43
44 colorBufferB = ByteBuffer.allocate(4 * max_vertex * 4 + 2 * 64).order(ByteOrder.nativeOrder())
45 colorBufferF = colorBufferB.position(2 * 64).asFloatBuffer()
46
47 textureBufferB = ByteBuffer.allocate(4 * max_vertex * 2 + 2 * 64).order(ByteOrder.nativeOrder())
48 textureBufferF = textureBufferB.position(2 * 64).asFloatBuffer()
49
50 elementBufferB = ByteBuffer.allocate(4 * max_element * element_dim + 2 * 64).order(ByteOrder.nativeOrder())
51 elementBufferI = elementBufferB.position(2 * 64).asIntBuffer()
52
53
54 }
55
56
57 fun writeHeaders() {
58 writeHeader('V', vertexBufferB, numVertex, 3);
59 writeHeader('C', colorBufferB, numVertex, 4);
60 writeHeader('T', textureBufferB, numVertex, 2);
61 writeHeader('E', elementBufferB, numElement, element_dim);
62 }
63
64 fun writeHeader(c: Char, b: ByteBuffer, max: Int, dim: Int) {
65 b.rewind()
66 b.putInt(max)
67 b.putChar(c)
68 b.put(channel_name.length.toByte())

Callers 1

updateMethod · 0.85

Calls 4

positionMethod · 0.65
hashCodeMethod · 0.45
orderMethod · 0.45
allocateMethod · 0.45

Tested by 1

updateMethod · 0.68