Skip to content

fossil_curve_object ​

Source: src/lib/fossil_curve_object.f90

Dependencies

Contents ​

Variables ​

NameTypeAttributesDescription
CURVE_VALIDinteger(kind=I4P)parameter
CURVE_TOO_FEW_VERTICESinteger(kind=I4P)parameter
CURVE_ZERO_LENGTH_SEGMENTinteger(kind=I4P)parameter
CURVE_ZERO_AREA_LOOPinteger(kind=I4P)parameter
CURVE_WRONG_ORIENTATIONinteger(kind=I4P)parameter
CURVE_OPEN_LOOPinteger(kind=I4P)parameter
CURVE_SELF_INTERSECTINGinteger(kind=I4P)parameter

Derived Types ​

curve_object ​

Components ​

NameTypeAttributesDescription
normal_axisinteger(kind=I4P)
nvinteger(kind=I4P)
nlinteger(kind=I4P)
ureal(kind=R8P)allocatable
vreal(kind=R8P)allocatable
loop_startinteger(kind=I4P)allocatable
loop_ofinteger(kind=I4P)allocatable
loop_closedlogicalallocatable
nextinteger(kind=I4P)allocatable
previnteger(kind=I4P)allocatable
seg_lenreal(kind=R8P)allocatable
seg_nureal(kind=R8P)allocatable
seg_nvreal(kind=R8P)allocatable
pn_ureal(kind=R8P)allocatable
pn_vreal(kind=R8P)allocatable
loop_areareal(kind=R8P)allocatable
loop_body_integer(kind=I4P)allocatable
vertex_bodyinteger(kind=I4P)allocatable
bodies_numberinteger(kind=I4P)
seg_patchinteger(kind=I4P)allocatable
patch_namescharacter(len=64)allocatable
bminreal(kind=R8P)
bmaxreal(kind=R8P)
areareal(kind=R8P)
perimeterreal(kind=R8P)
centroidreal(kind=R8P)
bvhtype(segment_bvh)
is_on_devicelogical
thin_payreal(kind=R8P)allocatable
thin_nodereal(kind=R8P)allocatable
thin_builtlogical
thin_on_devicelogical

Type-Bound Procedures ​

NameAttributesDescription
adopt_loopspass(self)
get_patches_numberpass(self)
patch_namepass(self)
segment_patchpass(self)
set_patchpass(self)
distance_topass(self)
time_of_impactpass(self)
box_classify_manypass(self)
box_intersects_curvepass(self)
box_classify_many_devicepass(self)
tag_blockpass(self)
line_crossingspass(self)
cell_wall_fractionspass(self)
line_crossings_manypass(self)
line_crossings_many_devicepass(self)
cut_cellspass(self)
movepass(self)
state_changespass(self)
wall_distance_manypass(self)
curve_markerspass(self)
check_validitypass(self)
compute_distancepass(self)
distancepass(self)
destroypass(self)
distance_manypass(self)
distance_many_devicepass(self)
enter_devicepass(self)
query_manypass(self)
query_many_devicepass(self)
probe_manypass(self)
image_pointspass(self)
exit_devicepass(self)
get_areapass(self)
get_bmaxpass(self)
get_bminpass(self)
get_bodies_numberpass(self)
get_centroidpass(self)
loop_bodypass(self)
get_is_on_devicepass(self)
get_loop_areapass(self)
get_loop_rangepass(self)
get_loops_numberpass(self)
get_normal_axispass(self)
get_perimeterpass(self)
get_vertexpass(self)
get_nextpass(self)
get_vertices_numberpass(self)
is_loop_closedpass(self)
is_point_insidepass(self)
load_from_filepass(self)
mass_propertiespass(self)
deviationpass(self)
hausdorffpass(self)
feature_cornerspass(self)
thicknesspass(self)
thin_regionspass(self)
build_thinpass(self)
box_thin_manypass(self)
box_thin_many_devicepass(self)
nesting_depthpass(self)
repairpass(self)
save_into_filepass(self)
self_intersectionspass(self)
winding_numberpass(self)
winding_number_exactpass(self)
analyzepass(self)

curve_ccd_evaluator_t ​

Inheritance

Extends: ccd_evaluator_t

Components ​

