Advertisement
expired6978

DisplayInfo

Mar 30th, 2014
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.52 KB | None | 0 0
  1. class DisplayInfo
  2.     {
  3.     public:
  4.         DisplayInfo() : _varsSet(0) {}
  5.         enum
  6.         {
  7.             kChange_x               = (1 << 0),
  8.             kChange_y               = (1 << 1),
  9.             kChange_rotation        = (1 << 2),
  10.             kChange_xscale          = (1 << 3),
  11.             kChange_yscale          = (1 << 4),
  12.             kChange_alpha           = (1 << 5),
  13.             kChange_visible         = (1 << 6),
  14.             kChange_z               = (1 << 7),
  15.             kChange_xrotation       = (1 << 8),
  16.             kChange_yrotation       = (1 << 9),
  17.             kChange_zscale          = (1 << 10),
  18.             kChange_FOV             = (1 << 11),
  19.             kChange_projMatrix3D    = (1 << 12),
  20.             kChange_viewMatrix3D    = (1 << 13)
  21.         };
  22.  
  23.         double      _x;
  24.         double      _y;
  25.         double      _rotation;
  26.         double      _xScale;
  27.         double      _yScale;
  28.         double      _alpha;
  29.         UInt32      _visible;
  30.         double      _z;
  31.         double      _xRotation;
  32.         double      _yRotation;
  33.         double      _zScale;
  34.         double      _perspFOV;
  35.         GMatrix3D   _viewMatrix3D;
  36.         GMatrix3D   _perspectiveMatrix3D;
  37.         UInt32      _varsSet;
  38.  
  39.         void SetX(double x)                 { SetFlags(kChange_x); _x = x; }
  40.         void SetY(double y)                 { SetFlags(kChange_y); _y = y; }
  41.         void SetRotation(double degrees)    { SetFlags(kChange_rotation); _rotation = degrees; }
  42.         void SetXScale(double xscale)       { SetFlags(kChange_xscale); _xScale = xscale; }
  43.         void SetYScale(double yscale)       { SetFlags(kChange_yscale); _yScale = yscale; }
  44.         void SetAlpha(double alpha)         { SetFlags(kChange_alpha); _alpha = alpha; }
  45.         void SetVisible(bool visible)       { SetFlags(kChange_visible); _visible = visible; }
  46.         void SetZ(double z)                 { SetFlags(kChange_z); _z = z; }
  47.         void SetXRotation(double degrees)   { SetFlags(kChange_xrotation); _xRotation = degrees; }
  48.         void SetYRotation(double degrees)   { SetFlags(kChange_yrotation); _yRotation = degrees; }
  49.         void SetZScale(double zscale)       { SetFlags(kChange_zscale); _zScale = zscale; }
  50.         void SetFOV(double fov)             { SetFlags(kChange_FOV); _perspFOV = fov; }
  51.         void SetProjectionMatrix3D(const GMatrix3D *pmat)  
  52.         {
  53.             if (pmat) {
  54.                 SetFlags(kChange_projMatrix3D);
  55.                 _perspectiveMatrix3D = *pmat;
  56.             } else
  57.                 ClearFlags(kChange_projMatrix3D);
  58.         }
  59.         void SetViewMatrix3D(const GMatrix3D *pmat)
  60.         {
  61.             if (pmat) {
  62.                 SetFlags(kChange_viewMatrix3D);
  63.                 _viewMatrix3D = *pmat;
  64.             } else
  65.                 ClearFlags(kChange_viewMatrix3D);
  66.         }
  67.  
  68.         // Convenience functions
  69.         void SetPosition(double x, double y) { SetFlags(kChange_x | kChange_y); _x = x; _y = y; }
  70.         void SetScale(double xscale, double yscale)  { SetFlags(kChange_xscale | kChange_yscale); _xScale = xscale; _yScale = yscale; }
  71.  
  72.         void SetFlags(UInt32 flags) { _varsSet |= flags; }
  73.         void ClearFlags(UInt32 flags) { _varsSet &= ~flags; }
  74.     };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement