ut_bspl.c File Reference


Detailed Description

B-Spline-Curves bspl_.

=====================================================
Liste_Funktionen_Beginn:

UT3D_bsp_ck_closed         check if B-SplCurv is closed
UT3D_bsp_ck_minSiz         check for minSiz / underSize
UT3D_ncvbsp_orient         orient group of B-SplCurves (same directiorn)
UT3D_2ncvbsp_orient        orient 2 groups of BSplCurves for surface
UT3D_4cvbsp_3cvbsp         make 4 curves from 3 curves for a CoonsPatchSurf.

UT3D_parCv_bsplpt          curve parameter <-- point on b-spline curve
UT3D_ptNr_bsplTol          Nr of polygonpoints from tol
UT3D_bsp_degrad            degrade bsp to line
UT3D_bsp_infTg             Eine Tabelle der Wendepunkte liefern (nur Parameter)

UT3D_cbsp_obj              create BSP-Curv from ObjGX-obj
UT3D_cbsp_2pt              create BSP-Curv from Line
UT3D_cbsp_ci               create BSP-Curv from Circ
UT3D_cbsp_ell              create BSP-Curv from Ellipse
bspl_bsp_ptn               make B-spline cvo from pointTable pTab
UT3D_cbsp_2cbsp            join 2 BSP-Curves

UT3D_pt_projptbspl         project point onto b-spline curve
UT3D_pt_int2bspl           intersect 2 b-spline curves
UT3D_pt_intlnbspl          intersect line with b-spline curve
UT3D_pt_intplbspl          Intersect Plane / BSplineCurve

UT3D_pt_evparCrvBSpl       point <-- evaluate curve parameter
                        ACHTUNG: kann Extrapolation noch nicht !
UT3D_pt_evalparCv          Punkt an B-Spline aus Parameterwert
bspl_pt_cbspDeg1           evaluate Point on B-SplCurve with degree 1.
UT3D_vc_evalparCv          Tangente an B-Spline aus Parameterwert

UT3D_par1_parcbsp          Knotenwert in einen Parameterwert von 0-1 aendern
UT3D_par1_parBSp           Knotenwert in einen Parameterwert von 0-1 aendern
UT3D_par_par1BSp           Parameterwert von 0-1 in einen Knotenwert aendern

UT3D_bsp_cpsbsp            copy Bsp-Curve out of Bsp-Surf (nicht interpolierend)
UT3D_knotvec_m             create & copy knotvektor
bspl_knotvec__             Erstellen des knotvektor
bspl_pol_bsp               make Polygon from B-Spline-Kurve
bspl_cv_bsp                make Polygon from B-Spline mit fixer ptNr
bspl_cvpol_cvbsp  UNUSED   Aus einem B-Spline eine Polygon bilden.
bspl_eval_Pt               Zwischenpunkte einer B-Spline-Kurve errechnen
bspl_eval_Tg               Evaluate a tangent on a B-spline.

UT3D_pt_projptbsp_ext      lineare extrapolation
bspl_eval_expPt            lineare extrapolation

Liste_Funktionen_Ende:
=====================================================

- test functions:
UT3D_testbsplbez           B-spline curve segments <--> Bezier curves

- see also:
../ut/ubscrv.c

#include "../xa/MS_Def0.h"
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../ut/ut_geo.h"
#include "../ut/ut_bspl.h"
#include "../ut/ut_plg.h"
#include "../ut/ut_umem.h"
#include "../gr/ut_UI.h"
#include "../db/ut_DB.h"

Defines

#define AUXTABSIZ   200

Functions

