Add compound shape support.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use crate::objects::node::{self, GraphicsNode};
|
||||
use kiss3d::window::Window;
|
||||
use na::Point3;
|
||||
use na::{Isometry3, Point3};
|
||||
use rapier::geometry::{ColliderHandle, ColliderSet};
|
||||
use rapier::math::Isometry;
|
||||
|
||||
@@ -9,11 +9,13 @@ pub struct Ball {
|
||||
base_color: Point3<f32>,
|
||||
gfx: GraphicsNode,
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
}
|
||||
|
||||
impl Ball {
|
||||
pub fn new(
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
radius: f32,
|
||||
color: Point3<f32>,
|
||||
window: &mut Window,
|
||||
@@ -28,6 +30,7 @@ impl Ball {
|
||||
base_color: color,
|
||||
gfx: node,
|
||||
collider,
|
||||
delta,
|
||||
};
|
||||
|
||||
// res.gfx.set_texture_from_file(&Path::new("media/kitten.png"), "kitten");
|
||||
@@ -55,7 +58,7 @@ impl Ball {
|
||||
colliders,
|
||||
self.collider,
|
||||
&self.color,
|
||||
&Isometry::identity(),
|
||||
&self.delta,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::objects::node::{self, GraphicsNode};
|
||||
use kiss3d::window;
|
||||
use na::Point3;
|
||||
use na::{Isometry3, Point3};
|
||||
use rapier::geometry::{ColliderHandle, ColliderSet};
|
||||
use rapier::math::{Isometry, Vector};
|
||||
|
||||
@@ -9,11 +9,13 @@ pub struct Box {
|
||||
base_color: Point3<f32>,
|
||||
gfx: GraphicsNode,
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
}
|
||||
|
||||
impl Box {
|
||||
pub fn new(
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
half_extents: Vector<f32>,
|
||||
color: Point3<f32>,
|
||||
window: &mut window::Window,
|
||||
@@ -29,6 +31,7 @@ impl Box {
|
||||
base_color: color,
|
||||
gfx: node,
|
||||
collider,
|
||||
delta,
|
||||
};
|
||||
|
||||
res.gfx.set_color(color.x, color.y, color.z);
|
||||
@@ -55,7 +58,7 @@ impl Box {
|
||||
colliders,
|
||||
self.collider,
|
||||
&self.color,
|
||||
&Isometry::identity(),
|
||||
&self.delta,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::objects::node::{self, GraphicsNode};
|
||||
use kiss3d::window;
|
||||
use na::Point3;
|
||||
use na::{Isometry3, Point3};
|
||||
use rapier::geometry::{self, ColliderHandle, ColliderSet};
|
||||
use rapier::math::Isometry;
|
||||
|
||||
@@ -9,11 +9,13 @@ pub struct Capsule {
|
||||
base_color: Point3<f32>,
|
||||
gfx: GraphicsNode,
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
}
|
||||
|
||||
impl Capsule {
|
||||
pub fn new(
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
capsule: &geometry::Capsule,
|
||||
color: Point3<f32>,
|
||||
window: &mut window::Window,
|
||||
@@ -30,6 +32,7 @@ impl Capsule {
|
||||
base_color: color,
|
||||
gfx: node,
|
||||
collider,
|
||||
delta,
|
||||
};
|
||||
|
||||
res.gfx.set_color(color.x, color.y, color.z);
|
||||
@@ -50,7 +53,7 @@ impl Capsule {
|
||||
colliders,
|
||||
self.collider,
|
||||
&self.color,
|
||||
&Isometry::identity(),
|
||||
&self.delta,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::objects::node::{self, GraphicsNode};
|
||||
use kiss3d::window::Window;
|
||||
use na::Point3;
|
||||
use na::{Isometry3, Point3};
|
||||
use rapier::geometry::{ColliderHandle, ColliderSet};
|
||||
use rapier::math::Isometry;
|
||||
|
||||
@@ -9,11 +9,13 @@ pub struct Cone {
|
||||
base_color: Point3<f32>,
|
||||
gfx: GraphicsNode,
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
}
|
||||
|
||||
impl Cone {
|
||||
pub fn new(
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
half_height: f32,
|
||||
radius: f32,
|
||||
color: Point3<f32>,
|
||||
@@ -29,6 +31,7 @@ impl Cone {
|
||||
base_color: color,
|
||||
gfx: node,
|
||||
collider,
|
||||
delta,
|
||||
};
|
||||
|
||||
// res.gfx.set_texture_from_file(&Path::new("media/kitten.png"), "kitten");
|
||||
@@ -56,7 +59,7 @@ impl Cone {
|
||||
colliders,
|
||||
self.collider,
|
||||
&self.color,
|
||||
&Isometry::identity(),
|
||||
&self.delta,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ use crate::math::Vector;
|
||||
use crate::math::{Isometry, Point};
|
||||
use crate::objects::node::{self, GraphicsNode};
|
||||
use kiss3d::window::Window;
|
||||
use na::Point3;
|
||||
use na::{Isometry3, Point3};
|
||||
use rapier::geometry::{ColliderHandle, ColliderSet};
|
||||
|
||||
pub struct Convex {
|
||||
@@ -13,11 +13,13 @@ pub struct Convex {
|
||||
base_color: Point3<f32>,
|
||||
gfx: GraphicsNode,
|
||||
body: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
}
|
||||
|
||||
impl Convex {
|
||||
pub fn new(
|
||||
body: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
vertices: Vec<Point<f32>>,
|
||||
#[cfg(feature = "dim3")] indices: Vec<Point<u32>>,
|
||||
color: Point3<f32>,
|
||||
@@ -39,6 +41,7 @@ impl Convex {
|
||||
base_color: color,
|
||||
gfx: node,
|
||||
body,
|
||||
delta,
|
||||
};
|
||||
|
||||
// res.gfx.set_texture_from_file(&Path::new("media/kitten.png"), "kitten");
|
||||
@@ -66,7 +69,7 @@ impl Convex {
|
||||
colliders,
|
||||
self.body,
|
||||
&self.color,
|
||||
&Isometry::identity(),
|
||||
&self.delta,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use crate::objects::node::{self, GraphicsNode};
|
||||
use kiss3d::window::Window;
|
||||
use na::Point3;
|
||||
use na::{Isometry3, Point3};
|
||||
use rapier::geometry::{ColliderHandle, ColliderSet};
|
||||
use rapier::math::Isometry;
|
||||
|
||||
@@ -9,11 +9,13 @@ pub struct Cylinder {
|
||||
base_color: Point3<f32>,
|
||||
gfx: GraphicsNode,
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
}
|
||||
|
||||
impl Cylinder {
|
||||
pub fn new(
|
||||
collider: ColliderHandle,
|
||||
delta: Isometry3<f32>,
|
||||
half_height: f32,
|
||||
radius: f32,
|
||||
color: Point3<f32>,
|
||||
@@ -29,6 +31,7 @@ impl Cylinder {
|
||||
base_color: color,
|
||||
gfx: node,
|
||||
collider,
|
||||
delta,
|
||||
};
|
||||
|
||||
// res.gfx.set_texture_from_file(&Path::new("media/kitten.png"), "kitten");
|
||||
@@ -56,7 +59,7 @@ impl Cylinder {
|
||||
colliders,
|
||||
self.collider,
|
||||
&self.color,
|
||||
&Isometry::identity(),
|
||||
&self.delta,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user