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 / updxangl.c < prev    next >
Text File  |  1997-04-02  |  3KB  |  94 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.2 com/src/samples/dynamicp/bxform/updxangl.c, oddynamicpart, od96os2, odos29712d 97/03/21 17:44:52 (96/11/01 08:51:35)
  28. *******************************************************************
  29. ** Name: ODFloat UpdateTransformAngles
  30. **
  31. ** Description:  Updates _xRotAngle, _hShearAngle, and vShearAngle
  32. **               as appropriate by angleDelta radians.
  33. **
  34. ** Parameters:   angleDelta - the amount by which to update the
  35. **                            rotation angle.
  36. **
  37. *******************************************************************
  38. */
  39. {
  40.    // Increment or decrement the instance variable _xRotAngle by ANGLE_DELTA
  41.    // depending on the direction of rotation.  Reset _xRotAngle to 0 whenever
  42.    // the rotation has reached 360 degrees.
  43.    if (_xRotateActive) {
  44.      if (_xRotateClockwise) {
  45.        _xRotAngle += angleDelta;
  46.      } else {
  47.        _xRotAngle -= angleDelta;
  48.      } /* endif */
  49.      if (_xRotAngle < 0) {
  50.        _xRotAngle += two_pi;
  51.      } else {
  52.        if (_xRotAngle>=two_pi) {
  53.           _xRotAngle -= two_pi;
  54.        } /* endif */
  55.      } /* endif */
  56.    } /* endif */
  57.  
  58.    // Increment or decrement the instance variable _hShearAngle by ANGLE_DELTA
  59.    // depending on the direction of rotation.  Reset _hShearAngle to 0 whenever
  60.    // the rotation has reached 360 degrees.
  61.    if (_hShearActive) {
  62.      if (_hShearRight) {
  63.        _hShearAngle += angleDelta;
  64.      } else {
  65.        _hShearAngle -= angleDelta;
  66.      } /* endif */
  67.      if (_hShearAngle < 0) {
  68.        _hShearAngle += two_pi;
  69.      } else {
  70.        if (_hShearAngle>=two_pi) {
  71.           _hShearAngle -= two_pi;
  72.        } /* endif */
  73.      } /* endif */
  74.    } /* endif */
  75.  
  76.    // Increment or decrement the instance variable _vShearAngle by ANGLE_DELTA
  77.    // depending on the direction of rotation.  Reset _vShearAngle to 0 whenever
  78.    // the rotation has reached 360 degrees.
  79.    if (_vShearActive) {
  80.      if (_vShearUp) {
  81.        _vShearAngle += angleDelta;
  82.      } else {
  83.        _vShearAngle -= angleDelta;
  84.      } /* endif */
  85.      if (_vShearAngle < 0) {
  86.        _vShearAngle += two_pi;
  87.      } else {
  88.        if (_vShearAngle>=two_pi) {
  89.           _vShearAngle -= two_pi;
  90.        } /* endif */
  91.      } /* endif */
  92.    } /* endif */
  93. }
  94.