InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ITransform.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Zak_Williamson
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 // Defines the interface for a 3x3 transform.
24 //
25 // Purpose of Interface;
26 // A persistant interface containing transformation data for a page item
27 //
28 //========================================================================================
29 
30 #ifndef __ITRANSFORM__
31 #define __ITRANSFORM__
32 
33 #include "IPMUnknown.h"
34 #include "GenericID.h"
35 #include "TransformTypes.h"
36 #include "PMReal.h"
37 
38 class PMRect;
39 class PMPoint;
40 class PMMatrix;
41 class PMPolygon4;
42 class IGraphicsPort;
43 
47 class ITransform : public IPMUnknown
48 {
49 public:
50  enum { kDefaultIID = IID_ITRANSFORM };
51 
56  virtual PMReal GetItemScaleX() const = 0;
57 
62  virtual PMReal GetItemScaleY() const = 0;
63 
68  virtual PMReal GetItemSkewAngle() const = 0;
69 
74  virtual PMReal GetItemRotationAngle() const = 0;
75 
83  virtual void ScaleItemBy( PMReal xScale, PMReal yScale, const PMPoint& center) = 0;
84 
92  virtual void ScaleItemTo( PMReal xScale, PMReal yScale, const PMPoint& center) = 0;
93 
103  virtual void SkewItemTo( PMReal xSkewAngle, const PMPoint& center) = 0;
104 
114  virtual void SkewItemBy( PMReal xSkewAngle, const PMPoint& center) = 0;
115 
122  virtual void RotateItemBy( PMReal angle, const PMPoint& center) = 0;
123 
131  virtual void RotateItemTo( PMReal angle, const PMPoint& center) = 0;
132 
138  virtual void TranslateItemBy( const PMPoint& delta) = 0;
139 
145  virtual void TranslateItemTo( const PMPoint& location) = 0;
146 
147 
148 
154  virtual void SetInnerToParentMatrix( const PMMatrix& matrix) = 0; //t_SetMatrix
155 
162  virtual const PMMatrix& GetInnerToParentMatrix() const = 0;
163 
171  virtual const PMMatrix& GetParentToInnerMatrix() const = 0; //t_CurrentInverseMatrix
172 
173 
174 
175 
191  enum MatrixType { kDynamicMatrix, kStaticMatrix};
192  virtual ITransform::MatrixType GetInnerToRootMatrix( PMMatrix *pMatrix, const ITransform *pRoot = nil ) const = 0;
193 
198  virtual bool16 IsTransformParentDependent() const = 0;
199 
208  virtual IPMUnknown* QueryTransformParent() = 0;
209 
219  virtual void ConcatItemTransform(IGraphicsPort *gPort) = 0;
220 
221 };
222 
223 #endif // __ITRANSFORM__