home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / itrnsfrm.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  3.6 KB  |  102 lines

  1. #ifndef _ITRNSFRM_
  2. #define _ITRNSFRM_
  3. /*******************************************************************************
  4. * FILE NAME: itrnsfrm.hpp                                                      *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     ITransformMatrix                                                         *
  9. *                                                                              *
  10. * COPYRIGHT:                                                                   *
  11. *   IBM Open Class Library                                                     *
  12. *   (C) Copyright International Business Machines Corporation 1992, 1996       *
  13. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  14. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  15. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  16. *                                                                              *
  17. *******************************************************************************/
  18.  
  19. #include <ibase.hpp>
  20. #include <ipoint.hpp>
  21.  
  22.  
  23. class ITransformData;
  24. struct _MATRIXLF;
  25. struct tagXFORM;
  26.  
  27. #pragma pack(4)
  28.  
  29. class ITransformMatrix : public IBase {
  30. typedef IBase
  31.   Inherited;
  32.  
  33. public:
  34. /*------------------------------- Constructors -------------------------------*/
  35.   ITransformMatrix  ( );
  36.  
  37.   ITransformMatrix  ( double                  element11,
  38.                       double                  element12,
  39.                       double                  element21,
  40.                       double                  element22,
  41.                       long                    element31,
  42.                       long                    element32       );
  43.  
  44.   ITransformMatrix  ( const struct tagXFORM&  tagxform        );
  45.  
  46.   ITransformMatrix  ( const ITransformMatrix& transformMatrix );
  47.  
  48. ITransformMatrix
  49.   &operator=        ( const ITransformMatrix& matrix          );
  50.  
  51.   ~ITransformMatrix ( );
  52.  
  53. /*----------------------------- Matrix Elements ------------------------------*/
  54. ITransformMatrix
  55.   &setElement11        ( double value ),
  56.   &setElement12        ( double value ),
  57.   &setElement21        ( double value ),
  58.   &setElement22        ( double value ),
  59.   &setElement31        ( long   value ),
  60.   &setElement32        ( long   value );
  61.  
  62. double
  63.   element11            ( ) const,
  64.   element12            ( ) const,
  65.   element21            ( ) const,
  66.   element22            ( ) const;
  67. long
  68.   element31            ( ) const,
  69.   element32            ( ) const;
  70.  
  71. ITransformMatrix
  72.   &setToIdentity ( );
  73.  
  74.  
  75. struct tagXFORM
  76.   asTagXFORM     ( ) const;
  77.  
  78. /*--------------------------- Scale/Rotate/Translate -------------------------*/
  79. ITransformMatrix
  80.   &scaleBy      ( double        xScale,
  81.                   double        yScale,
  82.                   const IPoint& point = IPoint(0,0) ),
  83.   &rotateBy     ( double        angle,
  84.                   const IPoint& point = IPoint(0,0) ),
  85.   &translateBy  ( const IPoint& point               );
  86.  
  87. /*------------------------------ Comparison ----------------------------------*/
  88. IBase::Boolean
  89.   operator== ( const ITransformMatrix& transformMatrix ) const,
  90.   operator!= ( const ITransformMatrix& transformMatrix ) const;
  91.  
  92. private:
  93. /*-------------------------------- Private -----------------------------------*/
  94. ITransformData
  95.  *fTransformData;
  96.  
  97. }; // ITransformMatrix
  98.  
  99. #pragma pack()
  100.  
  101. #endif // _ITRNSFRM_
  102.