Skip to content

fossil_dt

Source: src/lib/fossil_dt.f90

Dependencies

Contents

Variables

NameTypeAttributesDescription
SUPER_OFFSETinteger(kind=I4P)parameter
DT_STATUS_OKinteger(kind=I4P)parameter
DT_STATUS_CROSSING_CONSTRAINTSinteger(kind=I4P)parameter
DT_STATUS_BAD_SEGMENTinteger(kind=I4P)parameter
DT_STATUS_RECOVERY_FAILEDinteger(kind=I4P)parameter

Derived Types

triangle_t

Components

NameTypeAttributesDescription
vinteger(kind=I4P)
nbrinteger(kind=I4P)
constrainedlogical
activelogical

triangulation_t

Components

NameTypeAttributesDescription
n_inputinteger(kind=I4P)
n_tri_allocinteger(kind=I4P)
n_tri_usedinteger(kind=I4P)
pxreal(kind=R8P)allocatable
pyreal(kind=R8P)allocatable
tritype(triangle_t)allocatable

Type-Bound Procedures

NameAttributesDescription
num_trianglespass(self)
triangle_verticespass(self)

Subroutines

dt_build

fortran
subroutine dt_build(tri, points)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)out
pointsreal(kind=R8P)in

Call graph

cdt_build

fortran
subroutine cdt_build(tri, points, segments, status)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)out
pointsreal(kind=R8P)in
segmentsinteger(kind=I4P)in
statusinteger(kind=I4P)outoptional

Call graph

dt_insert_points

fortran
subroutine dt_insert_points(tri, points)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)out
pointsreal(kind=R8P)in

Call graph

install_super_triangle

fortran
subroutine install_super_triangle(tri)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout

Call graph

collect_cavity

fortran
subroutine collect_cavity(tri, p_idx, host, cavity, n_cavity)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout
p_idxinteger(kind=I4P)in
hostinteger(kind=I4P)in
cavityinteger(kind=I4P)out
n_cavityinteger(kind=I4P)out

Call graph

retriangulate_cavity

fortran
subroutine retriangulate_cavity(tri, p_idx, cavity, n_cavity)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout
p_idxinteger(kind=I4P)in
cavityinteger(kind=I4P)in
n_cavityinteger(kind=I4P)in

Call graph

patch_neighbor

Attributes: pure

fortran
subroutine patch_neighbor(tri, side, old, new)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout
sideinteger(kind=I4P)in
oldinteger(kind=I4P)in
newinteger(kind=I4P)in

Call graph

recover_segment

fortran
subroutine recover_segment(tri, va, vb, status)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout
vainteger(kind=I4P)in
vbinteger(kind=I4P)in
statusinteger(kind=I4P)out

Call graph

build_crossing_list

fortran
subroutine build_crossing_list(tri, va, vb, chain_t, chain_e, n_chain, status)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
vainteger(kind=I4P)in
vbinteger(kind=I4P)in
chain_tinteger(kind=I4P)out
chain_einteger(kind=I4P)out
n_chaininteger(kind=I4P)out
statusinteger(kind=I4P)out

Call graph

find_edge

Attributes: pure

fortran
subroutine find_edge(tri, va, vb, t, e)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
vainteger(kind=I4P)in
vbinteger(kind=I4P)in
tinteger(kind=I4P)out
einteger(kind=I4P)out

Call graph

mark_edge_constrained

fortran
subroutine mark_edge_constrained(tri, t, e)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout
tinteger(kind=I4P)in
einteger(kind=I4P)in

Call graph

find_crossing_edge

fortran
subroutine find_crossing_edge(tri, va, vb, t, e, status)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
vainteger(kind=I4P)in
vbinteger(kind=I4P)in
tinteger(kind=I4P)out
einteger(kind=I4P)out
statusinteger(kind=I4P)out

Call graph

flip_edge

fortran
subroutine flip_edge(tri, t, e)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout
tinteger(kind=I4P)in
einteger(kind=I4P)in

Call graph

strip_super_triangle

fortran
subroutine strip_super_triangle(tri)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout

Call graph

triangle_vertices

Attributes: pure

fortran
subroutine triangle_vertices(self, k, v)

Arguments

NameTypeIntentAttributesDescription
selfclass(triangulation_t)in
kinteger(kind=I4P)in
vinteger(kind=I4P)out

Call graph

Functions

locate_triangle

Returns: integer(kind=I4P)

fortran
function locate_triangle(tri, x, y) result(host)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
xreal(kind=R8P)in
yreal(kind=R8P)in

Call graph

point_in_triangle

Attributes: pure

Returns: logical

fortran
function point_in_triangle(tri, t, x, y) result(yes)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
tinteger(kind=I4P)in
xreal(kind=R8P)in
yreal(kind=R8P)in

Call graph

in_circumcircle

Attributes: pure

Returns: logical

fortran
function in_circumcircle(tri, t, p_idx) result(yes)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
tinteger(kind=I4P)in
p_idxinteger(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

NameTypeIntentAttributesDescription
axreal(kind=R8P)in
ayreal(kind=R8P)in
bxreal(kind=R8P)in
byreal(kind=R8P)in
uxreal(kind=R8P)in
uyreal(kind=R8P)in
vxreal(kind=R8P)in
vyreal(kind=R8P)in

Call graph

neighbor_edge

Attributes: pure

Returns: integer(kind=I4P)

fortran
function neighbor_edge(tri, t, e) result(e2)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
tinteger(kind=I4P)in
einteger(kind=I4P)in

Call graph

side2d

Attributes: pure

Returns: real(kind=R8P)

fortran
function side2d(ax, ay, bx, by, px, py) result(s)

Arguments

NameTypeIntentAttributesDescription
axreal(kind=R8P)in
ayreal(kind=R8P)in
bxreal(kind=R8P)in
byreal(kind=R8P)in
pxreal(kind=R8P)in
pyreal(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

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
tinteger(kind=I4P)in
einteger(kind=I4P)in
t2integer(kind=I4P)in
e2integer(kind=I4P)in

Call graph

which_vertex

Attributes: pure

Returns: integer(kind=I4P)

fortran
function which_vertex(tri, t, vid) result(k)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)in
tinteger(kind=I4P)in
vidinteger(kind=I4P)in

Call graph

restoration_sweep

Returns: logical

fortran
function restoration_sweep(tri) result(any_flipped)

Arguments

NameTypeIntentAttributesDescription
tritype(triangulation_t)inout

Call graph

num_triangles

Attributes: pure

Returns: integer(kind=I4P)

fortran
function num_triangles(self) result(n)

Arguments

NameTypeIntentAttributesDescription
selfclass(triangulation_t)in

Call graph