Canvas implementation of the Shape
class.
CanvasShape
is not intended to be used directly. Instead, use the Shape
class.
If the browser lacks SVG capabilities but has
Canvas capabilities, the Shape
class will point to the CanvasShape
class.
_addTransform
type
args
Adds a transform to the shape.
_closePath
Completes a shape or drawing
_draw
Updates the shape.
_drawDashedLine
xStart
yStart
xEnd
yEnd
Draws a dashed line between two points.
_getContentRect
w
h
x
y
Calculates the bounding box for the shape.
_getDefaultFill
Value function for fill attribute
Object
_getDefaultStroke
Value function for stroke attribute
Object
_initialize
Initializes the shape
_parsePathData
val
Parses path data string and call mapped methods.
val
String
The path data
_setFillProps
fill
Adds a fill to the shape node.
fill
Object
Properties of the fill
attribute.
_setGraphic
render
Set the Graphic instance for the shape.
render
Graphic | Node | HTMLElement | String
This param is used to determine the graphic instance. If it is a
Graphic
instance, it will be assigned to the graphic
attribute. Otherwise, a new Graphic instance will be created
and rendered into the dom element that the render represents.
_strokeAndFill
Reference
Completes a stroke and/or fill operation on the context.
Reference
Context
to the context element of the canvas instance.
_strokeChangeHandler
stroke
Adds a stroke to the shape node.
stroke
Object
Properties of the stroke
attribute.
_updateHandler
Updates Shape
based on attribute changes.
_updateTransform
Applies all transforms.
addClass
className
Add a class name to each node.
className
String
the class name to add to the node's class attribute
compareTo
refNode
Compares nodes to determine if they match. Node instances can be compared to each other and/or HTMLElements.
refNode
HTMLElement | Node
The reference node to compare to the node.
True if the nodes match, false if they do not.
contains
needle
Determines whether the node is an ancestor of another HTML element in the DOM hierarchy.
needle
CanvasShape | HTMLElement
The possible node or descendent
Boolean Whether or not this shape is the needle or its ancestor.
createNode
Creates the dom node for the shape.
HTMLElement
destroy
Destroys the shape instance.
destroy
Implementation for shape destruction
getBounds
Returns the bounds for a shape.
Calculates the a new bounding box from the original corner coordinates (base on size and position) and the transform matrix. The calculated bounding box is used by the graphic instance to calculate its viewBox.
Object
getXY
Gets the current position of the node in page coordinates.
Array The XY position of the shape.
init
Init method, invoked during construction.
Calls initializer
method.
on
type
callback
Overrides default on
method. Checks to see if its a dom interaction event. If so,
return an event attached to the node
element. If not, return the normal functionality.
removeClass
className
Removes a class name from each node.
className
String
the class name to remove from the node's class attribute
rotate
deg
Rotates the shape clockwise around it transformOrigin.
deg
Number
The degree of the rotation.
set
name
value
Sets the value of an attribute.
setXY
Contains
Set the position of the shape in page coordinates, regardless of how the node is positioned.
Contains
Array
X & Y values for new position (coordinates are page-based)
skew
x
y
Skews the shape around the x-axis and y-axis.
test
selector
Test if the supplied node matches the supplied selector.
selector
String
The CSS selector to test against.
Boolean Wheter or not the shape matches the selector.
toFront
Places the shape above all other shapes.
toFront
Places the shape underneath all other shapes.
translate
x
y
Specifies a 2d translation.
translateX
x
Translates the shape along the x-axis. When translating x and y coordinates,
use the translate
method.
x
Number
The value to translate.
translateY
y
Performs a translate on the y-coordinate. When translating x and y coordinates,
use the translate
method.
y
Number
The value to translate.
data
Represents an SVG Path string. This will be parsed and added to shape's API to represent the SVG data across all implementations. Note that when using VML or SVG implementations, part of this content will be added to the DOM using respective VML/SVG attributes. If your content comes from an untrusted source, you will need to ensure that no malicious code is included in that content.
fill
Contains information about the fill of the shape.
If a linear
or radial
is specified as the fill type. The following additional property is used:
Linear gradients also have the following property:
Radial gradients have the following additional properties:
The corresponding SVGShape
class implements the following additional properties.
The x-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.
Note: Currently, this property is not implemented for corresponding CanvasShape
and
VMLShape
classes which are used on Android or IE 6 - 8.
The y-coordinate of the center of the gradient circle. Determines where the color stop begins. The default value 0.5.
Note: Currently, this property is not implemented for corresponding CanvasShape
and VMLShape
classes which are used on Android or IE 6 - 8.
These properties are not currently implemented in CanvasShape
or VMLShape
.
stroke
Contains information about the stroke of the shape.
transform
A string containing, in order, transform operations applied to the shape instance. The transform
string can contain the following values:
Applying transforms through the transform attribute will reset the transform matrix and apply a new transform. The shape class also contains
corresponding methods for each transform that will apply the transform to the current matrix. The below code illustrates how you might use the
transform
attribute to instantiate a recangle with a rotation of 45 degrees.
The code below would apply translate
and rotate
to an existing shape.
myRect.set("transform", "translate(40, 50) rotate(45)");
transformOrigin
An array of x, y values which indicates the transformOrigin in which to rotate the shape. Valid values range between 0 and 1 representing a fraction of the shape's corresponding bounding box dimension. The default value is [0.5, 0.5].