elemental.svg.SVGTransform 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;
/**
* SVGTransform
is the interface for one of the component transformations within an SVGTransformList
; thus, an SVGTransform
object corresponds to a single component (e.g., scale(…)
or matrix(…)
) within a
transform
attribute.
An SVGTransform
object can be designated as read only, which means that attempts to modify the object will result in an exception being thrown.
*/
public interface SVGTransform {
/**
* A matrix(…)
transformation
*/
static final int SVG_TRANSFORM_MATRIX = 1;
static final int SVG_TRANSFORM_ROTATE = 4;
/**
* A scale(…)
transformation
*/
static final int SVG_TRANSFORM_SCALE = 3;
static final int SVG_TRANSFORM_SKEWX = 5;
static final int SVG_TRANSFORM_SKEWY = 6;
/**
* A translate(…)
transformation
*/
static final int SVG_TRANSFORM_TRANSLATE = 2;
/**
* The unit type is not one of predefined unit types. It is invalid to attempt to define a new value of this type or to attempt to switch an existing value to this type.
*/
static final int SVG_TRANSFORM_UNKNOWN = 0;
/**
* A convenience attribute for SVG_TRANSFORM_ROTATE
, SVG_TRANSFORM_SKEWX
and SVG_TRANSFORM_SKEWY
. It holds the angle that was specified.
For SVG_TRANSFORM_MATRIX
, SVG_TRANSFORM_TRANSLATE
and SVG_TRANSFORM_SCALE
, angle
will be zero.
*/
float getAngle();
/**
* The matrix that represents this transformation. The matrix object is live, meaning that any changes made to the SVGTransform
object are immediately reflected in the matrix object and vice versa. In case the matrix object is changed directly (i.e., without using the methods on the SVGTransform
interface itself) then the type of the SVGTransform
changes to SVG_TRANSFORM_MATRIX
.
- For
SVG_TRANSFORM_MATRIX
, the matrix contains the a, b, c, d, e, f values supplied by the user. - For
SVG_TRANSFORM_TRANSLATE
, e and f represent the translation amounts (a=1, b=0, c=0 and d=1). - For
SVG_TRANSFORM_SCALE
, a and d represent the scale amounts (b=0, c=0, e=0 and f=0). - For
SVG_TRANSFORM_SKEWX
and SVG_TRANSFORM_SKEWY
, a, b, c and d represent the matrix which will result in the given skew (e=0 and f=0). - For
SVG_TRANSFORM_ROTATE
, a, b, c, d, e and f together represent the matrix which will result in the given rotation. When the rotation is around the center point (0, 0), e and f will be zero.
*/
SVGMatrix getMatrix();
/**
* The type of the value as specified by one of the SVG_TRANSFORM_* constants defined on this interface.
*/
int getType();
/**
* Sets the transform type to SVG_TRANSFORM_ROTATE
, with parameter angle
defining the rotation angle and parameters cx
and cy
defining the optional center of rotation.
Exceptions:
- a
DOMException
with code NO_MODIFICATION_ALLOWED_ERR
is raised when attempting to modify a read only attribute or when the object itself is read only.
*/
void setRotate(float angle, float cx, float cy);
/**
* Sets the transform type to SVG_TRANSFORM_SCALE
, with parameters sx
and sy
defining the scale amounts.
Exceptions:
- a
DOMException
with code NO_MODIFICATION_ALLOWED_ERR
is raised when attempting to modify a read only attribute or when the object itself is read only.
*/
void setScale(float sx, float sy);
/**
* Sets the transform type to SVG_TRANSFORM_SKEWX
, with parameter angle
defining the amount of skew.
Exceptions:
- a
DOMException
with code NO_MODIFICATION_ALLOWED_ERR
is raised when attempting to modify a read only attribute or when the object itself is read only.
*/
void setSkewX(float angle);
/**
* Sets the transform type to SVG_TRANSFORM_SKEWY
, with parameter angle
defining the amount of skew.
Exceptions:
- a
DOMException
with code NO_MODIFICATION_ALLOWED_ERR
is raised when attempting to modify a read only attribute or when the object itself is read only.
*/
void setSkewY(float angle);
/**
* Sets the transform type to SVG_TRANSFORM_TRANSLATE
, with parameters tx
and ty
defining the translation amounts.
Exceptions:
- a
DOMException
with code NO_MODIFICATION_ALLOWED_ERR
is raised when attempting to modify a read only attribute or when the object itself is read only.
*/
void setTranslate(float tx, float ty);
}