Comments (2)
RustBCA determines if a point is inside a trimesh in a similar way to the ray casting solution to the point-in-polygon problem.
First, it checks if the point is inside the bounding box volume of the mesh. If so, it then raycasts in an arbitrary direction, in this case (1.0, 0.0, 0.0). If there are no intersections with the mesh, it is outside the mesh. If there are, it then determines if the first face intersected by that ray is an inside face or an outside face by comparing the direction of the normal to the direction of the ray. This is where the code will break when normals are not all outward-facing.
If the mesh is not watertight, there may be regions of the interior where this ray fails to intersect with the trimesh even for points inside the mesh, resulting in erroneous "not inside" determinations. Hope this helps!
from rustbca.
I see, thank you.
from rustbca.
Related Issues (20)
- [benchmark] Experimental backscattering data and IMINTDYN
- [feature] replace dependence on geo with parry2d-f64
- [bug] Error while running the example
- [question] apparent rarely occurring infinite loop at high energies for certain CPR rootfinder parameters with the combined Kr-C-Morse potential HOT 3
- [question] Memory management with C bindings HOT 11
- [bug] Direction vector multiplied by length unit when input as points (results unaffected due to later normalization) HOT 1
- [bug] installation fails on MacOS HOT 2
- [bug] Issue with generate_rustbca_input in scripts HOT 1
- [benchmark] Comparison to Results in 'Nuclear Stopping Powers for DFT Potentials with an Attractive Well'
- [feature] Customizable low energy electronic stopping mode
- [bug?] Trimesh cannot detect particles inside the object? HOT 8
- [benchmark] Xenon on Carbon Sputtering Yields HOT 3
- [benchmark] D on Be implantation profiles from MD
- [bug] Carbon Z in materials.py should be a float HOT 1
- [question] Error in trimesh implementation despite watertight and fix_normals? HOT 3
- [bug] No specific error message associated with Mesh2D inputs that have zero-length electronic stopping correction factor lists
- Most .toml examples in the examples/ directory won't run HOT 5
- [feature] Add comment to example input files specifying input mode HOT 1
- [bug] Error in Bohdansky sputtering yield formula in formulas.py
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rustbca.