home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osr1.exe / src / Bias.cpp < prev    next >
C/C++ Source or Header  |  1997-03-21  |  7KB  |  220 lines

  1. /* @(#)Z 1.6 com/src/layout/Bias.cpp, odlayout, od96os2, odos29712d 97/03/21 17:18:25 (96/07/15 18:31:46) */
  2. //====START_GENERATED_PROLOG======================================
  3. //
  4. //
  5. //   COMPONENT_NAME: odlayout
  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. /*  IBM Change History (most recent first):                         */
  29. /*   20470 03/19/96 tmw/SA Apple DR4 and common Windows/OS2         */
  30. /********************************************************************/
  31. /*
  32.    File:       Bias.cpp
  33.  
  34.    Contains:   Implementation of private utility functions
  35.  
  36.    Owned by:   Joshua Susser
  37.  
  38.    Copyright:  ⌐ 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  39.  
  40.    Change History (most recent first):
  41.  
  42.         <5>     9/13/95    DM      1277216 GM:API return no ODPoints nor
  43.                                    ODPolygons
  44.         <4>     6/23/95    JBS     1251627 fix refcounting throughout file
  45.         <3>     5/26/95    RR      #1251403: Multithreading naming support
  46.         <2>     9/29/94    JBS     1188214: more coord bias impl
  47.         <1>     9/22/94    JBS     first checked in
  48. */
  49.  
  50. /*
  51. These functions are private utilities for use by Layout classes which need
  52. to bias and unbias geometry.  Frames and facets store geometry (shape and
  53. transform objects) in platform-normal coordinates.  They must therefore unbias
  54. geometry in "setter" methods, and bias it in "getter" methods.  These functions
  55. do the necessary transformations.  They assume that geometry objects are
  56. consumed on set, and copied out on get.
  57. */
  58.  
  59. #ifndef _BIAS_
  60. #include "Bias.h"
  61. #endif
  62.  
  63. #ifndef SOM_ODCanvas_xh
  64. #include <Canvas.xh>
  65. #endif
  66.  
  67. #ifndef SOM_ODShape_xh
  68. #include <Shape.xh>
  69. #endif
  70.  
  71. #ifndef SOM_ODTransform_xh
  72. #include <Trnsform.xh>
  73. #endif
  74.  
  75. #ifndef _TEMPOBJ_
  76. #include "TempObj.h"
  77. #endif
  78.  
  79. #ifdef _FACET_DEBUG_
  80. #include <qprintf.h>
  81. #endif
  82. //==============================================================================
  83. // Functions
  84. //==============================================================================
  85.  
  86. //------------------------------------------------------------------------------
  87. // BiasPoint
  88. //------------------------------------------------------------------------------
  89.  
  90. ODPoint BiasPointGet(Environment *ev, ODPoint* point, ODCanvas* biasCanvas)
  91. {
  92.    ODPoint returnPoint = *point;
  93.     TempODTransform biasTransform = kODNULL;
  94.  
  95. #ifdef _FACET_DEBUG_
  96.     qprintf("Executing BiasPointGet()\n");
  97. #endif
  98.    if ( biasCanvas )
  99.        biasTransform = biasCanvas->AcquireBiasTransform(ev);
  100.    if ( biasTransform )
  101.        biasTransform->TransformPoint(ev, &returnPoint);
  102.  
  103.    return returnPoint;
  104. }
  105.  
  106. ODPoint BiasPointSet(Environment *ev, ODPoint* point, ODCanvas* biasCanvas)
  107. {
  108.    ODPoint returnPoint = *point;
  109.     TempODTransform biasTransform = kODNULL;
  110.  
  111. #ifdef _FACET_DEBUG_
  112.     qprintf("Executing BiasPointSet()\n");
  113. #endif
  114.  
  115.    if ( biasCanvas )
  116.        biasTransform = biasCanvas->AcquireBiasTransform(ev);
  117.    if ( biasTransform )
  118.        biasTransform->InvertPoint(ev, &returnPoint);
  119.  
  120.    return returnPoint;
  121. }
  122.  
  123. //------------------------------------------------------------------------------
  124. // BiasShape
  125. //------------------------------------------------------------------------------
  126.  
  127. ODShape* BiasShapeGet(Environment *ev, ODShape* shape, ODCanvas* biasCanvas)
  128. {
  129.    ODShape* returnShape = kODNULL;
  130.     TempODTransform biasTransform = kODNULL;
  131.  
  132. #ifdef _FACET_DEBUG_
  133.     qprintf("Executing BiasShapeGet()\n");
  134. #endif
  135.    if ( shape )
  136.    {
  137.        if ( biasCanvas )
  138.            biasTransform = biasCanvas->AcquireBiasTransform(ev);
  139.        if ( biasTransform )
  140.        {
  141.            returnShape = shape->Copy(ev);
  142.            returnShape->Transform(ev, biasTransform);
  143.        }
  144.        else
  145.        {
  146.            returnShape = shape;
  147.            returnShape->Acquire(ev);
  148.        }
  149.    }
  150.    return returnShape;
  151. }
  152.  
  153. ODShape* BiasShapeSet(Environment *ev, ODShape* shape, ODCanvas* biasCanvas)
  154. {
  155.     TempODTransform biasTransform = kODNULL;
  156.  
  157. #ifdef _FACET_DEBUG_
  158.     qprintf("Executing BiasShapeSet()\n");
  159. #endif
  160.    if ( shape )
  161.    {
  162.        if ( biasCanvas )
  163.            biasTransform = biasCanvas->AcquireBiasTransform(ev);
  164.        if ( biasTransform )
  165.            shape->InverseTransform(ev, biasTransform);
  166.    }
  167.    return shape;
  168. }
  169.  
  170. //------------------------------------------------------------------------------
  171. // BiasTransform
  172. //------------------------------------------------------------------------------
  173.  
  174. ODTransform* BiasTransformGet(Environment *ev, ODTransform* transform, ODCanvas* biasCanvas)
  175. {
  176.    ODTransform* returnTransform = kODNULL;
  177.     TempODTransform biasTransform = kODNULL;
  178.  
  179. #ifdef _FACET_DEBUG_
  180.     qprintf("Executing BiasTransformGet()\n");
  181. #endif
  182.    if ( transform )
  183.    {
  184.        if ( biasCanvas )
  185.            biasTransform = biasCanvas->AcquireBiasTransform(ev);
  186.        if ( biasTransform )
  187.        {
  188.            returnTransform = transform->Copy(ev);
  189.            returnTransform->PreCompose(ev, biasTransform);
  190.        }
  191.        else
  192.        {
  193.            returnTransform = transform;
  194.            returnTransform->Acquire(ev);
  195.        }
  196.    }
  197.    return returnTransform;
  198. }
  199.  
  200. ODTransform* BiasTransformSet(Environment *ev, ODTransform* transform, ODCanvas* biasCanvas)
  201. {
  202.     TempODTransform biasTransform = kODNULL;
  203.  
  204. #ifdef _FACET_DEBUG_
  205.     qprintf("Executing BiasTransformSet()\n");
  206. #endif
  207.    if ( transform )
  208.    {
  209.        if ( biasCanvas )
  210.            biasTransform = biasCanvas->AcquireBiasTransform(ev);
  211.        if ( biasTransform )
  212.        {
  213.            biasTransform->Invert(ev);
  214.            transform->PreCompose(ev, biasTransform);
  215.            biasTransform->Invert(ev);
  216.        }
  217.    }
  218.    return transform;
  219. }
  220.