shenanigans
This commit is contained in:
parent
a058ddde77
commit
6f34f30f83
69
src/main.rs
69
src/main.rs
|
@ -7,6 +7,7 @@ use sdl2::gfx::primitives::DrawRenderer;
|
|||
//use sdl2::hint::Hint::Default;
|
||||
//use sdl2::sys::*;
|
||||
use std::default::Default;
|
||||
use sdl2::pixels::Color;
|
||||
|
||||
#[allow(unused)]
|
||||
fn main() {
|
||||
|
@ -15,16 +16,72 @@ fn main() {
|
|||
|
||||
let bluh = Mesh {
|
||||
tris: vec![
|
||||
//SOUTH
|
||||
Triangle::from((
|
||||
Vec3::from((0.0,0.0,0.0)),
|
||||
Vec3::from((0.0,1.0,0.0)),
|
||||
Vec3::from((1.0,1.0,0.0))
|
||||
)),
|
||||
Triangle::from((
|
||||
Vec3::from((0.0,0.0,0.0)),
|
||||
Vec3::from((1.0,1.0,0.0)),
|
||||
Vec3::from((1.0,0.0,0.0))
|
||||
)),
|
||||
//EAST
|
||||
Triangle::from((
|
||||
Vec3::from((0.0,0.0,0.0)),
|
||||
Vec3::from((1.0,0.0,0.0)),
|
||||
Vec3::from((1.0,1.0,0.0)),
|
||||
Vec3::from((1.0,1.0,1.0))
|
||||
)),
|
||||
Triangle::from((
|
||||
Vec3::from((1.0,0.0,0.0)),
|
||||
Vec3::from((1.0,1.0,1.0)),
|
||||
Vec3::from((1.0,0.0,1.0))
|
||||
)),
|
||||
//NORTH
|
||||
Triangle::from((
|
||||
Vec3::from((1.0,0.0,1.0)),
|
||||
Vec3::from((1.0,1.0,1.0)),
|
||||
Vec3::from((0.0,1.0,1.0))
|
||||
)),
|
||||
Triangle::from((
|
||||
Vec3::from((1.0,0.0,1.0)),
|
||||
Vec3::from((0.0,1.0,1.0)),
|
||||
Vec3::from((0.0,0.0,1.0))
|
||||
)),
|
||||
//WEST
|
||||
Triangle::from((
|
||||
Vec3::from((0.0,0.0,1.0)),
|
||||
Vec3::from((0.0,1.0,1.0)),
|
||||
Vec3::from((0.0,1.0,0.0))
|
||||
)),
|
||||
Triangle::from((
|
||||
Vec3::from((0.0,0.0,1.0)),
|
||||
Vec3::from((0.0,1.0,0.0)),
|
||||
Vec3::from((0.0,0.0,0.0))
|
||||
)),
|
||||
//TOP
|
||||
Triangle::from((
|
||||
Vec3::from((0.0,1.0,0.0)),
|
||||
Vec3::from((0.0,1.0,1.0)),
|
||||
Vec3::from((1.0,1.0,1.0))
|
||||
)),
|
||||
Triangle::from((
|
||||
Vec3::from((0.0,1.0,0.0)),
|
||||
Vec3::from((1.0,1.0,1.0)),
|
||||
Vec3::from((1.0,1.0,0.0))
|
||||
)),
|
||||
//BOTTOM
|
||||
Triangle::from((
|
||||
Vec3::from((1.0,0.0,1.0)),
|
||||
Vec3::from((0.0,0.0,1.0)),
|
||||
Vec3::from((0.0,0.0,0.0))
|
||||
)),
|
||||
Triangle::from((
|
||||
Vec3::from((1.0,0.0,1.0)),
|
||||
Vec3::from((0.0,0.0,0.0)),
|
||||
Vec3::from((1.0,0.0,0.0))
|
||||
)),
|
||||
]
|
||||
};
|
||||
|
||||
|
@ -41,6 +98,7 @@ fn main() {
|
|||
let dis_mode = video.current_display_mode(0).unwrap();
|
||||
let gl_attr = video.gl_attr();
|
||||
|
||||
|
||||
let f_near: f32 = 0.1;
|
||||
let f_far: f32 = 1000.0;
|
||||
let f_fov: f32 = 90.0;
|
||||
|
@ -48,6 +106,8 @@ fn main() {
|
|||
let f_fov_rad = 1.0 / f32::tan(f_fov * 0.5 / 180.0 * std::f32::consts::PI);
|
||||
|
||||
let mat_proj = Matrix4::zeros_generic(U4, U4);
|
||||
|
||||
b.set_draw_color((1u8,1u8,1u8,255u8));
|
||||
for tri in &bluh.tris
|
||||
{
|
||||
let mut tri_projected = Triangle {..Default::default()};
|
||||
|
@ -66,16 +126,17 @@ fn main() {
|
|||
tri_projected.p.2.x *= 0.5 * dis_mode.w as f32;
|
||||
tri_projected.p.2.y *= 0.5 * dis_mode.h as f32;
|
||||
|
||||
b.trigon(tri_projected.p.0.x as i16,
|
||||
//println!("{:?}",tri_projected.p);
|
||||
b.filled_trigon(tri_projected.p.0.x as i16,
|
||||
tri_projected.p.0.y as i16,
|
||||
tri_projected.p.1.x as i16,
|
||||
tri_projected.p.1.y as i16,
|
||||
tri_projected.p.2.x as i16,
|
||||
tri_projected.p.2.y as i16,
|
||||
(0u8,0u8,0u8, 0u8));
|
||||
Color::BLACK).unwrap();
|
||||
}
|
||||
|
||||
//ctx.set_background_colour(0,0,0);
|
||||
ctx.set_background_colour(255,255,255);
|
||||
}).unwrap();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
//use nalgebra::Vector2;
|
||||
|
||||
#[derive(Default, Copy, Clone)]
|
||||
#[derive(Default, Copy, Clone, Debug)]
|
||||
pub struct Vec3 {
|
||||
pub x: f32,
|
||||
pub y: f32,
|
||||
|
@ -14,12 +14,12 @@ pub struct Triangle {
|
|||
|
||||
impl From<(f32,f32,f32)> for Vec3
|
||||
{
|
||||
fn from(value: (f32,f32,f32)) -> Self
|
||||
fn from((x,y,z): (f32,f32,f32)) -> Vec3
|
||||
{
|
||||
Vec3 {
|
||||
x: value.0,
|
||||
y: value.1,
|
||||
z: value.2,
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue