Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.5 KiB

  1. #ifndef __gluquilt_h_
  2. #define __gluquilt_h_
  3. /**************************************************************************
  4. * *
  5. * Copyright (C) 1992, Silicon Graphics, Inc. *
  6. * *
  7. * These coded instructions, statements, and computer programs contain *
  8. * unpublished proprietary information of Silicon Graphics, Inc., and *
  9. * are protected by Federal copyright law. They may not be disclosed *
  10. * to third parties or copied or duplicated in any form, in whole or *
  11. * in part, without the prior written consent of Silicon Graphics, Inc. *
  12. * *
  13. **************************************************************************/
  14. /*
  15. * quilt.h - $Revision: 1.1 $
  16. */
  17. #include "defines.h"
  18. #include "bufpool.h"
  19. #include "types.h"
  20. class Backend;
  21. class Mapdesc;
  22. class Flist;
  23. class Knotvector;
  24. /* constants for memory allocation of NURBS to Bezier conversion */
  25. #define MAXDIM 2
  26. struct Quiltspec { /* a specification for a dimension of a quilt */
  27. int stride; /* words between points */
  28. int width; /* number of segments */
  29. int offset; /* words to first point */
  30. int order; /* order */
  31. int index; /* current segment number */
  32. int bdry[2]; /* boundary edge flag */
  33. REAL step_size;
  34. Knot * breakpoints;
  35. };
  36. typedef Quiltspec *Quiltspec_ptr;
  37. #ifdef NT
  38. class Quilt : public PooledObj { public: /* an array of bezier patches */
  39. #else
  40. struct Quilt : PooledObj { /* an array of bezier patches */
  41. #endif
  42. Quilt( Mapdesc * );
  43. Mapdesc * mapdesc; /* map descriptor */
  44. REAL * cpts; /* control points */
  45. Quiltspec qspec[MAXDIM]; /* the dimensional data */
  46. Quiltspec_ptr eqspec; /* qspec trailer */
  47. Quilt *next; /* next quilt in linked list */
  48. void deleteMe( Pool& );
  49. void toBezier( Knotvector &, INREAL *, long );
  50. void toBezier( Knotvector &, Knotvector &, INREAL *, long );
  51. void select( REAL *, REAL * );
  52. int getDimension( void ) { return eqspec - qspec; }
  53. void download( Backend & );
  54. void downloadAll( REAL *, REAL *, Backend & );
  55. int isCulled( void );
  56. void getRange( REAL *, REAL *, Flist&, Flist & );
  57. void getRange( REAL *, REAL *, int, Flist & );
  58. void getRange( REAL *, REAL *, Flist& );
  59. void findRates( Flist& slist, Flist& tlist, REAL[2] );
  60. void findSampleRates( Flist& slist, Flist& tlist );
  61. void show();
  62. };
  63. typedef Quilt *Quilt_ptr;
  64. #endif /* __gluquilt_h_ */