2 releases
0.1.1 | Apr 30, 2024 |
---|---|
0.1.0 | Apr 30, 2024 |
#2001 in Game dev
37KB
596 lines
Bevy MOps (Mesh Operations)
Getting started
// We convert from a "Bevy Mesh" to a `GIMesh` (Globally-positioned Index Mesh)
let mut a = GIMesh::from_mesh(mesh_a);
let b = GIMesh::from_mesh(mesh_b);
// slice `a` triangles by `b`
slice(&mut a, &b);
// seperates `a` into `inside` and `outside` of `b`
let output = seperate(&a, &b);
// Convert the `output` back to a "Bevy Mesh"
let output_mesh = output.inside.to_mesh().unwrap();
// ... Create a handle and apply it to an entity
Why convert to GIMesh
?
- Mesh Attributes are converted to Vectors (e.g.
Vec3
) - The Positions and Normals are converted from Local-space to World-space (and back), allowing position, rotation and scaling to effect the operations
Versions
bevy | bevy_mops |
---|---|
0.13 | 0.1 |
LICENSE
all code in this repository is dual-licensed under either:
- MIT License (LICENSE-MIT)
- Apache License, Version 2.0 (LICENSE-APACHE)
at your option.
Dependencies
~34–72MB
~1.5M SLoC