00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef EGHPRIVATEF_H
00015 #define EGHPRIVATEF_H
00016
00017
00018 #define MIN_DELTA (PI/180.0)
00019 #define MAX_DELTA (179.0*PI/180.0)
00020 #define ANGLETOL (0.001*PI/180)
00021
00022
00023 typedef struct GHoleSgnPartf {
00024 float alpha;
00025 float malpha;
00026 float salpha;
00027 float knot;
00028 boolean sgn, both;
00029 } GHoleSgnPartf;
00030
00031 typedef struct GHolePrivateRecf {
00032 point2f *dombezpt;
00033 vector2f *surrpc;
00034
00035 vector2f *surrpcbc;
00036
00037 float *domsurrbf;
00038
00039 float diam;
00040 unsigned char *bfcpn;
00041 unsigned short *support_b;
00042 } GHolePrivateRecf;
00043
00044
00045 int gh_GetDefaultOptionf ( GHoleDomainf *domain, int query, int qn,
00046 int *ndata, int **idata, float **fdata );
00047
00048 float *_gh_GetKnotSequencef ( GHoleDomainf *domain, int i );
00049 point2f *_gh_GetDomSurrndPatchf ( GHoleDomainf *domain, int i, int j );
00050 boolean _gh_FindDomSurrndPatchf ( GHoleDomainf *domain,
00051 int i, int j, point2f *bezcp );
00052 boolean _gh_FindBasisFuncbSupport ( int hole_k, int nfunc_b,
00053 unsigned short *support_b,
00054 unsigned char *bfcpn );
00055 boolean _gh_FindDomSurrndBFuncPatchesf ( GHoleDomainf *domain );
00056 boolean _gh_AnalyzePartitionf ( GHoleDomainf *domain, int omcdeg,
00057 vector2f *omcbc, int *_hole_m, int *_auxp_k,
00058 float **_partition, GHoleSgnPartf **_spartition,
00059 float *_spart_alpha0 );
00060 void _gh_PrepareTabKnotsf ( int nquad, int opt, float *knots );
00061 void _g2h_DiJacobian3f ( const vector2f *du, const vector2f *dv,
00062 const vector2f *duu, const vector2f *duv,
00063 const vector2f *dvv,
00064 const vector2f *duuu, const vector2f *duuv,
00065 const vector2f *duvv, const vector2f *dvvv,
00066 float *jac, float *trd );
00067 float _g2h_Integralf ( int hole_k, int nknsq, float *jac,
00068 unsigned short supp1, vector2f *func1,
00069 unsigned short supp2, vector2f *func2 );
00070 float _g2h_Integral0f ( int nknsq, const float *jac,
00071 const vector2f *func1, const vector2f *func2 );
00072 float _g2h_SplIntegralf ( int nkn, float *jac,
00073 int i00, int i01, int j00, int j01, vector2f *func0,
00074 int i10, int i11, int j10, int j11, vector2f *func1 );
00075 void _g2h_TabSplCLaplacianGradf ( int nkn,
00076 int fknp, int lknp, const float *tp, const float *tpu,
00077 const float *tpuu, const float *tpuuu,
00078 int fknq, int lknq, const float *tq, const float *tqv,
00079 const float *tqvv, const float *tqvvv,
00080 const float *trd, vector2f *lgr );
00081
00082 #endif
00083