xref: /haiku/src/apps/icon-o-matic/shape/commands/TransformPointsCommand.h (revision 25dc253d6ab28ce204fa4de2d3e7a27d167fc817)
1f4bd80a2SStephan Aßmus /*
2325a6253SAxel Dörfler  * Copyright 2006-2007, Haiku. All rights reserved.
3f4bd80a2SStephan Aßmus  * Distributed under the terms of the MIT License.
4f4bd80a2SStephan Aßmus  *
5f4bd80a2SStephan Aßmus  * Authors:
6f4bd80a2SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7f4bd80a2SStephan Aßmus  */
8f4bd80a2SStephan Aßmus #ifndef TRANSFORM_POINTS_COMMAND_H
9f4bd80a2SStephan Aßmus #define TRANSFORM_POINTS_COMMAND_H
10f4bd80a2SStephan Aßmus 
11325a6253SAxel Dörfler 
12*25dc253dSIngo Weinhold #include "IconBuild.h"
13f4bd80a2SStephan Aßmus #include "TransformBox.h"
14f4bd80a2SStephan Aßmus #include "TransformCommand.h"
15f4bd80a2SStephan Aßmus 
16f4bd80a2SStephan Aßmus 
17*25dc253dSIngo Weinhold _BEGIN_ICON_NAMESPACE
18325a6253SAxel Dörfler 	struct control_point;
1908e7fb40SIngo Weinhold 	class Transformable;
20325a6253SAxel Dörfler 	class VectorPath;
21*25dc253dSIngo Weinhold _END_ICON_NAMESPACE
22*25dc253dSIngo Weinhold 
23*25dc253dSIngo Weinhold _USING_ICON_NAMESPACE
24*25dc253dSIngo Weinhold 
2508e7fb40SIngo Weinhold 
26f4bd80a2SStephan Aßmus class TransformPointsCommand : public TransformCommand,
27f4bd80a2SStephan Aßmus 							   public TransformBoxListener {
28f4bd80a2SStephan Aßmus  public:
29f4bd80a2SStephan Aßmus 								TransformPointsCommand(
30f4bd80a2SStephan Aßmus 										TransformBox* box,
31f4bd80a2SStephan Aßmus 
32f4bd80a2SStephan Aßmus 										VectorPath* path,
33f4bd80a2SStephan Aßmus 										const int32* indices,
34f4bd80a2SStephan Aßmus 										const control_point* points,
35f4bd80a2SStephan Aßmus 										int32 count,
36f4bd80a2SStephan Aßmus 
37f4bd80a2SStephan Aßmus 										BPoint pivot,
38f4bd80a2SStephan Aßmus 										BPoint translation,
39f4bd80a2SStephan Aßmus 										double rotation,
40f4bd80a2SStephan Aßmus 										double xScale,
41f4bd80a2SStephan Aßmus 										double yScale,
42f4bd80a2SStephan Aßmus 
43f4bd80a2SStephan Aßmus 										const char* name,
44f4bd80a2SStephan Aßmus 										int32 nameIndex);
45f4bd80a2SStephan Aßmus 	virtual						~TransformPointsCommand();
46f4bd80a2SStephan Aßmus 
47f4bd80a2SStephan Aßmus 	// Command interface
48f4bd80a2SStephan Aßmus 	virtual	status_t			InitCheck();
49f4bd80a2SStephan Aßmus 
50f4bd80a2SStephan Aßmus 	// TransformBoxListener interface
51f4bd80a2SStephan Aßmus 	virtual	void				TransformBoxDeleted(
52f4bd80a2SStephan Aßmus 									const TransformBox* box);
53f4bd80a2SStephan Aßmus  protected:
54f4bd80a2SStephan Aßmus  	// TransformCommand interface
55f4bd80a2SStephan Aßmus 	virtual	status_t			_SetTransformation(BPoint pivotDiff,
56f4bd80a2SStephan Aßmus 												   BPoint translationDiff,
57f4bd80a2SStephan Aßmus 												   double rotationDiff,
58f4bd80a2SStephan Aßmus 												   double xScaleDiff,
59f4bd80a2SStephan Aßmus 												   double yScaleDiff) const;
60f4bd80a2SStephan Aßmus 
61f4bd80a2SStephan Aßmus 			TransformBox*		fTransformBox;
62f4bd80a2SStephan Aßmus 
63f4bd80a2SStephan Aßmus 			VectorPath*			fPath;
64f4bd80a2SStephan Aßmus 
65f4bd80a2SStephan Aßmus 			int32*				fIndices;
66f4bd80a2SStephan Aßmus 			control_point*		fPoints;
67f4bd80a2SStephan Aßmus 			int32				fCount;
68f4bd80a2SStephan Aßmus };
69f4bd80a2SStephan Aßmus 
70f4bd80a2SStephan Aßmus #endif // TRANSFORM_POINTS_COMMAND_H
71