All Downloads are FREE. Search and download functionalities are using the official Maven repository.

elemental.svg.SVGMatrix Maven / Gradle / Ivy

/*
 * Copyright 2012 Google Inc.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package elemental.svg;

import elemental.events.*;
import elemental.util.*;
import elemental.dom.*;
import elemental.html.*;
import elemental.css.*;
import elemental.stylesheets.*;

import java.util.Date;

/**
  * 

Many of SVG's graphics operations utilize 2x3 matrices of the form:

[a c e]
[b d f]

which, when expanded into a 3x3 matrix for the purposes of matrix arithmetic, become:

[a c e]
[b d f]
[0 0 1]

An SVGMatrix object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.

*/ public interface SVGMatrix { double getA(); void setA(double arg); double getB(); void setB(double arg); double getC(); void setC(double arg); double getD(); void setD(double arg); double getE(); void setE(double arg); double getF(); void setF(double arg); /** * Post-multiplies the transformation [-1 0 0 1 0 0] and returns the resulting matrix. */ SVGMatrix flipX(); /** * Post-multiplies the transformation [1 0 0 -1 0 0] and returns the resulting matrix. */ SVGMatrix flipY(); /** *

Return the inverse matrix

Exceptions:

  • a DOMException with code SVG_MATRIX_NOT_INVERTABLE is raised if the matrix is not invertable.
*/ SVGMatrix inverse(); /** * Performs matrix multiplication. This matrix is post-multiplied by another matrix, returning the resulting new matrix. */ SVGMatrix multiply(SVGMatrix secondMatrix); /** * Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix. */ SVGMatrix rotate(float angle); /** *

Post-multiplies a rotation transformation on the current matrix and returns the resulting matrix. The rotation angle is determined by taking (+/-) atan(y/x). The direction of the vector (x, y) determines whether the positive or negative angle value is used.

Exceptions:

  • a DOMException with code SVG_INVALID_VALUE_ERR is raised if one of the parameters has an invalid value.
*/ SVGMatrix rotateFromVector(float x, float y); /** * Post-multiplies a uniform scale transformation on the current matrix and returns the resulting matrix. */ SVGMatrix scale(float scaleFactor); /** * Post-multiplies a non-uniform scale transformation on the current matrix and returns the resulting matrix. */ SVGMatrix scaleNonUniform(float scaleFactorX, float scaleFactorY); /** * Post-multiplies a skewX transformation on the current matrix and returns the resulting matrix. */ SVGMatrix skewX(float angle); /** * Post-multiplies a skewY transformation on the current matrix and returns the resulting matrix. */ SVGMatrix skewY(float angle); /** * Post-multiplies a translation transformation on the current matrix and returns the resulting matrix. */ SVGMatrix translate(float x, float y); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy