xref: /haiku/src/apps/icon-o-matic/shape/commands/TransformPointsCommand.h (revision a75a222b35d17cd83bc75253f3cd8e24a6a911f4)
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 
1225dc253dSIngo Weinhold #include "IconBuild.h"
13f4bd80a2SStephan Aßmus #include "TransformBox.h"
14f4bd80a2SStephan Aßmus #include "TransformCommand.h"
15f4bd80a2SStephan Aßmus 
16f4bd80a2SStephan Aßmus 
1725dc253dSIngo Weinhold _BEGIN_ICON_NAMESPACE
18325a6253SAxel Dörfler 	struct control_point;
1908e7fb40SIngo Weinhold 	class Transformable;
20325a6253SAxel Dörfler 	class VectorPath;
2125dc253dSIngo Weinhold _END_ICON_NAMESPACE
2225dc253dSIngo Weinhold 
2325dc253dSIngo Weinhold _USING_ICON_NAMESPACE
2425dc253dSIngo 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 
43*a75a222bSZardshard 										const char* name);
44f4bd80a2SStephan Aßmus 	virtual						~TransformPointsCommand();
45f4bd80a2SStephan Aßmus 
46f4bd80a2SStephan Aßmus 	// Command interface
47f4bd80a2SStephan Aßmus 	virtual	status_t			InitCheck();
48f4bd80a2SStephan Aßmus 
49f4bd80a2SStephan Aßmus 	// TransformBoxListener interface
50f4bd80a2SStephan Aßmus 	virtual	void				TransformBoxDeleted(
51f4bd80a2SStephan Aßmus 									const TransformBox* box);
52f4bd80a2SStephan Aßmus  protected:
53f4bd80a2SStephan Aßmus  	// TransformCommand interface
54f4bd80a2SStephan Aßmus 	virtual	status_t			_SetTransformation(BPoint pivotDiff,
55f4bd80a2SStephan Aßmus 												   BPoint translationDiff,
56f4bd80a2SStephan Aßmus 												   double rotationDiff,
57f4bd80a2SStephan Aßmus 												   double xScaleDiff,
58f4bd80a2SStephan Aßmus 												   double yScaleDiff) const;
59f4bd80a2SStephan Aßmus 
60f4bd80a2SStephan Aßmus 			TransformBox*		fTransformBox;
61f4bd80a2SStephan Aßmus 
62f4bd80a2SStephan Aßmus 			VectorPath*			fPath;
63f4bd80a2SStephan Aßmus 
64f4bd80a2SStephan Aßmus 			int32*				fIndices;
65f4bd80a2SStephan Aßmus 			control_point*		fPoints;
66f4bd80a2SStephan Aßmus 			int32				fCount;
67f4bd80a2SStephan Aßmus };
68f4bd80a2SStephan Aßmus 
69f4bd80a2SStephan Aßmus #endif // TRANSFORM_POINTS_COMMAND_H
70