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.

61 lines
2.9 KiB

  1. /******************************Module*Header*******************************\
  2. * Module Name: rgn2path.hxx *
  3. * *
  4. * Created: 15-Sep-1993 14:33:58 *
  5. * Author: Kirk Olynyk [kirko] *
  6. * *
  7. * Copyright (c) 1993-1999 Microsoft Corporation *
  8. \**************************************************************************/
  9. /*********************************Class************************************\
  10. * class RTP_EPATHOBJ : publci EPATHOBJ *
  11. * *
  12. * Adds diagonalization. *
  13. * *
  14. * Public Interface: *
  15. * *
  16. * History: *
  17. * Wed 15-Sep-1993 10:06:05 by Kirk Olynyk [kirko] *
  18. * Wrote it. *
  19. \**************************************************************************/
  20. #define RTP_LAST_POINT 1
  21. /**************************************************************************\
  22. * class RTP_PATHMEMOBJ : public PATHMEMOBJ *
  23. * *
  24. * This class is for converting regions to paths *
  25. * *
  26. \**************************************************************************/
  27. class RTP_PATHMEMOBJ : public PATHMEMOBJ
  28. {
  29. private:
  30. BOOL bMoreToEnum; // is there more to enumerate?
  31. PATHDATA pd; // for calling bEnum()
  32. POINTFIX ptfxFirst; // first point in current subpath
  33. EPATHOBJ* pepoOut; // output EPATHOBJ
  34. INT cPoints; // number of points in output buffer
  35. POINTFIX aptfxWrite[2]; // output buffer
  36. POINTFIX ptfxAB; // aptfx[1] - aptfx[0]
  37. int j; // 0, 1, 2
  38. FLONG afl[3]; // array of flags for the vertices
  39. POINTFIX aptfx[3]; // array of vertex positions
  40. public:
  41. RTP_PATHMEMOBJ() {}
  42. ~RTP_PATHMEMOBJ() {}
  43. BOOL RTP_PATHMEMOBJ::bDiagonalizePath(EPATHOBJ* pepoOut_);
  44. private:
  45. BOOL RTP_PATHMEMOBJ::bDiagonalizeSubPath();
  46. BOOL RTP_PATHMEMOBJ::bFetchNextPoint();
  47. BOOL RTP_PATHMEMOBJ::bWritePoint();
  48. BOOL RTP_PATHMEMOBJ::bFetchSubPath();
  49. };