eg1holef.h

Go to the documentation of this file.
00001 
00002 /* ///////////////////////////////////////////////////////////////////////// */
00003 /* This file is a part of the BSTools package                                */
00004 /* written by Przemyslaw Kiciak                                              */
00005 /* ///////////////////////////////////////////////////////////////////////// */
00006 /* (C) Copyright by Przemyslaw Kiciak, 2005, 2010                            */
00007 /* this package is distributed under the terms of the                        */
00008 /* Lesser GNU Public License, see the file COPYING.LIB                       */
00009 /* ///////////////////////////////////////////////////////////////////////// */
00010 
00011 /* this header file is for application use */
00012 
00013 #ifndef EG1HOLEF_H
00014 #define EG1HOLEF_H
00015 
00016 #ifndef EGHOLEF_H
00017 #include "egholef.h"
00018 #endif
00019 
00020 #ifdef __cplusplus   
00021 extern "C" {
00022 #endif
00023 
00024 #define G1H_FINALDEG  5
00025 #define G1H_OMCDEG 4  /*degree of common boundary curves */
00026 
00027 /* the following constants are related with the spline basis */
00028 #define G1H_S_MAX_NK  4
00029 #define G1H_S_MAX_M1  2
00030 #define G1H_S_MAX_M2  4
00031 
00032 /* ///////////////////////////////////////////////////////////////////////// */
00033 /* Below are the possible queries and answers for the option procedure. */
00034 /* It is always safe to return the "default" answer with no data. */
00035 
00036 #define G1H_DEFAULT                    0 /* default answer for all queries */
00037 
00038 #define G1HQUERY_CENTRAL_POINT         1
00039 #define G1H_CENTRAL_POINT_ALT          1
00040 #define G1H_CENTRAL_POINT_GIVEN        2
00041 
00042 #define G1HQUERY_CENTRAL_DERIVATIVES1  2
00043 #define G1H_CENRTAL_DERIVATIVES1_ALT   1
00044 #define G1H_CENTRAL_DERIVATIVES1_GIVEN 2
00045 
00046 #define G1HQUERY_DOMAIN_CURVES         3
00047 
00048 #define G1HQUERY_BASIS                 4
00049 #define G1H_USE_RESTRICTED_BASIS       1
00050 
00051 #define G1HQUERY_QUADRATURE            5
00052 #define G1H_QUADRATURE_GAUSS_LEGENDRE  1
00053 
00054 #define G1HQUERY_Q2_FORM_CONSTANT      6
00055 #define G1H_Q2_USE_SUPPLIED_CONSTANT   1
00056 
00057 /* ///////////////////////////////////////////////////////////////////////// */
00058 /* core procedures */
00059 
00060 void g1h_SetOptionProcf ( GHoleDomainf *domain,
00061     int (*OptionProc)( GHoleDomainf *domain, int query, int qn,
00062                        int *ndata, int **idata, float **fdata ) );
00063 
00064 boolean g1h_ComputeBasisf ( GHoleDomainf *domain );
00065 
00066 boolean g1h_ComputeFormMatrixf ( GHoleDomainf *domain );
00067 boolean g1h_DecomposeMatrixf ( GHoleDomainf *domain );
00068 boolean g1h_FillHolef ( GHoleDomainf *domain,
00069                         int spdimen, CONST_ float *hole_cp,
00070                         float *acoeff, void *usrptr,
00071                         void (*outpatch) ( int n, int m, const float *cp,
00072                                            void *usrptr ) );
00073 
00074 boolean g1h_ComputeExtFormMatrixf ( GHoleDomainf *domain );
00075 boolean g1h_DecomposeExtMatrixf ( GHoleDomainf *domain );
00076 boolean g1h_ExtFillHolef ( GHoleDomainf *domain,
00077                            int spdimen, CONST_ float *hole_cp,
00078                            float *acoeff, void *usrptr,
00079                            void (*outpatch) ( int n, int m, const float *cp,
00080                                               void *usrptr ) );
00081 
00082 int g1h_V0SpaceDimf ( GHoleDomainf *domain );
00083 int g1h_ExtV0SpaceDimf ( GHoleDomainf *domain );
00084 boolean g1h_GetBPDerivativesf ( GHoleDomainf *domain, int cno, float *val );
00085 boolean g1h_GetBFuncPatchf ( GHoleDomainf *domain, int fn, int pn, float *bp );
00086 
00087 boolean g1h_SetConstraintMatrixf ( GHoleDomainf *domain,
00088                                    int nconstr, const float *cmat );
00089 boolean g1h_FillHoleConstrf ( GHoleDomainf *domain,
00090                               int spdimen, CONST_ float *hole_cp,
00091                               int nconstr, CONST_ float *constr,
00092                               float *acoeff, void *usrptr,
00093                               void (*outpatch) ( int n, int m, const float *cp,
00094                                                  void *usrptr ) );
00095 
00096 boolean g1h_SetAltConstraintMatrixf ( GHoleDomainf *domain, int spdimen,
00097                                       int nconstr, const float *cmat );
00098 boolean g1h_FillHoleAltConstrf ( GHoleDomainf *domain,
00099                               int spdimen, CONST_ float *hole_cp,
00100                               int naconstr, CONST_ float *constr,
00101                               float *acoeff, void *usrptr,
00102                               void (*outpatch) ( int n, int m, const float *cp,
00103                                                  void *usrptr ) );
00104 
00105 boolean g1h_SetExtConstraintMatrixf ( GHoleDomainf *domain,
00106                                       int nconstr, const float *cmat );
00107 boolean g1h_ExtFillHoleConstrf ( GHoleDomainf *domain,
00108                          int spdimen, CONST_ float *hole_cp,
00109                          int nconstr, CONST_ float *constr,
00110                          float *acoeff, void *usrptr,
00111                          void (*outpatch) ( int n, int m, const float *cp,
00112                                             void *usrptr ) );
00113 
00114 boolean g1h_SetExtAltConstraintMatrixf ( GHoleDomainf *domain, int spdimen,
00115                                       int naconstr, const float *acmat );
00116 boolean g1h_ExtFillHoleAltConstrf ( GHoleDomainf *domain,
00117                          int spdimen, CONST_ float *hole_cp,
00118                          int naconstr, CONST_ float *constr,
00119                          float *acoeff, void *usrptr,
00120                          void (*outpatch) ( int n, int m, const float *cp,
00121                                             void *usrptr ) );
00122 
00123 float g1h_FunctionalValuef ( GHoleDomainf *domain, int spdimen,
00124                              const float *hole_cp, const float *acoeff );
00125 float g1h_ExtFunctionalValuef ( GHoleDomainf *domain, int spdimen,
00126                                 CONST_ float *hole_cp, CONST_ float *acoeff );
00127 boolean g1h_NLFunctionalValuef ( GHoleDomainf *domain,
00128                                  const point3f *hole_cp, const vector3f *acoeff,
00129                                  float *funcval );
00130 boolean g1h_NLExtFunctionalValuef ( GHoleDomainf *domain,
00131                                     const point3f *hole_cp, const vector3f *acoeff,
00132                                     float *funcval );
00133 
00134 /* ///////////////////////////////////////////////////////////////////////// */
00135 boolean g1h_GetFinalPatchCurvesf ( GHoleDomainf *domain, int spdimen,
00136                                    CONST_ float *hole_cp, float *acoeff,
00137                                    void (*outcurve) ( int n, const float *cp ) );
00138 boolean g1h_GetExtFinalPatchCurvesf ( GHoleDomainf *domain, int spdimen,
00139                                       CONST_ float *hole_cp, float *acoeff,
00140                                       void (*outcurve) ( int n, const float *cp ) );
00141 boolean g1h_GetSplFinalPatchCurvesf ( GHoleDomainf *domain, int spdimen,
00142                                       CONST_ float *hole_cp, float *acoeff,
00143                                       void (*outcurve) ( int n, int lkn,
00144                                                const float *kn, const float *cp ) );
00145 
00146 /* ///////////////////////////////////////////////////////////////////////// */
00147 boolean g1h_ComputeNLNormalf ( GHoleDomainf *domain, 
00148                                const point3f *hole_cp,
00149                                vector3f *anv );
00150 
00151 boolean g1h_NLFillHolef ( GHoleDomainf *domain, const point3f *hole_cp,
00152                           float *acoeff, void *usrptr,
00153                           void (*outpatch) ( int n, int m, const point3f *cp,
00154                                              void *usrptr ) );
00155 boolean g1h_NLFillHoleConstrf ( GHoleDomainf *domain, const point3f *hole_cp,
00156                     int nconstr, const vector3f *constr,
00157                     float *acoeff, void *usrptr,
00158                     void (*outpatch) ( int n, int m, const point3f *cp,
00159                                        void *usrptr ) );
00160 boolean g1h_NLFillHoleAltConstrf ( GHoleDomainf *domain, const point3f *hole_cp,   
00161                     int nconstr, const float *constr,
00162                     float *acoeff, void *usrptr,
00163                     void (*outpatch) ( int n, int m, const point3f *cp,
00164                                        void *usrptr ) );
00165 
00166 boolean g1h_NLExtFillHolef ( GHoleDomainf *domain, const point3f *hole_cp,
00167                              float *acoeff, void *usrptr,
00168                              void (*outpatch) ( int n, int m, const point3f *cp,
00169                                                 void *usrptr ) );
00170 boolean g1h_NLExtFillHoleConstrf ( GHoleDomainf *domain,
00171                      const point3f *hole_cp,
00172                      int nconstr, const vector3f *constr,
00173                      float *acoeff, void *usrptr,
00174                      void (*outpatch) ( int n, int m, const point3f *cp,
00175                                         void *usrptr ) );
00176 boolean g1h_NLExtFillHoleAltConstrf ( GHoleDomainf *domain, const point3f *hole_cp,
00177                          int naconstr, const float *constr,
00178                          float *acoeff, void *usrptr,
00179                          void (*outpatch) ( int n, int m, const point3f *cp,
00180                                             void *usrptr ) );
00181 
00182 boolean g1h_NLSplFillHolef ( GHoleDomainf *domain, const point3f *hole_cp,
00183                      float *acoeff, void *usrptr,
00184                      void (*outpatch) ( int n, int lknu, const float *knu,
00185                                         int m, int lknv, const float *knv,
00186                                         const point3f *cp, void *usrptr ) );
00187 boolean g1h_NLSplFillHoleConstrf ( GHoleDomainf *domain, const point3f *hole_cp,
00188                      int nconstr, const vector3f *constr,
00189                      float *acoeff, void *usrptr,
00190                      void (*outpatch) ( int n, int lknu, const float *knu,
00191                                         int m, int lknv, const float *knv,
00192                                         const point3f *cp, void *usrptr ) );
00193 boolean g1h_NLSplFillHoleAltConstrf ( GHoleDomainf *domain, const point3f *hole_cp,
00194                      int nconstr, const float *constr,
00195                      float *acoeff, void *usrptr,
00196                      void (*outpatch) ( int n, int lknu, const float *knu,
00197                                         int m, int lknv, const float *knv,
00198                                         const point3f *cp, void *usrptr ) );
00199 
00200 /* ///////////////////////////////////////////////////////////////////////// */
00201 /* G1, quasi G2 hole filling procedures */
00202 void g1h_DestroyQ2PrivateDataf ( GHoleDomainf *domain );
00203 
00204 boolean g1h_Q2ComputeFormMatrixf ( GHoleDomainf *domain );
00205 boolean g1h_Q2DecomposeMatrixf ( GHoleDomainf *domain );
00206 boolean g1h_Q2FillHolef ( GHoleDomainf *domain,
00207                           int spdimen, CONST_ float *hole_cp,
00208                           float *acoeff, void *usrptr,
00209                           void (*outpatch) ( int n, int m, const float *cp,
00210                                              void *usrptr ) );
00211 boolean g1h_Q2FillHoleConstrf ( GHoleDomainf *domain,
00212                                 int spdimen, CONST_ float *hole_cp,
00213                                 int nconstr, CONST_ float *constr,
00214                                 float *acoeff, void *usrptr,
00215                                 void (*outpatch) ( int n, int m, const float *cp,
00216                                                    void *usrptr ) );
00217 boolean g1h_Q2FillHoleAltConstrf ( GHoleDomainf *domain,
00218                               int spdimen, CONST_ float *hole_cp,
00219                               int naconstr, CONST_ float *constr,
00220                               float *acoeff, void *usrptr,
00221                               void (*outpatch) ( int n, int m, const float *cp,
00222                                                  void *usrptr ) );
00223 
00224 boolean g1h_Q2NLFillHoleConstrf ( GHoleDomainf *domain, CONST_ point3f *hole_cp,
00225                                   int nconstr, CONST_ vector3f *constr,
00226                                   float *acoeff, void *usrptr,
00227                                   void (*outpatch) ( int n, int m,
00228                                                      const point3f *cp,
00229                                                      void *usrptr ) );
00230 
00231 boolean g1h_Q2NLFillHoleAltConstrf ( GHoleDomainf *domain, CONST_ point3f *hole_cp,
00232                                      int naconstr, CONST_ float *constr,
00233                                      float *acoeff, void *usrptr,
00234                                      void (*outpatch) ( int n, int m,
00235                                                         const point3f *cp,
00236                                                         void *usrptr ) );
00237 
00238 boolean g1h_Q2ExtComputeFormMatrixf ( GHoleDomainf *domain );
00239 boolean g1h_Q2ExtDecomposeMatrixf ( GHoleDomainf *domain );
00240 boolean g1h_Q2ExtFillHolef ( GHoleDomainf *domain,
00241                              int spdimen, CONST_ float *hole_cp,
00242                              float *acoeff, void *usrptr,
00243                              void (*outpatch) ( int n, int m, const float *cp,
00244                                                 void *usrptr ) );
00245 
00246 boolean g1h_Q2ExtFillHoleConstrf ( GHoleDomainf *domain,
00247                          int spdimen, CONST_ float *hole_cp,
00248                          int nconstr, CONST_ float *constr,
00249                          float *acoeff, void *usrptr,
00250                          void (*outpatch) ( int n, int m, const float *cp,
00251                                             void *usrptr ) );
00252 boolean g1h_Q2ExtFillHoleAltConstrf ( GHoleDomainf *domain, 
00253                          int spdimen, CONST_ float *hole_cp,
00254                          int naconstr, CONST_ float *constr,
00255                          float *acoeff, void *usrptr,
00256                          void (*outpatch) ( int n, int m, const float *cp,
00257                                             void *usrptr ) );
00258 
00259 boolean g1h_Q2NLExtFillHoleConstrf ( GHoleDomainf *domain, CONST_ point3f *hole_cp,
00260                                   int nconstr, CONST_ vector3f *constr,
00261                                   float *acoeff, void *usrptr,
00262                                   void (*outpatch) ( int n, int m,
00263                                                      const point3f *cp,
00264                                                      void *usrptr ) );
00265 
00266 boolean g1h_Q2NLExtFillHoleAltConstrf ( GHoleDomainf *domain, CONST_ point3f *hole_cp,
00267                                      int naconstr, CONST_ float *constr,
00268                                      float *acoeff, void *usrptr,
00269                                      void (*outpatch) ( int n, int m,
00270                                                         const point3f *cp,
00271                                                         void *usrptr ) );
00272 
00273 /* ///////////////////////////////////////////////////////////////////////// */
00274 /* spline basis procedures */
00275 boolean g1h_ComputeSplBasisf ( GHoleDomainf *domain, int nk, int m1, int m2 );
00276 boolean g1h_ComputeSplFormMatrixf ( GHoleDomainf *domain );
00277 boolean g1h_DecomposeSplMatrixf ( GHoleDomainf *domain );
00278 boolean g1h_SplFillHolef ( GHoleDomainf *domain,
00279                int spdimen, CONST_ float *hole_cp,
00280                float *acoeff, void *usrptr,
00281                void (*outpatch) ( int n, int lknu, const float *knu,
00282                                   int m, int lknv, const float *knv,
00283                                   const float *cp, void *usrptr ) );
00284 
00285 int g1h_SplV0SpaceDimf ( GHoleDomainf *domain );
00286 
00287 boolean g1h_Q2SplComputeFormMatrixf ( GHoleDomainf *domain );
00288 boolean g1h_Q2SplDecomposeMatrixf ( GHoleDomainf *domain );
00289 boolean g1h_Q2SplFillHolef ( GHoleDomainf *domain,
00290                int spdimen, CONST_ float *hole_cp,
00291                float *acoeff, void *usrptr,
00292                void (*outpatch) ( int n, int lknu, const float *knu,
00293                                   int m, int lknv, const float *knv,
00294                                   const float *cp, void *usrptr ) );
00295 
00296 boolean g1h_SetSplConstraintMatrixf ( GHoleDomainf *domain,
00297                                       int nconstr, const float *cmat );
00298 boolean g1h_SplFillHoleConstrf ( GHoleDomainf *domain,
00299                int spdimen, CONST_ float *hole_cp,
00300                int nconstr, CONST_ float *constr,
00301                float *acoeff, void *usrptr,
00302                void (*outpatch) ( int n, int lknu, const float *knu,
00303                                   int m, int lknv, const float *knv,
00304                                   const float *cp, void *usrptr ) );
00305 boolean g1h_Q2SplFillHoleConstrf ( GHoleDomainf *domain,
00306                int spdimen, CONST_ float *hole_cp,
00307                int nconstr, CONST_ float *constr,
00308                float *acoeff, void *usrptr,
00309                void (*outpatch) ( int n, int lknu, const float *knu,
00310                                   int m, int lknv, const float *knv,
00311                                   const float *cp, void *usrptr ) );
00312 
00313 boolean g1h_SetSplAltConstraintMatrixf ( GHoleDomainf *domain, int spdimen,
00314                                          int naconstr, const float *acmat );
00315 boolean g1h_SplFillHoleAltConstrf ( GHoleDomainf *domain,
00316                int spdimen, CONST_ float *hole_cp,
00317                int naconstr, CONST_ float *constr,
00318                float *acoeff, void *usrptr,
00319                void (*outpatch) ( int n, int lknu, const float *knu,
00320                                   int m, int lknv, const float *knv,
00321                                   const float *cp, void *usrptr ) );
00322 boolean g1h_Q2SplFillHoleAltConstrf ( GHoleDomainf *domain,
00323                int spdimen, CONST_ float *hole_cp,
00324                int naconstr, CONST_ float *constr,
00325                float *acoeff, void *usrptr,
00326                void (*outpatch) ( int n, int lknu, const float *knu,
00327                                   int m, int lknv, const float *knv,
00328                                   const float *cp, void *usrptr ) );
00329 
00330 /* ///////////////////////////////////////////////////////////////////////// */
00331 /* G1 quasi G2 nonlinear construction procedures */
00332 boolean g1h_Q2NLFillHolef ( GHoleDomainf *domain,
00333                     const point3f *hole_cp,
00334                     float *acoeff, void *usrptr,
00335                     void (*outpatch) ( int n, int m, const point3f *cp,
00336                                        void *usrptr ) );
00337 
00338 boolean g1h_Q2NLExtFillHolef ( GHoleDomainf *domain,
00339                     const point3f *hole_cp,
00340                     float *acoeff, void *usrptr,
00341                     void (*outpatch) ( int n, int m, const point3f *cp,
00342                                        void *usrptr ) );
00343 
00344 boolean g1h_Q2NLSplFillHolef ( GHoleDomainf *domain,
00345                     const point3f *hole_cp,
00346                     float *acoeff, void *usrptr,
00347                     void (*outpatch) ( int n, int lknu, const float *knu,
00348                                        int m, int lknv, const float *knv,
00349                                        const point3f *cp, void *usrptr ) );
00350 boolean g1h_Q2NLSplFillHoleConstrf ( GHoleDomainf *domain, const point3f *hole_cp,
00351                      int nconstr, const vector3f *constr,
00352                      float *acoeff, void *usrptr,
00353                      void (*outpatch) ( int n, int lknu, const float *knu,
00354                                         int m, int lknv, const float *knv,
00355                                         const point3f *cp, void *usrptr ) );
00356 boolean g1h_Q2NLSplFillHoleAltConstrf ( GHoleDomainf *domain, const point3f *hole_cp,
00357                      int nconstr, const float *constr,
00358                      float *acoeff, void *usrptr,
00359                      void (*outpatch) ( int n, int lknu, const float *knu,
00360                                         int m, int lknv, const float *knv,
00361                                         const point3f *cp, void *usrptr ) );
00362 
00363 /* ///////////////////////////////////////////////////////////////////////// */
00364 /* drawing procedures */
00365 void g1h_DrawDomAuxPatchesf ( GHoleDomainf *domain,
00366                void (*drawpatch) ( int n, int m, const point2f *cp ) );
00367 void g1h_DrawBasAuxPatchesf ( GHoleDomainf *domain, int fn,
00368                void (*drawpatch) ( int n, int m, const float *cp ) );
00369 void g1h_DrawJFunctionf ( GHoleDomainf *domain, int k, int l,
00370                           void (*drawpoly) ( int deg, const float *f ) );
00371 void g1h_DrawDiPatchesf ( GHoleDomainf *domain,
00372                       void (*drawpatch) ( int n, int m, const point2f *cp ) );
00373 void g1h_ExtractPartitionf ( GHoleDomainf *domain,
00374                              int *hole_k, int *hole_m,
00375                              float *partition,
00376                              float *part_delta,
00377                              float *spart_alpha,
00378                              float *spart_malpha,
00379                              float *spart_salpha,
00380                              float *spart_knot,
00381                              float *alpha0,
00382                              boolean *spart_sgn,
00383                              boolean *spart_both );
00384 void g1h_ExtractCentralPointf ( GHoleDomainf *domain,
00385                                 point2f *centp, vector2f *centder );
00386 void g1h_DrawBasAFunctionf ( GHoleDomainf *domain, int fn,
00387                void (*drawpatch) ( int n, int m, const point3f *cp ) );
00388 void g1h_DrawBasBFunctionf ( GHoleDomainf *domain, int fn,
00389                void (*drawpatch) ( int n, int m, const point3f *cp ) );
00390 void g1h_DrawBasCNetf ( GHoleDomainf *domain, int fn,
00391                void (*drawnet) ( int n, int m, const point3f *cp ) );
00392 void g1h_DrawBFAomcf ( GHoleDomainf *domain, int fn,
00393                        void (*drawpoly)(int degree, const float *coeff) );
00394 void g1h_DrawBFBomcf ( GHoleDomainf *domain, int fn,
00395                        void (*drawpoly)(int degree, const float *coeff) );
00396 void g1h_DrawFinalSurfBCf ( GHoleDomainf *domain,
00397                             int spdimen, const float *hole_cp,
00398                             const float *acoeff,
00399                             void (*drawcurve)(int degree, int spdimen,
00400                                               const float *cp) );
00401 void g1h_ExtDrawFinalSurfBCf ( GHoleDomainf *domain,
00402                                int spdimen, const float *hole_cp,
00403                                const float *acoeff,
00404                                void (*drawcurve)(int degree, int spdimen,
00405                                                  const float *cp) );
00406 void g1h_DrawMatricesf ( GHoleDomainf *domain,
00407                          void (*drawmatrix)(int nfa, int nfb,
00408                                             float *amat, float *bmat) );
00409 void g1h_DrawExtMatricesf ( GHoleDomainf *domain,
00410                             void (*drawmatrix)(int k, int r, int s, float *Aii,
00411                                                float *Bi) );
00412 int g1h_DrawBFcpnf ( int hole_k, unsigned char *bfcpn );
00413 
00414 void g1h_Q2DrawMatricesf ( GHoleDomainf *domain,
00415                            void (*drawmatrix)(int nfa, int nfb,
00416                                               float *amat, float *bmat) );
00417 void g1h_Q2DrawExtMatricesf ( GHoleDomainf *domain,
00418                               void (*drawmatrix)(int k, int r, int s,
00419                                                  float *Aii, float *Bi) );
00420 boolean g1h_GetABasisFPatchCurvef ( GHoleDomainf *domain, int fn, int i,
00421                                     float *bfpc );
00422 boolean g1h_GetBBasisFPatchCurvef ( GHoleDomainf *domain, int fn, int i,
00423                                     float *bfpc );
00424 
00425 /* ///////////////////////////////////////////////////////////////////////// */
00426 /* spline basis drawing procedures */
00427 void g1h_DrawSplBasFuncNumf ( GHoleDomainf *domain,
00428                         int *nfunc_a, int *nfunc_b, int *nfunc_c, int *nfunc_d );
00429 
00430 void g1h_DrawSplBasAuxPatchesf ( GHoleDomainf *domain, int fn,
00431                void (*drawpatch) ( int n, int lknu, const float *knu,
00432                                    int m, int lknv, const float *knv,
00433                                    const point3f *cp ) );
00434 
00435 void g1h_DrawSplBasFunctionf ( GHoleDomainf *domain, int fn,
00436              void (*drawpatch) ( int n, int lknu, const float *knu,
00437                                  int m, int lknv, const float *knv,
00438                                  const point3f *cp ) );
00439 
00440 void g1h_DrawSplBFAomcf ( GHoleDomainf *domain, int fn,
00441                           void (*drawpoly)(int degree, int lastknot,
00442                                            const float *knots,
00443                                            const float *coeff) );
00444 void g1h_DrawSplBFBomcf ( GHoleDomainf *domain, int fn,
00445                           void (*drawpoly)(int degree, int lastknot,
00446                                            const float *knots,
00447                                            const float *coeff) );
00448 void g1h_DrawSplBFDomcf ( GHoleDomainf *domain, int fn,
00449                           void (*drawpoly)(int degree, int lastknot,
00450                                            const float *knots,
00451                                            const float *coeff) );
00452 void g1h_DrawSplFinalSurfBCf ( GHoleDomainf *domain,
00453                                int spdimen, const float *hole_cp,
00454                                const float *acoeff,
00455                                void (*drawcurve)(int degree, int spdimen,
00456                                              int lastknot, const float *knots,
00457                                              const float *cp) );
00458 
00459 void g1h_DrawSplMatricesf ( GHoleDomainf *domain,
00460                             void (*drawmatrix)( int k, int r, int s, int t,
00461                                                 float *A, float *B ) );
00462 
00463 void g1h_Q2DrawSplMatricesf ( GHoleDomainf *domain,
00464                               void (*drawmatrix)(int k, int r, int s,
00465                                                  float *Aii, float *Bi) );
00466 
00467 boolean g1h_GetSplABasisFPatchCurvef ( GHoleDomainf *domain, int fn, int i,
00468                                        int *lkn, float *kn, float *bfpc );
00469 boolean g1h_GetSplBBasisFPatchCurvef ( GHoleDomainf *domain, int fn, int i,
00470                                        int *lkn, float *kn, float *bfpc );
00471 boolean g1h_GetSplDBasisFPatchCurvef ( GHoleDomainf *domain, int fn, int i,
00472                                        int *lkn, float *kn, float *bfpc );
00473 
00474 /* ///////////////////////////////////////////////////////////////////////// */
00475 int g1h_SymPatchMatrixSize ( int hole_k );
00476 boolean g1h_GetSymPatchMatrixf ( GHoleDomainf *domain, float *patchmatrix );
00477 boolean g1h_GetExtSymPatchMatrixf ( GHoleDomainf *domain, float *patchmatrix );
00478 boolean g1h_Q2GetSymPatchMatrixf ( GHoleDomainf *domain, float *patchmatrix );
00479 boolean g1h_Q2GetExtSymPatchMatrixf ( GHoleDomainf *domain, float *patchmatrix );
00480 boolean g1h_MatrixFillSymHolef ( int hole_k, const float *patchmatrix,
00481                                  int spdimen, const float *hole_cp, void *usrptr,
00482                                  void (*outpatch) ( int n, int m, const float *cp,
00483                                                     void *usrptr ) );
00484 /* ///////////////////////////////////////////////////////////////////////// */
00485 int g1h_GetErrorCodef ( GHoleDomainf *domain, char **ErrorString );
00486 
00487 #ifdef __cplusplus
00488 }
00489 #endif
00490 
00491 #endif
00492