braille visualizer fix

This commit is contained in:
ethan merchant 2024-01-30 21:22:41 -05:00
parent 37df0dda73
commit a25ce3a255

View file

@ -51,33 +51,141 @@ public class Mono {
// "u", "v", "w", "x", "y", "z"
// };
Character[] characters = new Character[] {
new Character("_", new int[] {0, 0, 0, 0, 0, 0}),
new Character("a", new int[] {1, 0, 0, 0, 0, 0}),
new Character("b", new int[] {1, 0, 1, 0, 0, 0}),
new Character("c", new int[] {1, 1, 0, 0, 0, 0}),
new Character("d", new int[] {1, 1, 0, 1, 0, 0}),
new Character("e", new int[] {1, 0, 0, 1, 0, 0}),
new Character("f", new int[] {1, 1, 1, 0, 0, 0}),
new Character("g", new int[] {1, 1, 1, 1, 0, 0}),
new Character("h", new int[] {1, 0, 1, 1, 0, 0}),
new Character("i", new int[] {0, 1, 1, 0, 0, 0}),
new Character("j", new int[] {0, 1, 1, 1, 0, 0}),
new Character("k", new int[] {1, 0, 0, 0, 1, 0}),
new Character("l", new int[] {1, 0, 1, 0, 1, 0}),
new Character("m", new int[] {1, 1, 0, 0, 1, 0}),
new Character("n", new int[] {1, 1, 0, 1, 1, 0}),
new Character("o", new int[] {1, 0, 0, 1, 1, 0}),
new Character("p", new int[] {1, 1, 1, 0, 1, 0}),
new Character("q", new int[] {1, 1, 1, 1, 1, 0}),
new Character("r", new int[] {1, 0, 1, 1, 1, 0}),
new Character("s", new int[] {0, 1, 1, 0, 1, 0}),
new Character("t", new int[] {0, 1, 1, 1, 1, 0}),
new Character("u", new int[] {1, 0, 0, 0, 1, 1}),
new Character("v", new int[] {1, 0, 1, 0, 1, 1}),
new Character("w", new int[] {0, 1, 1, 1, 0, 1}),
new Character("x", new int[] {1, 1, 0, 0, 1, 1}),
new Character("y", new int[] {1, 1, 0, 1, 1, 1}),
new Character("z", new int[] {1, 0, 0, 1, 1, 1})
new Character("_", new int[] {
0, 0,
0, 0,
0, 0
}),
new Character("a", new int[] {
1, 0,
0, 0,
0, 0
}),
new Character("b", new int[] {
1, 0,
1, 0,
0, 0
}),
new Character("c", new int[] {
1, 1,
0, 0,
0, 0
}),
new Character("d", new int[] {
1, 1,
0, 1,
0, 0
}),
new Character("e", new int[] {
1, 0,
0, 1,
0, 0
}),
new Character("f", new int[] {
1, 1,
1, 0,
0, 0
}),
new Character("g", new int[] {
1, 1,
1, 1,
0, 0
}),
new Character("h", new int[] {
1, 0,
1, 1,
0, 0
}),
new Character("i", new int[] {
0, 1,
1, 0,
0, 0
}),
new Character("j", new int[] {
0, 1,
1, 1,
0, 0
}),
new Character("k", new int[] {
1, 0,
0, 0,
1, 0
}),
new Character("l", new int[] {
1, 0,
1, 0,
1, 0
}),
new Character("m", new int[] {
1, 1,
0, 0,
1, 0
}),
new Character("n", new int[] {
1, 1,
0, 1,
1, 0
}),
new Character("o", new int[] {
1, 0,
0, 1,
1, 0
}),
new Character("p", new int[] {
1, 1,
1, 0,
1, 0
}),
new Character("q", new int[] {
1, 1,
1, 1,
1, 0
}),
new Character("r", new int[] {
1, 0,
1, 1,
1, 0
}),
new Character("s", new int[] {
0, 1,
1, 0,
1, 0
}),
new Character("t", new int[] {
0, 1,
1, 1,
1, 0
}),
new Character("u", new int[] {
1, 0,
0, 0,
1, 1
}),
new Character("v", new int[] {
1, 0,
1, 0,
1, 1
}),
new Character("w", new int[] {
0, 1,
1, 1,
0, 1
}),
new Character("x", new int[] {
1, 1,
0, 0,
1, 1
}),
new Character("y", new int[] {
1, 1,
0, 1,
1, 1
}),
new Character("z", new int[] {
1, 0,
0, 1,
1, 1
})
};
@ -113,8 +221,8 @@ public class Mono {
monoNet.send = true;
}
int xi = (int)(rig.hand_1.palm.position.x * 20f);
xi = Math.Clamp(xi + 10, 0, 26);
int xi = (int)(rig.hand_1.palm.position.x * 25f);
xi = Math.Clamp(xi + 4, 0, 26);
Matrix palm_ori = rig.hand_1.palm.ToMatrix();
Vec3 thumb_tip = palm_ori.Inverse * rig.hand_1.Get(FingerId.Thumb, JointId.Tip).position;
@ -147,24 +255,15 @@ public class Mono {
// show the braille dots(spheres) above the text
for (int i = 0; i < 6; i++) {
float spacing = 0.015f;
float x_offset = i > 2 ? spacing * 0.5f : -spacing * 0.5f;
float y_offset = i > 2 ? (i - 3) * spacing : i * spacing;
// Mesh.Sphere.Draw(
// mat.mono,
// Matrix.TS(
//
// 0.1f
// ),
// Color.White
// );
float x_offset = (i % 2) * spacing;
float y_offset = (i / 2) * -spacing;
if (characters[last_xi].dots[i] == 1) {
Mesh.Sphere.Draw(
mat.mono,
Matrix.TS(
// rig.hand_1.palm.position + V.XYZ(x_offset, 0.1f, 0) + V.XYZ(0, 0.1f, 0) * i,
rig.hand_1.palm.position + V.XYZ(0, 0.2f, 0) + V.XYZ(x_offset, y_offset, 0),
rig.hand_1.palm.position + V.XYZ(x_offset, y_offset, 0) * rig.head_ori,
0.01f
) * Matrix.R(rig.head_ori),
),
Color.White
);
}