#

API Docs for: 3.10.3
Show: Inherited Protected Private Deprecated

# VMLGraphic Class

Defined in: `graphics/js/VMLGraphic.js:1`
Module: graphics

VML implementation of the `Graphic` class. `VMLGraphic` is not intended to be used directly. Instead, use the `Graphic` class. If the browser lacks SVG and Canvas capabilities, the `Graphic` class will point to the `VMLGraphic` class.

- Index
- Methods
- Properties
- Attributes

## Item Index

### Methods

- _appendShape
- _calculateCoordOrigin
- _createGraphic
- _createGraphicNode
- _getDocFrag
- _getShapeClass
- _getUpdatedContentBounds
- _redraw
- _removeChildren
- _toBack
- _toFront
- _toggleVisible
- addShape
- addToRedrawQueue
- batch
- clear
- destroy
- getShapeById
- getXY
- initializer
- removeAllShapes
- removeShape
- render
- set
- setPosition
- setSize

### Properties

- _shapeClass
- _x
- _y

### Attributes

- autoDraw
- autoSize
- contentBounds
- height
- id
- node
- preserveAspectRatio
- render
- resizeDown
- shapes
- width
- x
- y

## Methods

### `_appendShape`

(

- `shape`

)
private

Defined in `graphics/js/VMLGraphic.js:427`

Adds a shape instance to the graphic instance.

#### Parameters:

- `shape` Shape

  The shape instance to be added to the graphic.

### `_calculateCoordOrigin`

(

- `position`
- `size`
- `coordsSize`

)
private

Defined in `graphics/js/VMLGraphic.js:824`

Determines the value for either an x or y coordinate to be used for the `coordOrigin` of the Graphic.

#### Parameters:

- `position` String

  The position for placement. Possible values are min, mid and max.

- `size` Number

  The total scaled size of the content.

- `coordsSize` Number

  The coordsSize for the Graphic.

#### Returns:

Number

### `_createGraphic`

() private

Defined in `graphics/js/VMLGraphic.js:586`

Creates a group element

### `_createGraphicNode`

(

- `type`
- `pe`

)
private

Defined in `graphics/js/VMLGraphic.js:601`

Creates a graphic node

#### Parameters:

- `type` String

  node type to create

- `pe` String

  specified pointer-events value

#### Returns:

HTMLElement

### `_getDocFrag`

() private

Defined in `graphics/js/VMLGraphic.js:681`

Returns a document fragment to for attaching shapes.

#### Returns:

DocumentFragment

### `_getShapeClass`

(

- `val`

)
private

Defined in `graphics/js/VMLGraphic.js:634`

Returns a shape class. Used by `addShape`.

#### Parameters:

- `val` Shape | String

  Indicates which shape class.

#### Returns:

Function

### `_getUpdatedContentBounds`

() Object private

Defined in `graphics/js/VMLGraphic.js:852`

Recalculates and returns the `contentBounds` for the `Graphic` instance.

#### Returns:

Object:

### `_redraw`

() private

Defined in `graphics/js/VMLGraphic.js:727`

Redraws all shapes.

### `_removeChildren`

(

- `node`

)
private

Defined in `graphics/js/VMLGraphic.js:494`

Removes all child nodes.

#### Parameters:

- `node` Object

### `_toBack`

(

- `Shape`

)
private

Defined in `graphics/js/VMLGraphic.js:906`

Inserts shape as the first child of the content node.

#### Parameters:

- `Shape` VMLShape

  to add.

### `_toFront`

(

- `Shape`

)
private

Defined in `graphics/js/VMLGraphic.js:886`

Inserts shape on the top of the tree.

#### Parameters:

- `Shape` VMLShape

  to add.

### `_toggleVisible`

(

- `val`

)
private

Defined in `graphics/js/VMLGraphic.js:525`

Toggles visibility

#### Parameters:

- `val` Boolean

  indicates visibilitye

### `addShape`

(

- `cfg`

)

Defined in `graphics/js/VMLGraphic.js:406`

Generates a shape instance by type.

#### Parameters:

- `cfg` Object

  attributes for the shape

#### Returns:

Shape

### `addToRedrawQueue`

(

- `shape`

)
protected

Defined in `graphics/js/VMLGraphic.js:697`

Adds a shape to the redraw queue and calculates the contentBounds.

#### Parameters:

- `shape` VMLShape

### `batch`

(

- `method`

)

Defined in `graphics/js/VMLGraphic.js:667`

Allows for creating multiple shapes in order to batch appending and redraw operations.

#### Parameters:

- `method` Function

  Method to execute.

### `clear`

()

Defined in `graphics/js/VMLGraphic.js:515`

Clears the graphics object.

### `destroy`

()

Defined in `graphics/js/VMLGraphic.js:395`

Removes all nodes.

### `getShapeById`

(

- `id`

)

Defined in `graphics/js/VMLGraphic.js:622`

Returns a shape based on the id of its dom node.

#### Parameters:

- `id` String

  Dom id of the shape's node attribute.

#### Returns:

Shape

### `getXY`

()

Defined in `graphics/js/VMLGraphic.js:325`

Gets the current position of the graphic instance in page coordinates.

#### Returns:

Array The XY position of the shape.

### `initializer`

() private

Defined in `graphics/js/VMLGraphic.js:350`

Initializes the class.

### `removeAllShapes`

()

