Skip to content

fossil_segment_bvh ​

Source: src/lib/fossil_segment_bvh.f90

Dependencies

Contents ​

Variables ​

NameTypeAttributesDescription
LEAF_SIZEinteger(kind=I4P)parameter
BUCKETSinteger(kind=I4P)parameter
MAX_SAH_DEPTHinteger(kind=I4P)parameter
STACK_SIZEinteger(kind=I4P)parameter
FEATURE_NONEinteger(kind=I4P)parameter
FEATURE_SEGMENTinteger(kind=I4P)parameter
FEATURE_VERTEX_STARTinteger(kind=I4P)parameter
FEATURE_VERTEX_ENDinteger(kind=I4P)parameter

Derived Types ​

segment_bvh ​

Components ​

NameTypeAttributesDescription
nodes_numberinteger(kind=I4P)
segments_numberinteger(kind=I4P)
depthinteger(kind=I4P)
lo_ureal(kind=R8P)allocatable
lo_vreal(kind=R8P)allocatable
hi_ureal(kind=R8P)allocatable
hi_vreal(kind=R8P)allocatable
leftinteger(kind=I4P)allocatable
rightinteger(kind=I4P)allocatable
firstinteger(kind=I4P)allocatable
lastinteger(kind=I4P)allocatable
a_ureal(kind=R8P)allocatable
a_vreal(kind=R8P)allocatable
d_ureal(kind=R8P)allocatable
d_vreal(kind=R8P)allocatable
len2real(kind=R8P)allocatable
seg_idinteger(kind=I4P)allocatable
wn_cureal(kind=R8P)allocatable
wn_cvreal(kind=R8P)allocatable
wn_dureal(kind=R8P)allocatable
wn_dvreal(kind=R8P)allocatable
wn_creal(kind=R8P)allocatable
wn_diag2real(kind=R8P)allocatable

Type-Bound Procedures ​

NameAttributesDescription
buildpass(self)
closestpass(self)
closest_brutepass(self)
destroypass(self)
segments_in_boxpass(self)
refit_verticespass(self)
winding_numberpass(self)
winding_number_brutepass(self)

Subroutines ​

build ​

Attributes: pure

fortran
subroutine build(self, au, av, bu, bv, ids)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)inout
aureal(kind=R8P)in
avreal(kind=R8P)in
bureal(kind=R8P)in
bvreal(kind=R8P)in
idsinteger(kind=I4P)inoptional

Call graph

closest ​

Attributes: pure

fortran
subroutine closest(self, pu, pv, d2, k, t, feature)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
d2real(kind=R8P)out
kinteger(kind=I4P)out
treal(kind=R8P)out
featureinteger(kind=I4P)out

Call graph

segment_closest_oac ​

Attributes: pure

fortran
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

NameTypeIntentAttributesDescription
lo_ureal(kind=R8P)in
lo_vreal(kind=R8P)in
hi_ureal(kind=R8P)in
hi_vreal(kind=R8P)in
leftinteger(kind=I4P)in
rightinteger(kind=I4P)in
firstinteger(kind=I4P)in
lastinteger(kind=I4P)in
a_ureal(kind=R8P)in
a_vreal(kind=R8P)in
d_ureal(kind=R8P)in
d_vreal(kind=R8P)in
len2real(kind=R8P)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
d2real(kind=R8P)out
kinteger(kind=I4P)out
treal(kind=R8P)out
featureinteger(kind=I4P)out

Call graph

closest_brute ​

Attributes: pure

fortran
subroutine closest_brute(self, pu, pv, d2, k, t, feature)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
d2real(kind=R8P)out
kinteger(kind=I4P)out
treal(kind=R8P)out
featureinteger(kind=I4P)out

Call graph

destroy ​

Attributes: elemental

fortran
subroutine destroy(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)inout

Call graph

refit_vertices ​

Attributes: pure

fortran
subroutine refit_vertices(self, u, v, next)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)inout
ureal(kind=R8P)in
vreal(kind=R8P)in
nextinteger(kind=I4P)in

Call graph

segments_in_box ​

Attributes: pure

fortran
subroutine segments_in_box(self, lo_u, lo_v, hi_u, hi_v, ids, n)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)in
lo_ureal(kind=R8P)in
lo_vreal(kind=R8P)in
hi_ureal(kind=R8P)in
hi_vreal(kind=R8P)in
idsinteger(kind=I4P)inoutallocatable
ninteger(kind=I4P)out

Call graph

segment_point_distance2 ​

Attributes: pure

fortran
subroutine segment_point_distance2(au, av, du, dv, len2, pu, pv, d2, t, feature)

Arguments

NameTypeIntentAttributesDescription
aureal(kind=R8P)in
avreal(kind=R8P)in
dureal(kind=R8P)in
dvreal(kind=R8P)in
len2real(kind=R8P)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
d2real(kind=R8P)out
treal(kind=R8P)out
featureinteger(kind=I4P)out

Call graph

build_winding_cache ​

Attributes: pure

fortran
subroutine build_winding_cache(self)

Arguments

NameTypeIntentAttributesDescription
selftype(segment_bvh)inout

Call graph

split ​

Attributes: pure

fortran
subroutine split(perm, cu, cv, sb, median_only, mid)

Arguments

NameTypeIntentAttributesDescription
perminteger(kind=I4P)inout
cureal(kind=R8P)in
cvreal(kind=R8P)in
sbreal(kind=R8P)in
median_onlylogicalin
midinteger(kind=I4P)out

Call graph

Functions ​

winding_number ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function winding_number(self, pu, pv, beta) result(w)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
betareal(kind=R8P)inoptional

Call graph

segment_winding_number_oac ​

Attributes: pure

Returns: real(kind=R8P)

fortran
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

NameTypeIntentAttributesDescription
leftinteger(kind=I4P)in
rightinteger(kind=I4P)in
firstinteger(kind=I4P)in
lastinteger(kind=I4P)in
a_ureal(kind=R8P)in
a_vreal(kind=R8P)in
d_ureal(kind=R8P)in
d_vreal(kind=R8P)in
wn_cureal(kind=R8P)in
wn_cvreal(kind=R8P)in
wn_dureal(kind=R8P)in
wn_dvreal(kind=R8P)in
wn_creal(kind=R8P)in
wn_diag2real(kind=R8P)in
pureal(kind=R8P)in
pvreal(kind=R8P)in
b2real(kind=R8P)in

Call graph

winding_number_brute ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function winding_number_brute(self, pu, pv) result(w)

Arguments

NameTypeIntentAttributesDescription
selfclass(segment_bvh)in
pureal(kind=R8P)in
pvreal(kind=R8P)in

Call graph

segment_winding ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function segment_winding(au, av, du, dv, pu, pv) result(theta)

Arguments

NameTypeIntentAttributesDescription
aureal(kind=R8P)in
avreal(kind=R8P)in
dureal(kind=R8P)in
dvreal(kind=R8P)in
pureal(kind=R8P)in
pvreal(kind=R8P)in

Call graph

box_d2_oac ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function box_d2_oac(lo_u, lo_v, hi_u, hi_v, pu, pv) result(d2)

Arguments

NameTypeIntentAttributesDescription
lo_ureal(kind=R8P)in
lo_vreal(kind=R8P)in
hi_ureal(kind=R8P)in
hi_vreal(kind=R8P)in
pureal(kind=R8P)in
pvreal(kind=R8P)in

Call graph

bucket_of ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function bucket_of(c, cmin, cmax) result(b)

Arguments

NameTypeIntentAttributesDescription
creal(kind=R8P)in
cminreal(kind=R8P)in
cmaxreal(kind=R8P)in

Call graph