/* ******************************************************************************
* Copyright (c) 2006-2012 XMind Ltd. and others.
*
* This file is a part of XMind 3. XMind releases 3 and
* above are dual-licensed under the Eclipse Public License (EPL),
* which is available at http://www.eclipse.org/legal/epl-v10.html
* and the GNU Lesser General Public License (LGPL),
* which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details.
*
* Contributors:
* XMind Ltd. - initial API and implementation
*******************************************************************************/
package org.xmind.gef.draw2d.geometry;
/**
* <ul>
* <li><code>t()</code>: perform a sort of transformation and return the result
* in the given geometrical object.</li>
* <li><code>r()</code>: perform a sort of <b>reverse</b> transformation and
* return the result in the given geometrical object.</li>
* <li><code>t*()</code>: perform a sort of transformation and return the result
* in the <code>result</code> object or a new object.</li>
* <li><code>r*()</code>: perform a sort of <b>reverse</b> transformation and
* return the result in the <code>result</code> object or a new object.</li>
* </ul>
*
* @author Frank Shaka
*/
public interface IPrecisionTransformer {
PrecisionPoint t(PrecisionPoint p);
PrecisionDimension t(PrecisionDimension d);
PrecisionRectangle t(PrecisionRectangle r);
PrecisionInsets t(PrecisionInsets i);
PrecisionPoint r(PrecisionPoint p);
PrecisionDimension r(PrecisionDimension d);
PrecisionRectangle r(PrecisionRectangle r);
PrecisionInsets r(PrecisionInsets i);
PrecisionPoint tp(PrecisionPoint p);
PrecisionPoint tp(double x, double y);
PrecisionPoint tp(PrecisionPoint p, PrecisionPoint result);
PrecisionPoint tp(double x, double y, PrecisionPoint result);
PrecisionDimension td(PrecisionDimension d);
PrecisionDimension td(double w, double h);
PrecisionDimension td(PrecisionDimension d, PrecisionDimension result);
PrecisionDimension td(double w, double h, PrecisionDimension result);
PrecisionRectangle tr(PrecisionRectangle r);
PrecisionRectangle tr(double x, double y, double w, double h);
PrecisionRectangle tr(PrecisionRectangle r, PrecisionRectangle result);
PrecisionRectangle tr(double x, double y, double w, double h,
PrecisionRectangle result);
PrecisionInsets ti(PrecisionInsets i);
PrecisionInsets ti(double t, double l, double b, double r);
PrecisionInsets ti(PrecisionInsets i, PrecisionInsets result);
PrecisionInsets ti(double t, double l, double b, double r,
PrecisionInsets result);
PrecisionPoint rp(PrecisionPoint p);
PrecisionPoint rp(double x, double y);
PrecisionPoint rp(PrecisionPoint p, PrecisionPoint result);
PrecisionPoint rp(double x, double y, PrecisionPoint result);
PrecisionDimension rd(PrecisionDimension d);
PrecisionDimension rd(double w, double h);
PrecisionDimension rd(PrecisionDimension d, PrecisionDimension result);
PrecisionDimension rd(double w, double h, PrecisionDimension result);
PrecisionRectangle rr(PrecisionRectangle r);
PrecisionRectangle rr(double x, double y, double w, double h);
PrecisionRectangle rr(PrecisionRectangle r, PrecisionRectangle result);
PrecisionRectangle rr(double x, double y, double w, double h,
PrecisionRectangle result);
PrecisionInsets ri(PrecisionInsets i);
PrecisionInsets ri(double t, double l, double b, double r);
PrecisionInsets ri(PrecisionInsets i, PrecisionInsets result);
PrecisionInsets ri(double t, double l, double b, double r,
PrecisionInsets result);
PrecisionPoint getOrigin();
void setOrigin(PrecisionPoint origin);
void setOrigin(double x, double y);
boolean isEnabled();
void setEnabled(boolean enabled);
}