Appearance
fossil_dt
Source: src/lib/fossil_dt.f90
Dependencies
Contents
- triangle_t
- triangulation_t
- dt_build
- cdt_build
- dt_insert_points
- install_super_triangle
- collect_cavity
- retriangulate_cavity
- patch_neighbor
- recover_segment
- build_crossing_list
- find_edge
- mark_edge_constrained
- find_crossing_edge
- flip_edge
- strip_super_triangle
- triangle_vertices
- locate_triangle
- point_in_triangle
- in_circumcircle
- segment_crosses
- neighbor_edge
- side2d
- is_quad_convex
- which_vertex
- restoration_sweep
- num_triangles
Variables
| Name | Type | Attributes | Description |
|---|---|---|---|
SUPER_OFFSET | integer(kind=I4P) | parameter | |
DT_STATUS_OK | integer(kind=I4P) | parameter | |
DT_STATUS_CROSSING_CONSTRAINTS | integer(kind=I4P) | parameter | |
DT_STATUS_BAD_SEGMENT | integer(kind=I4P) | parameter | |
DT_STATUS_RECOVERY_FAILED | integer(kind=I4P) | parameter |
Derived Types
triangle_t
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
v | integer(kind=I4P) | ||
nbr | integer(kind=I4P) | ||
constrained | logical | ||
active | logical |
triangulation_t
Components
| Name | Type | Attributes | Description |
|---|---|---|---|
n_input | integer(kind=I4P) | ||
n_tri_alloc | integer(kind=I4P) | ||
n_tri_used | integer(kind=I4P) | ||
px | real(kind=R8P) | allocatable | |
py | real(kind=R8P) | allocatable | |
tri | type(triangle_t) | allocatable |
Type-Bound Procedures
| Name | Attributes | Description |
|---|---|---|
num_triangles | pass(self) | |
triangle_vertices | pass(self) |
Subroutines
dt_build
fortran
subroutine dt_build(tri, points)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | out | ||
points | real(kind=R8P) | in |
Call graph
cdt_build
fortran
subroutine cdt_build(tri, points, segments, status)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | out | ||
points | real(kind=R8P) | in | ||
segments | integer(kind=I4P) | in | ||
status | integer(kind=I4P) | out | optional |
Call graph
dt_insert_points
fortran
subroutine dt_insert_points(tri, points)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | out | ||
points | real(kind=R8P) | in |
Call graph
install_super_triangle
fortran
subroutine install_super_triangle(tri)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout |
Call graph
collect_cavity
fortran
subroutine collect_cavity(tri, p_idx, host, cavity, n_cavity)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout | ||
p_idx | integer(kind=I4P) | in | ||
host | integer(kind=I4P) | in | ||
cavity | integer(kind=I4P) | out | ||
n_cavity | integer(kind=I4P) | out |
Call graph
retriangulate_cavity
fortran
subroutine retriangulate_cavity(tri, p_idx, cavity, n_cavity)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout | ||
p_idx | integer(kind=I4P) | in | ||
cavity | integer(kind=I4P) | in | ||
n_cavity | integer(kind=I4P) | in |
Call graph
patch_neighbor
Attributes: pure
fortran
subroutine patch_neighbor(tri, side, old, new)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout | ||
side | integer(kind=I4P) | in | ||
old | integer(kind=I4P) | in | ||
new | integer(kind=I4P) | in |
Call graph
recover_segment
fortran
subroutine recover_segment(tri, va, vb, status)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout | ||
va | integer(kind=I4P) | in | ||
vb | integer(kind=I4P) | in | ||
status | integer(kind=I4P) | out |
Call graph
build_crossing_list
fortran
subroutine build_crossing_list(tri, va, vb, chain_t, chain_e, n_chain, status)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
va | integer(kind=I4P) | in | ||
vb | integer(kind=I4P) | in | ||
chain_t | integer(kind=I4P) | out | ||
chain_e | integer(kind=I4P) | out | ||
n_chain | integer(kind=I4P) | out | ||
status | integer(kind=I4P) | out |
Call graph
find_edge
Attributes: pure
fortran
subroutine find_edge(tri, va, vb, t, e)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
va | integer(kind=I4P) | in | ||
vb | integer(kind=I4P) | in | ||
t | integer(kind=I4P) | out | ||
e | integer(kind=I4P) | out |
Call graph
mark_edge_constrained
fortran
subroutine mark_edge_constrained(tri, t, e)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout | ||
t | integer(kind=I4P) | in | ||
e | integer(kind=I4P) | in |
Call graph
find_crossing_edge
fortran
subroutine find_crossing_edge(tri, va, vb, t, e, status)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
va | integer(kind=I4P) | in | ||
vb | integer(kind=I4P) | in | ||
t | integer(kind=I4P) | out | ||
e | integer(kind=I4P) | out | ||
status | integer(kind=I4P) | out |
Call graph
flip_edge
fortran
subroutine flip_edge(tri, t, e)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout | ||
t | integer(kind=I4P) | in | ||
e | integer(kind=I4P) | in |
Call graph
strip_super_triangle
fortran
subroutine strip_super_triangle(tri)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout |
Call graph
triangle_vertices
Attributes: pure
fortran
subroutine triangle_vertices(self, k, v)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(triangulation_t) | in | ||
k | integer(kind=I4P) | in | ||
v | integer(kind=I4P) | out |
Call graph
Functions
locate_triangle
Returns: integer(kind=I4P)
fortran
function locate_triangle(tri, x, y) result(host)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
x | real(kind=R8P) | in | ||
y | real(kind=R8P) | in |
Call graph
point_in_triangle
Attributes: pure
Returns: logical
fortran
function point_in_triangle(tri, t, x, y) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
t | integer(kind=I4P) | in | ||
x | real(kind=R8P) | in | ||
y | real(kind=R8P) | in |
Call graph
in_circumcircle
Attributes: pure
Returns: logical
fortran
function in_circumcircle(tri, t, p_idx) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
t | integer(kind=I4P) | in | ||
p_idx | integer(kind=I4P) | in |
Call graph
segment_crosses
Attributes: pure
Returns: logical
fortran
function segment_crosses(ax, ay, bx, by, ux, uy, vx, vy) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ax | real(kind=R8P) | in | ||
ay | real(kind=R8P) | in | ||
bx | real(kind=R8P) | in | ||
by | real(kind=R8P) | in | ||
ux | real(kind=R8P) | in | ||
uy | real(kind=R8P) | in | ||
vx | real(kind=R8P) | in | ||
vy | real(kind=R8P) | in |
Call graph
neighbor_edge
Attributes: pure
Returns: integer(kind=I4P)
fortran
function neighbor_edge(tri, t, e) result(e2)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
t | integer(kind=I4P) | in | ||
e | integer(kind=I4P) | in |
Call graph
side2d
Attributes: pure
Returns: real(kind=R8P)
fortran
function side2d(ax, ay, bx, by, px, py) result(s)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
ax | real(kind=R8P) | in | ||
ay | real(kind=R8P) | in | ||
bx | real(kind=R8P) | in | ||
by | real(kind=R8P) | in | ||
px | real(kind=R8P) | in | ||
py | real(kind=R8P) | in |
Call graph
is_quad_convex
Attributes: pure
Returns: logical
fortran
function is_quad_convex(tri, t, e, t2, e2) result(yes)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
t | integer(kind=I4P) | in | ||
e | integer(kind=I4P) | in | ||
t2 | integer(kind=I4P) | in | ||
e2 | integer(kind=I4P) | in |
Call graph
which_vertex
Attributes: pure
Returns: integer(kind=I4P)
fortran
function which_vertex(tri, t, vid) result(k)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | in | ||
t | integer(kind=I4P) | in | ||
vid | integer(kind=I4P) | in |
Call graph
restoration_sweep
Returns: logical
fortran
function restoration_sweep(tri) result(any_flipped)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
tri | type(triangulation_t) | inout |
Call graph
num_triangles
Attributes: pure
Returns: integer(kind=I4P)
fortran
function num_triangles(self) result(n)Arguments
| Name | Type | Intent | Attributes | Description |
|---|---|---|---|---|
self | class(triangulation_t) | in |
Call graph