MT6IBX7SGLE26XIFZY53WYNHSJZMSDVDRJP3VYPXIQ4DKY75XVXAC
GHIHJCWBCGFZI4AG66L7WG4WKJ467DXFBRBNLT4ZULSN7ZVBJI6AC
GROTV3H2V6BHU5CA7WSLVYDCWAR7GHUP5JV2QOGPLJ6N3553T4MAC
L6RIUKGLJZLAOKFGUDTZKBPP4HUBPEZAKHJEQHO34WFF62AB2ZIQC
X5EMQBC4BFNJOOHS2QMF4UB4QH6JKSALK6RXLK6B7SP6MNYSAP6QC
Q6Z5IQJ3SUI7BUJCKT377EPIRO7UVZFI7UB74ZEEGTCTUKC7WGKQC
WQIQA2TNWNSNGKQC22XPTECAZEWG6PG5QWQECUVXDUQRSCV6RUZQC
/// Convert a 2d point as the world describes it, to a 2d point that
/// the world glyphon can understand
fn convert_world_to_glyphon_world(&self, point: glam::Vec2) -> glam::Vec2 {
// Converts it to a representation of [0, 1] from the world domain of [-WHE, +WHE]
let normalized = self.glyphon_to_world.transform_point3(point.extend(0.0));
// Maps the normalized coords to the glyphon scale of 2 * WHE
(normalized * 2.0 * WORLD_HALF_EXTENTS.as_vec2().extend(0.0)).xy()
}
let screen_to_world = (glam::Affine3A::from_translation(glam::Vec3::new(
-(WORLD_HALF_EXTENTS.x as f32),
-(WORLD_HALF_EXTENTS.y as f32),
0.0,
)) * glam::Affine3A::from_scale(glam::Vec3::new(
2.0 * WORLD_HALF_EXTENTS.x as f32,
2.0 * WORLD_HALF_EXTENTS.y as f32,
1.0,
)))
.inverse();
let loc = screen_to_world.transform_point3(glam::Vec3::new(0.0, 0.0, 0.0))
* 2.0
* WORLD_HALF_EXTENTS.as_vec2().extend(0.0);
vec![(buffer, BufferMapper::new(loc.xy(), 1.0))]
let loc = glam::Vec2::new(32.0, 32.0);
vec![(
buffer,
BufferMapper::new(self.convert_world_to_glyphon_world(loc), 1.0),
)]
egui::Window::new("gama").show(ctx, |ui| {
ui.label(">> Welcome to Cat Waiter <<");
if ui
.text_edit_singleline(&mut self.voop)
.on_hover_text("the best textbox of your life")
.changed()
{
log::info!(">> new text: {}", self.voop);
}
});
egui::Window::new("gama")
.default_pos((10.0, 200.0))
.show(ctx, |ui| {
ui.label(">> Welcome to Cat Waiter <<");
if ui
.text_edit_singleline(&mut self.voop)
.on_hover_text("the best textbox of your life")
.changed()
{
log::info!(">> new text: {}", self.voop);
}
});