gCAD3D 2.35
ubssur.c File Reference

bspline surface 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/ut_TX.h"
#include "../ut/ubs.h"
#include "../ut/ubssur.h"

Macros

#define NUM_IT   10000
 

Functions

int USBS_pt_projptsbsp (int *nxp, Point *ptab, double *pu, double *pv, SurBSpl *sur1, Point *pt1, Memspc *memSeg)
 
int USBS_IntsectLnBspSur (int *nxp, Point *xptab, int xpSiz, Line *ln, SurBSpl *sur, void *memStart, int mi, Memspc *memSegT[4], Memspc *workSeg)
 
int USBS_NxtPtBdryBspSur (Point *Pn, double *tn, SurBSpl *sur, int bd, Point *P, Memspc *workSeg)
 
int USBS_NxtPtBspSur (Point *PP, double *ppu, double *ppv, SurBSpl *sur, int clu, int clv, Point *P, int nu, int nv, Memspc *workSeg)
 
int USBS_DerivBspSur (SurBSpl *dsur, Memspc *memSeg, SurBSpl *sur, int uv)
 
int USBS_TestPatsBspSur (SurBSpl *sur, Memspc *workSeg)
 
int USBS_EvPtBspSur (Point *pt, SurBSpl *sur, double u, double v, Memspc *workSeg)
 
int USBS_GordSurBspCrvNet (SurBSpl *gsur, Memspc *memSeg, int cvNrU, CurvBSpl **cvTU, int cvNrV, CurvBSpl **cvTV, int degU, int degV, Memspc *work1Seg, Memspc *work2Seg)
 
int USBS_LinCombBspSurs (SurBSpl *suro, Memspc *memSeg, int srNr, SurBSpl *surTi, double *aT)
 
int USBS_SwUVBspSur (SurBSpl *suro, Memspc *memSeg, SurBSpl *suri)
 
int USBS_CpyBspSur (SurBSpl *suro, Memspc *memSeg, SurBSpl *suri)
 
int USBS_DifKntsKntVecBspSur (int *nk, double **nkTab, Memspc *memSeg, int mk, double *mkTab, SurBSpl *sur, int dirUV)
 
int USBS_MrgKntVecBspSurs (int *mk, double **mkTab, Memspc *memSeg, int nsr, SurBSpl *surTab, int dirUV, Memspc *workSeg)
 
int USBS_MkeCmpBspSurs (SurBSpl *surTo, Memspc *memSeg, int srNr, SurBSpl **surTi, int degU, int degV, Memspc *workSeg)
 
int USBS_RefKntVecBspSur (SurBSpl *suro, Memspc *memSeg, SurBSpl *suri, int nk, double *nkTab, int dirUV)
 
int USBS_DegElevBspSur (SurBSpl *suro, Memspc *memSeg, SurBSpl *suri, int dup, int dirUV)
 
int USBS_IntpolBspSur (SurBSpl *sur, Memspc *memSeg, int npu, int npv, Point *pTab, int degU, int degV, double *pvTU, double *pvTV, int usep, Memspc *workSeg)
 
int USBS_SkinSurBspCrvs (SurBSpl *sks, Memspc *memSeg, int ncv, CurvBSpl *bspTab, int deg, int dirUV, double *parT, int usep, Memspc *workSeg)
 
int USBS_DirIndSdBspSur (double **kvTabS1, double **kvTabN1, long *ptNNr1, Point **cpTab1, Memspc *memSeg1, double **kvTabS2, double **kvTabN2, long *ptNNr2, Point **cpTab2, Memspc *memSeg2, int deg, double *kvTabS, double *kvTabN, int ptNrS, int ptNrN, Point *cpTab, int m, double t, int uv)
 
int USBS_SubDivBspSur (SurBSpl *sur1, Memspc *memSeg1, SurBSpl *sur2, Memspc *memSeg2, SurBSpl *sur, double t, int uv)
 
int USBS_4QuBspSur (SurBSpl *surT[4], Memspc *memsurT[4], SurBSpl *sur, double u, double v, Memspc *workSeg)
 
int USBS_UVPtBspSur (double *pu, double *pv, double *useg, double *vseg, SurBSpl *sur, void *memStart, int mi, Point *pt, double tol, Memspc *memSegT[4], Memspc *workSeg)
 
int USBS_NvPtBspSur (Vector *nv, SurBSpl *sur, Point *pt, Memspc *memSegT[4], Memspc *workSeg)
 
int USBS_TgVecIsoBspSur (Vector *tg, SurBSpl *sur, double t1, double t2, int uv, Memspc *workSeg)
 

Detailed Description

bspline surface functions

=====================================================
List_functions_start:
USBS_pt_projptsbsp project point --> B-SplSurf
USBS_CpyBspSur Copy <-- bspline surface
USBS_DegElevBspSur Degree elevate <-- bspline surface
USBS_DerivBspSur Derivation <-- bspline surface
USBS_DifKntsKntVecBspSur Difference knots <-- knotvector, bspline surface
USBS_DirIndSdBspSur Dir. indep. subdiv. <-- bspline surface
USBS_EvPtBspSur Evaluate point <-- bspline surface
USBS_GordSurBspCrvNet Gordon bspline surface <-- bspline curve net
USBS_IntpolBspSur Interpolating bspline surface <-- points
USBS_IntsectLnBspSur Intersection points <-- bspline surface & line
USBS_LinCombBspSurs Linear combination <-- bspline surfaces
USBS_MkeCmpBspSurs Compatible bspline surfaces <-- bspline surfaces
USBS_MrgKntVecBspSurs Merge U/V-knotvectors <-- bspline surfaces
USBS_NxtPtBdryBspSur Next point on boundary <-- bspline surface & point
USBS_NxtPtBspSur Next point <-- bspline surface & point
USBS_NvPtBspSur Normal vector <-- point on bspline surface
USBS_RefKntVecBspSur Refine knotvector <-- bspline surface
USBS_SkinSurBspCrvs Skinned bspline surface <-- bspline curves
USBS_SubDivBspSur Subdivision <-- bspline surface
USBS_SwUVBspSur Switch UV <-- bspline surface
USBS_TestPatsBspSur Test patches <-- bspline surface
USBS_TgVecIsoBspSur Tangent vector <-- isopar. crv. bspline surface
USBS_UVPtBspSur UV-parameter <-- point on bspline surface
USBS_4QuBspSur 4 quarters <-- bspline surface
List_functions_end:
=====================================================

