home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / OS / FWODMisc / Sources / FWODGeom.cpp < prev    next >
Encoding:
Text File  |  1996-08-16  |  5.9 KB  |  204 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWODGeom.cpp
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWOS.hpp"
  11.  
  12. #ifndef FWODGEOM_H
  13. #include "FWODGeom.h"
  14. #endif
  15.  
  16. #ifndef FWRECT_H
  17. #include "FWRect.h"
  18. #endif
  19.  
  20. #ifndef FWACQUIR_H
  21. #include "FWAcquir.h"
  22. #endif
  23.  
  24. // ----- OpenDoc Includes -----
  25.  
  26. #ifndef SOM_ODShape_xh
  27. #include <Shape.xh>
  28. #endif
  29.  
  30. #ifndef SOM_ODTransform_xh
  31. #include <Trnsform.xh>
  32. #endif
  33.  
  34. #ifndef SOM_ODFrame_xh
  35. #include <Frame.xh>
  36. #endif
  37.  
  38. //========================================================================================
  39. // Runtime Informations
  40. //========================================================================================
  41.  
  42. #ifdef FW_BUILD_MAC
  43. #pragma segment fwodmisc
  44. #endif
  45.  
  46. //========================================================================================
  47. // Globales Methods
  48. //========================================================================================
  49.  
  50.  
  51. //----------------------------------------------------------------------------------------
  52. //    FW_GetShapeRegion
  53. //----------------------------------------------------------------------------------------
  54.  
  55. ODRgnHandle FW_GetShapeRegion(Environment *ev, ODShape* odShape)
  56. {
  57. #ifdef FW_BUILD_MAC
  58.     return odShape->GetQDRegion(ev);
  59. #endif
  60. #ifdef FW_BUILD_WIN
  61.     return odShape->GetWinRegion(ev);
  62. #endif
  63. }
  64.  
  65. //----------------------------------------------------------------------------------------
  66. //    FW_SetShapeRegion
  67. //----------------------------------------------------------------------------------------
  68.  
  69. void FW_SetShapeRegion(Environment *ev, ODShape* odShape, ODRgnHandle rgnHandle)
  70. {
  71. #ifdef FW_BUILD_MAC
  72.     odShape->SetQDRegion(ev, rgnHandle);
  73. #endif
  74. #ifdef FW_BUILD_WIN
  75.     odShape->SetWinRegion(ev, rgnHandle);
  76. #endif
  77. }
  78.  
  79.  
  80. //----------------------------------------------------------------------------------------
  81. //    FW_GetShapeBoundingBox
  82. //----------------------------------------------------------------------------------------
  83.  
  84. FW_CRect FW_GetShapeBoundingBox(Environment *ev, ODShape* odShape)
  85. {
  86.     ODRect rect;
  87.     odShape->GetBoundingBox(ev, &rect);
  88.     return rect;
  89. }
  90.  
  91. //----------------------------------------------------------------------------------------
  92. // FW_XorODShape
  93. //----------------------------------------------------------------------------------------
  94.  
  95. ODShape* FW_XorODShape(Environment* ev, ODShape* a, ODShape* b)
  96. {
  97.     ODShape* result = a->Copy(ev);
  98.     result->Union(ev, b);
  99.     
  100.     FW_CAcquiredODShape aqIntersect(a->Copy(ev));
  101.     aqIntersect->Intersect(ev, b);
  102.     
  103.     result->Subtract(ev, aqIntersect);
  104.     
  105.     return result;
  106. }
  107.  
  108. //----------------------------------------------------------------------------------------
  109. // FW_NewODShape
  110. //----------------------------------------------------------------------------------------
  111.  
  112. ODShape* FW_NewODShape(Environment* ev) 
  113. {
  114.     ODShape* shape = FW_PrivNewODShape_Empty (ev);
  115.     FW_FailOnEvError(ev);
  116.     return shape;
  117. }
  118.  
  119. //----------------------------------------------------------------------------------------
  120. // FW_NewODShape
  121. //----------------------------------------------------------------------------------------
  122.  
  123. ODShape* FW_NewODShape(Environment *ev, ODShape* otherShape) 
  124. {
  125.     return otherShape->Copy(ev);
  126. }
  127.  
  128. //----------------------------------------------------------------------------------------
  129. // FW_NewODShape
  130. //----------------------------------------------------------------------------------------
  131.  
  132. ODShape* FW_NewODShape(Environment *ev, const FW_CRect& rect) 
  133. {
  134.     ODShape* shape = FW_PrivNewODShape_Rect (ev, rect);
  135.     FW_FailOnEvError(ev);
  136.     return shape;
  137. }
  138.  
  139. //----------------------------------------------------------------------------------------
  140. // FW_NewODShape
  141. //----------------------------------------------------------------------------------------
  142.  
  143. ODShape* FW_NewODShape(Environment *ev, const FW_SPlatformRect& rect) 
  144. {
  145.     ODShape* shape = FW_PrivNewODShape_PlatformRect (ev, rect);
  146.     FW_FailOnEvError(ev);
  147.     return shape;
  148. }
  149.  
  150. //----------------------------------------------------------------------------------------
  151. // FW_NewODShape
  152. //----------------------------------------------------------------------------------------
  153.  
  154. ODShape* FW_NewODShape(Environment *ev, ODRgnHandle rgnHandleToAdopt) 
  155. {
  156.     ODShape* shape = FW_PrivNewODShape_Region (ev, rgnHandleToAdopt);
  157.     FW_FailOnEvError(ev);
  158.     return shape;
  159. }
  160.  
  161.  
  162. //----------------------------------------------------------------------------------------
  163. // FW_NewODTransform
  164. //----------------------------------------------------------------------------------------
  165.  
  166. ODTransform* FW_NewODTransform(Environment* ev) 
  167. {
  168.     ODTransform* transform = FW_PrivNewODTransform_Empty (ev);
  169.     FW_FailOnEvError(ev);
  170.     return transform;
  171. }
  172.  
  173. //----------------------------------------------------------------------------------------
  174. // FW_NewODTransform
  175. //----------------------------------------------------------------------------------------
  176.  
  177. ODTransform* FW_NewODTransform(Environment *ev, ODTransform* otherTransform) 
  178. {
  179.     return otherTransform->Copy(ev);
  180. }
  181.  
  182. //----------------------------------------------------------------------------------------
  183. // FW_NewODTransform
  184. //----------------------------------------------------------------------------------------
  185.  
  186. ODTransform* FW_NewODTransform(Environment *ev, const FW_CPoint& offset) 
  187. {
  188.     ODTransform* transform = FW_PrivNewODTransform_Point (ev, offset);
  189.     FW_FailOnEvError(ev);
  190.     return transform;
  191. }
  192.  
  193. //----------------------------------------------------------------------------------------
  194. // FW_NewODTransform
  195. //----------------------------------------------------------------------------------------
  196.  
  197. ODTransform* FW_NewODTransform(Environment *ev, const FW_CPoint& offset, const FW_CPoint& scale) 
  198. {
  199.     ODTransform* transform = FW_PrivNewODTransform_Point2 (ev, offset, scale);
  200.     FW_FailOnEvError(ev);
  201.     return transform;
  202. }
  203.  
  204.