int UT3D_4cvbsp_3cvbsp (CurvBSpl **cv1tab, CurvBSpl **cv2tab, Memspc *objSeg)
int UT3D_2ncvbsp_orient (int cv1Nr, CurvBSpl **cv1tab, int cv2Nr, CurvBSpl **cv2tab, Memspc *objSeg)
int UT3D_ncvbsp_orient (int cv1Nr, CurvBSpl **cv1tab, Memspc *objSeg)
int UT3D_cbsp_dbo (CurvBSpl **cbsp, Memspc *objSeg, int typ, long dbi, Memspc *tmpSeg)
int UT3D_cbsp_2cbsp (CurvBSpl *cvo, Memspc *objSeg, double smf, CurvBSpl *cv1, CurvBSpl *cv2, Memspc *tmpSeg)
int UT3D_cbsp_obj (CurvBSpl *cbsp, ObjGX *ox1, Memspc *objSeg, Memspc *tmpSeg)
int UT3D_cbsp_2pt (CurvBSpl *bsp, Memspc *memSeg, Point *p1, Point *p2)
int UT3D_cbsp_ci (CurvBSpl *bsp, Memspc *memSeg, Circ *ci1, Memspc *tmpSeg)
int UT3D_cbsp_ell (CurvBSpl *bsp, Memspc *memSeg, CurvElli *el1, Memspc *tmpSeg)
int UT3D_bsp_infTg (int *dNr, double *dTab, CurvBSpl *bsp1)
int UT3D_bsp_degrad (ObjGX *ox1, CurvBSpl *cv1, Memspc *memSeg1)
int UT3D_bsp_ck_closed (CurvBSpl *cv1)
int UT3D_bsp_ck_minSiz (CurvBSpl *cv1)
int UT3D_bsp_cpsbsp (CurvBSpl *cvo, SurBSpl *su1, char cDir, int cvNr, Memspc *memSeg1)
int UT3D_pt_intlnbspl (int *nxp, Point *xptab, Memspc *memSeg1, Line *ln, CurvBSpl *bspl)
int UT3D_pt_intplbspl (int *pNr, Point *pa, Plane *pln, CurvBSpl *bspl, Memspc *memSeg1, double tol)
int UT3D_pt_int2bspl (int *nxp, Point *xptab, Memspc *memSeg1, CurvBSpl *bspl1, CurvBSpl *bspl2)
int UT3D_pt_nearptbspl (Point *ptx, double *px, CurvBSpl *cv1, Point *pt)
int UT3D_pt_projptbspl (int *nxp, Point *ptab, double *ttab, Memspc *memSeg1, CurvBSpl *bspl, Point *pt)
int UT3D_pt_evparCrvBSpl (Point *pt, CurvBSpl *bspl, double u)
double UT3D_par1_parcbsp (double *kv, CurvBSpl *cv1)
double UT3D_par1_parBSp (double *kv, CurvBSpl *cv1)
double UT3D_par_par1BSp (double pv, CurvBSpl *cv1)
int UT3D_pt_evalparCv (Point *pto, CurvBSpl *cv1, double uVal)
int UT3D_vc_evalparCv (Vector *vco, CurvBSpl *cv1, double uVal)
int UT3D_parCv_bsplpt (double *up, Memspc *memSeg1, CurvBSpl *bspl, Point *pt)
int UT3D_ptNr_bsplTol (int *iu, CurvBSpl *bsp, double tol1)
int bspl_bsp_ptn (CurvBSpl *cvo, Memspc *memSeg1, Point *pTab, int pNr, int deg)
int UT3D_knotvec_m (double **knTab, double *v0, double *v1, int ptNr, int deg, Memspc *workSeg)
int bspl_knotvec__ (double *knTab, int ptNr, int deg)
int bspl_pol2_bsp2 (Point *pTab1, Point *pTab2, int *ptNr, int ptMax, CurvBSpl *cv1, CurvBSpl *cv2, double tol)
int bspl_cv_bsp (int *ptNr, Point *pTab, CurvBSpl *cv1)
int bspl_pol_bsp (int *ptNr, Point *pTab, CurvBSpl *cv1, int ptMax, double tol)
int bspl_cvpol_cvbsp (int *ptNr, Point ptPol[], int ianz, int ideg, double ps, double pe, Point ptCrv[], double *vTab)
int bspl_pt_cbspDeg1 (Point *pto, int ptNr, Point *cpTab, double *kvTab, double uVal)
int bspl_eval_Pt (int segNr, int ideg, Point ContPt[], double *vk, double uVal, Point *P)
int bspl_eval_Tg (int segNr, int ideg, Point ContPt[], double *vk, double uVal, Vector *tg)
int UT3D_pt_projptbsp_ext (double *uo, Point *po, Point *p0, CurvBSpl *bspl)
int bspl_eval_expPt (Point *pto, CurvBSpl *cv1, double uv, double dist)

Variables

double UT_TOL_0Cos
 tolerance for zero cosine


Define Documentation

#define AUXTABSIZ   200


Function Documentation

int UT3D_4cvbsp_3cvbsp ( CurvBSpl **  cv1tab,
CurvBSpl **  cv2tab,
Memspc objSeg 
)

int UT3D_2ncvbsp_orient ( int  cv1Nr,
CurvBSpl **  cv1tab,
int  cv2Nr,
CurvBSpl **  cv2tab,
Memspc objSeg 
)

int UT3D_ncvbsp_orient ( int  cv1Nr,
CurvBSpl **  cv1tab,
Memspc objSeg 
)

int UT3D_cbsp_dbo ( CurvBSpl **  cbsp,
Memspc objSeg,
int  typ,
long  dbi,
Memspc tmpSeg 
)

int UT3D_cbsp_2cbsp ( CurvBSpl cvo,
Memspc objSeg,
double  smf,
CurvBSpl cv1,
CurvBSpl cv2,
Memspc tmpSeg 
)