NameTypeAttributesDescription
aclass(curve_object)pointer
bclass(curve_object)pointer
a0type(rigid_pose_2d_t)
a1type(rigid_pose_2d_t)
b0type(rigid_pose_2d_t)
b1type(rigid_pose_2d_t)
pareal(kind=R8P)
pbreal(kind=R8P)
sainteger(kind=I4P)
sbinteger(kind=I4P)
thareal(kind=R8P)
thbreal(kind=R8P)
dtareal(kind=R8P)
dtbreal(kind=R8P)
pairsinteger(kind=I4P)

Type-Bound Procedures ​

NameAttributesDescription
distancepass(self)
safe_steppass(self)

curve_evaluator_t ​

Inheritance

Extends: deviation_evaluator_2d_t

Components ​

NameTypeAttributesDescription
curvetype(curve_object)pointer
devicelogical

Type-Bound Procedures ​

NameAttributesDescription
evalpass(self)

Subroutines ​

distance_to ​

fortran
subroutine distance_to(self, other, distance, point_self, point_other, segment_self, segment_other, intersecting, status, pose_self, pose_other)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
otherclass(curve_object)in
distancereal(kind=R8P)out
point_selfreal(kind=R8P)outoptional
point_otherreal(kind=R8P)outoptional
segment_selfinteger(kind=I4P)outoptional
segment_otherinteger(kind=I4P)outoptional
intersectinglogicaloutoptional
statusinteger(kind=I4P)outoptional
pose_selftype(rigid_pose_2d_t)inoptional
pose_othertype(rigid_pose_2d_t)inoptional

Call graph

time_of_impact ​

fortran
subroutine time_of_impact(self, other, pose_self0, pose_self1, pose_other0, pose_other1, toi, status, tolerance, distance, point_self, point_other, segment_self, segment_other, iterations, max_iterations, directional, pairs)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)intarget
otherclass(curve_object)intarget
pose_self0type(rigid_pose_2d_t)in
pose_self1type(rigid_pose_2d_t)in
pose_other0type(rigid_pose_2d_t)in
pose_other1type(rigid_pose_2d_t)in
toireal(kind=R8P)out
statusinteger(kind=I4P)out
tolerancereal(kind=R8P)inoptional
distancereal(kind=R8P)outoptional
point_selfreal(kind=R8P)outoptional
point_otherreal(kind=R8P)outoptional
segment_selfinteger(kind=I4P)outoptional
segment_otherinteger(kind=I4P)outoptional
iterationsinteger(kind=I4P)outoptional
max_iterationsinteger(kind=I4P)inoptional
directionallogicalinoptional
pairsinteger(kind=I4P)outoptional

Call graph

first_impact_2d ​

fortran
subroutine first_impact_2d(curves, poses0, poses1, toi, pair, status, tolerance, directional, tested)

Arguments

NameTypeIntentAttributesDescription
curvestype(curve_object)intarget
poses0type(rigid_pose_2d_t)in
poses1type(rigid_pose_2d_t)in
toireal(kind=R8P)out
pairinteger(kind=I4P)out
statusinteger(kind=I4P)out
tolerancereal(kind=R8P)inoptional
directionallogicalinoptional
testedinteger(kind=I4P)outoptional

Call graph

segment_pair ​

fortran
subroutine segment_pair(a0, a1, b0, b1, d2, pa, pb, meet)

Arguments

NameTypeIntentAttributesDescription
a0real(kind=R8P)in
a1real(kind=R8P)in
b0real(kind=R8P)in
b1real(kind=R8P)in
d2real(kind=R8P)out
pareal(kind=R8P)out
pbreal(kind=R8P)out
meetlogicalout

Call graph

set_patch ​

fortran
subroutine set_patch(self, segments, name)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout
segmentsinteger(kind=I4P)in
namecharacter(len=*)in

Call graph

adopt_loops ​

fortran
subroutine adopt_loops(self, u, v, loop_sizes, normal_axis, closed, status, patches, patch_names)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout
ureal(kind=R8P)in
vreal(kind=R8P)in
loop_sizesinteger(kind=I4P)in
normal_axisinteger(kind=I4P)inoptional
closedlogicalinoptional
statusinteger(kind=I4P)outoptional
patchesinteger(kind=I4P)inoptional
patch_namescharacter(len=*)inoptional

Call graph

box_classify_many ​

