Blame synfig-studio/src/gui/ducktransform_origin.h

Nikita Kitaev ef9f02
/* === S Y N F I G ========================================================= */
Nikita Kitaev ef9f02
/*!	\file ducktransform_origin.h
Nikita Kitaev ef9f02
**	\brief Template Header
Nikita Kitaev ef9f02
**
Nikita Kitaev ef9f02
**	$Id$
Nikita Kitaev ef9f02
**
Nikita Kitaev ef9f02
**	\legal
Nikita Kitaev ef9f02
**	Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
Nikita Kitaev ef9f02
**
Nikita Kitaev ef9f02
**	This package is free software; you can redistribute it and/or
Nikita Kitaev ef9f02
**	modify it under the terms of the GNU General Public License as
Nikita Kitaev ef9f02
**	published by the Free Software Foundation; either version 2 of
Nikita Kitaev ef9f02
**	the License, or (at your option) any later version.
Nikita Kitaev ef9f02
**
Nikita Kitaev ef9f02
**	This package is distributed in the hope that it will be useful,
Nikita Kitaev ef9f02
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
Nikita Kitaev ef9f02
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Nikita Kitaev ef9f02
**	General Public License for more details.
Nikita Kitaev ef9f02
**	\endlegal
Nikita Kitaev ef9f02
*/
Nikita Kitaev ef9f02
/* ========================================================================= */
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
/* === S T A R T =========================================================== */
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
#ifndef __SYNFIG_STUDIO_DUCK_TRANSFORM_ORIGIN_H
Nikita Kitaev ef9f02
#define __SYNFIG_STUDIO_DUCK_TRANSFORM_ORIGIN_H
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
/* === H E A D E R S ======================================================= */
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
#include "duckmatic.h"
Nikita Kitaev ef9f02
#include "duck.h"
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
/* === M A C R O S ========================================================= */
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
/* === T Y P E D E F S ===================================================== */
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
/* === C L A S S E S & S T R U C T S ======================================= */
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
namespace studio {
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
class Transform_Origin : public synfig::Transform
Nikita Kitaev ef9f02
{
Nikita Kitaev ef9f02
private:
Nikita Kitaev ef9f02
	etl::handle<duck> origin;</duck>
Nikita Kitaev ef9f02
	std::vector<synfig::vector> positions;</synfig::vector>
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
public:
Nikita Kitaev ef9f02
	Transform_Origin(const synfig::GUID& guid, const etl::handle<duck>& origin):Transform(guid), origin(origin) { }</duck>
Nikita Kitaev ef9f02
	synfig::Vector perform(const synfig::Vector& x)const { return x+origin->get_point(); }
Nikita Kitaev ef9f02
	synfig::Vector unperform(const synfig::Vector& x)const { return x-origin->get_point(); }
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
	synfig::String get_string()const
Nikita Kitaev ef9f02
	{
Nikita Kitaev ef9f02
		return "duck origin";
Nikita Kitaev ef9f02
	}
Nikita Kitaev ef9f02
}; // END of class Transform_Origin
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
}; // END of namespace studio
Nikita Kitaev ef9f02
/* === E N D =============================================================== */
Nikita Kitaev ef9f02
Nikita Kitaev ef9f02
#endif