comparison examples/E04_input.nim @ 1136:71315636ba82

did: refactor naming in tons of places
author sam <sam@basx.dev>
date Tue, 04 Jun 2024 16:51:50 +0700
parents d6c27f0ed3e4
children 114f395b9144
comparison
equal deleted inserted replaced
1135:74957cbf589b 1136:71315636ba82
5 5
6 import ../semicongine 6 import ../semicongine
7 7
8 const 8 const
9 arrow = @[ 9 arrow = @[
10 newVec3f(-1, -1), 10 NewVec3f(-1, -1),
11 newVec3f(1, -1), 11 NewVec3f(1, -1),
12 newVec3f(-0.3, -0.3), 12 NewVec3f(-0.3, -0.3),
13 newVec3f(-0.3, -0.3), 13 NewVec3f(-0.3, -0.3),
14 newVec3f(-1, 1), 14 NewVec3f(-1, 1),
15 newVec3f(-1, -1), 15 NewVec3f(-1, -1),
16 ] 16 ]
17 # keyboard layout, specifying rows with key widths, negative numbers are empty spaces 17 # keyboard layout, specifying rows with key widths, negative numbers are empty spaces
18 keyrows = ( 18 keyrows = (
19 [1.0, -0.6, 1.0, 1.0, 1.0, 1.0, -0.5, 1.0, 1.0, 1.0, 1.0, -0.5, 1.0, 1.0, 1.0, 1.0, -0.1, 1.0, 1.0, 1.0], 19 [1.0, -0.6, 1.0, 1.0, 1.0, 1.0, -0.5, 1.0, 1.0, 1.0, 1.0, -0.5, 1.0, 1.0, 1.0, 1.0, -0.1, 1.0, 1.0, 1.0],
20 [1.2, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.8, -0.1, 1.0, 1.0, 1.0], 20 [1.2, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.8, -0.1, 1.0, 1.0, 1.0],
23 [2.6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.8, -1.3, 1.0], 23 [2.6, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.8, -1.3, 1.0],
24 [1.5, 1.5, 1.5, 6, 1.5, 1.5, -1.2, 1.5, -0.1, 1.0, 1.0, 1.0], 24 [1.5, 1.5, 1.5, 6, 1.5, 1.5, -1.2, 1.5, -0.1, 1.0, 1.0, 1.0],
25 ) 25 )
26 keyDimension = 50'f32 26 keyDimension = 50'f32
27 keyGap = 10'f32 27 keyGap = 10'f32
28 backgroundColor = newVec4f(0.6705882352941176, 0.6078431372549019, 0.5882352941176471, 1) 28 backgroundColor = NewVec4f(0.6705882352941176, 0.6078431372549019, 0.5882352941176471, 1)
29 baseColor = newVec4f(0.9411764705882353, 0.9058823529411765, 0.8470588235294118, 1) 29 baseColor = NewVec4f(0.9411764705882353, 0.9058823529411765, 0.8470588235294118, 1)
30 activeColor = newVec4f(0.6509803921568628, 0.22745098039215686, 0.3137254901960784, 1) 30 activeColor = NewVec4f(0.6509803921568628, 0.22745098039215686, 0.3137254901960784, 1)
31 arrow_colors = @[ 31 arrow_colors = @[
32 baseColor * 0.9'f32, 32 baseColor * 0.9'f32,
33 baseColor * 0.9'f32, 33 baseColor * 0.9'f32,
34 baseColor * 0.9'f32, 34 baseColor * 0.9'f32,
35 baseColor * 0.8'f32, 35 baseColor * 0.8'f32,
59 var 59 var
60 scene: Scene 60 scene: Scene
61 keyvertexpos: seq[Vec3f] 61 keyvertexpos: seq[Vec3f]
62 keyvertexcolor: seq[Vec4f] 62 keyvertexcolor: seq[Vec4f]
63 keymeshindices: seq[array[3, uint16]] 63 keymeshindices: seq[array[3, uint16]]
64 rowpos = newVec2f(0, 0) 64 rowpos = NewVec2f(0, 0)
65 i = 0'u16 65 i = 0'u16
66 firstRow = true 66 firstRow = true
67 rowWidth = 0'f32 67 rowWidth = 0'f32
68 for row in keyrows.fields: 68 for row in keyrows.fields:
69 for key in row: 69 for key in row:
70 let keySpace = float32(keyDimension * key) 70 let keySpace = float32(keyDimension * key)
71 if key > 0: 71 if key > 0:
72 if keyIndices[i div 4] == Enter: 72 if keyIndices[i div 4] == Enter:
73 keyvertexpos.add newVec3f(rowpos[0], rowpos[1] - keyDimension - keyGap) 73 keyvertexpos.add NewVec3f(rowpos[0], rowpos[1] - keyDimension - keyGap)
74 keyvertexpos.add newVec3f(rowpos[0] + keySpace, rowpos[1] - keyDimension - keyGap) 74 keyvertexpos.add NewVec3f(rowpos[0] + keySpace, rowpos[1] - keyDimension - keyGap)
75 else: 75 else:
76 keyvertexpos.add newVec3f(rowpos[0], rowpos[1]) 76 keyvertexpos.add NewVec3f(rowpos[0], rowpos[1])
77 keyvertexpos.add newVec3f(rowpos[0] + keySpace, rowpos[1]) 77 keyvertexpos.add NewVec3f(rowpos[0] + keySpace, rowpos[1])
78 keyvertexpos.add newVec3f(rowpos[0] + keySpace, rowpos[1] + keyDimension) 78 keyvertexpos.add NewVec3f(rowpos[0] + keySpace, rowpos[1] + keyDimension)
79 keyvertexpos.add newVec3f(rowpos[0], rowpos[1] + keyDimension) 79 keyvertexpos.add NewVec3f(rowpos[0], rowpos[1] + keyDimension)
80 keyvertexcolor.add [baseColor, baseColor, baseColor, baseColor] 80 keyvertexcolor.add [baseColor, baseColor, baseColor, baseColor]
81 keymeshindices.add [i, i + 1, i + 2] 81 keymeshindices.add [i, i + 1, i + 2]
82 keymeshindices.add [i + 2, i + 3, i] 82 keymeshindices.add [i + 2, i + 3, i]
83 rowpos[0] += keySpace + keyGap 83 rowpos[0] += keySpace + keyGap
84 i += 4 84 i += 4
102 scale2d(0.5'f32, 1'f32) * 102 scale2d(0.5'f32, 1'f32) *
103 rotate2d(float32(PI) / 4'f32) 103 rotate2d(float32(PI) / 4'f32)
104 ) 104 )
105 var positions = arrow 105 var positions = arrow
106 for i in 0 ..< positions.len: 106 for i in 0 ..< positions.len:
107 positions[i] = cursorscale * newVec3f(positions[i].x, positions[i].y) 107 positions[i] = cursorscale * NewVec3f(positions[i].x, positions[i].y)
108 108
109 # define mesh objects 109 # define mesh objects
110 var 110 var
111 matDef = MaterialType(name: "default", vertexAttributes: { 111 matDef = MaterialType(name: "default", vertexAttributes: {
112 "position": Vec3F32, 112 "position": Vec3F32,
123 indices = keymeshindices, 123 indices = keymeshindices,
124 material = matDef.initMaterialData(), 124 material = matDef.initMaterialData(),
125 ) 125 )
126 backgroundmesh = newMesh( 126 backgroundmesh = newMesh(
127 positions = @[ 127 positions = @[
128 newVec3f(0'f32, 0'f32), 128 NewVec3f(0'f32, 0'f32),
129 newVec3f(1'f32, 0'f32), 129 NewVec3f(1'f32, 0'f32),
130 newVec3f(1'f32, 1'f32), 130 NewVec3f(1'f32, 1'f32),
131 newVec3f(0'f32, 1'f32), 131 NewVec3f(0'f32, 1'f32),
132 ], 132 ],
133 colors = @[ 133 colors = @[
134 backgroundColor, 134 backgroundColor,
135 backgroundColor, 135 backgroundColor,
136 backgroundColor, 136 backgroundColor,