fortran
subroutine box_classify_many(self, lo, hi, codes, radius, sign_algorithm, inside, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
loreal(kind=R8P)in
hireal(kind=R8P)in
codesinteger(kind=I4P)out
radiusreal(kind=R8P)inoptional
sign_algorithminteger(kind=I4P)inoptional
insidelogicaloutoptional
statusinteger(kind=I4P)outoptional

Call graph

box_classify_many_device ​

fortran
subroutine box_classify_many_device(self, lo, hi, codes, radius, sign_algorithm, inside, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inouttarget
loreal(kind=R8P)in
hireal(kind=R8P)in
codesinteger(kind=I4P)out
radiusreal(kind=R8P)inoptional
sign_algorithminteger(kind=I4P)inoptional
insidelogicaloutoptional
statusinteger(kind=I4P)outoptional

Call graph

tag_block ​

fortran
subroutine tag_block(self, x, y, band, tags, sign_algorithm, status, feature_band, feature_tags, feature_angle, thin_factor, thin_band, thin_tags)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
xreal(kind=R8P)in
yreal(kind=R8P)in
bandinteger(kind=I4P)in
tagsinteger(kind=I4P)out
sign_algorithminteger(kind=I4P)inoptional
statusinteger(kind=I4P)outoptional
feature_bandinteger(kind=I4P)inoptional
feature_tagsinteger(kind=I4P)outoptional
feature_anglereal(kind=R8P)inoptional
thin_factorreal(kind=R8P)inoptional
thin_bandinteger(kind=I4P)inoptional
thin_tagsinteger(kind=I4P)outoptional

Call graph

curve_thickness ​

fortran
subroutine curve_thickness(self, thickness, gap, method, cone_angle, rays, invalid, status, separation_angle)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
thicknessreal(kind=R8P)outallocatable, optional
gapreal(kind=R8P)outallocatable, optional
methodinteger(kind=I4P)inoptional
cone_anglereal(kind=R8P)inoptional
raysinteger(kind=I4P)inoptional
invalidinteger(kind=I4P)outoptional
statusinteger(kind=I4P)outoptional
separation_anglereal(kind=R8P)inoptional

Call graph

ray_first_2d ​

fortran
subroutine ray_first_2d(self, o, d, excl, t, hs)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
oreal(kind=R8P)in
dreal(kind=R8P)in
exclinteger(kind=I4P)in
treal(kind=R8P)out
hsinteger(kind=I4P)out

curve_thin_regions ​

fortran
subroutine curve_thin_regions(self, thickness, gap, h, factor, region, region_length, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
thicknessreal(kind=R8P)inoptional
gapreal(kind=R8P)inoptional
hreal(kind=R8P)in
factorreal(kind=R8P)in
regioninteger(kind=I4P)outallocatable
region_lengthreal(kind=R8P)outallocatable
statusinteger(kind=I4P)outoptional

Call graph

curve_build_thin ​

fortran
subroutine curve_build_thin(self, thickness, gap, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout
thicknessreal(kind=R8P)inoptional
gapreal(kind=R8P)inoptional
statusinteger(kind=I4P)outoptional

Call graph

curve_drop_thin ​

fortran
subroutine curve_drop_thin(self)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)inout

Call graph

curve_box_thin_many ​

fortran
subroutine curve_box_thin_many(self, lo, hi, factor, touched, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
loreal(kind=R8P)in
hireal(kind=R8P)in
factorreal(kind=R8P)in
touchedlogicalout
statusinteger(kind=I4P)outoptional

Call graph

curve_box_thin_many_device ​

fortran
subroutine curve_box_thin_many_device(self, lo, hi, factor, touched, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inouttarget
loreal(kind=R8P)in
hireal(kind=R8P)in
factorreal(kind=R8P)in
touchedlogicalout
statusinteger(kind=I4P)outoptional

Call graph

line_crossings ​

fortran
subroutine line_crossings(self, axis, a, t0, t1, t, segments, entering, n, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
axisinteger(kind=I4P)in
areal(kind=R8P)in
t0real(kind=R8P)in
t1real(kind=R8P)in
treal(kind=R8P)outallocatable
segmentsinteger(kind=I4P)outallocatable
enteringlogicaloutallocatable
ninteger(kind=I4P)out
statusinteger(kind=I4P)outoptional

Call graph

cell_wall_fractions ​

fortran
subroutine cell_wall_fractions(self, x, y, frac, inside, bad_lines, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
xreal(kind=R8P)in
yreal(kind=R8P)in
fracreal(kind=R8P)out
insidelogicalout
bad_linesinteger(kind=I4P)outoptional
statusinteger(kind=I4P)outoptional

Call graph

cut_cells ​

fortran
subroutine cut_cells(self, x, y, cut, status, intervals, moments_order, boundaries, quadrature)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
xreal(kind=R8P)in
yreal(kind=R8P)in
cuttype(cut_cells_2d_t)out
statusinteger(kind=I4P)outoptional
intervalslogicalinoptional
moments_orderinteger(kind=I4P)inoptional
boundarieslogicalinoptional
quadraturelogicalinoptional

Call graph

line_crossings_many ​

fortran
subroutine line_crossings_many(self, axis, a, t0, t1, t, segments, entering, counts, overflow, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
axisinteger(kind=I4P)in
areal(kind=R8P)in
t0real(kind=R8P)in
t1real(kind=R8P)in
treal(kind=R8P)out
segmentsinteger(kind=I4P)out
enteringlogicalout
countsinteger(kind=I4P)out
overflowlogicalout
statusinteger(kind=I4P)outoptional

Call graph

line_crossings_many_device ​

fortran
subroutine line_crossings_many_device(self, axis, a, t0, t1, t, segments, entering, counts, overflow, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inouttarget
axisinteger(kind=I4P)in
areal(kind=R8P)in
t0real(kind=R8P)in
t1real(kind=R8P)in
treal(kind=R8P)out
segmentsinteger(kind=I4P)out
enteringlogicalout
countsinteger(kind=I4P)out
overflowlogicalout
statusinteger(kind=I4P)outoptional

Call graph

distance_many ​

Attributes: recursive

fortran
subroutine distance_many(self, points, distances, is_signed, sign_algorithm, status, pose)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
pointsreal(kind=R8P)in
distancesreal(kind=R8P)out
is_signedlogicalinoptional
sign_algorithminteger(kind=I4P)inoptional
statusinteger(kind=I4P)outoptional
posetype(rigid_pose_2d_t)inoptional

Call graph

distance_many_device ​

Attributes: recursive

fortran
subroutine distance_many_device(self, points, distances, is_signed, sign_algorithm, status, pose)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inouttarget
pointsreal(kind=R8P)in
distancesreal(kind=R8P)out
is_signedlogicalinoptional
sign_algorithminteger(kind=I4P)inoptional
statusinteger(kind=I4P)outoptional
posetype(rigid_pose_2d_t)inoptional

Call graph

query_many ​

Attributes: recursive

fortran
subroutine query_many(self, points, distances, closest_points, segments, vertices, normals, bodies, is_signed, sign_algorithm, ambiguous, second_foot_points, rel_tolerance, foot_tolerance, status, pose, curvatures, feature_distances, feature_angle, patches)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
pointsreal(kind=R8P)in
distancesreal(kind=R8P)out
closest_pointsreal(kind=R8P)outoptional
segmentsinteger(kind=I4P)outoptional
verticesinteger(kind=I4P)outoptional
normalsreal(kind=R8P)outoptional
bodiesinteger(kind=I4P)outoptional
is_signedlogicalinoptional
sign_algorithminteger(kind=I4P)inoptional
ambiguouslogicaloutoptional
second_foot_pointsreal(kind=R8P)outoptional
rel_tolerancereal(kind=R8P)inoptional
foot_tolerancereal(kind=R8P)inoptional
statusinteger(kind=I4P)outoptional
posetype(rigid_pose_2d_t)inoptional
curvaturesreal(kind=R8P)outoptional
feature_distancesreal(kind=R8P)outoptional
feature_anglereal(kind=R8P)inoptional
patchesinteger(kind=I4P)outoptional

Call graph

curve_markers ​

fortran
subroutine curve_markers(self, dx, centroids, lengths, normals, spacing_fraction, spacings, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
dxreal(kind=R8P)in
centroidsreal(kind=R8P)outallocatable
lengthsreal(kind=R8P)outallocatable
normalsreal(kind=R8P)outallocatable
spacing_fractionreal(kind=R8P)outoptional
spacingsreal(kind=R8P)outallocatable, optional
statusinteger(kind=I4P)outoptional

query_many_device ​

Attributes: recursive

fortran
subroutine query_many_device(self, points, distances, closest_points, segments, vertices, normals, bodies, is_signed, sign_algorithm, status, pose, feature_distances, feature_angle, patches)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inouttarget
pointsreal(kind=R8P)in
distancesreal(kind=R8P)out
closest_pointsreal(kind=R8P)outoptional
segmentsinteger(kind=I4P)outoptional
verticesinteger(kind=I4P)outoptional
normalsreal(kind=R8P)outoptional
bodiesinteger(kind=I4P)outoptional
is_signedlogicalinoptional
sign_algorithminteger(kind=I4P)inoptional
statusinteger(kind=I4P)outoptional
posetype(rigid_pose_2d_t)inoptional
feature_distancesreal(kind=R8P)outoptional
feature_anglereal(kind=R8P)inoptional
patchesinteger(kind=I4P)outoptional

Call graph

probe_many ​

fortran
subroutine probe_many(self, points, lengths, probe_points, visible, foot_points, normals, status, patches)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
pointsreal(kind=R8P)in
lengthsreal(kind=R8P)in
probe_pointsreal(kind=R8P)out
visiblelogicalout
foot_pointsreal(kind=R8P)outoptional
normalsreal(kind=R8P)outoptional
statusinteger(kind=I4P)outoptional
patchesinteger(kind=I4P)outoptional

Call graph

image_points ​

fortran
subroutine image_points(self, points, images, visible, foot_points, status, patches)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
pointsreal(kind=R8P)in
imagesreal(kind=R8P)out
visiblelogicaloutoptional
foot_pointsreal(kind=R8P)outoptional
statusinteger(kind=I4P)outoptional
patchesinteger(kind=I4P)outoptional

Call graph

enter_device ​

fortran
subroutine enter_device(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout

Call graph

exit_device ​

fortran
subroutine exit_device(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout

Call graph

destroy ​

Attributes: elemental

fortran
subroutine destroy(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout

Call graph

get_loop_range ​

Attributes: pure

fortran
subroutine get_loop_range(self, l, first, last)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
linteger(kind=I4P)in
firstinteger(kind=I4P)out
lastinteger(kind=I4P)out

Call graph

compute_distance ​

Attributes: pure

fortran
subroutine compute_distance(self, p, distance, closest_point, closest_segment, closest_vertex, is_signed, use_brute_force, sign_algorithm, normal, body)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
preal(kind=R8P)in
distancereal(kind=R8P)out
closest_pointreal(kind=R8P)outoptional
closest_segmentinteger(kind=I4P)outoptional
closest_vertexinteger(kind=I4P)outoptional
is_signedlogicalinoptional
use_brute_forcelogicalinoptional
sign_algorithminteger(kind=I4P)inoptional
normalreal(kind=R8P)outoptional
bodyinteger(kind=I4P)outoptional

Call graph

deviation ​

fortran
subroutine deviation(self, other, lower, upper, mean, rms, per_vertex, tolerance, samples_per_length, max_segments, samples, created, device, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
othertype(curve_object)intarget
lowerreal(kind=R8P)outoptional
upperreal(kind=R8P)outoptional
meanreal(kind=R8P)outoptional
rmsreal(kind=R8P)outoptional
per_vertexreal(kind=R8P)outallocatable, optional
tolerancereal(kind=R8P)inoptional
samples_per_lengthreal(kind=R8P)inoptional
max_segmentsinteger(kind=I4P)inoptional
samplesinteger(kind=I4P)outoptional
createdinteger(kind=I4P)outoptional
devicelogicalinoptional
statusinteger(kind=I4P)outoptional

Call graph

hausdorff ​

fortran
subroutine hausdorff(self, other, lower, upper, tolerance, samples_per_length, max_segments, device, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
othertype(curve_object)in
lowerreal(kind=R8P)outoptional
upperreal(kind=R8P)outoptional
tolerancereal(kind=R8P)inoptional
samples_per_lengthreal(kind=R8P)inoptional
max_segmentsinteger(kind=I4P)inoptional
devicelogicalinoptional
statusinteger(kind=I4P)outoptional

Call graph

feature_corners ​

fortran
subroutine feature_corners(self, corners, angle, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
cornersinteger(kind=I4P)outallocatable
anglereal(kind=R8P)inoptional
statusinteger(kind=I4P)outoptional

Call graph

corner_distances ​

fortran
subroutine corner_distances(self, points, angle, d, device)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
pointsreal(kind=R8P)in
anglereal(kind=R8P)inoptional
dreal(kind=R8P)out
devicelogicalinoptional

Call graph

curve_evaluator_eval ​

fortran
subroutine curve_evaluator_eval(self, points, distances, closest, segments)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_evaluator_t)in
pointsreal(kind=R8P)in
distancesreal(kind=R8P)out
closestreal(kind=R8P)out
segmentsinteger(kind=I4P)out

Call graph

curve_ccd_distance ​

fortran
subroutine curve_ccd_distance(self, s, d)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_ccd_evaluator_t)inout
sreal(kind=R8P)in
dreal(kind=R8P)out

Call graph

curve_ccd_safe_step ​

fortran
subroutine curve_ccd_safe_step(self, s, tolerance, cap, step)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_ccd_evaluator_t)inout
sreal(kind=R8P)in
tolerancereal(kind=R8P)in
capreal(kind=R8P)in
stepreal(kind=R8P)out

Call graph

load_from_file ​

fortran
subroutine load_from_file(self, file_name, normal_axis, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout
file_namecharacter(len=*)in
normal_axisinteger(kind=I4P)inoptional
statusinteger(kind=I4P)outoptional

Call graph

mass_properties ​

fortran
subroutine mass_properties(self, mass, center, second_moments, polar_moment, principal_moments, principal_angle, density, about, area, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
massreal(kind=R8P)outoptional
centerreal(kind=R8P)outoptional
second_momentsreal(kind=R8P)outoptional
polar_momentreal(kind=R8P)outoptional
principal_momentsreal(kind=R8P)outoptional
principal_anglereal(kind=R8P)outoptional
densityreal(kind=R8P)inoptional
aboutreal(kind=R8P)inoptional
areareal(kind=R8P)outoptional
statusinteger(kind=I4P)outoptional

Call graph

repair ​

fortran
subroutine repair(self, tolerance, gaps_closed, vertices_merged, loops_removed, loops_reversed, loops_open)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout
tolerancereal(kind=R8P)in
gaps_closedinteger(kind=I4P)outoptional
vertices_mergedinteger(kind=I4P)outoptional
loops_removedinteger(kind=I4P)outoptional
loops_reversedinteger(kind=I4P)outoptional
loops_openinteger(kind=I4P)outoptional

Call graph

save_into_file ​

fortran
subroutine save_into_file(self, file_name, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
file_namecharacter(len=*)in
statusinteger(kind=I4P)outoptional

Call graph

self_intersections ​

Attributes: pure

fortran
subroutine self_intersections(self, pairs, n)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
pairsinteger(kind=I4P)inoutallocatable
ninteger(kind=I4P)out

Call graph

wall_distance_many ​

fortran
subroutine wall_distance_many(self, points, distances, bodies, cutoff, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
pointsreal(kind=R8P)in
distancesreal(kind=R8P)out
bodiesinteger(kind=I4P)out
cutoffreal(kind=R8P)inoptional
statusinteger(kind=I4P)outoptional

Call graph

state_changes ​

fortran
subroutine state_changes(self, pose0, pose1, points, fresh, dead, sign_algorithm, checked, status)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
pose0type(rigid_pose_2d_t)in
pose1type(rigid_pose_2d_t)in
pointsreal(kind=R8P)in
freshlogicalout
deadlogicalout
sign_algorithminteger(kind=I4P)inoptional
checkedinteger(kind=I4P)outoptional
statusinteger(kind=I4P)outoptional

Call graph

move ​

fortran
subroutine move(self, pose)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout
posetype(rigid_pose_2d_t)in

Call graph

curve_metrics ​

Attributes: pure

fortran
subroutine curve_metrics(self)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)inout

Call graph

analyze ​

Attributes: pure

fortran
subroutine analyze(self)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)inout

Call graph

compute_bodies ​

Attributes: pure

fortran
subroutine compute_bodies(self)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)inout

Call graph

curve_query_oac ​

Attributes: pure

fortran
subroutine curve_query_oac(lo_u, lo_v, hi_u, hi_v, left, right, first, last, a_u, a_v, d_u, d_v, len2, seg_id, next, u, v, pn_u, pn_v, seg_nu, seg_nv, vbody, wn_cu, wn_cv, wn_du, wn_dv, wn_c, wn_diag2, pu, pv, signed, fwn, d, cpu, cpv, sg, vx, nu, nv, b)

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
seg_idinteger(kind=I4P)in
nextinteger(kind=I4P)in
ureal(kind=R8P)in
vreal(kind=R8P)in
pn_ureal(kind=R8P)in
pn_vreal(kind=R8P)in
seg_nureal(kind=R8P)in
seg_nvreal(kind=R8P)in
vbodyinteger(kind=I4P)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
signedlogicalin
fwnlogicalin
dreal(kind=R8P)out
cpureal(kind=R8P)out
cpvreal(kind=R8P)out
sginteger(kind=I4P)out
vxinteger(kind=I4P)out
nureal(kind=R8P)out
nvreal(kind=R8P)out
binteger(kind=I4P)out

Call graph

second_foot_2d ​

Attributes: pure

fortran
subroutine second_foot_2d(self, p, cp1, d1, rel, foot_tol, found, cp2)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
preal(kind=R8P)in
cp1real(kind=R8P)in
d1real(kind=R8P)in
relreal(kind=R8P)in
foot_tolreal(kind=R8P)in
foundlogicalout
cp2real(kind=R8P)out

Call graph

curve_crossings_core ​

fortran
subroutine curve_crossings_core(self, axis, a, t0, t1, t, ids, es, n)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
axisinteger(kind=I4P)in
areal(kind=R8P)in
t0real(kind=R8P)in
t1real(kind=R8P)in
treal(kind=R8P)outallocatable
idsinteger(kind=I4P)outallocatable
eslogicaloutallocatable
ninteger(kind=I4P)out

Call graph

Functions ​

get_patches_number ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function get_patches_number(self) result(n)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

patch_name ​

Attributes: pure

Returns: character(len=:)

fortran
function patch_name(self, i) result(name)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
iinteger(kind=I4P)in

Call graph

segment_patch ​

Attributes: elemental

Returns: integer(kind=I4P)

fortran
function segment_patch(self, i) result(p)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
iinteger(kind=I4P)in

Call graph

box_intersects_curve ​

Attributes: pure

Returns: logical

fortran
function box_intersects_curve(self, lo, hi) result(cut)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
loreal(kind=R8P)in
hireal(kind=R8P)in

Call graph

vertex_curvature ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function vertex_curvature(self, i) result(kappa)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
iinteger(kind=I4P)in

Call graph

foot_curvature_2d ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function foot_curvature_2d(self, sg, cp) result(kappa)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
sginteger(kind=I4P)in
cpreal(kind=R8P)in

Call graph

check_validity ​

Returns: integer(kind=I4P)

fortran
function check_validity(self, loop, check_self_intersections) result(defect)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
loopinteger(kind=I4P)outoptional
check_self_intersectionslogicalinoptional

Call graph

get_area ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function get_area(self) result(a)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

get_bmax ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function get_bmax(self) result(b)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

get_bmin ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function get_bmin(self) result(b)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

get_centroid ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function get_centroid(self) result(c)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

get_bodies_number ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function get_bodies_number(self) result(n)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

loop_body ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function loop_body(self, l) result(b)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
linteger(kind=I4P)in

get_is_on_device ​

Attributes: pure

Returns: logical

fortran
function get_is_on_device(self) result(yes)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

get_loop_area ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function get_loop_area(self, l) result(a)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
linteger(kind=I4P)in

get_loops_number ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function get_loops_number(self) result(n)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

get_normal_axis ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function get_normal_axis(self) result(axis)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

get_perimeter ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function get_perimeter(self) result(p)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

get_vertex ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function get_vertex(self, i) result(uv)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
iinteger(kind=I4P)in

Call graph

get_next ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function get_next(self, i) result(j)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
iinteger(kind=I4P)in

Call graph

get_vertices_number ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function get_vertices_number(self) result(n)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in

Call graph

distance ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function distance(self, p, is_signed, sign_algorithm) result(d)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
preal(kind=R8P)in
is_signedlogicalinoptional
sign_algorithminteger(kind=I4P)inoptional

Call graph

is_loop_closed ​

Attributes: pure

Returns: logical

fortran
function is_loop_closed(self, l) result(closed)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
linteger(kind=I4P)in

Call graph

is_point_inside ​

Attributes: pure, recursive

Returns: logical

fortran
function is_point_inside(self, p, sign_algorithm, pose) result(inside)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
preal(kind=R8P)in
sign_algorithminteger(kind=I4P)inoptional
posetype(rigid_pose_2d_t)inoptional

Call graph

winding_number ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function winding_number(self, p, use_brute_force, beta) result(w)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
preal(kind=R8P)in
use_brute_forcelogicalinoptional
betareal(kind=R8P)inoptional

Call graph

nesting_depth ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function nesting_depth(self, l) result(depth)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
linteger(kind=I4P)in

Call graph

winding_number_exact ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function winding_number_exact(self, p) result(w)

Arguments

NameTypeIntentAttributesDescription
selfclass(curve_object)in
preal(kind=R8P)in

Call graph

loop_winding ​

Attributes: pure

Returns: integer(kind=I4P)

fortran
function loop_winding(self, l, pu, pv) result(w)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
linteger(kind=I4P)in
pureal(kind=R8P)in
pvreal(kind=R8P)in

Call graph

shoelace ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function shoelace(u, v) result(a)

Arguments

NameTypeIntentAttributesDescription
ureal(kind=R8P)in
vreal(kind=R8P)in

Call graph

curve_signed_distance_oac ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function curve_signed_distance_oac(lo_u, lo_v, hi_u, hi_v, left, right, first, last, a_u, a_v, d_u, d_v, len2, seg_id, next, u, v, pn_u, pn_v, wn_cu, wn_cv, wn_du, wn_dv, wn_c, wn_diag2, pu, pv, signed, fwn) result(d)

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
seg_idinteger(kind=I4P)in
nextinteger(kind=I4P)in
ureal(kind=R8P)in
vreal(kind=R8P)in
pn_ureal(kind=R8P)in
pn_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
signedlogicalin
fwnlogicalin

Call graph

path_clear ​

Attributes: pure

Returns: logical

fortran
function path_clear(self, a, b, sg, vx) result(clear)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
areal(kind=R8P)in
breal(kind=R8P)in
sginteger(kind=I4P)in
vxinteger(kind=I4P)in

Call graph

rich_sizes_ok ​

Attributes: pure

Returns: logical

fortran
function rich_sizes_ok(n, closest_points, segments, vertices, normals, bodies, patches) result(good)

Arguments

NameTypeIntentAttributesDescription
ninteger(kind=I4P)in
closest_pointsreal(kind=R8P)inoptional
segmentsinteger(kind=I4P)inoptional
verticesinteger(kind=I4P)inoptional
normalsreal(kind=R8P)inoptional
bodiesinteger(kind=I4P)inoptional
patchesinteger(kind=I4P)inoptional

Call graph

curve_many_ok ​

Returns: logical

fortran
function curve_many_ok(self, axis, a, t0, t1, t, segments, entering, counts, overflow, status) result(good)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
axisinteger(kind=I4P)in
areal(kind=R8P)in
t0real(kind=R8P)in
t1real(kind=R8P)in
treal(kind=R8P)inout
segmentsinteger(kind=I4P)inout
enteringlogicalinout
countsinteger(kind=I4P)inout
overflowlogicalinout
statusinteger(kind=I4P)outoptional

Call graph

body_points2 ​

Attributes: pure

Returns: real(kind=R8P)

fortran
function body_points2(pose, points) result(bp)

Arguments

NameTypeIntentAttributesDescription
posetype(rigid_pose_2d_t)in
pointsreal(kind=R8P)in

Call graph

resolve_batch_options ​

Returns: logical

fortran
function resolve_batch_options(self, points, distances, is_signed, sign_algorithm, status, signed, fwn) result(good)

Arguments

NameTypeIntentAttributesDescription
selftype(curve_object)in
pointsreal(kind=R8P)in
distancesreal(kind=R8P)in
is_signedlogicalinoptional
sign_algorithminteger(kind=I4P)inoptional
statusinteger(kind=I4P)outoptional
signedlogicalout
fwnlogicalout

Call graph

segments_intersect ​

Attributes: pure

Returns: logical

fortran
function segments_intersect(p1u, p1v, p2u, p2v, q1u, q1v, q2u, q2v) result(hit)

Arguments

NameTypeIntentAttributesDescription
p1ureal(kind=R8P)in
p1vreal(kind=R8P)in
p2ureal(kind=R8P)in
p2vreal(kind=R8P)in
q1ureal(kind=R8P)in
q1vreal(kind=R8P)in
q2ureal(kind=R8P)in
q2vreal(kind=R8P)in

Call graph

folds_back ​

Attributes: pure

Returns: logical

fortran
function folds_back(au, av, bu, bv, cu, cv) result(hit)

Arguments

NameTypeIntentAttributesDescription
aureal(kind=R8P)in
avreal(kind=R8P)in
bureal(kind=R8P)in
bvreal(kind=R8P)in
cureal(kind=R8P)in
cvreal(kind=R8P)in

Call graph

opposite ​

Attributes: pure

Returns: logical

fortran
function opposite(a, b) result(yes)

Arguments

NameTypeIntentAttributesDescription
areal(kind=R8P)in
breal(kind=R8P)in

Call graph

on_box ​

Attributes: pure

Returns: logical

fortran
function on_box(pu, pv, au, av, bu, bv) result(yes)

Arguments

NameTypeIntentAttributesDescription
pureal(kind=R8P)in
pvreal(kind=R8P)in
aureal(kind=R8P)in
avreal(kind=R8P)in
bureal(kind=R8P)in
bvreal(kind=R8P)in

Call graph