home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / PGCOMMON.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  4KB  |  142 lines

  1. /* @(#)Z 1.6 com/src/imaging/polyclip/PGCommon.h, odimaging, od96os2, odos29646d 96/11/15 15:29:16 (96/10/29 09:26:15) */
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: odimaging
  6.  *
  7.  *   CLASSES: none
  8.  *
  9.  *   ORIGINS: 82,27
  10.  *
  11.  *
  12.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  13.  *   All Rights Reserved
  14.  *   Licensed Materials - Property of IBM
  15.  *   US Government Users Restricted Rights - Use, duplication or
  16.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  17.  *       
  18.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  19.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  20.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  21.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  22.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  23.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  24.  *   OR PERFORMANCE OF THIS SOFTWARE.
  25.  */
  26. /*====END_GENERATED_PROLOG========================================
  27.  */
  28.  
  29. /*
  30.   File:    PGCommon.h
  31.  
  32.   Contains:  Common definitions for the polygon clipper.
  33.  
  34.   Written by:  Jens Alfke (based on algorithm by A. C. Kilgour)
  35.  
  36.   Copyright:  ⌐ 1994 by Apple Computer, Inc., all rights reserved.
  37.  
  38.   Change History (most recent first):
  39.  
  40.      <2>   12/5/94  jpa    Code review fixes. [1203923]
  41.      <1>   6/15/94  jpa    first checked in
  42.      ---------------------------Moved to ODSOM project.
  43.      <1>    5/9/94  jpa    first checked in
  44. */
  45.  
  46.  
  47. #ifndef _PGCOMMON_
  48. #define _PGCOMMON_
  49.  
  50. #ifndef _ODTYPES_
  51. #include "ODTypes.h"
  52. #endif
  53.  
  54. #ifndef _EXCEPT_
  55. #include "Except.h"
  56. #endif
  57.  
  58.  
  59. //=============================================================================
  60. // Debugging
  61. //=============================================================================
  62.  
  63. //
  64. // The following redefine of ODDebug was necessary as a temporary solution
  65. // to allow ASSERT, WARN, and other macros to be expanded.  Some conditions,
  66. // such as passing a NULL shape as input, were not detected at runtime and
  67. // the proper exceptions were not thrown.  The reason for this was that
  68. // the macros, as defined in ODDebug.h, are dependent on ODDebug being 
  69. // equal to 1.  One of the system wide makefile defines ODDebug to 0.  The
  70. // following should override ODDebug and set it to 1.  This code was put
  71. // into this header file because it was common to the rest of the source
  72. // in the polyclip directory.  This code can be removed when the macros in 
  73. // ODDebug.h are redesigned.  jab - 4/22/96.
  74. //
  75. #ifdef DEBUG
  76. #undef ODDebug
  77. #define ODDebug 1
  78. #endif
  79.  
  80.  
  81. #ifdef __MWERKS__
  82. #undef PROFILING
  83. #define PROFILING 0          /* 1 enables Metrowerks profiling, 0 disables it*/
  84. #endif
  85.  
  86. #if PROFILING
  87.   #pragma profile on
  88.   #define LOGGING 0        /* Never log while profiling*/
  89. #else
  90.   #undef LOGGING
  91.   #define LOGGING 0        /* 1 enables logging, 0 disables it*/
  92. //  #define LOGGING 1        /* 1 enables logging, 0 disables it*/
  93. #endif
  94.  
  95. #define BEGINLOG
  96. #define ENDLOG
  97.  
  98. #define kPGAssertionFailed 7734
  99.  
  100. #if LOGGING
  101. #define PGASSERT(COND)  WASSERT(COND)
  102. #else
  103. #define PGASSERT(COND)  ASSERT(COND,kODErrAssertionFailed)
  104. #endif
  105.  
  106.  
  107. //=============================================================================
  108. // Constants & Types
  109. //=============================================================================
  110.  
  111.  
  112. typedef enum {
  113.   kNegative = -1,
  114.   kZero     =  0,
  115.   kPositive =  1
  116. } PGSense;
  117.  
  118.  
  119. typedef enum {
  120.   kLeft  = -1,
  121.   kOnTop  =  0,
  122.   kRight  =  1
  123. } PGSide;
  124.  
  125.  
  126. //=============================================================================
  127. // Globals
  128. //=============================================================================
  129.  
  130.  
  131. class PGContourList;
  132.  
  133.  
  134. extern ODSLong  gMinWrap, gMaxWrap;      // Min/max wrap desired for output
  135.  
  136. extern PGContourList *gOutputContours;    // GLOBAL: Collects output contours
  137.  
  138.  
  139. #endif /*_PGCOMMON*/
  140.  
  141.  
  142.