Compare commits

..

2 Commits

Author SHA1 Message Date
c31e7cb1ec Tripod! 2024-09-22 16:13:43 +03:00
0e32467b24 Less asserts 2024-09-22 16:08:19 +03:00
2 changed files with 22 additions and 10 deletions

View File

@ -30,11 +30,11 @@ impl<S: Copy> DragCtl<S> {
pub fn on_button(&mut self, pos: Vec2, state: ElementState) {
match state {
ElementState::Pressed => {
assert!(self.ctl.is_none());
if self.ctl.is_none() {
self.ctl = Some((pos, self.state));
}
}
ElementState::Released => {
assert!(self.ctl.is_some());
self.ctl = None;
}
}
@ -60,23 +60,35 @@ fn main() {
let indices = glium::index::NoIndices(glium::index::PrimitiveType::LineLoop);
let shape = vec![
Vertex {
position: [-1., 0., 4.],
position: [0., 0., 0.],
},
Vertex {
position: [0., -1., 4.],
position: [1., 0., 0.],
},
Vertex {
position: [1., 0., 4.],
position: [0., 0., 0.],
},
Vertex {
position: [0., 1., 4.],
position: [0., 1., 0.],
},
Vertex {
position: [0., 0., 0.],
},
Vertex {
position: [0., 0., 1.],
},
];
let vertex_buffer = VertexBuffer::new(&display, &shape).unwrap();
let rot = Quat::from_euler(
glam::EulerRot::YXZ,
std::f32::consts::FRAC_PI_4,
std::f32::consts::FRAC_PI_6,
0.,
);
let mut cur_pos = vec2(0., 0.);
let mut cam_pos = DragCtl::new(Vec3::ZERO);
let mut cam_rot = DragCtl::new(Quat::IDENTITY);
let mut cam_pos = DragCtl::new(rot * vec3(0., 0., 4.));
let mut cam_rot = DragCtl::new(rot.inverse());
#[allow(deprecated)]
event_loop

View File

@ -8,6 +8,6 @@ in vec3 position;
out vec3 vertex_color;
void main() {
vertex_color = color;
vertex_color = position;
gl_Position = mvp * vec4(position, 1.0);
}