move the bevel gear to the center
This commit is contained in:
parent
f5d578ccf3
commit
bde8936ad0
|
|
@ -67,8 +67,8 @@ pub enum BevelGearCap {
|
|||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct BevelGearVisual {
|
||||
pub inner_distance: f32,
|
||||
pub outer_distance: f32,
|
||||
pub pad_in: f32,
|
||||
pub pad_out: f32,
|
||||
}
|
||||
|
||||
pub fn make_mesh(
|
||||
|
|
@ -76,22 +76,23 @@ pub fn make_mesh(
|
|||
visual: &BevelGearVisual,
|
||||
shape: &BevelGearShape,
|
||||
) -> MeshIndexed<Vec3> {
|
||||
let inner_scale = visual.inner_distance / desc.pitch_distance();
|
||||
let outer_scale = visual.outer_distance / desc.pitch_distance();
|
||||
let inner_scale = (desc.pitch_distance() - visual.pad_in) / desc.pitch_distance();
|
||||
let outer_scale = (desc.pitch_distance() + visual.pad_out) / desc.pitch_distance();
|
||||
|
||||
let sides = shape.points.len();
|
||||
let mut mesh = MeshIndexed::new();
|
||||
mesh.vertices.reserve_exact(2 * sides + 2);
|
||||
mesh.faces.reserve_exact(4 * sides);
|
||||
for pt in shape.to_points() {
|
||||
let pt = vec3(pt.x, pt.y, desc.pitch_distance());
|
||||
mesh.vertices.extend([inner_scale * pt, outer_scale * pt]);
|
||||
let pt = vec3(pt.x, pt.y, 0.);
|
||||
mesh.vertices.extend([
|
||||
outer_scale * pt - visual.pad_out * Vec3::Z,
|
||||
inner_scale * pt + visual.pad_in * Vec3::Z,
|
||||
]);
|
||||
}
|
||||
let caps = mesh.vertices.len();
|
||||
mesh.vertices.extend([
|
||||
vec3(0., 0., visual.inner_distance),
|
||||
vec3(0., 0., visual.outer_distance),
|
||||
]);
|
||||
mesh.vertices
|
||||
.extend([vec3(0., 0., -visual.pad_out), vec3(0., 0., visual.pad_in)]);
|
||||
for k in 0..sides {
|
||||
let base1 = 2 * k;
|
||||
let base2 = 2 * ((k + 1) % sides);
|
||||
|
|
|
|||
|
|
@ -122,8 +122,8 @@ impl Core {
|
|||
let bevel_gear_mesh = bevel_gear::make_mesh(
|
||||
&bevel_gear_desc,
|
||||
&bevel_gear::BevelGearVisual {
|
||||
inner_distance: bevel_gear_desc.pitch_distance() - 4.0,
|
||||
outer_distance: bevel_gear_desc.pitch_distance(),
|
||||
pad_in: 4.,
|
||||
pad_out: 0.,
|
||||
},
|
||||
&bevel_gear::BevelGearShape::new_blank(&bevel_gear_desc, 60),
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user