home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / opendc12.zip / od124os2.exe / od12osp1.exe / src / dynamicp / bxform / hrotate.c < prev    next >
Text File  |  1997-04-02  |  2KB  |  65 lines

  1. /*====START_GENERATED_PROLOG======================================
  2.  */
  3. /*
  4.  *   COMPONENT_NAME: oddynamicpart
  5.  *
  6.  *   CLASSES: none
  7.  *
  8.  *   ORIGINS: 82,27
  9.  *
  10.  *
  11.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  12.  *   All Rights Reserved
  13.  *   Licensed Materials - Property of IBM
  14.  *   US Government Users Restricted Rights - Use, duplication or
  15.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  16.  *       
  17.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  18.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  19.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  20.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  21.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  22.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  23.  *   OR PERFORMANCE OF THIS SOFTWARE.
  24.  */
  25. /*====END_GENERATED_PROLOG========================================
  26.  */
  27. /* @(#) 1.6 com/src/samples/dynamicp/bxform/hrotate.c, oddynamicpart, od96os2, odos29712d 11/1/96 11:15:15 [3/21/97 17:44:50]
  28. *******************************************************************
  29. ** Name: void RotateContent
  30. **
  31. ** Description:  Modified the internal transform for all display
  32. **               frames to affect rotation
  33. **               and shearing within the part.
  34. **
  35. ** Parameters:   byAngle - the (additional) angle by which to
  36. **                         rotate the contents in all frames
  37. **
  38. *******************************************************************
  39. */
  40. try {
  41.   // initialize constants used in calculating rotation transforms
  42.  
  43.    ODFloat   angleDelta = byAngle;      // angle delta in degrees
  44. #ifdef _PLATFORM_WIN32_
  45.    // invert angle on Windows so rotate/shear go the right way.
  46.    angleDelta *= -1;
  47. #endif
  48.  
  49.    somSelf->UpdateTransformAngles(ev, angleDelta);
  50.  
  51.    IODLinkedList *displayFrames = somSelf->GetDisplayFrames(ev);
  52.    IODLink *listItem;
  53.    ODFrame *frame;
  54.  
  55.     for (listItem = displayFrames->First(ev);
  56.          (listItem != kODNULL) && (frame = (ODFrame *)(listItem->Content(ev)));
  57.          listItem = listItem->Next(ev))
  58.    {
  59.      somSelf->SetInternalXform(ev, frame);
  60.    } /* endfor */
  61.    // do NOT delete displayFrames;
  62. } catch (...) {
  63.    reportAnyException(ev);
  64. } /* end try */
  65.