Ayam NURBS API. More...
Go to the source code of this file.
Functions | |
| int | ay_act_leastSquares (double *Q, int m, int n, int p, int kt, double **U, double **P) |
| Do a least squares approximation for a curve. | |
| int | ay_act_leastSquaresClosed (double *Q, int m, int n, int p, int kt, double **U, double **P) |
| Do a least squares approximation for a closed curve. | |
| void | ay_act_multmatrixmn (int m, int n, double *M1, double *M2, double *R) |
| Multiply two matrices. | |
| int | ay_act_solve (int m, int n, int stride, double *A, double *B, double *X) |
| Solve A*X=B. | |
| int | ay_act_resize (ay_acurve_object *curve, int new_length) |
| Resize a approximating curve. | |
| int | ay_act_revert (ay_acurve_object *curve) |
| Revert a approximating curve. | |
| int | ay_act_getpntfromindex (ay_acurve_object *curve, int index, double **p) |
| Get point from approximating curve. | |
| int | ay_act_approxtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to approximate selected NURBS curves. | |
| int | ay_act_solveaxbtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to solve a linear equation system. | |
| double | ay_apt_round (double d) |
| round double similar to C99 | |
| int | ay_apt_getpntfromindex (ay_apatch_object *patch, int indexu, int indexv, double **p) |
| Get point from approximating patch. | |
| int | ay_apt_swapuv (ay_apatch_object *ap) |
| Flip UV of approximating patch. | |
| void | ay_apt_revertu (ay_apatch_object *ap) |
| Revert approximating patch in U direction. | |
| void | ay_apt_revertv (ay_apatch_object *ap) |
| Revert approximating patch in V direction. | |
| int | ay_apt_approximateuv (double *cv, int width, int height, int awidth, int aheight, int uorder, int vorder, int uknottype, int vknottype, int closeu, int closev, ay_nurbpatch_object **np) |
| Approximate a 2D array of data points first in U then in V. | |
| int | ay_apt_approximatevu (double *cv, int width, int height, int awidth, int aheight, int uorder, int vorder, int uknottype, int vknottype, int closeu, int closev, ay_nurbpatch_object **np) |
| Approximate a 2D array of data points first in V then in U. | |
| int | ay_apt_approximateu (double *cv, int width, int height, int awidth, int uorder, int vorder, int uknottype, int vknottype, int closeu, int closev, ay_nurbpatch_object **np) |
| Approximate a 2D array of data points in U. | |
| int | ay_apt_approximatev (double *cv, int width, int height, int aheight, int uorder, int vorder, int uknottype, int vknottype, int closeu, int closev, ay_nurbpatch_object **np) |
| Approximate a 2D array of data points in V. | |
| int | ay_apt_approxtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to approximate selected NURBS surfaces. | |
| void | ay_bevelt_parsetags (ay_tag *tag, ay_bparam *params) |
| Parse BP (BevelParameter) tags. | |
| int | ay_bevelt_addbevels (ay_bparam *bparams, ay_cparam *cparams, ay_object *o, ay_object **dst) |
| Add bevels to a surface object. | |
| int | ay_bevelt_createc (double radius, ay_object *o1, ay_object *o2, ay_nurbpatch_object **bevel) |
| Create bevel surface from cross section bevel curve. | |
| int | ay_bevelt_createc3d (double radius, int revert, ay_object *o1, ay_object *o2, double *n, int nstride, double *t, int tstride, ay_nurbpatch_object **bevel) |
| Create bevel surface from 3D curve and cross section bevel curve. | |
| int | ay_bevelt_createroundtocap (double radius, int revert, ay_object *o1, double *t, int tstride, ay_nurbpatch_object **bevel) |
| Create bevel surface from 3D curve that rounds to the cap. | |
| int | ay_bevelt_createroundtonormal (double radius, int revert, ay_object *o1, double *nt, int nstride, double *ta, int tstride, double *mn, ay_nurbpatch_object **bevel) |
| Create bevel surface from 3D curve that rounds to the mean normal. | |
| int | ay_bevelt_findbevelcurve (int index, ay_object **c) |
| Find cross section bevel curve. | |
| int | ay_bevelt_createconcat (int side, ay_object *o, ay_object *c, ay_object **bevel) |
| Create bevel by surface concatenations fillet creation. | |
| int | ay_capt_addcaps (ay_cparam *cparams, ay_bparam *bparams, ay_object *o, ay_object **dst) |
| Create all caps for a surface. | |
| int | ay_capt_crtsimplecap (ay_object *c, int mode, double frac, double *mp, ay_object **cap) |
| Create simple cap from (convex) curve. | |
| int | ay_capt_integrate (ay_object *c, int side, int knottype, ay_object *s) |
| Integrate cap into the progenitor surface. | |
| int | ay_capt_crttrimcap (ay_object *c, ay_object **cap) |
| Create trim cap from (planar) curve(s). | |
| int | ay_capt_crtgordoncap (ay_object *c, ay_object **cap) |
| Create gordon cap from non planar curve. | |
| void | ay_capt_parsetags (ay_tag *tag, ay_cparam *params) |
| Parse CP (CapParameter) tags. | |
| void | ay_capt_createtags (ay_object *o, int *caps) |
| Create CP (CapParameter) tags. | |
| int | ay_capt_capnurbpatch (ay_nurbpatch_object *np, int side, double *mpp) |
| Cap a NURBS surface. | |
| int | ay_capt_capstcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to cap a surface. | |
| int | ay_ict_interpolateC2C (int length, double sdlen, double edlen, int param_type, int have_end_derivs, double *sderiv, double *ederiv, double *controlv, ay_nurbcurve_object **c) |
| Do a global C2 cubic interpolation. | |
| int | ay_ict_interpolateC2CClosed (int length, double sdlen, double edlen, int param_type, int have_end_derivs, double *sderiv, double *ederiv, double *controlv, ay_nurbcurve_object **c) |
| Do a global C2 cubic interpolation for a closed curve. | |
| int | ay_ict_interpolateG3D (int iorder, int length, double sdlen, double edlen, int have_end_derivs, int param_type, double *controlv, double *sderiv, double *ederiv, ay_nurbcurve_object **c) |
| Do a global 3D interpolation. | |
| int | ay_ict_interpolateG3DClosed (int iorder, int length, double sdlen, double edlen, int have_end_derivs, int param_type, double *controlv, double *sderiv, double *ederiv, ay_nurbcurve_object **c) |
| Do a global 3D interpolation for a closed curve. | |
| int | ay_ict_resize (ay_icurve_object *curve, int new_length) |
| Resize a interpolating curve. | |
| int | ay_ict_revert (ay_icurve_object *curve) |
| Revert a interpolating curve. | |
| int | ay_ict_getpntfromindex (ay_icurve_object *curve, int index, double **p) |
| Get point from a interpolating curve. | |
| int | ay_ict_interptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to interpolate selected NURBS curves. | |
| int | ay_ipt_getpntfromindex (ay_ipatch_object *patch, int indexu, int indexv, double **p) |
| Get control point from index. | |
| int | ay_ipt_swapuv (ay_ipatch_object *ip) |
| Flip UV of interpolating patch. | |
| void | ay_ipt_revertu (ay_ipatch_object *ip) |
| Revert interpolating patch in U direction. | |
| void | ay_ipt_revertv (ay_ipatch_object *ip) |
| Revert interpolating patch in V direction. | |
| int | ay_ipt_interpolateu (ay_nurbpatch_object *np, int order, int ktype) |
| Interpolate NURBS patch in U direction. | |
| int | ay_ipt_interpolateud (ay_nurbpatch_object *np, int order, int ktype, int dmode, double sdlen, double edlen, double *sd, double *ed) |
| Interpolate NURBS patch with end derivatives in U direction. | |
| int | ay_ipt_interpolateudc (ay_nurbpatch_object *np, int order, int ktype, int dmode, double sdlen, double edlen, double *sd, double *ed) |
| Interpolate NURBS patch with end derivatives in U direction (closed). | |
| int | ay_ipt_interpolatev (ay_nurbpatch_object *np, int order, int ktype) |
| Interpolate NURBS patch in V direction. | |
| int | ay_ipt_interpolatevd (ay_nurbpatch_object *np, int order, int ktype, int dmode, double sdlen, double edlen, double *sd, double *ed) |
| Interpolate NURBS patch with end derivatives in V direction. | |
| int | ay_ipt_interpolatevdc (ay_nurbpatch_object *np, int order, int ktype, int dmode, double sdlen, double edlen, double *sd, double *ed) |
| Interpolate NURBS patch with end derivatives in V direction (closed). | |
| int | ay_ipt_interpuvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to interpolate selected NURBS surfaces. | |
| int | ay_ipt_crtderiv (int mode, ay_ipatch_object *ip) |
| Create default derivative vectors. | |
| int | ay_knots_createnp (ay_nurbpatch_object *patch) |
| Create knots for a NURBS patch. | |
| int | ay_knots_createnc (ay_nurbcurve_object *curve) |
| Create knots for a NURBS curve. | |
| int | ay_knots_check (int length, int order, int knot_count, double *knotv) |
| Check a knot vector for errors. | |
| void | ay_knots_printerr (char *location, int errcode) |
| Print knot error message received by knots_check() to Ayam console. | |
| int | ay_knots_rescaletorange (int n, double *knotv, double rmin, double rmax) |
| Rescale a knot vector to new lower/upper bounds. | |
| int | ay_knots_rescaletomindist (int n, double *knotv, double mindist) |
| Rescale a knot vector to a minimum knot distance. | |
| int | ay_knots_unify (double *Ua, int Ualen, double *Ub, int Ublen, double **Ubar, int *Ubarlen) |
| Unify two knot vectors. | |
| int | ay_knots_mergenc (ay_nurbcurve_object *curve, double *Ubar, int Ubarlen) |
| Merge knot vector into curve knots. | |
| int | ay_knots_mergenp (ay_nurbpatch_object *patch, double *Ubar, int Ubarlen, double *Vbar, int Vbarlen) |
| Merge knot vectors into patch knots. | |
| int | ay_knots_getuminmax (ay_object *o, int order, int knots, double *knotv, double *umin, double *umax) |
| Calculate valid knot bounds. | |
| int | ay_knots_getvminmax (ay_object *o, int order, int knots, double *knotv, double *vmin, double *vmax) |
| Calculate valid knot bounds. | |
| int | ay_knots_setuminmax (ay_object *o, double umin, double umax) |
| Set valid knot bounds (create UMM tag). | |
| int | ay_knots_setvminmax (ay_object *o, double vmin, double vmax) |
| Set valid knot bounds (create VMM tag). | |
| int | ay_knots_coarsen (int order, int knotvlen, double *knotv, int count, double **newknotv) |
| Coarsen a knot vector. | |
| int | ay_knots_chordparam (double *Q, int Qlen, int stride, double **U) |
| Create chordal parameterized knots. | |
| int | ay_knots_centriparam (double *Q, int Qlen, int stride, double **U) |
| Create centripetal parameterized knots. | |
| int | ay_knots_chordparamnp (int dir, double *Q, int width, int height, int stride, double **U) |
| Create chordal parameterized knots for a surface. | |
| int | ay_knots_centriparamnp (int dir, double *Q, int width, int height, int stride, double **U) |
| Create centripetal parameterized knots for a surface. | |
| int | ay_knots_isclamped (unsigned int side, unsigned int order, double *U, unsigned int Ulen, double eps) |
| Determine whether a knot vector is clamped. | |
| int | ay_knots_classify (unsigned int order, double *U, unsigned int Ulen, double eps) |
| Classify a knot vector (returns AY_KT*). | |
| int | ay_knots_revert (double *U, int ulen) |
| Revert a knot vector. | |
| int | ay_knots_getdisc (int Ulen, double *U, int order, int *Udlen, double **Ud) |
| Get discontinuous parametric values of a NURBS curve/surface. | |
| int | ay_knots_remove (unsigned int index, int order, int length, double **U) |
| Remove knot from a knot vector. | |
| int | ay_knots_insert (unsigned int index, int order, int length, double **U) |
| Insert knot into a knot vector. | |
| void | ay_knots_match (ay_nurbcurve_object *nc, double eps, double *u) |
| Find matching knot. | |
| int | ay_knots_evalparam (char **fpname, double u, int relative, int length, int order, double *knotv, double *v) |
| Manage a parameter for evaluation. | |
| int | ay_knots_isbezierspline (int length, int order, double *U) |
| Check for Bezier Spline knot type. | |
| int | ay_knots_init (Tcl_Interp *interp) |
| Initialize the knots module. | |
| int | ay_nb_LUDecompose (int n, double *A, int *pivot) |
| Do a LU decomposition of the nxn matrix A. | |
| int | ay_nb_LUInvert (int n, double *inv, int *pivot) |
| Invert the nxn matrix inv. | |
| int | ay_nb_GlobalInterpolation4D (int n, double *Q, double *ub, double *Uc, int d) |
| Interpolate the n+1 4D points in Q. | |
| int | ay_nb_GlobalInterpolation4DD (int n, double *Q, double *ub, double *Uc, int d, double *D1, double *D2) |
| Interpolate the n+1 4D points in Q with end derivatives. | |
| int | ay_nb_RemoveKnotCurve4D (int n, int p, double *U, double *Pw, double tol, int r, int s, int num, double *Ubar, double *Qw) |
| Remove a knot from a NURBS curve. | |
| void | ay_nb_Bin (int maxn, int maxk, double *bin) |
| Calculate binomial coefficients. | |
| int | ay_nb_DegreeElevateCurve4D (int stride, int n, int p, double *U, double *Pw, int t, int *nh, double *Uh, double *Qw) |
| Elevate degree of a NURBS curve. | |
| int | ay_nb_SolveTridiagonal (int n, double *Q, double *U, double *P) |
| Solve tridiagonal equation system. | |
| int | ay_nb_InsertKnotCurve4D (int np, int p, double *UP, double *Pw, double u, int k, int s, int r, int *nq, double *UQ, double *Qw) |
| Insert knot into rational NURBS curve. | |
| int | ay_nb_InsertKnotCurve3D (int np, int p, double *UP, double *P, double u, int k, int s, int r, int *nq, double *UQ, double *Q) |
| Insert knot into non-rational NURBS curve. | |
| int | ay_nb_FindSpan (int n, int p, double u, double *U) |
| Find knot span containing parameter u. | |
| int | ay_nb_FindSpanMult (int n, int p, double u, double *U, int *s) |
| Find knot span containing parameter u and calculate multiplicity. | |
| int | ay_nb_BasisFuns (int i, double u, int p, double *U, double *N) |
| Calculate NURBS basis functions. | |
| void | ay_nb_BasisFunsM (int i, double u, int p, double *U, double *N) |
| Calculate NURBS basis functions in provided memory. | |
| int | ay_nb_CurvePoint4D (int n, int p, double *U, double *Pw, double u, double *C) |
| Calculate a point on a rational NURBS curve. | |
| void | ay_nb_CurvePoint4DM (int n, int p, double *U, double *Pw, double u, double *C) |
| Calculate a point on a rational NURBS curve in provided memory. | |
| int | ay_nb_CurvePoint3D (int n, int p, double *U, double *P, double u, double *C) |
| Calculate a point on a non-rational NURBS curve. | |
| void | ay_nb_CurvePoint3DM (int n, int p, double *U, double *P, double u, double *C) |
| Calculate a point on a non-rational NURBS curve in provided memory. | |
| int | ay_nb_SurfacePoint4D (int n, int m, int p, int q, double *U, double *V, double *Pw, double u, double v, double *C) |
| Calculate a point on a rational NURBS surface. | |
| int | ay_nb_SurfacePoint3D (int n, int m, int p, int q, double *U, double *V, double *P, double u, double v, double *C) |
| Calculate a point on a non-rational NURBS surface. | |
| void | ay_nb_DersBasisFuns (int i, double u, int p, int n, double *U, double *ders) |
| Calculate derivatives of NURBS basis funs. | |
| void | ay_nb_FirstDer3D (int n, int p, double *U, double *P, double u, double *C1) |
| Calculate first derivative of non-rational NURBS curve. | |
| void | ay_nb_SecondDer3D (int n, int p, double *U, double *P, double u, double *C2) |
| Calculate second derivative of non-rational NURBS curve. | |
| void | ay_nb_FirstDer4D (int n, int p, double *U, double *Pw, double u, double *C1) |
| Calculate first derivative of rational NURBS curve. | |
| void | ay_nb_SecondDer4D (int n, int p, double *U, double *Pw, double u, double *C2) |
| Calculate second derivative of rational NURBS curve. | |
| void | ay_nb_FirstDerSurf4D (int n, int m, int p, int q, double *U, double *V, double *Pw, double u, double v, double *C) |
| Calculate first derivative of rational NURBS surface. | |
| int | ay_nb_FirstDerSurf4DMSize (int p, int q) |
| Calculate size of memory area needed by ay_nb_FirstDerSurf4DM(). | |
| void | ay_nb_FirstDerSurf4DM (int n, int m, int p, int q, double *U, double *V, double *Pw, double u, double v, double *C) |
| Calculate first derivative of rational NURBS surface. | |
| void | ay_nb_FirstDerSurf3D (int n, int m, int p, int q, double *U, double *V, double *P, double u, double v, double *C) |
| Calculate first derivative of non-rational NURBS surface. | |
| int | ay_nb_FirstDerSurf3DMSize (int p, int q) |
| Calculate size of memory area needed by ay_nb_FirstDerSurf3DM(). | |
| void | ay_nb_FirstDerSurf3DM (int n, int m, int p, int q, double *U, double *V, double *P, double u, double v, double *C) |
| Calculate first derivative of non-rational NURBS surface. | |
| void | ay_nb_SecondDerSurf3D (int n, int m, int p, int q, double *U, double *V, double *P, double u, double v, double *C) |
| Calculate second derivative of non-rational NURBS curve. | |
| void | ay_nb_SecondDerSurf4D (int n, int m, int p, int q, double *U, double *V, double *Pw, double u, double v, double *C) |
| Calculate second derivative of rational NURBS curve. | |
| int | ay_nb_CreateNurbsCircleArc (double r, double ths, double the, int *length, double **knotv, double **controlv) |
| Create NURBS circle or arc. | |
| void | ay_nb_RefineKnotVectCurve (int is_rat, int n, int p, double *U, double *Pw, double *X, int r, double *Ubar, double *Qw) |
| Refine knot vector of NURBS curve with a new vector. | |
| int | ay_nb_DegreeElevateSurfU4D (int stride, int w, int h, int p, double *U, double *Pw, int t, int *nw, double *Uh, double *Qw) |
| Elevate degree of NURBS surface in U direction. | |
| int | ay_nb_DegreeElevateSurfV4D (int stride, int w, int h, int q, double *V, double *Pw, int t, int *nh, double *Vh, double *Qw) |
| Elevate degree of NURBS surface in V direction. | |
| int | ay_nb_RefineKnotVectSurfU (int is_rat, int w, int h, int p, double *U, double *Pw, double *X, int r, double *Ubar, double *Qw) |
| Refine U knot vector of NURBS surface with a new vector. | |
| int | ay_nb_RefineKnotVectSurfV (int is_rat, int w, int h, int p, double *V, double *Pw, double *X, int r, double *Vbar, double *Qw) |
| Refine V knot vector of NURBS surface with a new vector. | |
| int | ay_nb_DecomposeCurve (int stride, int n, int p, double *U, double *Pw, int *nb, double **Qw) |
| Decompose NURBS curve into Bezier segments. | |
| int | ay_nb_InsertKnotSurfU (int stride, int w, int h, int p, double *UP, double *Pw, double u, int k, int s, int r, double *UQ, double *Qw) |
| Insert knot into NURBS surface in U direction. | |
| int | ay_nb_InsertKnotSurfV (int stride, int w, int h, int q, double *VP, double *Pw, double v, int k, int s, int r, double *VQ, double *Qw) |
| Insert knot into NURBS surface in V direction. | |
| int | ay_nb_RemoveKnotSurfV (int w, int h, int q, double *V, double *Pw, double tol, int r, int s, int num, double *Vbar, double *Qw) |
| Remove knot from NURBS surface in V direction. | |
| void | ay_nb_UnclampCurve (int israt, int n, int p, int s, double *U, double *Pw, int updateknots) |
| Unclamp a NURBS curve. | |
| void | ay_nb_UnclampSurfaceU (int israt, int w, int h, int p, int s, double *U, double *Pw) |
| Unclamp a NURBS surface in U direction. | |
| void | ay_nb_UnclampSurfaceV (int israt, int w, int h, int q, int s, double *V, double *Pw) |
| Unclamp a NURBS surface in V direction. | |
| int | ay_nb_DegreeReduceCurve4D (int n, int p, double *U, double *Qw, double tol, int *nh, double *Uh, double *Pw) |
| Reduce degree of NURBS curve. | |
| int | ay_nb_DegreeReduceSurfV (int w, int h, int q, double *V, double *Pw, double tol, int *nh, double *Vbar, double *Qw) |
| Reduce degree of NURBS surface. | |
| void | ay_nb_MakeOneArc (double *P0, double *T0, double *P2, double *T2, double *P, double *P1, double *w1) |
| Create conic arc Bezier curve. | |
| double | ay_nb_InsertControlCurve4D (int n, int p, double *U, double *Pw, int qi, double *Q) |
| Compute knot that relates to an inserted control point. | |
| int | ay_nct_create (int order, int length, int knot_type, double *controlv, double *knotv, ay_nurbcurve_object **curveptr) |
| Create NURBS curve object. | |
| void | ay_nct_destroy (ay_nurbcurve_object *curve) |
| Gracefully destroy NURBS curve object. | |
| void | ay_nct_clearmp (ay_nurbcurve_object *c) |
| Remove multiple points from curve. | |
| void | ay_nct_recreatemp (ay_nurbcurve_object *c) |
| Re-create multiple points for curve. | |
| int | ay_nct_collapseselp (ay_object *o) |
| Collapse selected points to multiple points. | |
| int | ay_nct_explodemp (ay_object *o) |
| Explode selected multiple points. | |
| int | ay_nct_resize (ay_nurbcurve_object *curve, int new_length) |
| Change the number of control points of a NURBS curve. | |
| int | ay_nct_close (ay_nurbcurve_object *curve) |
| Close NURBS curve. | |
| int | ay_nct_open (ay_nurbcurve_object *curve) |
| Open a NURBS curve. | |
| int | ay_nct_refinearray (double *Pw, int len, int stride, ay_point *selp, double **Qw, int *Qwlen) |
| Refine a 1D control point array. | |
| int | ay_nct_revertarr (double *cv, int cvlen, int stride) |
| Revert array. | |
| int | ay_nct_revert (ay_nurbcurve_object *curve) |
| Revert NURBS curve. | |
| int | ay_nct_refinekn (ay_nurbcurve_object *curve, int maintain_ends, double *newknotv, int newknotvlen) |
| Refine NURBS curve knots. | |
| int | ay_nct_refinecv (ay_nurbcurve_object *curve, ay_point *selp) |
| Refine NURBS curve control points. | |
| int | ay_nct_refinekntcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to refine the knots of selected NURBS curves. | |
| int | ay_nct_clampperiodic (ay_nurbcurve_object *curve) |
| Clamp periodic NURBS curve on both ends. | |
| int | ay_nct_clamp (ay_nurbcurve_object *curve, int side) |
| Clamp NURBS curve. | |
| int | ay_nct_clamptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to clamp selected NURBS curves. | |
| int | ay_nct_elevate (ay_nurbcurve_object *curve, int new_order) |
| Elevate order of NURBS curve. | |
| int | ay_nct_elevatetcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to elevate order of selected NURBS curves. | |
| int | ay_nct_insertkntcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to insert knot into selected NURBS curves. | |
| int | ay_nct_findu (struct Togl *togl, ay_object *o, double *winXY, double *worldXYZ, double *u) |
| Find point on NURBS curve. | |
| int | ay_nct_finducb (struct Togl *togl, int argc, char *argv[]) |
| Find point on NURBS curve modelling action. | |
| int | ay_nct_split (ay_object *src, double u, int relative, ay_object **result) |
| Split NURBS curve. | |
| int | ay_nct_splittcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to split selected NURBS curves. | |
| int | ay_nct_concatctcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to concatenate selected curves. | |
| int | ay_nct_crtncircle (double radius, ay_nurbcurve_object **curve) |
| Create a NURBS circle. | |
| int | ay_nct_crtncirclearc (double radius, double arc, ay_nurbcurve_object **curve) |
| Create a circular NURBS arc. | |
| int | ay_nct_crtnhcircle (double radius, ay_nurbcurve_object **curve) |
| Create a NURBS half-circle. | |
| int | ay_nct_crtncirclefrom3pnts (double *A, double *B, double *C, ay_nurbcurve_object **ncircle) |
| Create a NURBS circle from three points. | |
| int | ay_nct_crtncirclearcfrom3pnts (double *A, double *B, double *C, int keep_cvs, ay_nurbcurve_object **ncirclearc) |
| Create a NURBS circle arc from three points. | |
| int | ay_nct_crtnconicarc (double *p0, double *t0, double *p2, double *t2, double *p1, int keep_cvs, ay_nurbcurve_object **narc) |
| Create a NURBS conic arc. | |
| int | ay_nct_crtncircletcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create a NURBS circle. | |
| int | ay_nct_crtnparabola (double ymin, double ymax, double rmax, ay_nurbcurve_object **curve) |
| Create a NURBS parabola. | |
| int | ay_nct_crtnhyperbola (double ymin, double ymax, double a, double b, ay_nurbcurve_object **curve) |
| Create a NURBS hyperbola. | |
| int | ay_nct_crtnparabolatcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create a NURBS parabola or hyperbola. | |
| int | ay_nct_crtnconicarctcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create a NURBS conic arc or circle arc. | |
| int | ay_nct_crtrecttcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create a NURBS rectangle. | |
| int | ay_nct_crtcircbspcv (int sections, double radius, double arc, int order, double **result) |
| Create control points for a circular B-Spline curve. | |
| int | ay_nct_crtcircbsp (int sections, double radius, double arc, int order, ay_nurbcurve_object **result) |
| Create a circular B-Spline curve. | |
| int | ay_nct_crtclosedbsptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create a circular B-Spline curve. | |
| int | ay_nct_getorientation (ay_nurbcurve_object *curve, int stride, int report, int plane, double *oangle) |
| Calculate orientation of planar aligned NURBS curve. | |
| int | ay_nct_getorientation3d (ay_nurbcurve_object *curve, int stride, int report, double *orient) |
| Calculate orientation of NURBS curve. | |
| int | ay_nct_getwinding (ay_nurbcurve_object *curve, double *v) |
| Calculate winding of arbitrary (3D) NURBS curve. | |
| int | ay_nct_isclosed (ay_nurbcurve_object *nc) |
| Check NURBS curve closeness. | |
| void | ay_nct_settype (ay_nurbcurve_object *nc) |
| Set NURBS curve type. | |
| int | ay_nct_applytrafo (ay_object *c) |
| Apply transformations to all control points. | |
| int | ay_nct_getpntfromindex (ay_nurbcurve_object *curve, int index, double **p) |
| Get control point from index. | |
| void | ay_nct_concatobjs (ay_object *o, ay_object **result) |
| Concatenate multiple objects. | |
| int | ay_nct_concatmultiple (int closed, int knot_type, int fillgaps, ay_object *curves, ay_object **result) |
| Concatenate multiple NURBS curves. | |
| int | ay_nct_fillgap (int order, double tanlen, ay_nurbcurve_object *c1, ay_nurbcurve_object *c2, ay_object **result) |
| Create fillet. | |
| int | ay_nct_fillgaps (int closed, int order, double tanlen, ay_object *curves) |
| Create fillets. | |
| int | ay_nct_arrange (ay_object *o, ay_object *t, int rotate) |
| Place objects on a curve. | |
| int | ay_nct_rescaleknvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to rescale the knot vectors of selected curves. | |
| double | ay_nct_gettorsion (ay_nurbcurve_object *nc, int relative, double u) |
| Calculate torsion at parameter value u. | |
| double | ay_nct_getcurvature (ay_nurbcurve_object *nc, int relative, double u) |
| Calculate curvature at parameter value u. | |
| int | ay_nct_curvplottcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create a curvature plot curve. | |
| int | ay_nct_getcurvaturetcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to compute the curvature of a curve. | |
| int | ay_nct_intersect (ay_nurbcurve_object *cu, ay_nurbcurve_object *cv, double *intersection) |
| Unfinished. | |
| int | ay_nct_intersectsets (int ncu, ay_object *cu, int ncv, ay_object *cv, double *intersections) |
| Calculate intersections of two sets of curves. | |
| int | ay_nct_iscompatible (ay_object *curves, int level, int *result) |
| Check a number of curves for compatibility. | |
| int | ay_nct_makecompatible (ay_object *curves, int level) |
| Make a number of curves compatible. | |
| int | ay_nct_shiftarr (int dir, int stride, int cvlen, double *cv) |
| Shift control points of a 1D (curve) control vector. | |
| int | ay_nct_shiftctcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Shift control points of selected curves. | |
| int | ay_nct_toplane (int plane, int allow_flip, ay_object *c) |
| Rotate curve to XY/YZ/XZ plane. | |
| int | ay_nct_toxytcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to rotate selected NURBS curves to XY/YZ/XZ plane. | |
| int | ay_nct_iscomptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to check compatibility of the selected NURBS curves. | |
| int | ay_nct_makecomptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to make selected NURBS curves compatible. | |
| int | ay_nct_israt (ay_nurbcurve_object *curve) |
| Check whether any weight of a NURBS curve is != 1.0. | |
| int | ay_nct_coarsen (ay_nurbcurve_object *curve, ay_point *selp) |
| Coarsen NURBS curve. | |
| int | ay_nct_coarsenarray (double *Pw, int len, int stride, ay_point *selp, double **Qw, int *Qwlen) |
| Coarsen a 1D control point vector. | |
| int | ay_nct_removesuperfluousknots (ay_nurbcurve_object *nc, double tol) |
| Remove all knots from the curve that do not contribute to its shape. | |
| int | ay_nct_removekntcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to remove a knot from selected NURBS curves. | |
| int | ay_nct_trimtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Trim selected NURBS curves. | |
| int | ay_nct_trim (ay_nurbcurve_object **curve, double umin, double umax) |
| Trim NURBS curve. | |
| int | ay_nct_isdegen (ay_nurbcurve_object *curve) |
| Check curve for degeneracy. | |
| int | ay_nct_offset (ay_object *o, int mode, double offset, ay_nurbcurve_object **nc) |
| Create offset curve. | |
| int | ay_nct_cmppnt (const void *p1, const void *p2) |
| Compare two points (helper for qsort). | |
| int | ay_nct_cmppntp (const void *p1, const void *p2) |
| Compare two points given as pointers (helper for qsort). | |
| int | ay_nct_estlen (ay_nurbcurve_object *nc, double *len) |
| Do curve length estimation. | |
| int | ay_nct_estlentcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to estimate length of selected NURBS curves. | |
| int | ay_nct_reparamtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to reparameterise selected NURBS curves. | |
| int | ay_nct_euctohom (ay_nurbcurve_object *nc) |
| Convert rational coordinates from euclidean to homogeneous style. | |
| int | ay_nct_homtoeuc (ay_nurbcurve_object *nc) |
| Convert rational coordinates from homogeneous to euclidean style. | |
| void | ay_nct_isplanar (ay_object *c, int allow_flip, ay_object **cp, int *is_planar) |
| Check planarity of curve. | |
| int | ay_nct_unclamptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to unclamp the selected NURBS curves. | |
| int | ay_nct_extend (ay_nurbcurve_object *curve, double *p) |
| Extend NURBS curve to a point. | |
| int | ay_nct_extendtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to extend the selected NURBS curves. | |
| double | ay_nct_meandist (int cvlen, int cvastride, double *cva, int cvbstride, double *cvb) |
| Compute mean distance of two 1D control point arrays. | |
| int | ay_nct_shifttominmeandist (int cvlen, int cvstride, double *cva, double *cvb) |
| Shift 1D control point array to minimum mean distance to a second array. | |
| int | ay_nct_rotatetominmeandist (int cvlen, int cvstride, double *cva, double *cvb) |
| Rotate 1D control point array to minimum mean distance to a second array. | |
| int | ay_nct_getcvtangents (ay_nurbcurve_object *nc, double **result) |
| Compute curve tangent vectors from control points. | |
| int | ay_nct_computebreakpoints (ay_nurbcurve_object *ncurve) |
| Compute all distinct knots and their curve positions. | |
| void | ay_nct_drawbreakpoints (ay_nurbcurve_object *ncurve) |
| Draw distinct knots as rhombuses. | |
| void | ay_nct_colorfromweight (double w) |
| Set the current OpenGL color from a weight value. | |
| int | ay_nct_extractnc (ay_object *src, double umin, double umax, int relative, ay_object **result) |
| Extract sub curve. | |
| int | ay_nct_extractnctcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to extract a sub curve from the selected NURBS curves. | |
| int | ay_nct_fair (ay_nurbcurve_object *curve, ay_point *selp, double tol, int fair_worst) |
| make the shape of a curve more pleasant | |
| int | ay_nct_fairnctcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to make the shape of a curve more pleasant. | |
| int | ay_nct_tobezierspline (ay_nurbcurve_object *nc) |
| Convert knots to bezier spline style. | |
| double | ay_nct_dist (ay_nurbcurve_object *nc1, ay_nurbcurve_object *nc2, int mode) |
| Compute (mean, min, max) distance between curves. | |
| int | ay_nct_distnctcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to compute curve distances. | |
| int | ay_npt_create (int uorder, int vorder, int width, int height, int uknot_type, int vknot_type, double *controlv, double *uknotv, double *vknotv, ay_nurbpatch_object **patchptr) |
| Create NURBS patch object. | |
| void | ay_npt_destroy (ay_nurbpatch_object *patch) |
| Gracefully destroy NURBS patch object. | |
| int | ay_npt_createnpatchobject (ay_object **result) |
| Create Ayam object for NURBS patch. | |
| void | ay_npt_resetdisplay (ay_object *o) |
| Reset the display attributes of a NURBS patch. | |
| int | ay_npt_resizearrayw (double **controlvptr, int stride, int width, int height, int new_width) |
| Resize width (U) of 2D control point array. | |
| int | ay_npt_resizew (ay_nurbpatch_object *np, int new_width) |
| Resize width (U) of NURBS patch. | |
| int | ay_npt_resizearrayh (double **controlvptr, int stride, int width, int height, int new_height) |
| Resize height (V) of 2D control point array. | |
| int | ay_npt_resizeh (ay_nurbpatch_object *np, int new_height) |
| Resize height (V) of NURBS patch. | |
| int | ay_npt_revertu (ay_nurbpatch_object *np) |
| Revert NURBS patch in U direction. | |
| int | ay_npt_revertutcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to revert selected surfaces in U direction. | |
| int | ay_npt_revertv (ay_nurbpatch_object *np) |
| Revert NURBS patch in V direction. | |
| int | ay_npt_revertvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to revert selected surfaces in V direction. | |
| int | ay_npt_swaparray (double **controlvptr, int stride, int width, int height) |
| Flip UV of 2D control point array. | |
| int | ay_npt_swapuv (ay_nurbpatch_object *np) |
| Flip UV of NURBS patch. | |
| int | ay_npt_drawtrimcurve (ay_object *o, GLUnurbsObj *no, unsigned int refine) |
| Draw a single trim curve using GLU. | |
| int | ay_npt_drawtrimcurves (ay_object *o, unsigned int refine_trims) |
| Draw all trim curves using GLU. | |
| void | ay_npt_drawhandles (struct Togl *togl, ay_nurbpatch_object *npatch) |
| Draw handles helper for tool objects. | |
| void | ay_npt_drawrohandles (ay_nurbpatch_object *patch) |
| Draw read-only handles. | |
| int | ay_npt_computebreakpoints (ay_nurbpatch_object *npatch) |
| Compute all distinct knots and their surface positions. | |
| void | ay_npt_drawbreakpoints (ay_nurbpatch_object *npatch) |
| Draw distinct knots as rhombuses. | |
| int | ay_npt_crtcobbsphere (ay_nurbpatch_object **cobbsphere) |
| Create Cobbs NURBS sphere patch. | |
| int | ay_npt_crtnsphere (double radius, ay_nurbpatch_object **nsphere) |
| Create standard NURBS sphere (revolved half circle). | |
| int | ay_npt_crtnparaboloid (double ymin, double ymax, double rmax, ay_nurbpatch_object **nparab) |
| Create standard NURBS paraboloid (revolved parabola). | |
| int | ay_npt_crtnhyperboloid (double ymin, double ymax, double a, double b, ay_nurbpatch_object **nhyperb) |
| Create standard NURBS hyperboloid (revolved hyperbola). | |
| int | ay_npt_crtntorus (double majorradius, double minorradius, ay_nurbpatch_object **nsphere) |
| Create standard NURBS torus (revolved circle). | |
| int | ay_npt_crtncylinder (double radius, double height, ay_nurbpatch_object **nsphere) |
| Create standard NURBS cylinder (revolved line). | |
| int | ay_npt_crtncone (double radius, double height, ay_nurbpatch_object **nsphere) |
| Create standard NURBS cone (revolved line). | |
| int | ay_npt_crtndisk (double radius, ay_nurbpatch_object **nsphere) |
| Create standard NURBS disk (revolved line). | |
| int | ay_npt_crtncube (double radius, ay_nurbpatch_object **ncube) |
| Create simple NURBS cube. | |
| int | ay_npt_crtnquadtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create standard NURBS quadrics. | |
| int | ay_npt_crtnsphere2tcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to create a multi patch Cobbs NURBS sphere. | |
| int | ay_npt_breakintocurvesu (ay_object *o, int apply_trafo, ay_object **curves, ay_object ***last) |
| Break NURBS patch into curves along U. | |
| int | ay_npt_breakintocurvesv (ay_object *o, int apply_trafo, ay_object **curves, ay_object ***last) |
| Break NURBS patch into curves along V. | |
| int | ay_npt_breakintocurvestcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to break a NURBS patch into curves. | |
| int | ay_npt_buildfromcurves (ay_list_object *curves, int ncurves, int type, int order, int knot_type, int apply_trafo, ay_object **patch) |
| Build NURBS patch from curves. | |
| int | ay_npt_buildfromcurvestcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to build NURBS patch from curves. | |
| int | ay_npt_fillgap (ay_object *o1, ay_object *o2, double tanlen, char *uv, ay_object **result) |
| Create fillet patch. | |
| int | ay_npt_setback (ay_object *o1, ay_object *o2, double tanlen, char *uv) |
| Create setback (instead of fillet). | |
| int | ay_npt_concat (ay_object *o, int type, int order, int knot_type, int fillet_type, double ftlen, int compatible, char *uv, ay_object **result) |
| Concatenate NURBS patches. | |
| int | ay_npt_revolve (ay_object *o, double arc, int sections, int order, ay_nurbpatch_object **revolution) |
| Create surface of revolution. | |
| int | ay_npt_swing (ay_object *o1, ay_object *o2, ay_nurbpatch_object **swing) |
| Create swung surface. | |
| int | ay_npt_sweep (ay_object *o1, ay_object *o2, ay_object *o3, int sections, int rotate, int closed, ay_nurbpatch_object **sweep) |
| Create swept surface. | |
| int | ay_npt_sweepperiodic (ay_object *o1, ay_object *o2, ay_object *o3, int sections, int rotate, ay_nurbpatch_object **sweep) |
| Create periodic swept surface. | |
| int | ay_npt_birail1 (ay_object *o1, ay_object *o2, ay_object *o3, int sections, int closed, ay_nurbpatch_object **birail1) |
| Create birailed surface from three curves. | |
| int | ay_npt_birail1periodic (ay_object *o1, ay_object *o2, ay_object *o3, int sections, ay_nurbpatch_object **birail1) |
| Create periodic birailed surface from three curves. | |
| int | ay_npt_birail2 (ay_object *o1, ay_object *o2, ay_object *o3, ay_object *o4, ay_object *o5, int sections, int closed, int fullinterpolctrl, ay_nurbpatch_object **birail2) |
| Create birailed surface from four curves. | |
| int | ay_npt_skinu (ay_object *curves, int order, int knot_type, int interpolate, ay_nurbpatch_object **skin) |
| Create loft/skinned surface. | |
| int | ay_npt_skinv (ay_object *curves, int order, int knot_type, int interpolate, ay_nurbpatch_object **skin) |
| Create loft/skinned surface. | |
| int | ay_npt_extrude (double height, ay_object *o, ay_nurbpatch_object **extrusion) |
| Create extruded surface. | |
| int | ay_npt_gettangentfromcontrol2D (int ctype, int n, int p, int stride, double *P, int a, double *T) |
| Calculate 2D tangent from control points. | |
| int | ay_npt_createcap (double z, ay_nurbcurve_object *curve, double *ominx, double *omaxx, double *ominy, double *omaxy, ay_nurbpatch_object **cap) |
| Create cap surface. | |
| int | ay_npt_applytrafo (ay_object *p) |
| Apply transformations to all control points. | |
| int | ay_npt_getpntfromindex (ay_nurbpatch_object *patch, int indexu, int indexv, double **p) |
| Get control point from index. | |
| int | ay_npt_elevateu (ay_nurbpatch_object *patch, int t, int is_clamped) |
| Elevate U order of NURBS patch. | |
| int | ay_npt_elevatev (ay_nurbpatch_object *patch, int t, int is_clamped) |
| Elevate V order of NURBS patch. | |
| int | ay_npt_elevateuvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to elevate U/V order of selected NURBS patches. | |
| int | ay_npt_swapuvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to swap U and V of selected surfaces. | |
| int | ay_npt_gordon (ay_object *cu, ay_object *cv, ay_object *in, int uorder, int vorder, ay_nurbpatch_object **gordon) |
| Create Gordon surface. | |
| int | ay_npt_dualskin (ay_object *cu, ay_object *cv, ay_object *tc, int uorder, int vorder, ay_nurbpatch_object **dskin) |
| Create DualSkin surface. | |
| void | ay_npt_gordonwc (ay_object *g) |
| Watch and correct Gordon surface corners. | |
| void | ay_npt_gordonwct (ay_object *g) |
| Watch and correct triangular Gordon surface corners. | |
| int | ay_npt_extractboundary (ay_object *o, int apply_trafo, int extractnt, double **pvnt, ay_nurbcurve_object **result) |
| Extract boundary curve from NURBS patch. | |
| int | ay_npt_extracttrim (ay_object *o, int tnum, double param, int apply_trafo, int extractnt, double **pvnt, ay_nurbcurve_object **result) |
| Extract trim curve from NURBS patch. | |
| int | ay_npt_extractnc (ay_object *npatch, int side, double param, int relative, int apply_trafo, int extractnt, double **pvnt, ay_nurbcurve_object **result) |
| Extract curve from patch. | |
| int | ay_npt_israt (ay_nurbpatch_object *np) |
| Check whether any weight of a NURBS patch is != 1.0. | |
| int | ay_npt_isboundcurve (ay_object *o, double b1, double b2, double b3, double b4, int *result) |
| Check whether curve is boundary. | |
| int | ay_npt_istrimmed (ay_object *o, int mode) |
| Check whether NURBS patch is trimmed. | |
| int | ay_npt_closeu (ay_nurbpatch_object *np, int mode) |
| Close NURBS patch in U direction. | |
| int | ay_npt_closeutcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to close selected surface objects in U direction. | |
| int | ay_npt_closev (ay_nurbpatch_object *np, int mode) |
| Close NURBS patch in V direction. | |
| int | ay_npt_closevtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to close selected surface objects in V direction. | |
| int | ay_npt_openu (ay_nurbpatch_object *np, double offset) |
| Open NURBS patch in U direction. | |
| int | ay_npt_openv (ay_nurbpatch_object *np, double offset) |
| Open NURBS patch in V direction. | |
| int | ay_npt_openuvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to close selected surface objects in U/V direction. | |
| int | ay_npt_isplanar (ay_nurbpatch_object *np, double *n) |
| Check NURBS patch planarity. | |
| int | ay_npt_isclosedu (ay_nurbpatch_object *np) |
| Check NURBS patch closeness in U direction. | |
| int | ay_npt_isclosedv (ay_nurbpatch_object *np) |
| Check NURBS patch closeness in V direction. | |
| void | ay_npt_setuvtypes (ay_nurbpatch_object *np, int dir) |
| Set the NURBS patch utype and vtype attributes. | |
| void | ay_npt_clearmp (ay_nurbpatch_object *np) |
| Remove multiple points from patch np. | |
| void | ay_npt_recreatemp (ay_nurbpatch_object *np) |
| Re-create multiple points for patch np. | |
| int | ay_npt_collapseselp (ay_object *o) |
| Collapse selected points to multiple points. | |
| int | ay_npt_explodemp (ay_object *o) |
| Explode selected multiple points. | |
| int | ay_npt_getbeveltags (ay_object *o, int place, int *has_bevel, int *type, double *radius, int *sense) |
| Find and parse bevel parameter tags. | |
| int | ay_npt_clampu (ay_nurbpatch_object *np, int side) |
| Clamp surface in U direction. | |
| int | ay_npt_clampv (ay_nurbpatch_object *np, int side) |
| Clamp surface in V direction. | |
| int | ay_npt_clampuvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to clamp selected NURBS patches in U/V direction. | |
| int | ay_npt_rescaletrims (ay_object *trim, int mode, double omin, double omax, double nmin, double nmax) |
| Rescale trim curves according to surface knot vector scaling. | |
| int | ay_npt_rescaleknvnptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to rescale knots of selected NURBS patches. | |
| int | ay_npt_insertknutcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to insert knots into selected NURBS patches (U direction). | |
| int | ay_npt_insertknvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to insert knots into selected NURBS patches (V direction). | |
| int | ay_npt_splitu (ay_object *src, double u, int relative, ay_object **result) |
| Split a surface in U direction (along V). | |
| int | ay_npt_splitv (ay_object *src, double v, int relative, ay_object **result) |
| Split a surface in V direction (along U). | |
| int | ay_npt_splituvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to split selected NURBS patches in U/V direction. | |
| int | ay_npt_extractnp (ay_object *src, double umin, double umax, double vmin, double vmax, int relative, ay_object **result) |
| Extract sub surface. | |
| int | ay_npt_extractnptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to extract a sub surface from the selected NURBS patches. | |
| int | ay_npt_offset (ay_object *o, int mode, double offset, ay_nurbpatch_object **np) |
| Calculate offset surface. | |
| int | ay_npt_finduv (struct Togl *togl, ay_object *o, double *winXY, double *worldXYZ, double *u, double *v) |
| Find point on NURBS surface. | |
| int | ay_npt_finduvcb (struct Togl *togl, int argc, char *argv[]) |
| Find point on NURBS surface modelling action. | |
| int | ay_npt_avglensu (double *cv, int width, int height, int stride, double **avlens) |
| Compute average control point distances in U direction. | |
| int | ay_npt_avglensv (double *cv, int width, int height, int stride, double **avlens) |
| Compute average control point distances in V direction. | |
| int | ay_npt_concatstcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to concatenate selected surfaces. | |
| int | ay_npt_remknunptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to remove knot from selected surfaces. | |
| int | ay_npt_remknvnptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to remove knot from selected surfaces. | |
| int | ay_npt_removesuperfluousknots (ay_nurbpatch_object *np, double tol) |
| Remove all knots from the surface that do not contribute to its shape. | |
| int | ay_npt_remsuknnptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to remove superfluous knots from selected surfaces. | |
| int | ay_npt_degreereduce (ay_nurbpatch_object *np, double tol) |
| Reduce degree of the surface. | |
| int | ay_npt_degreereducetcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to reduce the degree of selected surfaces. | |
| int | ay_npt_euctohom (ay_nurbpatch_object *nc) |
| Convert rational coordinates from euclidean to homogeneous style. | |
| int | ay_npt_homtoeuc (ay_nurbpatch_object *nc) |
| Convert rational coordinates from homogeneous to euclidean style. | |
| int | ay_npt_refineu (ay_nurbpatch_object *patch, double *newknotv, int newknotvlen) |
| Refine NURBS surface in U direction. | |
| int | ay_npt_refinev (ay_nurbpatch_object *patch, double *newknotv, int newknotvlen) |
| Refine NURBS surface in V direction. | |
| int | ay_npt_refineuvtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to refine the knots of selected surfaces. | |
| void | ay_npt_gnd (char dir, ay_nurbpatch_object *np, int ij, double *p, double **dp) |
| Get next different control point in designated direction. | |
| void | ay_npt_getcvnormals (ay_nurbpatch_object *np, double *n) |
| Get all normals from control points. | |
| void | ay_npt_getcvnormal (ay_nurbpatch_object *np, int i, int j, double *n) |
| Get a single normal from control points. | |
| int | ay_npt_unclamptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to unclamp the knot vectors of the selected surfaces. | |
| void | ay_npt_gentexcoords (ay_nurbpatch_object *np, ay_tag *tags, double **result) |
| Generate texture coordinates. | |
| int | ay_npt_iscompatible (ay_object *patches, int side, int level, int *result) |
| Check compatibility of surfaces. | |
| int | ay_npt_iscomptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to check compatibility of selected surfaces. | |
| int | ay_npt_makecompatible (ay_object *patches, int side, int level) |
| Make a number of NURBS surfaces compatible. | |
| int | ay_npt_makecomptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to make selected NURBS surfaces compatible. | |
| int | ay_npt_isdegen (ay_nurbpatch_object *patch) |
| Check surface for degeneracy. | |
| int | ay_npt_getcurvaturetcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to compute the curvature of a NURBS surface. | |
| int | ay_npt_fair (ay_nurbpatch_object *np, ay_point *selp, double tol, int mode, int worst) |
| Improve the shape of a NURBS surface. | |
| int | ay_npt_fairnptcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to improve the shape of a NURBS surface. | |
| int | ay_npt_drawboundaries (struct Togl *togl, ay_object *o) |
| Draw all selected boundaries of a NURBS surface. | |
| int | ay_npt_pickboundcb (struct Togl *togl, int argc, char *argv[]) |
| Select boundary on NURBS surface modelling action. | |
| int | ay_npt_selectbound (ay_object *o, unsigned int pid, unsigned int bid, int format) |
| Add SB (SelectedBoundary) tag to an object. | |
| void | ay_npt_deselectbound (ay_object *o, unsigned int pid, unsigned int bid) |
| Remove SB (SelectedBoundary) tags from an object. | |
| int | ay_npt_isboundselected (ay_object *o, unsigned int pid, unsigned int bid) |
| Check for presence of an SB tag. | |
| int | ay_npt_tgordon (ay_object **curves, int uorder, int vorder, ay_nurbpatch_object **gordon) |
| Create triangular Gordon surface. | |
| int | ay_npt_flashboundcb (struct Togl *togl, int argc, char *argv[]) |
| Draw surface boundary in front buffer with XOR. | |
| int | ay_npt_tobeziersplineu (ay_nurbpatch_object *np) |
| Convert knots to bezier spline style. | |
| int | ay_npt_tobeziersplinev (ay_nurbpatch_object *np) |
| Convert knots to bezier spline style. | |
| int | ay_pmt_tonpatch (ay_object *o, int btype, ay_object **result) |
| Convert patchmesh to NURBS patch. | |
| int | ay_pmt_valid (ay_pamesh_object *pamesh) |
| Check patchmesh for errors. | |
| int | ay_pmt_getpntfromindex (ay_pamesh_object *patch, int indexu, int indexv, double **p) |
| Get control point from index. | |
| int | ay_pmt_swapuv (ay_pamesh_object *pm) |
| Flip UV of patchmesh. | |
| void | ay_pmt_revertu (ay_pamesh_object *pm) |
| Revert patchmesh in U direction. | |
| void | ay_pmt_revertv (ay_pamesh_object *pm) |
| Revert patchmesh in V direction. | |
| int | ay_pmt_israt (ay_pamesh_object *pm) |
| Check whether any weight of a patch mesh is != 1.0. | |
| int | ay_pmt_tobasistcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to convert selected patch meshes to a different basis matrix. | |
| void | ay_pmt_getbasis (int btype, double **result) |
| Get basis matrix. | |
| void | ay_pmt_init () |
| Initialize the patch mesh tools module. | |
| void | ay_stess_destroy (ay_stess_patch *stess) |
| Remove tesselation from NURBS patch. | |
| int | ay_stess_GetQF (double gst) |
| Calculate stess usable quality factor from GLU sampling tolerance. | |
| int | ay_stess_CurvePoints2D (int n, int p, double *U, double *Pw, int stride, int is_rat, int qf, int *Clen, double **C) |
| Tesselate a (non-rational or rational) 2D (trim) curve. | |
| int | ay_stess_CurvePoints3D (int n, int p, double *U, double *Pw, int is_rat, int qf, int *Clen, double **C) |
| Tesselate a (non-rational or rational) 3D curve. | |
| int | ay_stess_SurfacePoints3D (int n, int m, int p, int q, double *U, double *V, double *P, int qfu, int qfv, int *Cn, int *Cm, double **C) |
| Tesselate a untrimmed, non-rational NURBS surface. | |
| int | ay_stess_SurfacePoints4D (int n, int m, int p, int q, double *U, double *V, double *P, int qfu, int qfv, int *Cn, int *Cm, double **C) |
| Tesselate a untrimmed, rational NURBS surface. | |
| void | ay_stess_DrawTrimmedSurface (ay_stess_patch *stess) |
| Draw tesselation of a trimmed NURBS surface. | |
| void | ay_stess_ShadeTrimmedSurface (ay_stess_patch *stess) |
| Shade tesselation of a trimmed NURBS surface. | |
| int | ay_stess_TessTrimCurves (ay_object *o, int qf, int *nt, double ***tt, int **tl, int **td) |
| Tesselate all trim curves of a NURBS surface. | |
| int | ay_stess_ReTessTrimCurves (ay_object *o, int qf, int nt, double **tt, int *tl, double **tp) |
| Tesselate all trim curves of a NURBS surface for drawing. | |
| int | ay_stess_TessTrimmedNP (ay_object *o, int qf, ay_stess_patch *stess) |
| Tesselate a trimmed NURBS surface. | |
| int | ay_stess_TessNP (ay_object *o, int qf, ay_stess_patch *stess) |
| Tesselate a NURBS surface. | |
| int | ay_stess_topomesh (ay_stess_patch *stess, ay_object **result) |
| Convert a STESS tesselation to a polymesh. | |
| int | ay_tess_quadrangulate (ay_object *o, ay_nurbpatch_object *np, double *uv, char *stname, ay_object **q) |
| Refine a tesselated triangular polymesh to quads. | |
| void | ay_stess_init (Tcl_Interp *interp) |
| initialize the STESS module | |
| int | ay_tess_checktri (double *p1, double *p2, double *p3) |
| Check triangle for degeneracy. | |
| int | ay_tess_npatch (ay_object *o, int smethod, double sparamu, double sparamv, int use_tc, char *myst, int use_vc, char *mycs, int use_vn, char *myn, int refine_trims, int primitives, double quad_eps, ay_object **pm) |
| Tesselate NURBS patch (convert to PolyMesh) with GLU. | |
| int | ay_tess_npatchtcmd (ClientData clientData, Tcl_Interp *interp, int argc, char *argv[]) |
| Tcl command to tesselate selected NURBS patches (convert to PolyMesh) with GLU. | |
| int | ay_tess_pomeshf (ay_pomesh_object *pomesh, unsigned int f, unsigned int m, unsigned int n, int optimize, ay_pomesh_object **trpomesh) |
| Tesselate a single polymesh face with GLU. | |
| int | ay_tess_pomesh (ay_pomesh_object *pomesh, int optimize, double *normal, ay_pomesh_object **trpomesh) |
| Tesselate a polymesh with GLU. | |
| int | ay_tess_ncurve (ay_nurbcurve_object *ncurve, double tmode, double tparam, double **verts, int *vertslen) |
| Tesselate a NURBS curve with GLU. | |
| double | ay_rtess_getedgethresh (double tolerance) |
| Compute edge threshold from GLU sampling tolerance. | |
| int | ay_rtess_tessnp (ay_nurbpatch_object *np, int degen, int dice, double tolerance, ay_object **result) |
| Tesselate a NURBS patch with rtess. | |
1.6.3