Appearance
fossil_self_intersection
Source: src/lib/fossil_self_intersection.f90
Dependencies
Contents
- intersection_pair_t
- find_self_intersections
- brute_force_pairs
- traverse_node_pair
- enumerate_leaf_pair
- push_pair
- bboxes_overlap
- share_any_vertex
- vertex_coincident
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
MAX_CHILDREN | integer(kind=I4P) | parameter |
Derived Types
intersection_pair_t
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
a | integer(kind=I4P) | ||
b | integer(kind=I4P) | ||
p | type(vector_R8P) | ||
q | type(vector_R8P) |
Subroutines
find_self_intersections
fortran
subroutine find_self_intersections(facet, tree, pairs, status)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
facet | type(facet_object) | in | ||
tree | type(aabb_tree_object) | in | target | |
pairs | type(intersection_pair_t) | out | allocatable | |
status | integer(kind=I4P) | out | optional |
Call graph
brute_force_pairs
fortran
subroutine brute_force_pairs(facet, buf, nfound)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
facet | type(facet_object) | in | ||
buf | type(intersection_pair_t) | inout | allocatable | |
nfound | integer(kind=I4P) | inout |
Call graph
traverse_node_pair
Attributes: recursive
fortran
subroutine traverse_node_pair(facet, tree, na, nb, buf, nfound)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
facet | type(facet_object) | in | ||
tree | type(aabb_tree_object) | in | ||
na | integer(kind=I4P) | in | ||
nb | integer(kind=I4P) | in | ||
buf | type(intersection_pair_t) | inout | allocatable | |
nfound | integer(kind=I4P) | inout |
Call graph
enumerate_leaf_pair
fortran
subroutine enumerate_leaf_pair(facet, tree, na, nb, buf, nfound)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
facet | type(facet_object) | in | ||
tree | type(aabb_tree_object) | in | ||
na | integer(kind=I4P) | in | ||
nb | integer(kind=I4P) | in | ||
buf | type(intersection_pair_t) | inout | allocatable | |
nfound | integer(kind=I4P) | inout |
Call graph
push_pair
fortran
subroutine push_pair(buf, nfound, a, b, p, q)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
buf | type(intersection_pair_t) | inout | allocatable | |
nfound | integer(kind=I4P) | inout | ||
a | integer(kind=I4P) | in | ||
b | integer(kind=I4P) | in | ||
p | type(vector_R8P) | in | ||
q | type(vector_R8P) | in |
Call graph
Functions
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
share_any_vertex
Attributes: pure
Returns: logical
fortran
function share_any_vertex(fa, fb) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
fa | type(facet_object) | in | ||
fb | type(facet_object) | in |
Call graph
vertex_coincident
Attributes: pure
Returns: logical
fortran
function vertex_coincident(va, vb) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
va | type(vector_R8P) | in | ||
vb | type(vector_R8P) | in |
Call graph