Example #1
0
import {PictureCommand} from 'src/dvu/core/commands/picture'
import {PictureContext} from 'src/dvu/geometry/picture_context'
import {SVG} from 'src/dvu/core/helpers/svg'

export const ELLIPSIS = new PictureCommand('Circle', {
  name: 'circle',
  shortcutKey: 'c',
  noOfInstances: 0,

  onMousedown(context: PictureContext): Element {
    const { start, end } = context

    const ellipsis = SVG.createEllipse(start.x, start.y, context.getWidth(), context.getHeight())
    ellipsis.setAttributeNS(null, 'stroke', '#555')
    ellipsis.setAttributeNS(null, 'fill', 'transparent')

    return ellipsis
  },

  onMousemove(element: Element, context: PictureContext): Element {
    const { start, end } = context
    const rx = context.getWidth(), ry = context.getHeight()

    element.setAttributeNS(null, 'rx', rx.toString())
    element.setAttributeNS(null, 'ry', ry.toString())

    return element
  },

  onMouseup(element: Element, context: PictureContext): Element {
    return this.onMousedown(element, context)
Example #2
0
import {PictureCommand} from 'src/dvu/core/commands/picture'
import {PictureContext} from 'src/dvu/geometry/picture_context'
import {SVG} from 'src/dvu/core/helpers/svg'

export const PATH = new PictureCommand('Path', {
  name: 'path',
  shortcutKey: 'p',
  noOfInstances: 0,

  onMousedown(context: PictureContext): Element {
    return SVG.createPath(context.points)
  },

  onMousemove(element: Element, context: PictureContext): Element {
    const { end } = context

    let d = element.getAttributeNS(null, 'd');

    element.setAttributeNS(null, 'd', `${d} L${end.x.toString()},${end.y.toString()}`)

    return element;
  },

  onMouseup(element: Element, context: PictureContext): Element {
    return this.onMousedown(element, context)
  },

  getSummary(data: PictureContext) {
    return `Draw ${data.name || (this.name + '-' + data.instanceCount)} from (${data.start.x}, ${data.start.y}) to (${data.end.x}, ${data.end.y})`
  }
})
Example #3
0
import {PictureCommand} from 'src/dvu/core/commands/picture'
import {PictureContext} from 'src/dvu/geometry/picture_context'
import {SVG} from 'src/dvu/core/helpers/svg'

export const LINE = new PictureCommand('Line', {
  name: 'line',
  shortcutKey: 'l',
  noOfInstances: 0,

  onMousedown(context: PictureContext): Element {
    const { start, end } = context

    return SVG.createLine(start.x, start.y, end.x, end.y)
  },

  onMousemove(element: Element, context: PictureContext): Element {
    const { end } = context

    element.setAttributeNS(null, 'x2', end.x.toString())
    element.setAttributeNS(null, 'y2', end.y.toString())

    return element
  },

  onMouseup(element: Element, context: PictureContext): Element {
    return this.onMousedown(element, context)
  },

  getSummary(data: PictureContext) {
    return `Draw ${data.name || (this.name + '-' + data.instanceCount)} from (${data.start.x}, ${data.start.y}) to (${data.end.x}, ${data.end.y})`
  }
Example #4
0
import {PictureCommand} from 'src/dvu/core/commands/picture'
import {PictureContext} from 'src/dvu/geometry/picture_context'
import {SVG} from 'src/dvu/core/helpers/svg'

export const RECT = new PictureCommand('Rect', {
  name: 'rect',
  shortcutKey: 'x',
  noOfInstances: 0,

  onMousedown(context: PictureContext): Element {
    const initPoint = context.getLeastSignificantPoint(),
      endPoint = context.getMostSignificantPoint()

    const rect = SVG.createRect(initPoint.x, initPoint.y, endPoint.x - initPoint.x, endPoint.y - initPoint.y)
    rect.setAttributeNS(null, 'stroke', '#555')
    rect.setAttributeNS(null, 'fill', 'transparent')

    return rect
  },

  onMousemove(element: Element, context: PictureContext): Element {
    const initPoint = context.getLeastSignificantPoint(),
      endPoint = context.getMostSignificantPoint(),
      width = endPoint.x - initPoint.x,
      height = endPoint.y - initPoint.y

    element.setAttributeNS(null, 'x', initPoint.x.toString())
    element.setAttributeNS(null, 'y', initPoint.y.toString())
    element.setAttributeNS(null, 'width', width.toString())
    element.setAttributeNS(null, 'height', height.toString())