fossil_arrangement
Source: src/lib/fossil_arrangement.f90
Dependencies
Contents
- cut_list_t
- arrangement_t
- arrangement_initialize
- arrangement_collect_intersections
- collect_brute_force
- traverse_cross_pair
- enumerate_leaf_cross_pair
- register_point
- merge_points
- separate_rounded
- sort_xyz
- sort_points
- propagate_edge_points
- unique_ids
- append_steiner
- append_partner
- cut_sources
- collect_pair
- append_segment
- project_to_plane
- lift_from_plane
- arrangement_retriangulate
- push
- coplanar_partner
- xyz_of
- bboxes_overlap
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
MAX_CHILDREN | integer(kind=I4P) | parameter | |
ARR_STATUS_OK | integer(kind=I4P) | parameter | |
ARR_STATUS_CDT_FAILED | integer(kind=I4P) | parameter |
Derived Types
cut_list_t
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
n_segments | integer(kind=I4P) | ||
seg | integer(kind=I4P) | allocatable | |
src | integer(kind=I4P) | allocatable | |
n_steiner | integer(kind=I4P) | ||
steiner | integer(kind=I4P) | allocatable | |
n_coplanar | integer(kind=I4P) | ||
coplanar | integer(kind=I4P) | allocatable |
arrangement_t
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
n_a | integer(kind=I4P) | ||
n_b | integer(kind=I4P) | ||
facet | type(facet_object) | allocatable | |
owner | integer(kind=I4P) | allocatable | |
cut | type(cut_list_t) | allocatable | |
tree_a | type(aabb_tree_object) | pointer | |
tree_b | type(aabb_tree_object) | pointer | |
n_pts | integer(kind=I4P) | ||
pts | type(implicit_point_t) | allocatable | |
xyz | real(kind=R8P) | allocatable | |
corner | integer(kind=I4P) | allocatable |
Subroutines
arrangement_initialize
fortran
subroutine arrangement_initialize(arr, facet_a, tree_a, facet_b, tree_b)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | out | ||
facet_a | type(facet_object) | in | target | |
tree_a | type(aabb_tree_object) | in | target | |
facet_b | type(facet_object) | in | target | |
tree_b | type(aabb_tree_object) | in | target |
Call graph
arrangement_collect_intersections
fortran
subroutine arrangement_collect_intersections(arr)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout |
Call graph
collect_brute_force
fortran
subroutine collect_brute_force(arr)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout |
Call graph
traverse_cross_pair
Attributes: recursive
fortran
subroutine traverse_cross_pair(arr, na, nb)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout | ||
na | integer(kind=I4P) | in | ||
nb | integer(kind=I4P) | in |
Call graph
enumerate_leaf_cross_pair
fortran
subroutine enumerate_leaf_cross_pair(arr, na, nb)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout | ||
na | integer(kind=I4P) | in | ||
nb | integer(kind=I4P) | in |
Call graph
register_point
fortran
subroutine register_point(arr, x, id)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout | ||
x | type(implicit_point_t) | in | ||
id | integer(kind=I4P) | out |
Call graph
merge_points
fortran
subroutine merge_points(arr)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout |
Call graph
separate_rounded
fortran
subroutine separate_rounded(arr)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout |
Call graph
sort_xyz
fortran
subroutine sort_xyz(xyz, key)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
xyz | real(kind=R8P) | in | ||
key | integer(kind=I4P) | inout |
Call graph
sort_points
fortran
subroutine sort_points(pts, key, mode)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
pts | type(implicit_point_t) | in | ||
key | integer(kind=I4P) | inout | ||
mode | integer(kind=I4P) | in |
Call graph
propagate_edge_points
fortran
subroutine propagate_edge_points(arr)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout |
Call graph
unique_ids
fortran
subroutine unique_ids(cut, ids, n, with_steiner)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
cut | type(cut_list_t) | in | ||
ids | integer(kind=I4P) | out | allocatable | |
n | integer(kind=I4P) | out | ||
with_steiner | logical | in |
Call graph
append_steiner
fortran
subroutine append_steiner(cut, id)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
cut | type(cut_list_t) | inout | ||
id | integer(kind=I4P) | in |
Call graph
append_partner
fortran
subroutine append_partner(cut, g)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
cut | type(cut_list_t) | inout | ||
g | integer(kind=I4P) | in |
Call graph
cut_sources
fortran
subroutine cut_sources(arr, gi, ip, iq, g, ng)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | in | ||
gi | integer(kind=I4P) | in | ||
ip | integer(kind=I4P) | in | ||
iq | integer(kind=I4P) | in | ||
g | integer(kind=I4P) | out | ||
ng | integer(kind=I4P) | out |
Call graph
collect_pair
fortran
subroutine collect_pair(arr, gi, gj)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | inout | ||
gi | integer(kind=I4P) | in | ||
gj | integer(kind=I4P) | in |
Call graph
append_segment
fortran
subroutine append_segment(cut, ip, iq, g)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
cut | type(cut_list_t) | inout | ||
ip | integer(kind=I4P) | in | ||
iq | integer(kind=I4P) | in | ||
g | integer(kind=I4P) | in |
Call graph
project_to_plane
Attributes: pure
fortran
subroutine project_to_plane(facet, p3d, u, v)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
facet | type(facet_object) | in | ||
p3d | type(vector_R8P) | in | ||
u | real(kind=R8P) | out | ||
v | real(kind=R8P) | out |
Call graph
lift_from_plane
Attributes: pure
fortran
subroutine lift_from_plane(facet, u, v, p3d)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
facet | type(facet_object) | in | ||
u | real(kind=R8P) | in | ||
v | real(kind=R8P) | in | ||
p3d | type(vector_R8P) | out |
Call graph
arrangement_retriangulate
fortran
subroutine arrangement_retriangulate(arr, sub_facet, sub_owner, sub_source, status, sub_pid, sub_cut)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | in | ||
sub_facet | type(facet_object) | out | allocatable | |
sub_owner | integer(kind=I4P) | out | allocatable | |
sub_source | integer(kind=I4P) | out | allocatable | |
status | integer(kind=I4P) | out | optional | |
sub_pid | integer(kind=I4P) | out | allocatable, optional | |
sub_cut | logical | out | allocatable, optional |
Call graph
push
fortran
subroutine push(buf_facet, buf_owner, buf_source, used, cap, f, owner, source, buf_pid)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
buf_facet | type(facet_object) | inout | allocatable | |
buf_owner | integer(kind=I4P) | inout | allocatable | |
buf_source | integer(kind=I4P) | inout | allocatable | |
used | integer(kind=I4P) | inout | ||
cap | integer(kind=I4P) | inout | ||
f | type(facet_object) | in | ||
owner | integer(kind=I4P) | in | ||
source | integer(kind=I4P) | in | ||
buf_pid | integer(kind=I4P) | inout | allocatable |
Call graph
Functions
coplanar_partner
Returns: integer(kind=I4P)
fortran
function coplanar_partner(arr, gi, pid) result(partner)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
arr | type(arrangement_t) | in | ||
gi | integer(kind=I4P) | in | ||
pid | integer(kind=I4P) | in |
Call graph
xyz_of
Attributes: pure
Returns: real(kind=R8P)
fortran
function xyz_of(a) result(r)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
a | type(vector_R8P) | in |
Call graph
bboxes_overlap
Attributes: pure
Returns: logical
fortran
function bboxes_overlap(fa, fb) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
fa | type(facet_object) | in | ||
fb | type(facet_object) | in |
Call graph