gCAD3D 2.35
ut_sbsp.c File Reference

B-Spline-Surface-Functions. More...

#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_sbsp.h"
#include "../ut/func_types.h"
#include "../xa/xa_mem.h"

Functions

int UT3D_sbsp_ncv (SurBSpl *su1, Memspc *tbuf1, int cvNr, CurvBSpl **cvtab, int deg, Memspc *tbuf2, Memspc *tbuf3)
 
int UT3D_sbsp_ck_net (int cv1Nr, CurvBSpl **cv1tab, int cv2Nr, CurvBSpl **cv2tab)
 
int UT3D_sbsp_2ncv (SurBSpl *su1, Memspc *tbuf1, int cv1Nr, CurvBSpl **cv1tab, int deg1, int cv2Nr, CurvBSpl **cv2tab, int deg2, Memspc *tbuf2, Memspc *tbuf3)
 
int UT3D_obj_cnvt_sbsp (ObjGX *ox1, SurBSpl *su1, Memspc *memSeg1)
 
int UT3D_sbs_ck_closed (SurBSpl *su1)
 
int UT3D_sbs_ck_cycX (SurBSpl *su1)
 
double UT3D_sbs_ck_planar (SurBSpl *su1)
 
int UT3D_uvNr_sbsp (int *iu, int *iv, SurBSpl *sur, Memspc *wrkSeg)
 
int UT3D_pt_evparsbsp (Point *pt, SurBSpl *sur, double u, double v, Memspc *workSeg)
 
int UT3D_ptgrid_sbsp (Point *pTab, double *du, double *dv, SurBSpl *sbs, int iu, int iv, Memspc *workSeg)
 
int UT3D_uparmid_sbsp (double *pm, SurBSpl *sbs)
 
int UT3D_vparmid_sbsp (double *pm, SurBSpl *sbs)
 
int UT3D_parsbsp_pt (double *up, double *vp, Point *pti, Point *pTab, double dui, double dvi, int uNr, int vNr, SurBSpl *sbs, Memspc *wrkSpc)
 
int UT3D_ptvc_evparsbsp (Point *pto, Vector *vn, int mode, int iDir, SurBSpl *sbs, double pu, double pv, Memspc *workSeg)
 
int UT3D_bspV_sbsp_u (CurvBSpl *bspl, SurBSpl *sbs, double pu, Memspc *workSeg)
 
int UT3D_bspU_sbsp_v (CurvBSpl *bspl, SurBSpl *sbs, double pv, Memspc *workSeg)
 
int UT3D_bsp_sbspU (CurvBSpl *bspl, int vNr, SurBSpl *sur)
 
int UT3D_cv_sbspout (int *pNr, Point *pTab, SurBSpl *sur, Memspc *wrkSeg)
 
int UT3D_cv_sbspU (int pNr, Point *pTab, double uu, SurBSpl *sbs, Memspc *workSeg)
 
int UT3D_cv_sbspV (int pNr, Point *pTab, double vv, SurBSpl *sbs, Memspc *workSeg)
 
int UT3D_bsp_sbspV (CurvBSpl *bspl, int uNr, SurBSpl *sur, Memspc *wrkSeg)
 
int UT3D_pt_intlnsbs (int *nxp, Point *xpTab, int xpSiz, Line *ln, SurBSpl *sbs, Memspc *tmpSpc1)
 

Detailed Description

B-Spline-Surface-Functions.

=====================================================
List_functions_start:
UT3D_sbs_ck_planar check if B-SplSurf = planar
UT3D_sbs_ck_cycX check if B-SplSurf is closed in X (U)
UT3D_sbs_ck_closed check if B-SplSurf is closed (soll cycY werden)
UT3D_uvNr_sbsp optimale Anzahl von Punkten in U/V-Richtung ermitteln
SUSbsp_ck_tol optimale Anzahl von Punkten in U/V-Richtung ermitteln
UT3D_obj_cnvt_sbsp degrade B-SplSur --> PlanarSurf / RuledSurf / Torus
UT3D_sbsp_2ncv create bspl-surf from 2 groups of curves
UT3D_sbsp_ncv create bspl-surf from 2-n across-curves
UT3D_pt_evparsbsp point <-- evaluate surface parameter
UT3D_pt_intlnsbs intersect Line - BspSur
UT3D_ptgrid_sbsp Grundraster generieren (f UT3D_parsbsp_pt ..)
UT3D_parsbsp_pt u/v-Parameter from 3D-B-SplineSurfPoint
UT3D_uparmid_sbsp mittleren U-Wert
UT3D_vparmid_sbsp mittleren V-Wert
UT3D_ptvc_evparsbsp Point/Normalvektor <-- evaluate surface parameter
UT3D_bspU_sbsp_v create B-Spline in direction U with par. u
UT3D_bspV_sbsp_u create B-Spline in direction V with par. v
UT3D_bsp_sbspU get U-Basiscurve from B-SplSurf
UT3D_bsp_sbspV get V-Basiscurve from B-SplSurf
UT3D_cv_sbspout outline (polygon) of B-SplSurf
UT3D_cv_sbspU Isocurve (polygon) from U-wert
UT3D_cv_sbspV Isocurve (polygon) from V-wert
List_functions_end:
=====================================================
- test functions:
UT3D_testsurf
- see also:
../ut/ubssur.c USBS_..

