fast_winding_number
fast_winding_number(Q, V, F)
Compute the winding number of a set of query points with respect to a triangle mesh.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
Q |
(n,3) numpy double array
|
Matrix of query points |
required |
V |
(m,3) numpy double array
|
Matrix of mesh vertices |
required |
F |
(p,3) numpy int array
|
Matrix of triangle indices |
required |
Returns:
Name | Type | Description |
---|---|---|
W |
(n,) numpy double array
|
Vector of winding numbers (0 if outside, 1 if inside) |
See Also
lazy_cage.
Notes
This function is a wrapper around the C++ implementation of the winding number algorithm by Barrill et al. (2018).
Examples:
v,f = gpytoolbox.read_mesh("bunny.obj") # Read a mesh
v = gpytoolbox.normalize_points(v) # Normalize mesh
# Generate query points
P = 2*np.random.rand(num_samples,3)-4
# Compute winding numbers
W = gpytoolbox.fast_winding_number(P,v,f)
# W will be zero for points outside the mesh and one for points inside the mesh
Source code in src/gpytoolbox/fast_winding_number.py
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|