Defined in `graphics/js/VMLGraphic.js:475`

Removes all shape instances from the dom.

### `removeShape`

(

- `shape`

)

Defined in `graphics/js/VMLGraphic.js:448`

Removes a shape instance from from the graphic instance.

#### Parameters:

- `shape` Shape | String

  The instance or id of the shape to be removed.

### `render`

(

- `parentNode`

)

Defined in `graphics/js/VMLGraphic.js:377`

Adds the graphics node to the dom.

#### Parameters:

- `parentNode` HTMLElement

  node in which to render the graphics node into.

### `set`

(

- `name`
- `value`

)

Defined in `graphics/js/VMLGraphic.js:261`

Sets the value of an attribute.

#### Parameters:

- `name` String | Object

  The name of the attribute. Alternatively, an object of key value pairs can be passed in to set multiple attributes at once.

- `value` Any

  The value to set the attribute to. This value is ignored if an object is received as the name param.

### `setPosition`

(

- `x`
- `y`

)

Defined in `graphics/js/VMLGraphic.js:571`

Sets the positon of the graphics object.

#### Parameters:

- `x` Number

  x-coordinate for the object.

- `y` Number

  y-coordinate for the object.

### `setSize`

(

- `w`
- `h`

)

Defined in `graphics/js/VMLGraphic.js:557`

Sets the size of the graphics object.

#### Parameters:

- `w` Number

  width to set for the instance.

- `h` Number

  height to set for the instance.

## Properties

### `_shapeClass`

Object private

Defined in `graphics/js/VMLGraphic.js:652`

Look up for shape classes. Used by `addShape` to retrieve a class for instantiation.

### `_x`

Number private

Defined in `graphics/js/VMLGraphic.js:307`

Storage for `x` attribute.

### `_y`

Number private

Defined in `graphics/js/VMLGraphic.js:316`

Storage for `y` attribute.

## Attributes

### `autoDraw`

Boolean private

Defined in `graphics/js/VMLGraphic.js:236`

Indicates whether or not the instance will automatically redraw after a change is made to a shape. This property will get set to false when batching operations.

Default: true

### `autoSize`

Boolean | String

Defined in `graphics/js/VMLGraphic.js:130`

Determines the sizing of the Graphic.

sizeContentToGraphic
  The Graphic's width and height attributes are, either explicitly set through the `width` and `height` attributes or are determined by the dimensions of the parent element. The content contained in the Graphic will be sized to fit with in the Graphic instance's dimensions. When using this setting, the `preserveAspectRatio` attribute will determine how the contents are sized.
sizeGraphicToContent
  (Also accepts a value of true) The Graphic's width and height are determined by the size and positioning of the content.
false
  The Graphic's width and height attributes are, either explicitly set through the `width` and `height` attributes or are determined by the dimensions of the parent element. The contents of the Graphic instance are not affected by this setting.

Default: false

### `contentBounds`

Object

Defined in `graphics/js/VMLGraphic.js:66`

Object containing size and coordinate data for the content of a Graphic in relation to the coordSpace node.

### `height`

Number

Defined in `graphics/js/VMLGraphic.js:113`

Indicates the height of the `Graphic`.

### `id`

String

Defined in `graphics/js/VMLGraphic.js:27`

Unique id for class instance.

### `node`

HTMLElement

Defined in `graphics/js/VMLGraphic.js:81`

The html element that represents to coordinate system of the Graphic instance.

### `preserveAspectRatio`

String

Defined in `graphics/js/VMLGraphic.js:154`

Determines how content is sized when `autoSize` is set to `sizeContentToGraphic`.

none
  Do not force uniform scaling. Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle.
xMinYMin
  Force uniform scaling position along the top left of the Graphic's node.
xMidYMin
  Force uniform scaling horizontally centered and positioned at the top of the Graphic's node.
xMaxYMin
  Force uniform scaling positioned horizontally from the right and vertically from the top.
xMinYMid
Force uniform scaling positioned horizontally from the left and vertically centered.
xMidYMid (the default)
  Force uniform scaling with the content centered.
xMaxYMid
  Force uniform scaling positioned horizontally from the right and vertically centered.
xMinYMax
  Force uniform scaling positioned horizontally from the left and vertically from the bottom.
xMidYMax
  Force uniform scaling horizontally centered and position vertically from the bottom.
xMaxYMax
  Force uniform scaling positioned horizontally from the right and vertically from the bottom.

Default: xMidYMid

### `render`

Node | String

Defined in `graphics/js/VMLGraphic.js:18`

Whether or not to render the `Graphic` automatically after to a specified parent node after init. This can be a Node instance or a CSS selector string.

### `resizeDown`

Boolean

Defined in `graphics/js/VMLGraphic.js:179`

The contentBounds will resize to greater values but not values. (for performance) When resizing the contentBounds down is desirable, set the resizeDown value to true.

### `shapes`

Object readonly

Defined in `graphics/js/VMLGraphic.js:50`

Key value pairs in which a shape instance is associated with its id.

### `width`

Number

Defined in `graphics/js/VMLGraphic.js:96`

Indicates the width of the `Graphic`.

### `x`

Number

Defined in `graphics/js/VMLGraphic.js:190`

Indicates the x-coordinate for the instance.

### `y`

Number

Defined in `graphics/js/VMLGraphic.js:213`

Indicates the y-coordinate for the instance.