InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CTransform.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner:
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __TRANSFORM__
25 #define __TRANSFORM__
26 
27 #include "ITransform.h"
28 #include "PMMatrix.h"
29 #include "CPMUnknown.h"
30 #include "PMPoint.h"
31 
32 
33 
34 class CTransform : public CPMUnknown<ITransform>
35 {
36 public:
37 
38  CTransform(IPMUnknown * boss = nil);
39  virtual ~CTransform();
40 
41  virtual PMReal GetItemScaleX() const;
42  virtual PMReal GetItemScaleY() const;
43  virtual PMReal GetItemSkewAngle() const;
44  virtual PMReal GetItemRotationAngle() const;
45 
46  virtual void ScaleItemBy( PMReal xScale, PMReal yScale, const PMPoint& center);
47  virtual void ScaleItemTo( PMReal xScale, PMReal yScale, const PMPoint& center);
48  virtual void SkewItemBy( PMReal xSkew, const PMPoint& center);
49  virtual void SkewItemTo( PMReal xSkew, const PMPoint& center);
50  virtual void RotateItemBy( PMReal angle, const PBPMPoint& center);
51  virtual void RotateItemTo( PMReal angle, const PBPMPoint& center);
52  virtual void TranslateItemBy( const PBPMPoint& delta);
53  virtual void TranslateItemTo( const PBPMPoint& location);
54 
55  virtual void SetInnerToParentMatrix(const PMMatrix& matrix);
56  virtual const PMMatrix& GetInnerToParentMatrix() const;
57  virtual const PMMatrix& GetParentToInnerMatrix() const;
58  virtual ITransform::MatrixType GetInnerToRootMatrix( PMMatrix *pMatrix, const ITransform *pRoot = nil ) const;
59 
60  virtual bool16 IsTransformParentDependent() const;
61 
63  virtual void ConcatItemTransform(IGraphicsPort *gPort);
64 
65  protected:
66  bool16 MoveAndPositiveScaleOnly(void) const;
67 
68  // this data is read/written by subclass persisttransform
69  PMMatrix fCTM;
70 
71  void UpdateInverseCTM() const;
72 
73  PMMatrix fInverseCTM;
74  bool16 fInverseIsCurrent;
75 };
76 
77 
78 #endif