-
Notifications
You must be signed in to change notification settings - Fork 16
Example: Triangular Mesh Geometry
Jon Drobny edited this page Jan 24, 2024
·
9 revisions
Note that in order for meshes to work properly in RustBCA, the following must be true:
- meshes must consist of only triangles
- meshes must be "watertight" (e.g., check with trimesh:
mesh.is_watertight
must returnTrue
) - surface normals must point outwards (fix with trimesh:
mesh.fix_normals
)
Watertightness and other mesh properties can be tested with the trimesh
library on PyPi.
Using parry3d, RustBCA has an experimental feature to use full 3D triangular meshes. These are currently limited to homogeneous, single-mesh targets, but compound objects and inhomogeneity are planned features for triangular meshes.
To use this feature, run one of the examples below:
cargo run --release --features parry3d TRIMESH examples/tungsten_twist_trimesh.toml
cargo run --release --features parry3d TRIMESH examples/tungsten_tiles.toml
These examples can be plotted using rustbca.py
(requires toml
, shapely
, mayavi
, numpy
, matplotlib
):
from scripts.rustbca import *
do_trajectory_plot_3d('tungsten_twist_', input_file='examples/tungsten_twist_trimesh.toml')