fossil_segment_bvh
Source: src/lib/fossil_segment_bvh.f90
Dependencies
Contents
- segment_bvh
- build
- closest
- segment_closest_oac
- closest_brute
- destroy
- refit_vertices
- segments_in_box
- segment_point_distance2
- build_winding_cache
- split
- winding_number
- segment_winding_number_oac
- winding_number_brute
- segment_winding
- box_d2_oac
- bucket_of
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
LEAF_SIZE | integer(kind=I4P) | parameter | |
BUCKETS | integer(kind=I4P) | parameter | |
MAX_SAH_DEPTH | integer(kind=I4P) | parameter | |
STACK_SIZE | integer(kind=I4P) | parameter | |
FEATURE_NONE | integer(kind=I4P) | parameter | |
FEATURE_SEGMENT | integer(kind=I4P) | parameter | |
FEATURE_VERTEX_START | integer(kind=I4P) | parameter | |
FEATURE_VERTEX_END | integer(kind=I4P) | parameter |
Derived Types
segment_bvh
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
nodes_number | integer(kind=I4P) | ||
segments_number | integer(kind=I4P) | ||
depth | integer(kind=I4P) | ||
lo_u | real(kind=R8P) | allocatable | |
lo_v | real(kind=R8P) | allocatable | |
hi_u | real(kind=R8P) | allocatable | |
hi_v | real(kind=R8P) | allocatable | |
left | integer(kind=I4P) | allocatable | |
right | integer(kind=I4P) | allocatable | |
first | integer(kind=I4P) | allocatable | |
last | integer(kind=I4P) | allocatable | |
a_u | real(kind=R8P) | allocatable | |
a_v | real(kind=R8P) | allocatable | |
d_u | real(kind=R8P) | allocatable | |
d_v | real(kind=R8P) | allocatable | |
len2 | real(kind=R8P) | allocatable | |
seg_id | integer(kind=I4P) | allocatable | |
wn_cu | real(kind=R8P) | allocatable | |
wn_cv | real(kind=R8P) | allocatable | |
wn_du | real(kind=R8P) | allocatable | |
wn_dv | real(kind=R8P) | allocatable | |
wn_c | real(kind=R8P) | allocatable | |
wn_diag2 | real(kind=R8P) | allocatable |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
build | pass(self) | |
closest | pass(self) | |
closest_brute | pass(self) | |
destroy | pass(self) | |
segments_in_box | pass(self) | |
refit_vertices | pass(self) | |
winding_number | pass(self) | |
winding_number_brute | pass(self) |
Subroutines
build
Attributes: pure
subroutine build(self, au, av, bu, bv, ids)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | inout | ||
au | real(kind=R8P) | in | ||
av | real(kind=R8P) | in | ||
bu | real(kind=R8P) | in | ||
bv | real(kind=R8P) | in | ||
ids | integer(kind=I4P) | in | optional |
Call graph
closest
Attributes: pure
subroutine closest(self, pu, pv, d2, k, t, feature)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in | ||
d2 | real(kind=R8P) | out | ||
k | integer(kind=I4P) | out | ||
t | real(kind=R8P) | out | ||
feature | integer(kind=I4P) | out |
Call graph
segment_closest_oac
Attributes: pure
subroutine segment_closest_oac(lo_u, lo_v, hi_u, hi_v, left, right, first, last, a_u, a_v, d_u, d_v, len2, pu, pv, d2, k, t, feature)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
lo_u | real(kind=R8P) | in | ||
lo_v | real(kind=R8P) | in | ||
hi_u | real(kind=R8P) | in | ||
hi_v | real(kind=R8P) | in | ||
left | integer(kind=I4P) | in | ||
right | integer(kind=I4P) | in | ||
first | integer(kind=I4P) | in | ||
last | integer(kind=I4P) | in | ||
a_u | real(kind=R8P) | in | ||
a_v | real(kind=R8P) | in | ||
d_u | real(kind=R8P) | in | ||
d_v | real(kind=R8P) | in | ||
len2 | real(kind=R8P) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in | ||
d2 | real(kind=R8P) | out | ||
k | integer(kind=I4P) | out | ||
t | real(kind=R8P) | out | ||
feature | integer(kind=I4P) | out |
Call graph
closest_brute
Attributes: pure
subroutine closest_brute(self, pu, pv, d2, k, t, feature)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in | ||
d2 | real(kind=R8P) | out | ||
k | integer(kind=I4P) | out | ||
t | real(kind=R8P) | out | ||
feature | integer(kind=I4P) | out |
Call graph
destroy
Attributes: elemental
subroutine destroy(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | inout |
Call graph
refit_vertices
Attributes: pure
subroutine refit_vertices(self, u, v, next)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | inout | ||
u | real(kind=R8P) | in | ||
v | real(kind=R8P) | in | ||
next | integer(kind=I4P) | in |
Call graph
segments_in_box
Attributes: pure
subroutine segments_in_box(self, lo_u, lo_v, hi_u, hi_v, ids, n)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | in | ||
lo_u | real(kind=R8P) | in | ||
lo_v | real(kind=R8P) | in | ||
hi_u | real(kind=R8P) | in | ||
hi_v | real(kind=R8P) | in | ||
ids | integer(kind=I4P) | inout | allocatable | |
n | integer(kind=I4P) | out |
Call graph
segment_point_distance2
Attributes: pure
subroutine segment_point_distance2(au, av, du, dv, len2, pu, pv, d2, t, feature)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
au | real(kind=R8P) | in | ||
av | real(kind=R8P) | in | ||
du | real(kind=R8P) | in | ||
dv | real(kind=R8P) | in | ||
len2 | real(kind=R8P) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in | ||
d2 | real(kind=R8P) | out | ||
t | real(kind=R8P) | out | ||
feature | integer(kind=I4P) | out |
Call graph
build_winding_cache
Attributes: pure
subroutine build_winding_cache(self)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | type(segment_bvh) | inout |
Call graph
split
Attributes: pure
subroutine split(perm, cu, cv, sb, median_only, mid)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
perm | integer(kind=I4P) | inout | ||
cu | real(kind=R8P) | in | ||
cv | real(kind=R8P) | in | ||
sb | real(kind=R8P) | in | ||
median_only | logical | in | ||
mid | integer(kind=I4P) | out |
Call graph
Functions
winding_number
Attributes: pure
Returns: real(kind=R8P)
function winding_number(self, pu, pv, beta) result(w)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in | ||
beta | real(kind=R8P) | in | optional |
Call graph
segment_winding_number_oac
Attributes: pure
Returns: real(kind=R8P)
function segment_winding_number_oac(left, right, first, last, a_u, a_v, d_u, d_v, wn_cu, wn_cv, wn_du, wn_dv, wn_c, wn_diag2, pu, pv, b2) result(w)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
left | integer(kind=I4P) | in | ||
right | integer(kind=I4P) | in | ||
first | integer(kind=I4P) | in | ||
last | integer(kind=I4P) | in | ||
a_u | real(kind=R8P) | in | ||
a_v | real(kind=R8P) | in | ||
d_u | real(kind=R8P) | in | ||
d_v | real(kind=R8P) | in | ||
wn_cu | real(kind=R8P) | in | ||
wn_cv | real(kind=R8P) | in | ||
wn_du | real(kind=R8P) | in | ||
wn_dv | real(kind=R8P) | in | ||
wn_c | real(kind=R8P) | in | ||
wn_diag2 | real(kind=R8P) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in | ||
b2 | real(kind=R8P) | in |
Call graph
winding_number_brute
Attributes: pure
Returns: real(kind=R8P)
function winding_number_brute(self, pu, pv) result(w)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(segment_bvh) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in |
Call graph
segment_winding
Attributes: pure
Returns: real(kind=R8P)
function segment_winding(au, av, du, dv, pu, pv) result(theta)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
au | real(kind=R8P) | in | ||
av | real(kind=R8P) | in | ||
du | real(kind=R8P) | in | ||
dv | real(kind=R8P) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in |
Call graph
box_d2_oac
Attributes: pure
Returns: real(kind=R8P)
function box_d2_oac(lo_u, lo_v, hi_u, hi_v, pu, pv) result(d2)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
lo_u | real(kind=R8P) | in | ||
lo_v | real(kind=R8P) | in | ||
hi_u | real(kind=R8P) | in | ||
hi_v | real(kind=R8P) | in | ||
pu | real(kind=R8P) | in | ||
pv | real(kind=R8P) | in |
Call graph
bucket_of
Attributes: pure
Returns: integer(kind=I4P)
function bucket_of(c, cmin, cmax) result(b)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
c | real(kind=R8P) | in | ||
cmin | real(kind=R8P) | in | ||
cmax | real(kind=R8P) | in |
Call graph