Function Documentation

int UT3D_sbsp_ncv ( SurBSpl su1,
Memspc tbuf1,
int  cvNr,
CurvBSpl **  cvtab,
int  deg,
Memspc tbuf2,
Memspc tbuf3 
)
int UT3D_sbsp_ck_net ( int  cv1Nr,
CurvBSpl **  cv1tab,
int  cv2Nr,
CurvBSpl **  cv2tab 
)
int UT3D_sbsp_2ncv ( SurBSpl su1,
Memspc tbuf1,
int  cv1Nr,
CurvBSpl **  cv1tab,
int  deg1,
int  cv2Nr,
CurvBSpl **  cv2tab,
int  deg2,
Memspc tbuf2,
Memspc tbuf3 
)
int UT3D_obj_cnvt_sbsp ( ObjGX ox1,
SurBSpl su1,
Memspc memSeg1 
)
int UT3D_sbs_ck_closed ( SurBSpl su1)
int UT3D_sbs_ck_cycX ( SurBSpl su1)
double UT3D_sbs_ck_planar ( SurBSpl su1)
int UT3D_uvNr_sbsp ( int *  iu,
int *  iv,
SurBSpl sur,
Memspc wrkSeg 
)
int UT3D_pt_evparsbsp ( Point pt,
SurBSpl sur,
double  u,
double  v,
Memspc workSeg 
)
int UT3D_ptgrid_sbsp ( Point pTab,
double *  du,
double *  dv,
SurBSpl sbs,
int  iu,
int  iv,
Memspc workSeg 
)
int UT3D_uparmid_sbsp ( double *  pm,
SurBSpl sbs 
)
int UT3D_vparmid_sbsp ( double *  pm,
SurBSpl sbs 
)
int UT3D_parsbsp_pt ( double *  up,
double *  vp,
Point pti,
Point pTab,
double  dui,
double  dvi,
int  uNr,
int  vNr,
SurBSpl sbs,
Memspc wrkSpc 
)
int UT3D_ptvc_evparsbsp ( Point pto,
Vector vn,
int  mode,
int  iDir,
SurBSpl sbs,
double  pu,
double  pv,
Memspc workSeg 
)
UT3D_ptvc_evparsbsp get point/vector on bSplSur from U-V-params
Input:
mode 0=Point & vector 1=PointOnly 2=vectorOnly
iDir 0=perp; 1=parl, 2=across;
int UT3D_bspV_sbsp_u ( CurvBSpl bspl,
SurBSpl sbs,
double  pu,
Memspc workSeg 
)
int UT3D_bspU_sbsp_v ( CurvBSpl bspl,
SurBSpl sbs,
double  pv,
Memspc workSeg 
)
int UT3D_bsp_sbspU ( CurvBSpl bspl,
int  vNr,
SurBSpl sur 
)
int UT3D_cv_sbspout ( int *  pNr,
Point pTab,
SurBSpl sur,
Memspc wrkSeg 
)
int UT3D_cv_sbspU ( int  pNr,
Point pTab,
double  uu,
SurBSpl sbs,
Memspc workSeg 
)
int UT3D_cv_sbspV ( int  pNr,
Point pTab,
double  vv,
SurBSpl sbs,
Memspc workSeg 
)
int UT3D_bsp_sbspV ( CurvBSpl bspl,
int  uNr,
SurBSpl sur,
Memspc wrkSeg 
)
int UT3D_pt_intlnsbs ( int *  nxp,
Point xpTab,
int  xpSiz,
Line ln,
SurBSpl sbs,
Memspc tmpSpc1 
)