===================================================== 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 AUXTABSIZ 200 |
int UT3D_2ncvbsp_orient | ( | int | cv1Nr, | |
CurvBSpl ** | cv1tab, | |||
int | cv2Nr, | |||
CurvBSpl ** | cv2tab, | |||
Memspc * | objSeg | |||
) |
int UT3D_cbsp_2cbsp | ( | CurvBSpl * | cvo, | |
Memspc * | objSeg, | |||
double | smf, | |||
CurvBSpl * | cv1, | |||
CurvBSpl * | cv2, | |||
Memspc * | tmpSeg | |||
) |
int UT3D_bsp_infTg | ( | int * | dNr, | |
double * | dTab, | |||
CurvBSpl * | bsp1 | |||
) |
int UT3D_bsp_ck_closed | ( | CurvBSpl * | cv1 | ) |
int UT3D_bsp_ck_minSiz | ( | CurvBSpl * | cv1 | ) |
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_projptbspl | ( | int * | nxp, | |
Point * | ptab, | |||
double * | ttab, | |||
Memspc * | memSeg1, | |||
CurvBSpl * | bspl, | |||
Point * | pt | |||
) |
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_ptNr_bsplTol | ( | int * | iu, | |
CurvBSpl * | bsp, | |||
double | tol1 | |||
) |
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_cvpol_cvbsp | ( | int * | ptNr, | |
Point | ptPol[], | |||
int | ianz, | |||
int | ideg, | |||
double | ps, | |||
double | pe, | |||
Point | ptCrv[], | |||
double * | vTab | |||
) |
double UT_TOL_0Cos |
tolerance for zero cosine