eg1holed.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 EG1HOLED_H
00014 #define EG1HOLED_H
00015 
00016 #ifndef EGHOLED_H
00017 #include "egholed.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_SetOptionProcd ( GHoleDomaind *domain,
00061     int (*OptionProc)( GHoleDomaind *domain, int query, int qn,
00062                        int *ndata, int **idata, double **fdata ) );
00063 
00064 boolean g1h_ComputeBasisd ( GHoleDomaind *domain );
00065 
00066 boolean g1h_ComputeFormMatrixd ( GHoleDomaind *domain );
00067 boolean g1h_DecomposeMatrixd ( GHoleDomaind *domain );
00068 boolean g1h_FillHoled ( GHoleDomaind *domain,
00069                         int spdimen, CONST_ double *hole_cp,
00070                         double *acoeff, void *usrptr,
00071                         void (*outpatch) ( int n, int m, const double *cp,
00072                                            void *usrptr ) );
00073 
00074 boolean g1h_ComputeExtFormMatrixd ( GHoleDomaind *domain );
00075 boolean g1h_DecomposeExtMatrixd ( GHoleDomaind *domain );
00076 boolean g1h_ExtFillHoled ( GHoleDomaind *domain,
00077                            int spdimen, CONST_ double *hole_cp,
00078                            double *acoeff, void *usrptr,
00079                            void (*outpatch) ( int n, int m, const double *cp,
00080                                               void *usrptr ) );
00081 
00082 int g1h_V0SpaceDimd ( GHoleDomaind *domain );
00083 int g1h_ExtV0SpaceDimd ( GHoleDomaind *domain );
00084 boolean g1h_GetBPDerivativesd ( GHoleDomaind *domain, int cno, double *val );
00085 boolean g1h_GetBFuncPatchd ( GHoleDomaind *domain, int fn, int pn, double *bp );
00086 
00087 boolean g1h_SetConstraintMatrixd ( GHoleDomaind *domain,
00088                                    int nconstr, const double *cmat );
00089 boolean g1h_FillHoleConstrd ( GHoleDomaind *domain,
00090                               int spdimen, CONST_ double *hole_cp,
00091                               int nconstr, CONST_ double *constr,
00092                               double *acoeff, void *usrptr,
00093                               void (*outpatch) ( int n, int m, const double *cp,
00094                                                  void *usrptr ) );
00095 
00096 boolean g1h_SetAltConstraintMatrixd ( GHoleDomaind *domain, int spdimen,
00097                                       int nconstr, const double *cmat );
00098 boolean g1h_FillHoleAltConstrd ( GHoleDomaind *domain,
00099                               int spdimen, CONST_ double *hole_cp,
00100                               int naconstr, CONST_ double *constr,
00101                               double *acoeff, void *usrptr,
00102                               void (*outpatch) ( int n, int m, const double *cp,
00103                                                  void *usrptr ) );
00104 
00105 boolean g1h_SetExtConstraintMatrixd ( GHoleDomaind *domain,
00106                                       int nconstr, const double *cmat );
00107 boolean g1h_ExtFillHoleConstrd ( GHoleDomaind *domain,
00108                          int spdimen, CONST_ double *hole_cp,
00109                          int nconstr, CONST_ double *constr,
00110                          double *acoeff, void *usrptr,
00111                          void (*outpatch) ( int n, int m, const double *cp,
00112                                             void *usrptr ) );
00113 
00114 boolean g1h_SetExtAltConstraintMatrixd ( GHoleDomaind *domain, int spdimen,
00115                                       int naconstr, const double *acmat );
00116 boolean g1h_ExtFillHoleAltConstrd ( GHoleDomaind *domain,
00117                          int spdimen, CONST_ double *hole_cp,
00118                          int naconstr, CONST_ double *constr,
00119                          double *acoeff, void *usrptr,
00120                          void (*outpatch) ( int n, int m, const double *cp,
00121                                             void *usrptr ) );
00122 
00123 double g1h_FunctionalValued ( GHoleDomaind *domain, int spdimen,
00124                              const double *hole_cp, const double *acoeff );
00125 double g1h_ExtFunctionalValued ( GHoleDomaind *domain, int spdimen,
00126                                 CONST_ double *hole_cp, CONST_ double *acoeff );
00127 boolean g1h_NLFunctionalValued ( GHoleDomaind *domain,
00128                                  const point3d *hole_cp, const vector3d *acoeff,
00129                                  double *funcval );
00130 boolean g1h_NLExtFunctionalValued ( GHoleDomaind *domain,
00131                                     const point3d *hole_cp, const vector3d *acoeff,
00132                                     double *funcval );
00133 
00134 /* ///////////////////////////////////////////////////////////////////////// */
00135 boolean g1h_GetFinalPatchCurvesd ( GHoleDomaind *domain, int spdimen,
00136                                    CONST_ double *hole_cp, double *acoeff,
00137                                    void (*outcurve) ( int n, const double *cp ) );
00138 boolean g1h_GetExtFinalPatchCurvesd ( GHoleDomaind *domain, int spdimen,
00139                                       CONST_ double *hole_cp, double *acoeff,
00140                                       void (*outcurve) ( int n, const double *cp ) );
00141 boolean g1h_GetSplFinalPatchCurvesd ( GHoleDomaind *domain, int spdimen,
00142                                       CONST_ double *hole_cp, double *acoeff,
00143                                       void (*outcurve) ( int n, int lkn,
00144                                                const double *kn, const double *cp ) );
00145 
00146 /* ///////////////////////////////////////////////////////////////////////// */
00147 boolean g1h_ComputeNLNormald ( GHoleDomaind *domain, 
00148                                const point3d *hole_cp,
00149                                vector3d *anv );
00150 
00151 boolean g1h_NLFillHoled ( GHoleDomaind *domain, const point3d *hole_cp,
00152                           double *acoeff, void *usrptr,
00153                           void (*outpatch) ( int n, int m, const point3d *cp,
00154                                              void *usrptr ) );
00155 boolean g1h_NLFillHoleConstrd ( GHoleDomaind *domain, const point3d *hole_cp,
00156                     int nconstr, const vector3d *constr,
00157                     double *acoeff, void *usrptr,
00158                     void (*outpatch) ( int n, int m, const point3d *cp,
00159                                        void *usrptr ) );
00160 boolean g1h_NLFillHoleAltConstrd ( GHoleDomaind *domain, const point3d *hole_cp,   
00161                     int nconstr, const double *constr,
00162                     double *acoeff, void *usrptr,
00163                     void (*outpatch) ( int n, int m, const point3d *cp,
00164                                        void *usrptr ) );
00165 
00166 boolean g1h_NLExtFillHoled ( GHoleDomaind *domain, const point3d *hole_cp,
00167                              double *acoeff, void *usrptr,
00168                              void (*outpatch) ( int n, int m, const point3d *cp,
00169                                                 void *usrptr ) );
00170 boolean g1h_NLExtFillHoleConstrd ( GHoleDomaind *domain,
00171                      const point3d *hole_cp,
00172                      int nconstr, const vector3d *constr,
00173                      double *acoeff, void *usrptr,
00174                      void (*outpatch) ( int n, int m, const point3d *cp,
00175                                         void *usrptr ) );
00176 boolean g1h_NLExtFillHoleAltConstrd ( GHoleDomaind *domain, const point3d *hole_cp,
00177                          int naconstr, const double *constr,
00178                          double *acoeff, void *usrptr,
00179                          void (*outpatch) ( int n, int m, const point3d *cp,
00180                                             void *usrptr ) );
00181 
00182 boolean g1h_NLSplFillHoled ( GHoleDomaind *domain, const point3d *hole_cp,
00183                      double *acoeff, void *usrptr,
00184                      void (*outpatch) ( int n, int lknu, const double *knu,
00185                                         int m, int lknv, const double *knv,
00186                                         const point3d *cp, void *usrptr ) );
00187 boolean g1h_NLSplFillHoleConstrd ( GHoleDomaind *domain, const point3d *hole_cp,
00188                      int nconstr, const vector3d *constr,
00189                      double *acoeff, void *usrptr,
00190                      void (*outpatch) ( int n, int lknu, const double *knu,
00191                                         int m, int lknv, const double *knv,
00192                                         const point3d *cp, void *usrptr ) );
00193 boolean g1h_NLSplFillHoleAltConstrd ( GHoleDomaind *domain, const point3d *hole_cp,
00194                      int nconstr, const double *constr,
00195                      double *acoeff, void *usrptr,
00196                      void (*outpatch) ( int n, int lknu, const double *knu,
00197                                         int m, int lknv, const double *knv,
00198                                         const point3d *cp, void *usrptr ) );
00199 
00200 /* ///////////////////////////////////////////////////////////////////////// */
00201 /* G1, quasi G2 hole filling procedures */
00202 void g1h_DestroyQ2PrivateDatad ( GHoleDomaind *domain );
00203 
00204 boolean g1h_Q2ComputeFormMatrixd ( GHoleDomaind *domain );
00205 boolean g1h_Q2DecomposeMatrixd ( GHoleDomaind *domain );
00206 boolean g1h_Q2FillHoled ( GHoleDomaind *domain,
00207                           int spdimen, CONST_ double *hole_cp,
00208                           double *acoeff, void *usrptr,
00209                           void (*outpatch) ( int n, int m, const double *cp,
00210                                              void *usrptr ) );
00211 boolean g1h_Q2FillHoleConstrd ( GHoleDomaind *domain,
00212                                 int spdimen, CONST_ double *hole_cp,
00213                                 int nconstr, CONST_ double *constr, 
00214                                 double *acoeff, void *usrptr,
00215                                 void (*outpatch) ( int n, int m, const double *cp,
00216                                                    void *usrptr ) );
00217 boolean g1h_Q2FillHoleAltConstrd ( GHoleDomaind *domain,
00218                               int spdimen, CONST_ double *hole_cp,
00219                               int naconstr, CONST_ double *constr,
00220                               double *acoeff, void *usrptr,
00221                               void (*outpatch) ( int n, int m, const double *cp,
00222                                                  void *usrptr ) );
00223 
00224 boolean g1h_Q2NLFillHoleConstrd ( GHoleDomaind *domain, CONST_ point3d *hole_cp,
00225                                   int nconstr, CONST_ vector3d *constr,
00226                                   double *acoeff, void *usrptr,
00227                                   void (*outpatch) ( int n, int m,
00228                                                      const point3d *cp,
00229                                                      void *usrptr ) );
00230 
00231 boolean g1h_Q2NLFillHoleAltConstrd ( GHoleDomaind *domain, CONST_ point3d *hole_cp,
00232                                      int naconstr, CONST_ double *constr,
00233                                      double *acoeff, void *usrptr,
00234                                      void (*outpatch) ( int n, int m,
00235                                                         const point3d *cp,
00236                                                         void *usrptr ) );
00237 
00238 boolean g1h_Q2ExtComputeFormMatrixd ( GHoleDomaind *domain );
00239 boolean g1h_Q2ExtDecomposeMatrixd ( GHoleDomaind *domain );
00240 boolean g1h_Q2ExtFillHoled ( GHoleDomaind *domain,
00241                              int spdimen, CONST_ double *hole_cp,
00242                              double *acoeff, void *usrptr,
00243                              void (*outpatch) ( int n, int m, const double *cp,
00244                                                 void *usrptr ) );
00245 
00246 boolean g1h_Q2ExtFillHoleConstrd ( GHoleDomaind *domain,
00247                          int spdimen, CONST_ double *hole_cp,
00248                          int nconstr, CONST_ double *constr,
00249                          double *acoeff, void *usrptr,
00250                          void (*outpatch) ( int n, int m, const double *cp,
00251                                             void *usrptr ) );
00252 boolean g1h_Q2ExtFillHoleAltConstrd ( GHoleDomaind *domain, 
00253                          int spdimen, CONST_ double *hole_cp,
00254                          int naconstr, CONST_ double *constr,
00255                          double *acoeff, void *usrptr,
00256                          void (*outpatch) ( int n, int m, const double *cp,
00257                                             void *usrptr ) );
00258 
00259 boolean g1h_Q2NLExtFillHoleConstrd ( GHoleDomaind *domain, CONST_ point3d *hole_cp,
00260                                   int nconstr, CONST_ vector3d *constr,
00261                                   double *acoeff, void *usrptr,
00262                                   void (*outpatch) ( int n, int m,
00263                                                      const point3d *cp,
00264                                                      void *usrptr ) );
00265 
00266 boolean g1h_Q2NLExtFillHoleAltConstrd ( GHoleDomaind *domain, CONST_ point3d *hole_cp,
00267                                      int naconstr, CONST_ double *constr,
00268                                      double *acoeff, void *usrptr,
00269                                      void (*outpatch) ( int n, int m,
00270                                                         const point3d *cp,
00271                                                         void *usrptr ) );
00272 
00273 /* ///////////////////////////////////////////////////////////////////////// */
00274 /* spline basis procedures */
00275 boolean g1h_ComputeSplBasisd ( GHoleDomaind *domain, int nk, int m1, int m2 );
00276 boolean g1h_ComputeSplFormMatrixd ( GHoleDomaind *domain );
00277 boolean g1h_DecomposeSplMatrixd ( GHoleDomaind *domain );
00278 boolean g1h_SplFillHoled ( GHoleDomaind *domain,
00279                int spdimen, CONST_ double *hole_cp,
00280                double *acoeff, void *usrptr,
00281                void (*outpatch) ( int n, int lknu, const double *knu,
00282                                   int m, int lknv, const double *knv,
00283                                   const double *cp, void *usrptr ) );
00284 
00285 int g1h_SplV0SpaceDimd ( GHoleDomaind *domain );
00286 
00287 boolean g1h_Q2SplComputeFormMatrixd ( GHoleDomaind *domain );
00288 boolean g1h_Q2SplDecomposeMatrixd ( GHoleDomaind *domain );
00289 boolean g1h_Q2SplFillHoled ( GHoleDomaind *domain,
00290                int spdimen, CONST_ double *hole_cp,
00291                double *acoeff, void *usrptr,
00292                void (*outpatch) ( int n, int lknu, const double *knu,
00293                                   int m, int lknv, const double *knv,
00294                                   const double *cp, void *usrptr ) );
00295 
00296 boolean g1h_SetSplConstraintMatrixd ( GHoleDomaind *domain,
00297                                       int nconstr, const double *cmat );
00298 boolean g1h_SplFillHoleConstrd ( GHoleDomaind *domain,
00299                int spdimen, CONST_ double *hole_cp,
00300                int nconstr, CONST_ double *constr,
00301                double *acoeff, void *usrptr,
00302                void (*outpatch) ( int n, int lknu, const double *knu,
00303                                   int m, int lknv, const double *knv,
00304                                   const double *cp, void *usrptr ) );
00305 boolean g1h_Q2SplFillHoleConstrd ( GHoleDomaind *domain,
00306                int spdimen, CONST_ double *hole_cp,
00307                int nconstr, CONST_ double *constr,
00308                double *acoeff, void *usrptr,
00309                void (*outpatch) ( int n, int lknu, const double *knu,
00310                                   int m, int lknv, const double *knv,
00311                                   const double *cp, void *usrptr ) );
00312 
00313 boolean g1h_SetSplAltConstraintMatrixd ( GHoleDomaind *domain, int spdimen,
00314                                          int naconstr, const double *acmat );
00315 boolean g1h_SplFillHoleAltConstrd ( GHoleDomaind *domain,
00316                int spdimen, CONST_ double *hole_cp,
00317                int naconstr, CONST_ double *constr,
00318                double *acoeff, void *usrptr,
00319                void (*outpatch) ( int n, int lknu, const double *knu,
00320                                   int m, int lknv, const double *knv,
00321                                   const double *cp, void *usrptr ) );
00322 boolean g1h_Q2SplFillHoleAltConstrd ( GHoleDomaind *domain,
00323                int spdimen, CONST_ double *hole_cp,
00324                int naconstr, CONST_ double *constr,
00325                double *acoeff, void *usrptr,
00326                void (*outpatch) ( int n, int lknu, const double *knu,
00327                                   int m, int lknv, const double *knv,
00328                                   const double *cp, void *usrptr ) );
00329 
00330 /* ///////////////////////////////////////////////////////////////////////// */
00331 /* G1 quasi G2 nonlinear construction procedures */
00332 boolean g1h_Q2NLFillHoled ( GHoleDomaind *domain,
00333                     const point3d *hole_cp,
00334                     double *acoeff, void *usrptr,
00335                     void (*outpatch) ( int n, int m, const point3d *cp,
00336                                        void *usrptr ) );
00337 
00338 boolean g1h_Q2NLExtFillHoled ( GHoleDomaind *domain,
00339                     const point3d *hole_cp,
00340                     double *acoeff, void *usrptr,
00341                     void (*outpatch) ( int n, int m, const point3d *cp,
00342                                        void *usrptr ) );
00343 
00344 boolean g1h_Q2NLSplFillHoled ( GHoleDomaind *domain,
00345                     const point3d *hole_cp,
00346                     double *acoeff, void *usrptr,
00347                     void (*outpatch) ( int n, int lknu, const double *knu,
00348                                        int m, int lknv, const double *knv,
00349                                        const point3d *cp, void *usrptr ) );
00350 boolean g1h_Q2NLSplFillHoleConstrd ( GHoleDomaind *domain, const point3d *hole_cp,
00351                      int nconstr, const vector3d *constr,
00352                      double *acoeff, void *usrptr,
00353                      void (*outpatch) ( int n, int lknu, const double *knu,
00354                                         int m, int lknv, const double *knv,
00355                                         const point3d *cp, void *usrptr ) );
00356 boolean g1h_Q2NLSplFillHoleAltConstrd ( GHoleDomaind *domain, const point3d *hole_cp,
00357                      int nconstr, const double *constr,
00358                      double *acoeff, void *usrptr,
00359                      void (*outpatch) ( int n, int lknu, const double *knu,
00360                                         int m, int lknv, const double *knv,
00361                                         const point3d *cp, void *usrptr ) );
00362 
00363 /* ///////////////////////////////////////////////////////////////////////// */
00364 /* drawing procedures */
00365 void g1h_DrawDomAuxPatchesd ( GHoleDomaind *domain,
00366                void (*drawpatch) ( int n, int m, const point2d *cp ) );
00367 void g1h_DrawBasAuxPatchesd ( GHoleDomaind *domain, int fn,
00368                void (*drawpatch) ( int n, int m, const double *cp ) );
00369 void g1h_DrawJFunctiond ( GHoleDomaind *domain, int k, int l,
00370                           void (*drawpoly) ( int deg, const double *f ) );
00371 void g1h_DrawDiPatchesd ( GHoleDomaind *domain,
00372                       void (*drawpatch) ( int n, int m, const point2d *cp ) );
00373 void g1h_ExtractPartitiond ( GHoleDomaind *domain,
00374                              int *hole_k, int *hole_m,
00375                              double *partition,
00376                              double *part_delta,
00377                              double *spart_alpha,
00378                              double *spart_malpha,
00379                              double *spart_salpha,
00380                              double *spart_knot,
00381                              double *alpha0,
00382                              boolean *spart_sgn,
00383                              boolean *spart_both );
00384 void g1h_ExtractCentralPointd ( GHoleDomaind *domain,
00385                                 point2d *centp, vector2d *centder );
00386 void g1h_DrawBasAFunctiond ( GHoleDomaind *domain, int fn,
00387                void (*drawpatch) ( int n, int m, const point3d *cp ) );
00388 void g1h_DrawBasBFunctiond ( GHoleDomaind *domain, int fn,
00389                void (*drawpatch) ( int n, int m, const point3d *cp ) );
00390 void g1h_DrawBasCNetd ( GHoleDomaind *domain, int fn,
00391                void (*drawnet) ( int n, int m, const point3d *cp ) );
00392 void g1h_DrawBFAomcd ( GHoleDomaind *domain, int fn, 
00393                        void (*drawpoly)(int degree, const double *coeff) );
00394 void g1h_DrawBFBomcd ( GHoleDomaind *domain, int fn,
00395                        void (*drawpoly)(int degree, const double *coeff) );
00396 void g1h_DrawFinalSurfBCd ( GHoleDomaind *domain,   
00397                             int spdimen, const double *hole_cp,
00398                             const double *acoeff, 
00399                             void (*drawcurve)(int degree, int spdimen,
00400                                               const double *cp) );
00401 void g1h_ExtDrawFinalSurfBCd ( GHoleDomaind *domain,
00402                                int spdimen, const double *hole_cp,
00403                                const double *acoeff, 
00404                                void (*drawcurve)(int degree, int spdimen,
00405                                                  const double *cp) );
00406 void g1h_DrawMatricesd ( GHoleDomaind *domain,
00407                          void (*drawmatrix)(int nfa, int nfb,
00408                                             double *amat, double *bmat) );
00409 void g1h_DrawExtMatricesd ( GHoleDomaind *domain,
00410                             void (*drawmatrix)(int k, int r, int s, double *Aii,
00411                                                double *Bi) );
00412 int g1h_DrawBFcpnd ( int hole_k, unsigned char *bfcpn );
00413 
00414 void g1h_Q2DrawMatricesd ( GHoleDomaind *domain,
00415                            void (*drawmatrix)(int nfa, int nfb,
00416                                               double *amat, double *bmat) );
00417 void g1h_Q2DrawExtMatricesd ( GHoleDomaind *domain,
00418                               void (*drawmatrix)(int k, int r, int s,
00419                                                  double *Aii, double *Bi) );
00420 boolean g1h_GetABasisFPatchCurved ( GHoleDomaind *domain, int fn, int i,
00421                                     double *bfpc );
00422 boolean g1h_GetBBasisFPatchCurved ( GHoleDomaind *domain, int fn, int i,
00423                                     double *bfpc );
00424 
00425 /* ///////////////////////////////////////////////////////////////////////// */
00426 /* spline basis drawing procedures */
00427 void g1h_DrawSplBasFuncNumd ( GHoleDomaind *domain,
00428                         int *nfunc_a, int *nfunc_b, int *nfunc_c, int *nfunc_d );
00429 
00430 void g1h_DrawSplBasAuxPatchesd ( GHoleDomaind *domain, int fn,
00431                void (*drawpatch) ( int n, int lknu, const double *knu,
00432                                    int m, int lknv, const double *knv,
00433                                    const point3d *cp ) );
00434 
00435 void g1h_DrawSplBasFunctiond ( GHoleDomaind *domain, int fn,
00436              void (*drawpatch) ( int n, int lknu, const double *knu,
00437                                  int m, int lknv, const double *knv,
00438                                  const point3d *cp ) );
00439 
00440 void g1h_DrawSplBFAomcd ( GHoleDomaind *domain, int fn,
00441                           void (*drawpoly)(int degree, int lastknot,
00442                                            const double *knots,
00443                                            const double *coeff) );
00444 void g1h_DrawSplBFBomcd ( GHoleDomaind *domain, int fn,
00445                           void (*drawpoly)(int degree, int lastknot,
00446                                            const double *knots,
00447                                            const double *coeff) );
00448 void g1h_DrawSplBFDomcd ( GHoleDomaind *domain, int fn,
00449                           void (*drawpoly)(int degree, int lastknot,
00450                                            const double *knots,
00451                                            const double *coeff) );
00452 void g1h_DrawSplFinalSurfBCd ( GHoleDomaind *domain,
00453                                int spdimen, const double *hole_cp,
00454                                const double *acoeff,
00455                                void (*drawcurve)(int degree, int spdimen,
00456                                              int lastknot, const double *knots,
00457                                              const double *cp) );
00458 
00459 void g1h_DrawSplMatricesd ( GHoleDomaind *domain,
00460                             void (*drawmatrix)( int k, int r, int s, int t,
00461                                                 double *A, double *B ) );
00462 
00463 void g1h_Q2DrawSplMatricesd ( GHoleDomaind *domain,
00464                               void (*drawmatrix)(int k, int r, int s,
00465                                                  double *Aii, double *Bi) );
00466 
00467 boolean g1h_GetSplABasisFPatchCurved ( GHoleDomaind *domain, int fn, int i,
00468                                        int *lkn, double *kn, double *bfpc );
00469 boolean g1h_GetSplBBasisFPatchCurved ( GHoleDomaind *domain, int fn, int i,
00470                                        int *lkn, double *kn, double *bfpc );
00471 boolean g1h_GetSplDBasisFPatchCurved ( GHoleDomaind *domain, int fn, int i,
00472                                        int *lkn, double *kn, double *bfpc );
00473 
00474 /* ///////////////////////////////////////////////////////////////////////// */
00475 int g1h_SymPatchMatrixSize ( int hole_k );
00476 boolean g1h_GetSymPatchMatrixd ( GHoleDomaind *domain, double *patchmatrix );
00477 boolean g1h_GetExtSymPatchMatrixd ( GHoleDomaind *domain, double *patchmatrix );
00478 boolean g1h_Q2GetSymPatchMatrixd ( GHoleDomaind *domain, double *patchmatrix );
00479 boolean g1h_Q2GetExtSymPatchMatrixd ( GHoleDomaind *domain, double *patchmatrix );
00480 boolean g1h_MatrixFillSymHoled ( int hole_k, const double *patchmatrix,
00481                                  int spdimen, const double *hole_cp, void *usrptr,
00482                                  void (*outpatch) ( int n, int m, const double *cp,
00483                                                     void *usrptr ) );
00484 /* ///////////////////////////////////////////////////////////////////////// */
00485 int g1h_GetErrorCoded ( GHoleDomaind *domain, char **ErrorString );
00486 
00487 #ifdef __cplusplus
00488 }
00489 #endif
00490 
00491 #endif
00492