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.

93 lines
3.1 KiB

  1. #ifndef __glubackend_h_
  2. #define __glubackend_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. * backend.h - $Revision: 1.2 $
  16. */
  17. #include "trimvert.h"
  18. #include "gridvert.h"
  19. #include "gridtrim.h"
  20. class BasicCurveEvaluator;
  21. class BasicSurfaceEvaluator;
  22. class Backend {
  23. private:
  24. BasicCurveEvaluator& curveEvaluator;
  25. BasicSurfaceEvaluator& surfaceEvaluator;
  26. public:
  27. Backend( BasicCurveEvaluator &c, BasicSurfaceEvaluator& e )
  28. : curveEvaluator(c), surfaceEvaluator(e) {}
  29. /* surface backend routines */
  30. void bgnsurf( int, int, long );
  31. void patch( REAL, REAL, REAL, REAL );
  32. void surfpts( long, REAL *, long, long, int, int,
  33. REAL, REAL, REAL, REAL );
  34. void surfbbox( long, REAL *, REAL * );
  35. void surfgrid( REAL, REAL, long, REAL, REAL, long );
  36. void surfmesh( long, long, long, long );
  37. void bgntmesh( char * );
  38. void endtmesh( void );
  39. void swaptmesh( void );
  40. void tmeshvert( GridTrimVertex * );
  41. void tmeshvert( TrimVertex * );
  42. void tmeshvert( GridVertex * );
  43. void linevert( TrimVertex * );
  44. void linevert( GridVertex * );
  45. void bgnoutline( void );
  46. void endoutline( void );
  47. void endsurf( void );
  48. void triangle( TrimVertex*, TrimVertex*, TrimVertex* );
  49. void bgntfan();
  50. void endtfan();
  51. void bgnqstrip();
  52. void endqstrip();
  53. void evalUStrip(int n_upper, REAL v_upper, REAL* upper_val,
  54. int n_lower, REAL v_lower, REAL* lower_val
  55. );
  56. void evalVStrip(int n_left, REAL u_left, REAL* left_val,
  57. int n_right, REAL v_right, REAL* right_val
  58. );
  59. void tmeshvertNOGE(TrimVertex *t);
  60. void tmeshvertNOGE_BU(TrimVertex *t);
  61. void tmeshvertNOGE_BV(TrimVertex *t);
  62. void preEvaluateBU(REAL u);
  63. void preEvaluateBV(REAL v);
  64. /* curve backend routines */
  65. void bgncurv( void );
  66. void segment( REAL, REAL );
  67. void curvpts( long, REAL *, long, int, REAL, REAL );
  68. void curvgrid( REAL, REAL, long );
  69. void curvmesh( long, long );
  70. void curvpt( REAL );
  71. void bgnline( void );
  72. void endline( void );
  73. void endcurv( void );
  74. private:
  75. #ifndef NOWIREFRAME
  76. int wireframetris;
  77. int wireframequads;
  78. int npts;
  79. REAL mesh[3][4];
  80. int meshindex;
  81. #endif
  82. };
  83. #endif /* __glubackend_h_ */