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 / OpenDoc Development / Debugging Support / OpenDoc Source Code / Layout / Bias.cpp next >
Encoding:
C/C++ Source or Header  |  1996-04-22  |  4.1 KB  |  164 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Bias.cpp
  3.  
  4.     Contains:    Implementation of private utility functions
  5.  
  6.     Owned by:    Joshua Susser
  7.  
  8.     Copyright:    © 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     Change History (most recent first):
  11.     
  12.          <5>     9/13/95    DM        1277216 GM:API return no ODPoints nor
  13.                                     ODPolygons
  14.          <4>     6/23/95    JBS        1251627 fix refcounting throughout file
  15.          <3>     5/26/95    RR        #1251403: Multithreading naming support
  16.          <2>     9/29/94    JBS        1188214: more coord bias impl
  17.          <1>     9/22/94    JBS        first checked in
  18. */
  19.  
  20. /*
  21. These functions are private utilities for use by Layout classes which need
  22. to bias and unbias geometry.  Frames and facets store geometry (shape and
  23. transform objects) in platform-normal coordinates.  They must therefore unbias
  24. geometry in "setter" methods, and bias it in "getter" methods.  These functions
  25. do the necessary transformations.  They assume that geometry objects are
  26. consumed on set, and copied out on get.
  27. */
  28.  
  29. #ifndef _BIAS_
  30. #include "bias.h"
  31. #endif
  32.  
  33. #ifndef SOM_ODCanvas_xh
  34. #include <Canvas.xh>
  35. #endif
  36.  
  37. #ifndef SOM_ODShape_xh
  38. #include <Shape.xh>
  39. #endif
  40.  
  41. #ifndef SOM_ODTransform_xh
  42. #include <Trnsform.xh>
  43. #endif
  44.  
  45. #ifndef _TEMPOBJ_
  46. #include "TempObj.h"
  47. #endif
  48.  
  49. //==============================================================================
  50. // Functions
  51. //==============================================================================
  52.  
  53. //------------------------------------------------------------------------------
  54. // BiasPoint
  55. //------------------------------------------------------------------------------
  56.  
  57. ODPoint BiasPointGet(Environment *ev, ODPoint* point, ODCanvas* biasCanvas)
  58. {
  59.     ODPoint returnPoint = *point;
  60.     TempODTransform biasTransform = kODNULL;
  61.     
  62.     if ( biasCanvas )
  63.         biasTransform = biasCanvas->AcquireBiasTransform(ev);
  64.     if ( biasTransform )
  65.         biasTransform->TransformPoint(ev, &returnPoint);
  66.  
  67.     return returnPoint;
  68. }
  69.  
  70. ODPoint BiasPointSet(Environment *ev, ODPoint* point, ODCanvas* biasCanvas)
  71. {
  72.     ODPoint returnPoint = *point;
  73.     TempODTransform biasTransform = kODNULL;
  74.     
  75.     if ( biasCanvas )
  76.         biasTransform = biasCanvas->AcquireBiasTransform(ev);
  77.     if ( biasTransform )
  78.         biasTransform->InvertPoint(ev, &returnPoint);
  79.  
  80.     return returnPoint;
  81. }
  82.  
  83. //------------------------------------------------------------------------------
  84. // BiasShape
  85. //------------------------------------------------------------------------------
  86.  
  87. ODShape* BiasShapeGet(Environment *ev, ODShape* shape, ODCanvas* biasCanvas)
  88. {
  89.     ODShape* returnShape = kODNULL;
  90.     TempODTransform biasTransform = kODNULL;
  91.     if ( shape )
  92.     {
  93.         if ( biasCanvas )
  94.             biasTransform = biasCanvas->AcquireBiasTransform(ev);
  95.         if ( biasTransform )
  96.         {
  97.             returnShape = shape->Copy(ev);
  98.             returnShape->Transform(ev, biasTransform);
  99.         }
  100.         else
  101.         {
  102.             returnShape = shape;
  103.             returnShape->Acquire(ev);
  104.         }
  105.     }
  106.     return returnShape;
  107. }
  108.  
  109. ODShape* BiasShapeSet(Environment *ev, ODShape* shape, ODCanvas* biasCanvas)
  110. {
  111.     TempODTransform biasTransform = kODNULL;
  112.     if ( shape )
  113.     {
  114.         if ( biasCanvas )
  115.             biasTransform = biasCanvas->AcquireBiasTransform(ev);
  116.         if ( biasTransform )
  117.             shape->InverseTransform(ev, biasTransform);
  118.     }
  119.     return shape;
  120. }
  121.  
  122. //------------------------------------------------------------------------------
  123. // BiasTransform
  124. //------------------------------------------------------------------------------
  125.  
  126. ODTransform* BiasTransformGet(Environment *ev, ODTransform* transform, ODCanvas* biasCanvas)
  127. {
  128.     ODTransform* returnTransform = kODNULL;
  129.     TempODTransform biasTransform = kODNULL;
  130.     if ( transform )
  131.     {
  132.         if ( biasCanvas )
  133.             biasTransform = biasCanvas->AcquireBiasTransform(ev);
  134.         if ( biasTransform )
  135.         {
  136.             returnTransform = transform->Copy(ev);
  137.             returnTransform->PreCompose(ev, biasTransform);
  138.         }
  139.         else
  140.         {
  141.             returnTransform = transform;
  142.             returnTransform->Acquire(ev);
  143.         }
  144.     }
  145.     return returnTransform;
  146. }
  147.  
  148. ODTransform* BiasTransformSet(Environment *ev, ODTransform* transform, ODCanvas* biasCanvas)
  149. {
  150.     TempODTransform biasTransform = kODNULL;
  151.     if ( transform )
  152.     {
  153.         if ( biasCanvas )
  154.             biasTransform = biasCanvas->AcquireBiasTransform(ev);
  155.         if ( biasTransform )
  156.         {
  157.             biasTransform->Invert(ev);
  158.             transform->PreCompose(ev, biasTransform);
  159.             biasTransform->Invert(ev);
  160.         }
  161.     }
  162.     return transform;
  163. }
  164.