Macro Definition Documentation

#define NUM_IT   10000

Function Documentation

int USBS_pt_projptsbsp ( int *  nxp,
Point ptab,
double *  pu,
double *  pv,
SurBSpl sur1,
Point pt1,
Memspc memSeg 
)
int USBS_IntsectLnBspSur ( int *  nxp,
Point xptab,
int  xpSiz,
Line ln,
SurBSpl sur,
void *  memStart,
int  mi,
Memspc memSegT[4],
Memspc workSeg 
)
int USBS_NxtPtBdryBspSur ( Point Pn,
double *  tn,
SurBSpl sur,
int  bd,
Point P,
Memspc workSeg 
)
int USBS_NxtPtBspSur ( Point PP,
double *  ppu,
double *  ppv,
SurBSpl sur,
int  clu,
int  clv,
Point P,
int  nu,
int  nv,
Memspc workSeg 
)
int USBS_DerivBspSur ( SurBSpl dsur,
Memspc memSeg,
SurBSpl sur,
int  uv 
)
int USBS_TestPatsBspSur ( SurBSpl sur,
Memspc workSeg 
)
int USBS_EvPtBspSur ( Point pt,
SurBSpl sur,
double  u,
double  v,
Memspc workSeg 
)
int USBS_GordSurBspCrvNet ( SurBSpl gsur,
Memspc memSeg,
int  cvNrU,
CurvBSpl **  cvTU,
int  cvNrV,
CurvBSpl **  cvTV,
int  degU,
int  degV,
Memspc work1Seg,
Memspc work2Seg 
)
int USBS_LinCombBspSurs ( SurBSpl suro,
Memspc memSeg,
int  srNr,
SurBSpl surTi,
double *  aT 
)
int USBS_SwUVBspSur ( SurBSpl suro,
Memspc memSeg,
SurBSpl suri 
)
int USBS_CpyBspSur ( SurBSpl suro,
Memspc memSeg,
SurBSpl suri 
)
int USBS_DifKntsKntVecBspSur ( int *  nk,
double **  nkTab,
Memspc memSeg,
int  mk,
double *  mkTab,
SurBSpl sur,
int  dirUV 
)
int USBS_MrgKntVecBspSurs ( int *  mk,
double **  mkTab,
Memspc memSeg,
int  nsr,
SurBSpl surTab,
int  dirUV,
Memspc workSeg 
)
int USBS_MkeCmpBspSurs ( SurBSpl surTo,
Memspc memSeg,
int  srNr,
SurBSpl **  surTi,
int  degU,
int  degV,
Memspc workSeg 
)
int USBS_RefKntVecBspSur ( SurBSpl suro,
Memspc memSeg,
SurBSpl suri,
int  nk,
double *  nkTab,
int  dirUV 
)
int USBS_DegElevBspSur ( SurBSpl suro,
Memspc memSeg,
SurBSpl suri,
int  dup,
int  dirUV 
)
int USBS_IntpolBspSur ( SurBSpl sur,
Memspc memSeg,
int  npu,
int  npv,
Point pTab,
int  degU,
int  degV,
double *  pvTU,
double *  pvTV,
int  usep,
Memspc workSeg 
)
int USBS_SkinSurBspCrvs ( SurBSpl sks,
Memspc memSeg,
int  ncv,
CurvBSpl bspTab,
int  deg,
int  dirUV,
double *  parT,
int  usep,
Memspc workSeg 
)
int USBS_DirIndSdBspSur ( double **  kvTabS1,
double **  kvTabN1,
long *  ptNNr1,
Point **  cpTab1,
Memspc memSeg1,
double **  kvTabS2,
double **  kvTabN2,
long *  ptNNr2,
Point **  cpTab2,
Memspc memSeg2,
int  deg,
double *  kvTabS,
double *  kvTabN,
int  ptNrS,
int  ptNrN,
Point cpTab,
int  m,
double  t,
int  uv 
)
int USBS_SubDivBspSur ( SurBSpl sur1,
Memspc memSeg1,
SurBSpl sur2,
Memspc memSeg2,
SurBSpl sur,
double  t,
int  uv 
)
int USBS_4QuBspSur ( SurBSpl surT[4],
Memspc memsurT[4],
SurBSpl sur,
double  u,
double  v,
Memspc workSeg 
)
int USBS_UVPtBspSur ( double *  pu,
double *  pv,
double *  useg,
double *  vseg,
SurBSpl sur,
void *  memStart,
int  mi,
Point pt,
double  tol,
Memspc memSegT[4],
Memspc workSeg 
)
int USBS_NvPtBspSur ( Vector nv,
SurBSpl sur,
Point pt,
Memspc memSegT[4],
Memspc workSeg 
)
int USBS_TgVecIsoBspSur ( Vector tg,
SurBSpl sur,
double  t1,
double  t2,
int  uv,
Memspc workSeg 
)