Graphviz 12.0.1~dev.20240715.2254
Loading...
Searching...
No Matches
arrows.c File Reference

edge arrow shapes More...

#include <assert.h>
#include <cgraph/streq.h>
#include <cgraph/startswith.h>
#include <common/geomprocs.h>
#include <common/render.h>
#include <math.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
Include dependency graph for arrows.c:

Go to the source code of this file.

Data Structures

struct  arrowdir_t
 
struct  arrowname_t
 
struct  arrowtype_t
 
struct  triangle
 

Macros

#define EPSILON   .0001
 
#define ARROW_LENGTH   10.
 
#define NUMB_OF_ARROW_HEADS   4
 
#define BITS_PER_ARROW   8
 
#define BITS_PER_ARROW_TYPE   4
 
#define ARR_TYPE_NONE   (ARR_NONE)
 
#define ARR_TYPE_NORM   1
 
#define ARR_TYPE_CROW   2
 
#define ARR_TYPE_TEE   3
 
#define ARR_TYPE_BOX   4
 
#define ARR_TYPE_DIAMOND   5
 
#define ARR_TYPE_DOT   6
 
#define ARR_TYPE_CURVE   7
 
#define ARR_TYPE_GAP   8
 
#define ARR_MOD_OPEN   (1<<(BITS_PER_ARROW_TYPE+0))
 
#define ARR_MOD_INV   (1<<(BITS_PER_ARROW_TYPE+1))
 
#define ARR_MOD_LEFT   (1<<(BITS_PER_ARROW_TYPE+2))
 
#define ARR_MOD_RIGHT   (1<<(BITS_PER_ARROW_TYPE+3))
 

Functions

