gCAD3D 2.35
cvClot.c File Reference

clothoid curve functions More...

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "../ut/ut_geo.h"
#include "../ut/ut_math.h"
#include "../ut/func_types.h"

Macros

#define f1   0.965
 
#define MAX_CVLEN2PTS   0.5
 

Functions

int UT3D_ptvc_evparclot (Point *pto, Vector *vco, int mode, CurvClot *cv, double par)
 
int UT3D_pt_intclotptvc (int *nxp, Point *xpTab, double *tTab, Point *lpt, Vector *lvc, CurvClot *cv, double tol)
 
int UT3D_pt_prjclotpt (int *nxp, Point *xpTab, double *tTab, Point *lpt, CurvClot *cv, double tol)
 
int UT3D_par_clotpt (double *par, Point *pti, CurvClot *cv, double tol)
 
int UT3D_ptNr_clot (int *pNr, CurvClot *clt, double tol)
 
int UT3D_npt_clot (Point *pTab, int *ptNr, CurvClot *clt, double tol)
 
int UCV_CurvCirCltCrv (Circ *cc, CurvClot *cl, double c)
 
int UCV_CltCrvCurvWind (CurvClot *cl, double cs, double ce, double wd, Point *stp, Vector *stv, Vector *plv)
 
int UCV_TrfMatCltCrv (Mat_4x3 mc, Point2 *pts, double *ts, CurvClot *cl)
 
int UCV_EvPtTgCltCrv (Point *pt, Vector *tg, CurvClot *cl, double tc, int sw, Mat_4x3 mc, Point2 *pts, double ts)
 
int UCV_Ev2DNxtPtCltCrv (Point2 *pn, CurvClot *cl, double to, Point2 *po, double t)
 
int UCV_Ev2DTgCltCrv (Vector2 *tg, CurvClot *cl, double t)
 
int UCV_PlgCltCrv (int *ptNr, Point **pTab, Memspc *memSeg, CurvClot *cl, Memspc *workSeg)
 

Detailed Description

clothoid curve functions

=====================================================
List_functions_start:
UT3D_par_clotpt get parameter of clot from point
UT3D_npt_clot Polygon <-- clothoid curve
UT3D_pt_intclotptvc intersect line(pt+vc) with Clothoid
UT3D_pt_prjclotpt project point onto Clothoid
UT3D_ptvc_evparclot get point&tangent on Clothoid from parameter
UCV_CurvCirCltCrv Curvature circle <-- clothoid curve & parameter
UCV_EvPtTgCltCrv Evaluate point / tangent <-- clothoid curve
UCV_Ev2DNxtPtCltCrv Evaluate 2D-next point <-- clothoid curve
UCV_Ev2DTgCltCrv Evaluate 2D-tangent <-- clothoid curve
UCV_OffSurCrv Offset surface curve <-- curve
UCV_TrfMatCltCrv Transformation matrix <-- clothoid curve
UCV_CltCrvCurvWind Clothoid curve <-- curvature & wind
// UCV_PlgCltCrv Polygon <-- clothoid curve
List_functions_end:
=====================================================

Macro Definition Documentation

#define f1   0.965
#define MAX_CVLEN2PTS   0.5

Function Documentation

int UT3D_ptvc_evparclot ( Point pto,
Vector vco,
int  mode,
CurvClot cv,
double  par 
)
int UT3D_pt_intclotptvc ( int *  nxp,
Point xpTab,
double *  tTab,
Point lpt,
Vector lvc,
CurvClot cv,
double  tol 
)
UT3D_pt_intclotptvc intersect line(pt+vc) with Clothoid
gives also parameter of intersectionPoint (from 0-1)
Output:
tTab parallel zu xptab die zugehoerigen parameter
none if tTab == NULL
int UT3D_pt_prjclotpt ( int *  nxp,
Point xpTab,
double *  tTab,
Point lpt,
CurvClot cv,
double  tol 
)
int UT3D_par_clotpt ( double *  par,
Point pti,
CurvClot cv,
double  tol 
)
int UT3D_ptNr_clot ( int *  pNr,
CurvClot clt,
double  tol 
)
int UT3D_npt_clot ( Point pTab,
int *  ptNr,
CurvClot clt,
double  tol 
)
make polygon from planar curve (clotoid)
NOT YET SUPPORTED: parabola, hyperbola, ellipsis)
Input:
ptNr max size of pTab
pTab[ptNr] empty
Output:
ptNr size of pTab
RetCod 0=OK; -1=Error
int UCV_CurvCirCltCrv ( Circ cc,
CurvClot cl,
double  c 
)
int UCV_CltCrvCurvWind ( CurvClot cl,
double  cs,
double  ce,
double  wd,
Point stp,
Vector stv,
Vector plv 
)
int UCV_TrfMatCltCrv ( Mat_4x3  mc,
Point2 pts,
double *  ts,
CurvClot cl 
)
int UCV_EvPtTgCltCrv ( Point pt,
Vector tg,
CurvClot cl,
double  tc,
int  sw,
Mat_4x3  mc,
Point2 pts,
double  ts 
)
int UCV_Ev2DNxtPtCltCrv ( Point2 pn,
CurvClot cl,
double  to,
Point2 po,
double  t 
)
int UCV_Ev2DTgCltCrv ( Vector2 tg,
CurvClot cl,
double  t 
)
int UCV_PlgCltCrv ( int *  ptNr,
Point **  pTab,
Memspc memSeg,
CurvClot cl,
Memspc workSeg 
)