Inkscape
Vector Graphics Editor
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages Concepts
spiro.cpp File Reference

C implementation of third-order polynomial spirals. More...

Go to the source code of this file.

Namespaces

namespace  Spiro
 

Functions

void Spiro::spiro_run (const spiro_cp *src, int src_len, SPCurve &curve)
 
void Spiro::spiro_run (const spiro_cp *src, int src_len, Geom::Path &path)
 
static void Spiro::integrate_spiro (const double ks[4], double xy[2])
 
static double Spiro::compute_ends (const double ks[4], double ends[2][4], double seg_ch)
 
static void Spiro::compute_pderivs (const spiro_seg *s, double ends[2][4], double derivs[4][2][4], int jinc)
 
static double Spiro::mod_2pi (double th)
 
static spiro_segSpiro::setup_path (const spiro_cp *src, int n)
 
static void Spiro::bandec11 (bandmat *m, int *perm, int n)
 
static void Spiro::banbks11 (const bandmat *m, const int *perm, double *v, int n)
 
static int Spiro::compute_jinc (char ty0, char ty1)
 
static int Spiro::count_vec (const spiro_seg *s, int nseg)
 
static void Spiro::add_mat_line (bandmat *m, double *v, double derivs[4], double x, double y, int j, int jj, int jinc, int nmat)
 
static double Spiro::spiro_iter (spiro_seg *s, bandmat *m, int *perm, double *v, const int n)
 
static int Spiro::solve_spiro (spiro_seg *s, const int nseg)
 
static void Spiro::spiro_seg_to_otherpath (const double ks[4], double x0, double y0, double x1, double y1, ConverterBase &bc, int depth, bool close_last)
 
spiro_segSpiro::run_spiro (const spiro_cp *src, int n)
 
void Spiro::free_spiro (spiro_seg *s)
 
void Spiro::spiro_to_otherpath (const spiro_seg *s, int n, ConverterBase &bc)
 
double Spiro::get_knot_th (const spiro_seg *s, int i)
 
static double get_time (void)
 
int test_integ (void)
 
void print_seg (const double ks[4], double x0, double y0, double x1, double y1)
 
void print_segs (const spiro_seg *segs, int nsegs)
 
int test_curve (void)
 
int main (int argc, char **argv)
 

Variables

int Spiro::n = 4
 

Detailed Description

C implementation of third-order polynomial spirals.

Definition in file spiro.cpp.

Function Documentation

◆ get_time()

static double get_time ( void  )
static

Definition at line 959 of file spiro.cpp.

Referenced by test_integ().

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 1118 of file spiro.cpp.

References test_curve().

◆ print_seg()

void print_seg ( const double  ks[4],
double  x0,
double  y0,
double  x1,
double  y1 
)

Definition at line 1005 of file spiro.cpp.

References bend(), Spiro::integrate_spiro(), print_seg(), and scale.

Referenced by print_seg(), and print_segs().

◆ print_segs()

void print_segs ( const spiro_seg segs,
int  nsegs 
)

Definition at line 1065 of file spiro.cpp.

References print_seg().

Referenced by test_curve().

◆ test_curve()

int test_curve ( void  )

Definition at line 1085 of file spiro.cpp.

References Spiro::n, print_segs(), Spiro::setup_path(), and Spiro::solve_spiro().

Referenced by SPHatchPath::bounds(), main(), TEST(), TEST_F(), and TEST_F().

◆ test_integ()

int test_integ ( void  )

Definition at line 970 of file spiro.cpp.

References get_time(), Spiro::integrate_spiro(), Spiro::n, and ORDER.