static pointf arrow_type_normal (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static pointf arrow_type_crow (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static pointf arrow_type_tee (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static pointf arrow_type_box (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static pointf arrow_type_diamond (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static pointf arrow_type_dot (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static pointf arrow_type_curve (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static pointf arrow_type_gap (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_generic (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_crow (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_normal (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_tee (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_box (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_diamond (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_curve (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static double arrow_length_dot (double lenfact, double arrowsize, double penwidth, uint32_t flag)
 
static char * arrow_match_name_frag (char *name, const arrowname_t *arrownames, uint32_t *flag)
 
static char * arrow_match_shape (char *name, uint32_t *flag)
 
static void arrow_match_name (char *name, uint32_t *flag)
 
void arrow_flags (Agedge_t *e, uint32_t *sflag, uint32_t *eflag)
 
static double arrow_length (edge_t *e, uint32_t flag)
 
static bool inside (inside_t *inside_context, pointf p)
 
size_t arrowEndClip (edge_t *e, pointf *ps, size_t startp, size_t endp, bezier *spl, uint32_t eflag)
 
size_t arrowStartClip (edge_t *e, pointf *ps, size_t startp, size_t endp, bezier *spl, uint32_t sflag)
 
void arrowOrthoClip (edge_t *e, pointf *ps, size_t startp, size_t endp, bezier *spl, uint32_t sflag, uint32_t eflag)
 
static triangle miter_shape (pointf base_left, pointf P, pointf base_right, double penwidth)
 
static pointf arrow_type_normal0 (pointf p, pointf u, double penwidth, uint32_t flag, pointf *a)
 
static pointf arrow_type_crow0 (pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag, pointf *a)
 
static pointf arrow_type_diamond0 (pointf p, pointf u, double penwidth, uint32_t flag, pointf *a)
 
static pointf arrow_gen_type (GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 
boxf arrow_bb (pointf p, pointf u, double arrowsize)
 
void arrow_gen (GVJ_t *job, emit_state_t emit_state, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
 

Variables

static const arrowdir_t Arrowdirs []
 
static const arrowname_t Arrowsynonyms []
 
static const arrowname_t Arrowmods []
 
static const arrowname_t Arrownames []
 
static const arrowtype_t Arrowtypes []
 
static const size_t Arrowtypes_size
 

Macro Definition Documentation

◆ ARR_MOD_INV

#define ARR_MOD_INV   (1<<(BITS_PER_ARROW_TYPE+1))

Definition at line 50 of file arrows.c.

◆ ARR_MOD_LEFT

#define ARR_MOD_LEFT   (1<<(BITS_PER_ARROW_TYPE+2))

Definition at line 51 of file arrows.c.

◆ ARR_MOD_OPEN

#define ARR_MOD_OPEN   (1<<(BITS_PER_ARROW_TYPE+0))

Definition at line 49 of file arrows.c.

◆ ARR_MOD_RIGHT

#define ARR_MOD_RIGHT   (1<<(BITS_PER_ARROW_TYPE+3))

Definition at line 52 of file arrows.c.

◆ ARR_TYPE_BOX

#define ARR_TYPE_BOX   4

Definition at line 41 of file arrows.c.

◆ ARR_TYPE_CROW

#define ARR_TYPE_CROW   2

Definition at line 39 of file arrows.c.

◆ ARR_TYPE_CURVE

#define ARR_TYPE_CURVE   7

Definition at line 44 of file arrows.c.

◆ ARR_TYPE_DIAMOND

#define ARR_TYPE_DIAMOND   5

Definition at line 42 of file arrows.c.

◆ ARR_TYPE_DOT

#define ARR_TYPE_DOT   6

Definition at line 43 of file arrows.c.

◆ ARR_TYPE_GAP

#define ARR_TYPE_GAP   8

Definition at line 45 of file arrows.c.

◆ ARR_TYPE_NONE

#define ARR_TYPE_NONE   (ARR_NONE)

Definition at line 37 of file arrows.c.

◆ ARR_TYPE_NORM

#define ARR_TYPE_NORM   1

Definition at line 38 of file arrows.c.

◆ ARR_TYPE_TEE

#define ARR_TYPE_TEE   3

Definition at line 40 of file arrows.c.

◆ ARROW_LENGTH

#define ARROW_LENGTH   10.

Definition at line 28 of file arrows.c.

◆ BITS_PER_ARROW

#define BITS_PER_ARROW   8

Definition at line 33 of file arrows.c.

◆ BITS_PER_ARROW_TYPE

#define BITS_PER_ARROW_TYPE   4

Definition at line 35 of file arrows.c.

◆ EPSILON

#define EPSILON   .0001

Definition at line 25 of file arrows.c.

◆ NUMB_OF_ARROW_HEADS

#define NUMB_OF_ARROW_HEADS   4

Definition at line 30 of file arrows.c.

Function Documentation

◆ arrow_bb()

boxf arrow_bb ( pointf  p,
pointf  u,
double  arrowsize 
)

Definition at line 1117 of file arrows.c.

References ARROW_LENGTH, dx, dy, EPSILON, boxf::LL, boxf::UR, pointf_s::x, and pointf_s::y.

Referenced by init_splines_bb(), and overlap_arrow().

Here is the caller graph for this function:

◆ arrow_flags()

void arrow_flags ( Agedge_t e,
uint32_t *  sflag,
uint32_t *  eflag 
)

Definition at line 217 of file arrows.c.

References agfindedge, agfindedgeattr, aghead, agisdirected(), agraphof(), agtail, agxget(), ARR_TYPE_NONE, ARR_TYPE_NORM, arrow_flags(), arrow_match_name(), Arrowdirs, arrowdir_t::dir, E_dir, ED_conc_opp_flag, NULL, and streq().

Referenced by arrow_clip(), arrow_flags(), and user_spline().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_gen()

void arrow_gen ( GVJ_t job,
emit_state_t  emit_state,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)

Definition at line 1155 of file arrows.c.

References ARR_TYPE_NONE, arrow_gen_type(), ARROW_LENGTH, BITS_PER_ARROW, GVC_s::defaultlinestyle, obj_state_s::emit_state, EPSILON, GVJ_s::gvc, gvrender_set_penwidth(), gvrender_set_style(), NUMB_OF_ARROW_HEADS, GVJ_s::obj, penwidth, pointf_s::x, and pointf_s::y.

Referenced by emit_edge_graphics(), and multicolor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_gen_type()

static pointf arrow_gen_type ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1102 of file arrows.c.

References Arrowtypes, Arrowtypes_size, BITS_PER_ARROW_TYPE, arrowtype_t::gen, arrowtype_t::lenfact, penwidth, arrowtype_t::type, pointf_s::x, and pointf_s::y.

Referenced by arrow_gen().

Here is the caller graph for this function:

◆ arrow_length()

static double arrow_length ( edge_t e,
uint32_t  flag 
)
static

Definition at line 257 of file arrows.c.

References Arrowtypes, Arrowtypes_size, BITS_PER_ARROW, BITS_PER_ARROW_TYPE, E_arrowsz, E_penwidth, late_double(), arrowtype_t::len, arrowtype_t::lenfact, NUMB_OF_ARROW_HEADS, penwidth, and arrowtype_t::type.

Referenced by arrowEndClip(), arrowOrthoClip(), and arrowStartClip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_length_box()

static double arrow_length_box ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1266 of file arrows.c.

References ARROW_LENGTH, and penwidth.

◆ arrow_length_crow()

static double arrow_length_crow ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1332 of file arrows.c.

References ARR_MOD_INV, ARROW_LENGTH, arrow_type_crow0(), overlap(), penwidth, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrow_length_curve()

static double arrow_length_curve ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1325 of file arrows.c.

References ARROW_LENGTH, and penwidth.

◆ arrow_length_diamond()

static double arrow_length_diamond ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1277 of file arrows.c.

References ARROW_LENGTH, arrow_type_diamond0(), overlap(), penwidth, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrow_length_dot()

static double arrow_length_dot ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1318 of file arrows.c.

References ARROW_LENGTH, and penwidth.

◆ arrow_length_generic()

static double arrow_length_generic ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1192 of file arrows.c.

References ARROW_LENGTH, and penwidth.

◆ arrow_length_normal()

static double arrow_length_normal ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1200 of file arrows.c.

References ARR_MOD_INV, ARROW_LENGTH, arrow_type_normal0(), overlap(), penwidth, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrow_length_tee()

static double arrow_length_tee ( double  lenfact,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1239 of file arrows.c.

References ARROW_LENGTH, and penwidth.

◆ arrow_match_name()

static void arrow_match_name ( char *  name,
uint32_t *  flag 
)
static

Definition at line 194 of file arrows.c.

References agwarningf(), ARR_TYPE_GAP, ARR_TYPE_NONE, arrow_match_shape(), BITS_PER_ARROW, and NUMB_OF_ARROW_HEADS.

Referenced by arrow_flags().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_match_name_frag()

static char * arrow_match_name_frag ( char *  name,
const arrowname_t arrownames,
uint32_t *  flag 
)
static

Definition at line 159 of file arrows.c.

References arrowname_t::name, and startswith().

Referenced by arrow_match_shape().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_match_shape()

static char * arrow_match_shape ( char *  name,
uint32_t *  flag 
)
static

Definition at line 176 of file arrows.c.

References ARR_TYPE_NONE, ARR_TYPE_NORM, arrow_match_name_frag(), Arrowmods, Arrownames, Arrowsynonyms, and BITS_PER_ARROW_TYPE.

Referenced by arrow_match_name().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_type_box()

static pointf arrow_type_box ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 878 of file arrows.c.

References ARR_MOD_LEFT, ARR_MOD_OPEN, ARR_MOD_RIGHT, delta, gvrender_polygon(), gvrender_polyline(), penwidth, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrow_type_crow()

static pointf arrow_type_crow ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 784 of file arrows.c.

References ARR_MOD_LEFT, ARR_MOD_RIGHT, arrow_type_crow0(), gvrender_polygon(), and penwidth.

Here is the call graph for this function:

◆ arrow_type_crow0()

static pointf arrow_type_crow0 ( pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag,
pointf a 
)
static

Definition at line 642 of file arrows.c.

References add_pointf(), alpha, ARR_MOD_INV, ARR_MOD_LEFT, ARR_MOD_RIGHT, miter_shape(), penwidth, triangle::points, sub_pointf(), pointf_s::x, and pointf_s::y.

Referenced by arrow_length_crow(), and arrow_type_crow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_type_curve()

static pointf arrow_type_curve ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 1041 of file arrows.c.

References ARR_MOD_INV, ARR_MOD_LEFT, ARR_MOD_RIGHT, Bezier(), delta, gvrender_beziercurve(), gvrender_polyline(), NULL, penwidth, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrow_type_diamond()

static pointf arrow_type_diamond ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 978 of file arrows.c.

References ARR_MOD_LEFT, ARR_MOD_OPEN, ARR_MOD_RIGHT, arrow_type_diamond0(), gvrender_polygon(), and penwidth.

Here is the call graph for this function:

◆ arrow_type_diamond0()

static pointf arrow_type_diamond0 ( pointf  p,
pointf  u,
double  penwidth,
uint32_t  flag,
pointf a 
)
static

Definition at line 936 of file arrows.c.

References add_pointf(), ARR_MOD_LEFT, ARR_MOD_RIGHT, delta, miter_shape(), penwidth, triangle::points, scale(), sub_pointf(), pointf_s::x, and pointf_s::y.

Referenced by arrow_length_diamond(), and arrow_type_diamond().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_type_dot()

static pointf arrow_type_dot ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 997 of file arrows.c.

References ARR_MOD_OPEN, delta, gvrender_ellipse(), penwidth, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrow_type_gap()

static pointf arrow_type_gap ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 801 of file arrows.c.

References gvrender_polyline(), penwidth, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrow_type_normal()

static pointf arrow_type_normal ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 623 of file arrows.c.

References ARR_MOD_LEFT, ARR_MOD_OPEN, ARR_MOD_RIGHT, arrow_type_normal0(), gvrender_polygon(), and penwidth.

Here is the call graph for this function:

◆ arrow_type_normal0()

static pointf arrow_type_normal0 ( pointf  p,
pointf  u,
double  penwidth,
uint32_t  flag,
pointf a 
)
static

Definition at line 526 of file arrows.c.

References alpha, ARR_MOD_INV, ARR_MOD_LEFT, ARR_MOD_RIGHT, miter_shape(), penwidth, triangle::points, sub_pointf(), pointf_s::x, and pointf_s::y.

Referenced by arrow_length_normal(), and arrow_type_normal().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrow_type_tee()

static pointf arrow_type_tee ( GVJ_t job,
pointf  p,
pointf  u,
double  arrowsize,
double  penwidth,
uint32_t  flag 
)
static

Definition at line 818 of file arrows.c.

References ARR_MOD_LEFT, ARR_MOD_RIGHT, delta, gvrender_polygon(), gvrender_polyline(), penwidth, sub_pointf(), pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ arrowEndClip()

size_t arrowEndClip ( edge_t e,
pointf ps,
size_t  startp,
size_t  endp,
bezier spl,
uint32_t  eflag 
)

Definition at line 289 of file arrows.c.

References inside_t::a, arrow_length(), bezier_clip(), DIST2, bezier::eflag, bezier::ep, inside(), inside_t::p, ps, and inside_t::r.

Referenced by arrow_clip(), and makeCompoundEdge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrowOrthoClip()

void arrowOrthoClip ( edge_t e,
pointf ps,
size_t  startp,
size_t  endp,
bezier spl,
uint32_t  sflag,
uint32_t  eflag 
)

Definition at line 360 of file arrows.c.

References arrow_length(), DIST, bezier::eflag, bezier::ep, ps, bezier::sflag, bezier::sp, pointf_s::x, and pointf_s::y.

Referenced by arrow_clip().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ arrowStartClip()

size_t arrowStartClip ( edge_t e,
pointf ps,
size_t  startp,
size_t  endp,
bezier spl,
uint32_t  sflag 
)

Definition at line 320 of file arrows.c.

References inside_t::a, arrow_length(), bezier_clip(), DIST2, inside(), inside_t::p, ps, inside_t::r, bezier::sflag, and bezier::sp.

Referenced by arrow_clip(), and makeCompoundEdge().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ inside()

static bool inside ( inside_t inside_context,
pointf  p 
)
static

Definition at line 284 of file arrows.c.

References inside_t::a, DIST2, inside_t::p, and inside_t::r.

Referenced by arrowEndClip(), arrowStartClip(), and bezier_clip().

Here is the caller graph for this function:

◆ miter_shape()

static triangle miter_shape ( pointf  base_left,
pointf  P,
pointf  base_right,
double  penwidth 
)
static

Definition at line 460 of file arrows.c.

References A, alpha, B, M_PI, penwidth, pointf_s::x, and pointf_s::y.

Referenced by arrow_type_crow0(), arrow_type_diamond0(), and arrow_type_normal0().

Here is the caller graph for this function:

Variable Documentation

◆ Arrowdirs

const arrowdir_t Arrowdirs[]
static
Initial value:
= {
{0}
}
#define ARR_TYPE_NORM
Definition arrows.c:38
#define ARR_TYPE_NONE
Definition arrows.c:37

Definition at line 61 of file arrows.c.

Referenced by arrow_flags().

◆ Arrowmods

const arrowname_t Arrowmods[]
static
Initial value:
= {
{"o", ARR_MOD_OPEN},
{"r", ARR_MOD_RIGHT},
{"l", ARR_MOD_LEFT},
{"e", ARR_MOD_OPEN},
{"half", ARR_MOD_LEFT},
{0}
}
#define ARR_MOD_LEFT
Definition arrows.c:51
#define ARR_MOD_OPEN
Definition arrows.c:49
#define ARR_MOD_RIGHT
Definition arrows.c:52

Definition at line 81 of file arrows.c.

Referenced by arrow_match_shape().

◆ Arrownames

const arrowname_t Arrownames[]
static
Initial value:
= {
{"normal", ARR_TYPE_NORM},
{"crow", ARR_TYPE_CROW},
{"tee", ARR_TYPE_TEE},
{"box", ARR_TYPE_BOX},
{"diamond", ARR_TYPE_DIAMOND},
{"dot", ARR_TYPE_DOT},
{"none", ARR_TYPE_GAP},
{"inv", (ARR_TYPE_NORM | ARR_MOD_INV)},
{"vee", (ARR_TYPE_CROW | ARR_MOD_INV)},
{"pen", (ARR_TYPE_CROW | ARR_MOD_INV)},
{"mpty", ARR_TYPE_NORM},
{"curve", ARR_TYPE_CURVE},
{"icurve", (ARR_TYPE_CURVE | ARR_MOD_INV)},
{0}
}
#define ARR_TYPE_TEE
Definition arrows.c:40
#define ARR_TYPE_DOT
Definition arrows.c:43
#define ARR_TYPE_GAP
Definition arrows.c:45
#define ARR_TYPE_CURVE
Definition arrows.c:44
#define ARR_TYPE_BOX
Definition arrows.c:41
#define ARR_MOD_INV
Definition arrows.c:50
#define ARR_TYPE_CROW
Definition arrows.c:39
#define ARR_TYPE_DIAMOND
Definition arrows.c:42

Definition at line 91 of file arrows.c.

Referenced by arrow_match_shape().

◆ Arrowsynonyms

const arrowname_t Arrowsynonyms[]
static
Initial value:
= {
{"invempty", (ARR_TYPE_NORM | ARR_MOD_INV | ARR_MOD_OPEN)},
{0}
}

Definition at line 74 of file arrows.c.

Referenced by arrow_match_shape().

◆ Arrowtypes

const arrowtype_t Arrowtypes[]
static
Initial value:
= {
}
static pointf arrow_type_diamond(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:978
static double arrow_length_curve(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1325
static double arrow_length_tee(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1239
static double arrow_length_crow(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1332
static double arrow_length_dot(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1318
static pointf arrow_type_dot(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:997
static double arrow_length_generic(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1192
static double arrow_length_diamond(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1277
static pointf arrow_type_box(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:878
static pointf arrow_type_gap(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:801
static pointf arrow_type_curve(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1041
static pointf arrow_type_tee(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:818
static pointf arrow_type_crow(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:784
static double arrow_length_normal(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1200
static pointf arrow_type_normal(GVJ_t *job, pointf p, pointf u, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:623
static double arrow_length_box(double lenfact, double arrowsize, double penwidth, uint32_t flag)
Definition arrows.c:1266

Definition at line 145 of file arrows.c.

Referenced by arrow_gen_type(), and arrow_length().

◆ Arrowtypes_size

const size_t Arrowtypes_size
static
Initial value:
=
sizeof(Arrowtypes) / sizeof(Arrowtypes[0])
static const arrowtype_t Arrowtypes[]
Definition arrows.c:145

Definition at line 156 of file arrows.c.

Referenced by arrow_gen_type(), and arrow_length().