new Object()
Root object class from which all 2d shape classes inherit from
- Source:
- Tutorials:
- See:
-
- fabric.Object#initialize for constructor definition
Fires:
- event:added
- event:removed
- event:selected
- event:deselected
- event:modified
- event:modified
- event:moved
- event:scaled
- event:rotated
- event:skewed
- event:rotating
- event:scaling
- event:moving
- event:skewing
- event:mousedown
- event:mouseup
- event:mouseover
- event:mouseout
- event:mousewheel
- event:mousedblclick
- event:dragover
- event:dragenter
- event:dragleave
- event:drop
Members
(static) __uid :Number
Unique id used internally when creating SVG elements
Type:
- Number
- Source:
(static, constant) ENLIVEN_PROPS :Array.<string>
Defines which properties should be enlivened from the object passed to fabric.Object._fromObject
Type:
- Array.<string>
- Source:
(static, constant) NUM_FRACTION_DIGITS :Number
Defines the number of fraction digits to use when serializing object values.
You can use it to increase/decrease precision of such values like left, top, scaleX, scaleY, etc.
Type:
- Number
- Source:
__corner :number|string|any
keeps the value of the last hovered corner during mouse move.
0 is no corner, or 'mt', 'ml', 'mtr' etc..
It should be private, but there is no harm in using it as
a read-only property.
Type:
- number | string | any
- Default Value:
- 0
- Source:
absolutePositioned :boolean
Meaningful ONLY when the object is used as clipPath.
if true, the clipPath will have its top and left relative to canvas, and will
not be influenced by the object transform. This will make the clipPath relative
to the canvas, but clipping just a particular object.
WARNING this is beta, this feature may change or be renamed.
since 2.4.0
Type:
- boolean
- Default Value:
- false
- Source:
aCoords
Describe object's corner position in canvas object absolute coordinates
properties are tl,tr,bl,br and describe the four main corner.
each property is an object with x, y, instance of Fabric.Point.
The coordinates depends from this properties: width, height, scaleX, scaleY
skewX, skewY, angle, strokeWidth, top, left.
Those coordinates are useful to understand where an object is. They get updated
with oCoords but they do not need to be updated when zoom or panning change.
The coordinates get updated with @method setCoords.
You can calculate them without updating with @method calcACoords();
- Source:
angle :Number
Angle of rotation of an object (in degrees)
Type:
- Number
- Source:
backgroundColor :String
Background color of an object.
takes css colors https://www.w3.org/TR/css-color-3/
Type:
- String
- Source:
borderColor :String
Color of controlling borders of an object (when it's active)
Type:
- String
- Default Value:
- rgb(178,204,255)
- Source:
borderDashArray :Array
Array specifying dash pattern of an object's borders (hasBorder must be true)
Type:
- Array
- Since:
- 1.6.2
- Source:
borderOpacityWhenMoving :Number
Opacity of object's controlling borders when object is active and moving
Type:
- Number
- Default Value:
- 0.4
- Source:
borderScaleFactor :Number
Scale factor of object's controlling borders
bigger number will make a thicker border
border is 1, so this is basically a border thickness
since there is no way to change the border itself.
Type:
- Number
- Default Value:
- 1
- Source:
cacheProperties :Array
List of properties to consider when checking if cache needs refresh
Those properties are checked by statefullCache ON ( or lazy mode if we want ) or from single
calls to Object.set(key, value). If the key is in this list, the object is marked as dirty
and refreshed at the next render
Type:
- Array
- Source:
centeredRotation :Boolean
When true, this object will use center point as the origin of transformation
when being rotated via the controls.
Backwards incompatibility note: This property replaces "centerTransform" (Boolean).
Type:
- Boolean
- Since:
- 1.3.4
- Default Value:
- true
- Source:
centeredScaling :Boolean
When true, this object will use center point as the origin of transformation
when being scaled via the controls.
Backwards incompatibility note: This property replaces "centerTransform" (Boolean).
Type:
- Boolean
- Since:
- 1.3.4
- Source:
clipPath :fabric.Object
a fabricObject that, without stroke define a clipping area with their shape. filled in black
the clipPath object gets used when the object has rendered, and the context is placed in the center
of the object cacheCanvas.
If you want 0,0 of a clipPath to align with an object center, use clipPath.originX/Y to 'center'
Type:
- Source:
colorProperties :Array
List of properties to consider for animating colors.
Type:
- Array
- Source:
controls
custom controls interface
controls are added by default_controls.js
- Source:
cornerColor :String
Color of controlling corners of an object (when it's active)
Type:
- String
- Default Value:
- rgb(178,204,255)
- Source:
cornerDashArray :Array
Array specifying dash pattern of an object's control (hasBorder must be true)
Type:
- Array
- Since:
- 1.6.2
- Source:
cornerSize :Number
Size of object's controlling corners (in pixels)
Type:
- Number
- Default Value:
- 13
- Source:
cornerStrokeColor :String
Color of controlling corners of an object (when it's active and transparentCorners false)
Type:
- String
- Since:
- 1.6.2
- Source:
cornerStyle :String
Specify style of control, 'rect' or 'circle'
Type:
- String
- Since:
- 1.6.2
- Source:
dirty :Boolean
When set to `true`, object's cache will be rerendered next render call.
since 1.7.0
Type:
- Boolean
- Default Value:
- true
- Source:
evented :Boolean
When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4
Type:
- Boolean
- Default Value:
- true
- Source:
excludeFromExport :Boolean
When `true`, object is not exported in OBJECT/JSON
Type:
- Boolean
- Since:
- 1.6.3
- Source:
fill :String
Color of object's fill
takes css colors https://www.w3.org/TR/css-color-3/
Type:
- String
- Default Value:
- rgb(0,0,0)
- Source:
fillRule :String
Fill rule used to fill an object
accepted values are nonzero, evenodd
Backwards incompatibility note: This property was used for setting globalCompositeOperation until v1.4.12 (use `fabric.Object#globalCompositeOperation` instead)
Type:
- String
- Default Value:
- nonzero
- Source:
flipX :Boolean
When true, an object is rendered as flipped horizontally
Type:
- Boolean
- Source:
flipY :Boolean
When true, an object is rendered as flipped vertically
Type:
- Boolean
- Source:
globalCompositeOperation :String
Composite rule used for canvas globalCompositeOperation
Type:
- String
- Default Value:
- source-over
- Source:
hasBorders :Boolean
When set to `false`, object's controlling borders are not rendered
Type:
- Boolean
- Default Value:
- true
- Source:
hasControls :Boolean
When set to `false`, object's controls are not displayed and can not be used to manipulate object
Type:
- Boolean
- Default Value:
- true
- Source:
height :Number
Object height
Type:
- Number
- Source:
hoverCursor :String
Default cursor value used when hovering over this object on canvas
Type:
- String
- Source:
includeDefaultValues :Boolean
When `false`, default object's values are not included in its serialization
Type:
- Boolean
- Default Value:
- true
- Source:
inverted :boolean
Meaningful ONLY when the object is used as clipPath.
if true, the clipPath will make the object clip to the outside of the clipPath
since 2.4.0
Type:
- boolean
- Default Value:
- false
- Source:
left :Number
Left position of an object. Note that by default it's relative to object left. You can change this by setting originX={left/center/right}
Type:
- Number
- Source:
lineCoords
Describe object's corner position in canvas element coordinates.
includes padding. Used of object detection.
set and refreshed with setCoords.
- Source:
lockMovementX :Boolean
When `true`, object horizontal movement is locked
Type:
- Boolean
- Source:
lockMovementY :Boolean
When `true`, object vertical movement is locked
Type:
- Boolean
- Source:
lockRotation :Boolean
When `true`, object rotation is locked
Type:
- Boolean
- Source:
lockScalingFlip :Boolean
When `true`, object cannot be flipped by scaling into negative values
Type:
- Boolean
- Source:
lockScalingX :Boolean
When `true`, object horizontal scaling is locked
Type:
- Boolean
- Source:
lockScalingY :Boolean
When `true`, object vertical scaling is locked
Type:
- Boolean
- Source:
lockSkewingX :Boolean
When `true`, object horizontal skewing is locked
Type:
- Boolean
- Source:
lockSkewingY :Boolean
When `true`, object vertical skewing is locked
Type:
- Boolean
- Source:
matrixCache
storage for object full transform matrix
- Source:
minScaleLimit :Number
Minimum allowed scale value of an object
Type:
- Number
- Source:
moveCursor :String
Default cursor value used when moving this object on canvas
Type:
- String
- Source:
noScaleCache :Boolean
When `true`, cache does not get updated during scaling. The picture will get blocky if scaled
too much and will be redrawn with correct details at the end of scaling.
this setting is performance and application dependant.
default to true
since 1.7.0
Type:
- Boolean
- Default Value:
- true
- Source:
objectCaching :Boolean
When `true`, object is cached on an additional canvas.
When `false`, object is not cached unless necessary ( clipPath )
default to true
Type:
- Boolean
- Since:
- 1.7.0
- Default Value:
- true
- Source:
oCoords
Describe object's corner position in canvas element coordinates.
properties are depending on control keys and padding the main controls.
each property is an object with x, y and corner.
The `corner` property contains in a similar manner the 4 points of the
interactive area of the corner.
The coordinates depends from the controls positionHandler and are used
to draw and locate controls
- Source:
opacity :Number
Opacity of an object
Type:
- Number
- Default Value:
- 1
- Source:
originX :String
Horizontal origin of transformation of an object (one of "left", "right", "center")
See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups
Type:
- String
- Default Value:
- left
- Source:
originY :String
Vertical origin of transformation of an object (one of "top", "bottom", "center")
See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups
Type:
- String
- Default Value:
- top
- Source:
ownMatrixCache
storage for object transform matrix
- Source:
padding :Number
Padding between object and its controlling borders (in pixels)
Type:
- Number
- Source:
paintFirst :String
Determines if the fill or the stroke is drawn first (one of "fill" or "stroke")
Type:
- String
- Default Value:
- fill
- Source:
perPixelTargetFind :Boolean
When set to `true`, objects are "found" on canvas on per-pixel basis rather than according to bounding box
Type:
- Boolean
- Source:
scaleX :Number
Object scale factor (horizontal)
Type:
- Number
- Default Value:
- 1
- Source:
scaleY :Number
Object scale factor (vertical)
Type:
- Number
- Default Value:
- 1
- Source:
selectable :Boolean
When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection).
But events still fire on it.
Type:
- Boolean
- Default Value:
- true
- Source:
selectionBackgroundColor :String
Selection Background color of an object. colored layer behind the object when it is active.
does not mix good with globalCompositeOperation methods.
Type:
- String
- Source:
shadow :fabric.Shadow
Shadow object representing shadow of this shape
Type:
- Source:
skewX :Number
Angle of skew on x axes of an object (in degrees)
Type:
- Number
- Source:
skewY :Number
Angle of skew on y axes of an object (in degrees)
Type:
- Number
- Source:
statefullCache :Boolean
When `true`, object properties are checked for cache invalidation. In some particular
situation you may want this to be disabled ( spray brush, very big, groups)
or if your application does not allow you to modify properties for groups child you want
to disable it for groups.
default to false
since 1.7.0
Type:
- Boolean
- Default Value:
- false
- Source:
stateProperties :Array
List of properties to consider when checking if state
of an object is changed (fabric.Object#hasStateChanged)
as well as for history (undo/redo) purposes
Type:
- Array
- Source:
stroke :String
When defined, an object is rendered via stroke and this property specifies its color
takes css colors https://www.w3.org/TR/css-color-3/
Type:
- String
- Source:
strokeDashArray :Array
Array specifying dash pattern of an object's stroke (stroke must be defined)
Type:
- Array
- Source:
strokeDashOffset :Number
Line offset of an object's stroke
Type:
- Number
- Source:
strokeLineCap :String
Line endings style of an object's stroke (one of "butt", "round", "square")
Type:
- String
- Default Value:
- butt
- Source:
strokeLineJoin :String
Corner style of an object's stroke (one of "bevel", "round", "miter")
Type:
- String
- Default Value:
- miter
- Source:
strokeMiterLimit :Number
Maximum miter length (used for strokeLineJoin = "miter") of an object's stroke
Type:
- Number
- Default Value:
- 4
- Source:
strokeUniform :Boolean
When `false`, the stoke width will scale with the object.
When `true`, the stroke will always match the exact pixel size entered for stroke width.
this Property does not work on Text classes or drawing call that uses strokeText,fillText methods
default to false
Type:
- Boolean
- Since:
- 2.6.0
- Default Value:
- false
- Source:
strokeWidth :Number
Width of a stroke used to render this object
Type:
- Number
- Default Value:
- 1
- Source:
top :Number
Top position of an object. Note that by default it's relative to object top. You can change this by setting originY={top/center/bottom}
Type:
- Number
- Source:
touchCornerSize :Number
Size of object's controlling corners when touch interaction is detected
Type:
- Number
- Default Value:
- 24
- Source:
transparentCorners :Boolean
When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)
Type:
- Boolean
- Default Value:
- true
- Source:
type :String
Type of an object (rect, circle, path, etc.).
Note that this property is meant to be read-only and not meant to be modified.
If you modify, certain parts of Fabric (such as JSON loading) won't work correctly.
Type:
- String
- Default Value:
- object
- Source:
visible :Boolean
When set to `false`, an object is not rendered on canvas
Type:
- Boolean
- Default Value:
- true
- Source:
width :Number
Object width
Type:
- Number
- Source:
Methods
_calcRotateMatrix() → {Array}
calculate rotation matrix of an object
- Source:
Returns:
rotation matrix for the object
- Type
- Array
_calcTranslateMatrix() → {Array}
calculate the translation matrix for an object transform
- Source:
Returns:
rotation matrix for the object
- Type
- Array
_drawClipPath(ctx, clipPath)
Prepare clipPath state and cache and draw it on instance's cache
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | |
clipPath |
fabric.Object |
- Source:
_getCoords(absolute) → {Object}
return correct set of coordinates for intersection
this will return either aCoords or lineCoords.
Parameters:
Name | Type | Description |
---|---|---|
absolute |
Boolean | will return aCoords if true or lineCoords |
- Source:
Returns:
{tl, tr, br, bl} points
- Type
- Object
_limitCacheSize(dims) → {Object|Object|Object|Object}
Limit the cache dimensions so that X * Y do not cross fabric.perfLimitSizeTotal
and each side do not cross fabric.cacheSideLimit
those numbers are configurable so that you can get as much detail as you want
making bargain with performances.
Parameters:
Name | Type | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
dims |
Object |
Properties
|
- Source:
Returns:
-
.width width of canvas
- Type
- Object
-
.height height of canvas
- Type
- Object
-
.zoomX zoomX zoom value to unscale the canvas before drawing cache
- Type
- Object
-
.zoomY zoomY zoom value to unscale the canvas before drawing cache
- Type
- Object
_removeCacheCanvas()
Remove cacheCanvas and its dimensions from the objects
- Source:
_renderControls(ctx, styleOverrideopt)
Renders controls and borders for the object
the context here is not transformed
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
ctx |
CanvasRenderingContext2D | Context to render on | |
styleOverride |
Object |
<optional> |
properties to override the object style |
- Source:
_setupCompositeOperation(ctx)
Sets canvas globalCompositeOperation for specific object
custom composition operation for the particular object can be specified using globalCompositeOperation property
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Rendering canvas context |
- Source:
adjustPosition(to)
Parameters:
Name | Type | Description |
---|---|---|
to |
String | One of 'left', 'center', 'right' |
- Source:
animate(property, value) → {fabric.Object|fabric.AnimationContext|Array.<fabric.AnimationContext>}
Animates object's properties
Parameters:
Name | Type | Description |
---|---|---|
property |
String | Object | Property to animate (if string) or properties to animate (if object) |
value |
Number | Object | Value to animate property to (if string was given first) or options object |
- Source:
- Tutorials:
Returns:
-
thisArg
- Type
- fabric.Object
-
animation context (or an array if passed multiple properties) As object — multiple properties object.animate({ left: ..., top: ... }); object.animate({ left: ..., top: ... }, { duration: ... }); As string — one property object.animate('left', ...); object.animate('left', { duration: ... });
- Type
- fabric.AnimationContext | Array.<fabric.AnimationContext>
bringForward(intersectingopt) → {fabric.Object}
Moves an object up in stack of drawn objects
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
intersecting |
Boolean |
<optional> |
If `true`, send object in front of next upper intersecting object |
- Source:
Returns:
thisArg
- Type
- fabric.Object
bringToFront() → {fabric.Object}
Moves an object to the top of the stack of drawn objects
- Source:
Returns:
thisArg
- Type
- fabric.Object
calcOwnMatrix() → {Array}
calculate transform matrix that represents the current transformations from the
object's properties, this matrix does not include the group transformation
- Source:
Returns:
transform matrix for the object
- Type
- Array
calcTransformMatrix(skipGroupopt) → {Array}
calculate transform matrix that represents the current transformations from the
object's properties.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
skipGroup |
Boolean |
<optional> |
return transform matrix for object not counting parent transformations There are some situation in which this is useful to avoid the fake rotation. |
- Source:
Returns:
transform matrix for the object
- Type
- Array
center() → {fabric.Object}
Centers object vertically and horizontally on canvas to which is was added last
You might need to call `setCoords` on an object after centering, to update controls area.
- Source:
Returns:
thisArg
- Type
- fabric.Object
centerH() → {fabric.Object}
Centers object horizontally on canvas to which it was added last.
You might need to call `setCoords` on an object after centering, to update controls area.
- Source:
Returns:
thisArg
- Type
- fabric.Object
centerV() → {fabric.Object}
Centers object vertically on canvas to which it was added last.
You might need to call `setCoords` on an object after centering, to update controls area.
- Source:
Returns:
thisArg
- Type
- fabric.Object
clone(callback, propertiesToIncludeopt)
Clones an instance, using a callback method will work for every object.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
function | Callback is invoked with a clone as a first argument | |
propertiesToInclude |
Array |
<optional> |
Any properties that you might want to additionally include in the output |
- Source:
cloneAsImage(callback, optionsopt) → {fabric.Object}
Creates an instance of fabric.Image out of an object
makes use of toCanvasElement.
Once this method was based on toDataUrl and loadImage, so it also had a quality
and format option. toCanvasElement is faster and produce no loss of quality.
If you need to get a real Jpeg or Png from an object, using toDataURL is the right way to do it.
toCanvasElement and then toBlob from the obtained canvas is also a good option.
This method is sync now, but still support the callback because we did not want to break.
When fabricJS 5.0 will be planned, this will probably be changed to not have a callback.
Parameters:
Name | Type | Attributes | Description | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
callback |
function | callback, invoked with an instance as a first argument | ||||||||||||||||||||||||||||||||||||||||||||||
options |
Object |
<optional> |
for clone as image, passed to toDataURL
Properties
|
- Source:
Returns:
thisArg
- Type
- fabric.Object
complexity() → {Number}
Returns complexity of an instance
- Source:
Returns:
complexity of this instance (is 1 unless subclassed)
- Type
- Number
containsPoint(point, linesopt, absoluteopt, calculateopt) → {Boolean}
Checks if point is inside the object
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
point |
fabric.Point | Point to check against | |
lines |
Object |
<optional> |
object returned from @method _getImageLines |
absolute |
Boolean |
<optional> |
use coordinates without viewportTransform |
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .oCoords |
- Source:
Returns:
true if point is inside the object
- Type
- Boolean
dispose()
cancel instance's running animations
- Source:
drawBorders(ctx, styleOverride) → {fabric.Object}
Draws borders of an object's bounding box.
Requires public properties: width, height
Requires public options: padding, borderColor
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to draw on |
styleOverride |
Object | object to override the object style |
- Source:
Returns:
thisArg
- Type
- fabric.Object
drawBordersInGroup(ctx, options, styleOverride) → {fabric.Object}
Draws borders of an object's bounding box when it is inside a group.
Requires public properties: width, height
Requires public options: padding, borderColor
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to draw on |
options |
object | object representing current object parameters |
styleOverride |
Object | object to override the object style |
- Source:
Returns:
thisArg
- Type
- fabric.Object
drawCacheOnCanvas(ctx)
Paint the cached copy of the object on the target context.
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to render on |
- Source:
drawClipPathOnCache(ctx, clipPath)
Execute the drawing operation for an object clipPath
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to render on |
clipPath |
fabric.Object |
- Source:
drawControls(ctx, styleOverride) → {fabric.Object}
Draws corners of an object's bounding box.
Requires public properties: width, height
Requires public options: cornerSize, padding
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to draw on |
styleOverride |
Object | object to override the object style |
- Source:
Returns:
thisArg
- Type
- fabric.Object
drawObject(ctx)
Execute the drawing operation for an object on a specified context
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to render on |
- Source:
drawSelectionBackground(ctx) → {fabric.Object}
Draws a colored layer behind the object, inside its selection borders.
Requires public options: padding, selectionBackgroundColor
this function is called when the context is transformed
has checks to be skipped when the object is on a staticCanvas
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to draw on |
- Source:
Returns:
thisArg
- Type
- fabric.Object
forEachControl(fn)
Calls a function for each control. The function gets called,
with the control, the object that is calling the iterator and the control's key
Parameters:
Name | Type | Description |
---|---|---|
fn |
function | function to iterate over the controls over |
- Source:
fxStraighten(callbacks) → {fabric.Object}
Same as fabric.Object.prototype.straighten but with animation
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
callbacks |
Object | Object with callback functions
Properties
|
- Source:
Returns:
thisArg
- Type
- fabric.Object
getBoundingRect(absoluteopt, calculateopt) → {Object}
Returns coordinates of object's bounding rectangle (left, top, width, height)
the box is intended as aligned to axis of canvas.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
absolute |
Boolean |
<optional> |
use coordinates without viewportTransform |
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .oCoords / .aCoords |
- Source:
Returns:
Object with left, top, width, height properties
- Type
- Object
getCenterPoint() → {fabric.Point}
Returns the real center coordinates of the object
- Source:
Returns:
- Type
- fabric.Point
getCoords() → {Array}
return correct set of coordinates for intersection
this will return either aCoords or lineCoords.
The coords are returned in an array.
- Source:
Returns:
[tl, tr, br, bl] of points
- Type
- Array
getLocalPointer(e, pointeropt) → {Object}
Returns coordinates of a pointer relative to an object
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
e |
Event | Event to operate upon | |
pointer |
Object |
<optional> |
Pointer to operate upon (instead of event) |
- Source:
Returns:
Coordinates of a pointer (x, y)
- Type
- Object
getObjectOpacity() → {Number}
Return the object opacity counting also the group property
- Source:
Returns:
- Type
- Number
getObjectScaling() → {Object}
Return the object scale factor counting also the group scaling
- Source:
Returns:
object with scaleX and scaleY properties
- Type
- Object
getPointByOrigin(originX, originY) → {fabric.Point}
Returns the coordinates of the object as if it has a different origin
Parameters:
Name | Type | Description |
---|---|---|
originX |
String | Horizontal origin: 'left', 'center' or 'right' |
originY |
String | Vertical origin: 'top', 'center' or 'bottom' |
- Source:
Returns:
- Type
- fabric.Point
getScaledHeight() → {Number}
Returns height of an object bounding box counting transformations
before 2.0 it was named getHeight();
- Source:
Returns:
height value
- Type
- Number
getScaledWidth() → {Number}
Returns width of an object's bounding box counting transformations
before 2.0 it was named getWidth();
- Source:
Returns:
width value
- Type
- Number
getSvgCommons() → {String}
Returns id attribute for svg output
- Source:
Returns:
- Type
- String
getSvgFilter() → {String}
Returns filter for svg shadow
- Source:
Returns:
- Type
- String
getSvgSpanStyles(style, useWhiteSpace) → {String}
Returns styles-string for svg-export
Parameters:
Name | Type | Description |
---|---|---|
style |
Object | the object from which to retrieve style properties |
useWhiteSpace |
Boolean | a boolean to include an additional attribute in the style. |
- Source:
Returns:
- Type
- String
getSvgStyles(skipShadow) → {String}
Returns styles-string for svg-export
Parameters:
Name | Type | Description |
---|---|---|
skipShadow |
Boolean | a boolean to skip shadow filter output |
- Source:
Returns:
- Type
- String
getSvgTextDecoration(style) → {String}
Returns text-decoration property for svg-export
Parameters:
Name | Type | Description |
---|---|---|
style |
Object | the object from which to retrieve style properties |
- Source:
Returns:
- Type
- String
getSvgTransform(use) → {String}
Returns transform-string for svg-export
Parameters:
Name | Type | Description |
---|---|---|
use |
Boolean | the full transform or the single object one. |
- Source:
Returns:
- Type
- String
getTotalObjectScaling() → {Object}
Return the object scale factor counting also the group scaling, zoom and retina
- Source:
Returns:
object with scaleX and scaleY properties
- Type
- Object
getViewportTransform() → {Array}
Retrieves viewportTransform from Object's canvas if possible
- Source:
Returns:
- Type
- Array
hasFill()
return true if the object will draw a fill
Does not consider text styles. This is just a shortcut used at rendering time
We want it to be an approximation and be fast.
wrote to avoid extra caching, it has to return true when fill happens,
can guess when it will not happen at 100% chance, does not matter if it misses
some use case where the fill is invisible.
- Since:
- 3.0.0
- Source:
Returns:
Boolean
hasStateChanged(propertySetopt) → {Boolean}
Returns true if object state (one of its state properties) was changed
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
propertySet |
String |
<optional> |
optional name for the set of property we want to save |
- Source:
Returns:
true if instance' state has changed since `fabric.Object#saveState` was called
- Type
- Boolean
hasStroke()
return true if the object will draw a stroke
Does not consider text styles. This is just a shortcut used at rendering time
We want it to be an approximation and be fast.
wrote to avoid extra caching, it has to return true when stroke happens,
can guess when it will not happen at 100% chance, does not matter if it misses
some use case where the stroke is invisible.
- Since:
- 3.0.0
- Source:
Returns:
Boolean
initialize(optionsopt)
Constructor
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
Object |
<optional> |
Options object |
- Source:
intersectsWithObject(other, absoluteopt, calculateopt) → {Boolean}
Checks if object intersects with another object
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
other |
Object | Object to test | |
absolute |
Boolean |
<optional> |
use coordinates without viewportTransform |
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .oCoords |
- Source:
Returns:
true if object intersects with another object
- Type
- Boolean
intersectsWithRect(pointTL, pointBR, absoluteopt, calculateopt) → {Boolean}
Checks if object intersects with an area formed by 2 points
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
pointTL |
Object | top-left point of area | |
pointBR |
Object | bottom-right point of area | |
absolute |
Boolean |
<optional> |
use coordinates without viewportTransform |
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .oCoords |
- Source:
Returns:
true if object intersects with an area formed by 2 points
- Type
- Boolean
isCacheDirty(skipCanvas)
Check if cache is dirty
Parameters:
Name | Type | Description |
---|---|---|
skipCanvas |
Boolean | skip canvas checks because this object is painted on parent canvas. |
- Source:
isContainedWithinObject(other, absoluteopt, calculateopt) → {Boolean}
Checks if object is fully contained within area of another object
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
other |
Object | Object to test | |
absolute |
Boolean |
<optional> |
use coordinates without viewportTransform |
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .oCoords |
- Source:
Returns:
true if object is fully contained within area of another object
- Type
- Boolean
isContainedWithinRect(pointTL, pointBR, absoluteopt, calculateopt) → {Boolean}
Checks if object is fully contained within area formed by 2 points
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
pointTL |
Object | top-left point of area | |
pointBR |
Object | bottom-right point of area | |
absolute |
Boolean |
<optional> |
use coordinates without viewportTransform |
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .oCoords |
- Source:
Returns:
true if object is fully contained within area formed by 2 points
- Type
- Boolean
isControlVisible(controlKey) → {Boolean}
Returns true if the specified control is visible, false otherwise.
Parameters:
Name | Type | Description |
---|---|---|
controlKey |
String | The key of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'. |
- Source:
Returns:
true if the specified control is visible, false otherwise
- Type
- Boolean
isOnScreen(calculateopt) → {Boolean}
Checks if object is contained within the canvas with current viewportTransform
the check is done stopping at first point that appears on screen
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .aCoords |
- Source:
Returns:
true if object is fully or partially contained within canvas
- Type
- Boolean
isPartiallyOnScreen(calculateopt) → {Boolean}
Checks if object is partially contained within the canvas with current viewportTransform
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
calculate |
Boolean |
<optional> |
use coordinates of current position instead of .oCoords |
- Source:
Returns:
true if object is partially contained within canvas
- Type
- Boolean
isType(type) → {Boolean}
Returns true if specified type is identical to the type of an instance
Parameters:
Name | Type | Description |
---|---|---|
type |
String | Type to check against |
- Source:
Returns:
- Type
- Boolean
moveTo(index) → {fabric.Object}
Moves an object to specified level in stack of drawn objects
Parameters:
Name | Type | Description |
---|---|---|
index |
Number | New position of object |
- Source:
Returns:
thisArg
- Type
- fabric.Object
needsItsOwnCache()
When set to `true`, force the object to have its own cache, even if it is inside a group
it may be needed when your object behave in a particular way on the cache and always needs
its own isolated canvas to render correctly.
Created to be overridden
since 1.7.12
- Source:
Returns:
Boolean
onDeselect(optionsopt)
This callback function is called every time _discardActiveObject or _setActiveObject
try to to deselect this object. If the function returns true, the process is cancelled
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
<optional> |
options sent from the upper functions
Properties
|
- Source:
onSelect(optionsopt)
This callback function is called every time _discardActiveObject or _setActiveObject
try to to select this object. If the function returns true, the process is cancelled
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
<optional> |
options sent from the upper functions
Properties
|
- Source:
render(ctx)
Renders an object on a specified context
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context to render on |
- Source:
rotate(angle) → {fabric.Object}
Sets "angle" of an instance with centered rotation
Parameters:
Name | Type | Description |
---|---|---|
angle |
Number | Angle value (in degrees) |
- Source:
Returns:
thisArg
- Type
- fabric.Object
saveState(optionsopt) → {fabric.Object}
Saves state of an object
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
Object |
<optional> |
Object with additional `stateProperties` array to include when saving state |
- Source:
Returns:
thisArg
- Type
- fabric.Object
scale(value) → {fabric.Object}
Scales an object (equally by x and y)
Parameters:
Name | Type | Description |
---|---|---|
value |
Number | Scale factor |
- Source:
Returns:
thisArg
- Type
- fabric.Object
scaleToHeight(value, absolute) → {fabric.Object}
Scales an object to a given height, with respect to bounding box (scaling by x/y equally)
Parameters:
Name | Type | Description |
---|---|---|
value |
Number | New height value |
absolute |
Boolean | ignore viewport |
- Source:
Returns:
thisArg
- Type
- fabric.Object
scaleToWidth(value, absolute) → {fabric.Object}
Scales an object to a given width, with respect to bounding box (scaling by x/y equally)
Parameters:
Name | Type | Description |
---|---|---|
value |
Number | New width value |
absolute |
Boolean | ignore viewport |
- Source:
Returns:
thisArg
- Type
- fabric.Object
sendBackwards(intersectingopt) → {fabric.Object}
Moves an object down in stack of drawn objects
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
intersecting |
Boolean |
<optional> |
If `true`, send object behind next lower intersecting object |
- Source:
Returns:
thisArg
- Type
- fabric.Object
sendToBack() → {fabric.Object}
Moves an object to the bottom of the stack of drawn objects
- Source:
Returns:
thisArg
- Type
- fabric.Object
setControlsVisibility(optionsopt) → {fabric.Object}
Sets the visibility state of object controls.
Parameters:
Name | Type | Attributes | Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
<optional> |
Options object
Properties
|
- Source:
Returns:
thisArg
- Type
- fabric.Object
setControlVisible(controlKey, visible) → {fabric.Object}
Sets the visibility of the specified control.
Parameters:
Name | Type | Description |
---|---|---|
controlKey |
String | The key of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'. |
visible |
Boolean | true to set the specified control visible, false otherwise |
- Source:
Returns:
thisArg
- Type
- fabric.Object
setCoords(skipCornersopt) → {fabric.Object}
Sets corner and controls position coordinates based on current angle, width and height, left and top.
oCoords are used to find the corners
aCoords are used to quickly find an object on the canvas
lineCoords are used to quickly find object during pointer events.
See https://github.com/fabricjs/fabric.js/wiki/When-to-call-setCoords and http://fabric5.fabricjs.com/fabric-gotchas
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
skipCorners |
Boolean |
<optional> |
skip calculation of oCoords. |
- Source:
Returns:
thisArg
- Type
- fabric.Object
setOnGroup()
This callback function is called by the parent group of an object every
time a non-delegated property changes on the group. It is passed the key
and value as parameters. Not adding in this function's signature to avoid
Travis build error about unused variables.
- Source:
setOptions(optionsopt)
Sets object's properties from options
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
Object |
<optional> |
Options object |
- Source:
setPositionByOrigin(pos, originX, originY) → {void}
Sets the position of the object taking into consideration the object's origin
Parameters:
Name | Type | Description |
---|---|---|
pos |
fabric.Point | The new position of the object |
originX |
String | Horizontal origin: 'left', 'center' or 'right' |
originY |
String | Vertical origin: 'top', 'center' or 'bottom' |
- Source:
Returns:
- Type
- void
setupState(optionsopt) → {fabric.Object}
Setups state of an object
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
Object |
<optional> |
Object with additional `stateProperties` array to include when saving state |
- Source:
Returns:
thisArg
- Type
- fabric.Object
shouldCache() → {Boolean}
Decide if the object should cache or not. Create its own cache level
objectCaching is a global flag, wins over everything
needsItsOwnCache should be used when the object drawing method requires
a cache step. None of the fabric classes requires it.
Generally you do not cache objects in groups because the group outside is cached.
Read as: cache if is needed, or if the feature is enabled but we are not already caching.
- Source:
Returns:
- Type
- Boolean
straighten() → {fabric.Object}
Straightens an object (rotating it from current angle to one of 0, 90, 180, 270, etc. depending on which is closer)
- Source:
Returns:
thisArg
- Type
- fabric.Object
toCanvasElement(options) → {HTMLCanvasElement}
Converts an object into a HTMLCanvas element
Parameters:
Name | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object | Options object
Properties
|
- Source:
Returns:
Returns DOM element
- Type
- HTMLCanvasElement
toClipPathSVG(reviveropt) → {String}
Returns svg clipPath representation of an instance
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
reviver |
function |
<optional> |
Method for further parsing of svg representation. |
- Source:
Returns:
svg representation of an instance
- Type
- String
toDatalessObject(propertiesToIncludeopt) → {Object}
Returns (dataless) object representation of an instance
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
propertiesToInclude |
Array |
<optional> |
Any properties that you might want to additionally include in the output |
- Source:
Returns:
Object representation of an instance
- Type
- Object
toDataURL(options) → {String}
Converts an object into a data-url-like string
Parameters:
Name | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object | Options object
Properties
|
- Source:
Returns:
Returns a data: URL containing a representation of the object in the format specified by options.format
- Type
- String
toJSON(propertiesToIncludeopt) → {Object}
Returns a JSON representation of an instance
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
propertiesToInclude |
Array |
<optional> |
Any properties that you might want to additionally include in the output |
- Source:
Returns:
JSON
- Type
- Object
toLocalPoint(point, originX, originY) → {fabric.Point}
Returns the point in local coordinates
Parameters:
Name | Type | Description |
---|---|---|
point |
fabric.Point | The point relative to the global coordinate system |
originX |
String | Horizontal origin: 'left', 'center' or 'right' |
originY |
String | Vertical origin: 'top', 'center' or 'bottom' |
- Source:
Returns:
- Type
- fabric.Point
toObject(propertiesToIncludeopt) → {Object}
Returns an object representation of an instance
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
propertiesToInclude |
Array |
<optional> |
Any properties that you might want to additionally include in the output |
- Source:
Returns:
Object representation of an instance
- Type
- Object
toString() → {String}
Returns a string representation of an instance
- Source:
Returns:
- Type
- String
toSVG(reviveropt) → {String}
Returns svg representation of an instance
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
reviver |
function |
<optional> |
Method for further parsing of svg representation. |
- Source:
Returns:
svg representation of an instance
- Type
- String
transform(ctx)
Transforms context when rendering an object
Parameters:
Name | Type | Description |
---|---|---|
ctx |
CanvasRenderingContext2D | Context |
- Source:
translateToCenterPoint(point, originX, originY) → {fabric.Point}
Translates the coordinates from origin to center coordinates (based on the object's dimensions)
Parameters:
Name | Type | Description |
---|---|---|
point |
fabric.Point | The point which corresponds to the originX and originY params |
originX |
String | Horizontal origin: 'left', 'center' or 'right' |
originY |
String | Vertical origin: 'top', 'center' or 'bottom' |
- Source:
Returns:
- Type
- fabric.Point
translateToGivenOrigin(point, fromOriginX, fromOriginY, toOriginX, toOriginY) → {fabric.Point}
Translates the coordinates from a set of origin to another (based on the object's dimensions)
Parameters:
Name | Type | Description |
---|---|---|
point |
fabric.Point | The point which corresponds to the originX and originY params |
fromOriginX |
String | Horizontal origin: 'left', 'center' or 'right' |
fromOriginY |
String | Vertical origin: 'top', 'center' or 'bottom' |
toOriginX |
String | Horizontal origin: 'left', 'center' or 'right' |
toOriginY |
String | Vertical origin: 'top', 'center' or 'bottom' |
- Source:
Returns:
- Type
- fabric.Point
translateToOriginPoint(center, originX, originY) → {fabric.Point}
Translates the coordinates from center to origin coordinates (based on the object's dimensions)
Parameters:
Name | Type | Description |
---|---|---|
center |
fabric.Point | The point which corresponds to center of the object |
originX |
String | Horizontal origin: 'left', 'center' or 'right' |
originY |
String | Vertical origin: 'top', 'center' or 'bottom' |
- Source:
Returns:
- Type
- fabric.Point
viewportCenter() → {fabric.Object}
Centers object on current viewport of canvas to which it was added last.
You might need to call `setCoords` on an object after centering, to update controls area.
- Source:
Returns:
thisArg
- Type
- fabric.Object
viewportCenterH() → {fabric.Object}
Centers object horizontally on current viewport of canvas to which it was added last.
You might need to call `setCoords` on an object after centering, to update controls area.
- Source:
Returns:
thisArg
- Type
- fabric.Object
viewportCenterV() → {fabric.Object}
Centers object vertically on current viewport of canvas to which it was added last.
You might need to call `setCoords` on an object after centering, to update controls area.
- Source:
Returns:
thisArg
- Type
- fabric.Object
willDrawShadow() → {Boolean}
Check if this object or a child object will cast a shadow
used by Group.shouldCache to know if child has a shadow recursively
- Source:
Returns:
- Type
- Boolean