fossil_alpha_wrap
Source: src/lib/fossil_alpha_wrap.f90
Dependencies
Contents
- awrap_grid_t
- compute_facet_bbox
- awrap_run
- wrap_level
- unlin
- grid_distances
- grid_reach
- grid_carve
- edt_1d
- grid_well_composed
- grid_bin_facets
- grid_extract
- closest_point
- sort_by_cost
- grid_pad
- grid_cells
- udist
- cell_centre
- lin
- edge_point
- boxes_overlap
- pair_crosses
- plane_relation
- float_pair
- cross_arr
- coplanar_overlap
- normal3
- degenerate
- same_xyz
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
AWRAP_STATUS_OK | integer(kind=I4P) | parameter | |
AWRAP_STATUS_BAD_INPUT | integer(kind=I4P) | parameter | |
AWRAP_STATUS_DEGENERATE | integer(kind=I4P) | parameter | |
AWRAP_STATUS_NOT_CONVERGED | integer(kind=I4P) | parameter | |
AWRAP_DEFAULT_MAX_OUTER_ITERATIONS | integer(kind=I4P) | parameter | |
AWRAP_CELLS_PER_ALPHA | real(kind=R8P) | parameter | |
AWRAP_MAX_CELLS | real(kind=R8P) | parameter | |
AWRAP_CULL_BLOCK | integer(kind=I4P) | parameter | |
AWRAP_EDT_FAR | real(kind=R8P) | parameter | |
AWRAP_TRACE_STEPS | integer(kind=I4P) | parameter | |
AWRAP_TRACE_TOL | real(kind=R8P) | parameter | |
AWRAP_BISECTION_STEPS | integer(kind=I4P) | parameter | |
AWRAP_FLOAT_ON | real(kind=R8P) | parameter | |
AWRAP_FLOAT_BAND | real(kind=R8P) | parameter | |
PLANE_EXACT | integer(kind=I4P) | parameter | |
PLANE_APART | integer(kind=I4P) | parameter | |
PLANE_COPLANAR | integer(kind=I4P) | parameter | |
AWRAP_PUSH_ROUNDS | integer(kind=I4P) | parameter | |
AWRAP_COLLAPSE_EDGE | real(kind=R8P) | parameter | |
AWRAP_COLLAPSE_QUALITY | real(kind=R8P) | parameter | |
AWRAP_COLLAPSE_ROUNDS | integer(kind=I4P) | parameter |
Derived Types
awrap_grid_t
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
o | type(vector_R8P) | ||
h | real(kind=R8P) | ||
rho | real(kind=R8P) | ||
eps | real(kind=R8P) | ||
n | integer(kind=I4P) | ||
nvertex | integer(kind=I4P) | ||
u | real(kind=R8P) | allocatable | |
reached | logical | allocatable | |
dsq | real(kind=R8P) | allocatable | |
site | integer(kind=I4P) | allocatable | |
carved | logical | allocatable | |
bin_first | integer(kind=I4P) | allocatable | |
bin_facet | integer(kind=I4P) | allocatable |
Subroutines
compute_facet_bbox
Attributes: pure
subroutine compute_facet_bbox(facet, bmin, bmax)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
facet | type(facet_object) | in | ||
bmin | type(vector_R8P) | out | ||
bmax | type(vector_R8P) | out |
Call graph
awrap_run
subroutine awrap_run(input_facet, input_tree, alpha, offset, max_iterations, wrapped_facets, status)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
input_facet | type(facet_object) | in | ||
input_tree | type(aabb_tree_object) | in | ||
alpha | real(kind=R8P) | in | ||
offset | real(kind=R8P) | in | ||
max_iterations | integer(kind=I4P) | in | optional | |
wrapped_facets | type(facet_object) | out | allocatable | |
status | integer(kind=I4P) | out | optional |
Call graph
wrap_level
subroutine wrap_level(input_facet, input_tree, bmin, bmax, alpha, offset, h, wrap, contact)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
input_facet | type(facet_object) | in | ||
input_tree | type(aabb_tree_object) | in | ||
bmin | type(vector_R8P) | in | ||
bmax | type(vector_R8P) | in | ||
alpha | real(kind=R8P) | in | ||
offset | real(kind=R8P) | in | ||
h | real(kind=R8P) | in | ||
wrap | type(facet_object) | out | allocatable | |
contact | logical | out |
Call graph
unlin
Attributes: pure
subroutine unlin(n, l, i, j, k)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
n | integer(kind=I4P) | in | ||
l | integer(kind=I4P) | in | ||
i | integer(kind=I4P) | out | ||
j | integer(kind=I4P) | out | ||
k | integer(kind=I4P) | out |
Call graph
grid_distances
subroutine grid_distances(g, input_facet, input_tree)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
g | type(awrap_grid_t) | inout | ||
input_facet | type(facet_object) | in | ||
input_tree | type(aabb_tree_object) | in |
Call graph
grid_reach
subroutine grid_reach(g)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
g | type(awrap_grid_t) | inout |
Call graph
grid_carve
subroutine grid_carve(g)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
g | type(awrap_grid_t) | inout |
Call graph
edt_1d
Attributes: pure
subroutine edt_1d(f, d, arg)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
f | real(kind=R8P) | in | ||
d | real(kind=R8P) | out | ||
arg | integer(kind=I4P) | out |
Call graph
grid_well_composed
subroutine grid_well_composed(g)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
g | type(awrap_grid_t) | inout |
Call graph
grid_bin_facets
subroutine grid_bin_facets(g, input_facet)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
g | type(awrap_grid_t) | inout | ||
input_facet | type(facet_object) | in |
Call graph
grid_extract
subroutine grid_extract(g, input_facet, input_tree, wrap, contact)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
g | type(awrap_grid_t) | inout | ||
input_facet | type(facet_object) | in | ||
input_tree | type(aabb_tree_object) | in | ||
wrap | type(facet_object) | out | allocatable | |
contact | logical | out |
Call graph
closest_point
subroutine closest_point(input_facet, input_tree, x, cp, u)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
input_facet | type(facet_object) | in | ||
input_tree | type(aabb_tree_object) | in | ||
x | type(vector_R8P) | in | ||
cp | type(vector_R8P) | out | ||
u | real(kind=R8P) | out |
Call graph
sort_by_cost
subroutine sort_by_cost(cost, order)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
cost | real(kind=R8P) | in | ||
order | integer(kind=I4P) | out |
Call graph
Functions
grid_pad
Attributes: pure
Returns: real(kind=R8P)
function grid_pad(alpha, offset, h) result(pad)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
alpha | real(kind=R8P) | in | ||
offset | real(kind=R8P) | in | ||
h | real(kind=R8P) | in |
Call graph
grid_cells
Attributes: pure
Returns: real(kind=R8P)
function grid_cells(bmin, bmax, pad, h) result(n)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
bmin | type(vector_R8P) | in | ||
bmax | type(vector_R8P) | in | ||
pad | real(kind=R8P) | in | ||
h | real(kind=R8P) | in |
Call graph
udist
Returns: real(kind=R8P)
function udist(input_facet, input_tree, p) result(u)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
input_facet | type(facet_object) | in | ||
input_tree | type(aabb_tree_object) | in | ||
p | type(vector_R8P) | in |
Call graph
cell_centre
Attributes: pure
Returns: type(vector_R8P)
function cell_centre(o, h, i, j, k) result(p)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
o | type(vector_R8P) | in | ||
h | real(kind=R8P) | in | ||
i | integer(kind=I4P) | in | ||
j | integer(kind=I4P) | in | ||
k | integer(kind=I4P) | in |
Call graph
lin
Attributes: pure
Returns: integer(kind=I4P)
function lin(n, i, j, k) result(l)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
n | integer(kind=I4P) | in | ||
i | integer(kind=I4P) | in | ||
j | integer(kind=I4P) | in | ||
k | integer(kind=I4P) | in |
Call graph
edge_point
Returns: type(vector_R8P)
function edge_point(g, input_facet, input_tree, cc, cs) result(p)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
g | type(awrap_grid_t) | in | ||
input_facet | type(facet_object) | in | ||
input_tree | type(aabb_tree_object) | in | ||
cc | integer(kind=I4P) | in | ||
cs | integer(kind=I4P) | in |
Call graph
boxes_overlap
Attributes: pure
Returns: logical
function boxes_overlap(ta, tb) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ta | type(vector_R8P) | in | ||
tb | type(vector_R8P) | in |
pair_crosses
Returns: logical
function pair_crosses(ta, tb) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ta | type(vector_R8P) | in | ||
tb | type(vector_R8P) | in |
Call graph
plane_relation
Attributes: pure
Returns: integer(kind=I4P)
function plane_relation(ta, tb) result(rel)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ta | type(vector_R8P) | in | ||
tb | type(vector_R8P) | in |
Call graph
float_pair
Attributes: pure
Returns: integer(kind=I4P)
function float_pair(ta, tb) result(res)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ta | type(vector_R8P) | in | ||
tb | type(vector_R8P) | in |
Call graph
cross_arr
Attributes: pure
Returns: real(kind=R8P)
function cross_arr(a, b) result(c)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
a | real(kind=R8P) | in | ||
b | real(kind=R8P) | in |
Call graph
coplanar_overlap
Attributes: pure
Returns: logical
function coplanar_overlap(ta, tb) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ta | type(vector_R8P) | in | ||
tb | type(vector_R8P) | in |
Call graph
normal3
Attributes: pure
Returns: real(kind=R8P)
function normal3(t) result(n)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
t | type(vector_R8P) | in |
Call graph
degenerate
Attributes: pure
Returns: logical
function degenerate(tri) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(vector_R8P) | in |
Call graph
same_xyz
Attributes: pure
Returns: logical
function same_xyz(a, b) result(same)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
a | type(vector_R8P) | in | ||
b | type(vector_R8P) | in |
Call graph