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 */ 00007 /* this package is distributed under the terms of the */ 00008 /* Lesser GNU Public License, see the file COPYING.LIB */ 00009 /* ///////////////////////////////////////////////////////////////////////// */ 00010 00011 /* Header file for the FillG1Holef procedure, constructing biquintic */ 00012 /* Bezier patches filling a polygonal hole in a surface made of */ 00013 /* bicubic Bezier patches */ 00014 00015 #ifndef CONST_ /* a dirty trick to suppress many compiler warning messages */ 00016 #define CONST_ const 00017 #endif 00018 00019 #ifndef G1HOLEF_H 00020 #define G1HOLEF_H 00021 00022 #ifdef __cplusplus 00023 extern "C" { 00024 #endif 00025 00026 /* Output routines may be hooked here in order to snoop into */ 00027 /* the computation; in fact, the G1OutCentralPointf is allowed to */ 00028 /* modify the central point. If the routine pointers are NULL then */ 00029 /* no output is done during the computations. */ 00030 00031 extern void (*G1OutCentralPointf)( point3f *p ); 00032 extern void (*G1OutAuxCurvesf)( int ncurves, int degree, CONST_ point3f *accp, 00033 float t ); 00034 extern void (*G1OutStarCurvesf)( int ncurves, int degree, CONST_ point3f *sccp ); 00035 extern void (*G1OutAuxPatchesf)( int npatches, int degu, int degv, 00036 CONST_ point3f *apcp ); 00037 00038 boolean FillG1Holef ( int hole_k, point3f*(*GetBezp)(int i, int j), 00039 float beta1, float beta2, 00040 point3f *hpcp ); 00041 00042 #ifdef __cplusplus 00043 } 00044 #endif 00045 00046 #endif 00047