lots of skeleton stuff. lots of hacking. mostly hacking
This commit is contained in:
64
src/components.rs
Normal file
64
src/components.rs
Normal file
@@ -0,0 +1,64 @@
|
||||
use wgpu::{TextureView, Buffer, BindGroup};
|
||||
use std::sync::Arc;
|
||||
use rapier3d::dynamics::{RigidBody, RigidBodyHandle};
|
||||
use rapier3d::geometry::ColliderHandle;
|
||||
use rapier3d::geometry::Collider as r3dCollider;
|
||||
|
||||
// a component is any type that is 'static, sized, send and sync
|
||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||
pub struct Position {
|
||||
pub x: f32,
|
||||
pub y: f32,
|
||||
pub z: f32,
|
||||
pub rot: cgmath::Quaternion<f32>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||
pub struct Color {
|
||||
pub r: f32,
|
||||
pub g: f32,
|
||||
pub b: f32,
|
||||
pub a: f32,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||
pub struct Velocity {
|
||||
pub dx: f32,
|
||||
pub dy: f32,
|
||||
pub rs: f32,
|
||||
}
|
||||
|
||||
#[derive(Clone, Default, PartialEq, Eq, Hash, Copy, Debug)]
|
||||
pub struct RangeCopy<Idx> {
|
||||
pub start: Idx,
|
||||
pub end: Idx,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct DirectionalLight {
|
||||
pub color: wgpu::Color,
|
||||
pub fov: f32,
|
||||
pub depth: RangeCopy<f32>,
|
||||
pub target_view: Arc<TextureView>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Mesh {
|
||||
pub index_buffer: Arc<Buffer>,
|
||||
pub index_count: usize,
|
||||
pub vertex_buffer: Arc<Buffer>,
|
||||
pub uniform_buffer: Arc<Buffer>,
|
||||
pub bind_group: Arc<BindGroup>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Physics {
|
||||
pub rigid_body: RigidBody,
|
||||
pub rigid_body_handle: Option<RigidBodyHandle>,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Collider {
|
||||
pub collider: r3dCollider,
|
||||
pub collider_handle: Option<ColliderHandle>,
|
||||
}
|
||||
Reference in New Issue
Block a user