int UT3D_cbsp_obj ( CurvBSpl cbsp,
ObjGX ox1,
Memspc objSeg,
Memspc tmpSeg 
)

int UT3D_cbsp_2pt ( CurvBSpl bsp,
Memspc memSeg,
Point p1,
Point p2 
)

int UT3D_cbsp_ci ( CurvBSpl bsp,
Memspc memSeg,
Circ ci1,
Memspc tmpSeg 
)

int UT3D_cbsp_ell ( CurvBSpl bsp,
Memspc memSeg,
CurvElli el1,
Memspc tmpSeg 
)

int UT3D_bsp_infTg ( int *  dNr,
double *  dTab,
CurvBSpl bsp1 
)

int UT3D_bsp_degrad ( ObjGX ox1,
CurvBSpl cv1,
Memspc memSeg1 
)

int UT3D_bsp_ck_closed ( CurvBSpl cv1  ) 

int UT3D_bsp_ck_minSiz ( CurvBSpl cv1  ) 

int UT3D_bsp_cpsbsp ( CurvBSpl cvo,
SurBSpl su1,
char  cDir,
int  cvNr,
Memspc memSeg1 
)

int UT3D_pt_intlnbspl ( int *  nxp,
Point xptab,
Memspc memSeg1,
Line ln,
CurvBSpl bspl 
)

int UT3D_pt_intplbspl ( int *  pNr,
Point pa,
Plane pln,
CurvBSpl bspl,
Memspc memSeg1,
double  tol 
)

int UT3D_pt_int2bspl ( int *  nxp,
Point xptab,
Memspc memSeg1,
CurvBSpl bspl1,
CurvBSpl bspl2 
)

int UT3D_pt_nearptbspl ( Point ptx,
double *  px,
CurvBSpl cv1,
Point pt 
)

int UT3D_pt_projptbspl ( int *  nxp,
Point ptab,
double *  ttab,
Memspc memSeg1,
CurvBSpl bspl,
Point pt 
)

int UT3D_pt_evparCrvBSpl ( Point pt,
CurvBSpl bspl,
double  u 
)

double UT3D_par1_parcbsp ( double *  kv,
CurvBSpl cv1 
)

double UT3D_par1_parBSp ( double *  kv,
CurvBSpl cv1 
)

double UT3D_par_par1BSp ( double  pv,
CurvBSpl cv1 
)

int UT3D_pt_evalparCv ( Point pto,
CurvBSpl cv1,
double  uVal 
)

int UT3D_vc_evalparCv ( Vector vco,
CurvBSpl cv1,
double  uVal 
)

int UT3D_parCv_bsplpt ( double *  up,
Memspc memSeg1,
CurvBSpl bspl,
Point pt 
)

int UT3D_ptNr_bsplTol ( int *  iu,
CurvBSpl bsp,
double  tol1 
)

int bspl_bsp_ptn ( CurvBSpl cvo,
Memspc memSeg1,
Point pTab,
int  pNr,
int  deg 
)

int UT3D_knotvec_m ( double **  knTab,
double *  v0,
double *  v1,
int  ptNr,
int  deg,
Memspc workSeg 
)

int bspl_knotvec__ ( double *  knTab,
int  ptNr,
int  deg 
)

int bspl_pol2_bsp2 ( Point pTab1,
Point pTab2,
int *  ptNr,
int  ptMax,
CurvBSpl cv1,
CurvBSpl cv2,
double  tol 
)

int bspl_cv_bsp ( int *  ptNr,
Point pTab,
CurvBSpl cv1 
)

int bspl_pol_bsp ( int *  ptNr,
Point pTab,
CurvBSpl cv1,
int  ptMax,
double  tol 
)

int bspl_cvpol_cvbsp ( int *  ptNr,
Point  ptPol[],
int  ianz,
int  ideg,
double  ps,
double  pe,
Point  ptCrv[],
double *  vTab 
)

int bspl_pt_cbspDeg1 ( Point pto,
int  ptNr,
Point cpTab,
double *  kvTab,
double  uVal 
)

int bspl_eval_Pt ( int  segNr,
int  ideg,
Point  ContPt[],
double *  vk,
double  uVal,
Point P 
)

int bspl_eval_Tg ( int  segNr,
int  ideg,
Point  ContPt[],
double *  vk,
double  uVal,
Vector tg 
)

int UT3D_pt_projptbsp_ext ( double *  uo,
Point po,
Point p0,
CurvBSpl bspl 
)

int bspl_eval_expPt ( Point pto,
CurvBSpl cv1,
double  uv,
double  dist 
)


Variable Documentation

double UT_TOL_0Cos

tolerance for zero cosine


Generated on Sat May 30 09:31:54 2009 for gCAD3D by  doxygen 1.5.6