0.3.6 • Published 7 years ago

area-man v0.3.6

Weekly downloads
2
License
ISC
Repository
github
Last release
7 years ago

Area Manager

A simple utils library for handling areas. Create, move, reflect, scale, squash etc

Install:

Area Man is available as the area-man package on npm.

npm install area-man --save

Usage

var AreaMan = require('area-man');

You can use ES6 imports too:

import {Area}} from 'area-man';

const area = new Area(params);

AreaMan.newArea(params ,id)

Creates a new area.

params: object

Needs the properties x, y, width, height or x1, y1, x2, y2.

id: string

Optional id if you want to be able to retrieve an area later (WIP).

returns: Area

Area.width | height

Get or set the area's width or height

returns: number

Area.isWide | isTall | isSquare

compare width and height to tell is an area is taller than it is wide

returns: boolean

Area.area

calculate the area's surface area

returns: number

Area.centrePoint

TODO

Area.move(x: number = 0, y: number = 0)

Translate the area by x, y

returns: Area

Area.shrink(adjustments: number | number, number, number, number)

Area.grow(adjustments: number | number, number, number, number)

Shrink or grow the area, removing the given values from each side. If a single value is provided then all sides will be adjusted equally.

returns: Area

Area.scale(scale: number, originX: number, originY: number)

Scale an area.

returns: Area

Area.squash(squashDirection: string, percentage: number, originX: number, originY: number)

Squash an area, changing its size but keeping its surface area the same.

params: squashDirection

Specify "horizontal" or "vertical"

params: percentage

How much to squash the area as a percentage of its current size.

params: originX originY`

Origin point for the squash relative to the area. 0,0 is the top-left corner, 1,1 is bottom-right.

returns: Area

Area.reflect(reflectX: boolean, reflectY: boolean, originX: number, originY: number)

Reflect an area.

returns: Area

Area.clone(id?: string)

Clone an area.

returns: Area

Area.split(sliceDirection: string, percentage: number, clone: boolean = true)

Split an area in two. The default is to clone the source area and keep the original unchanged, but you can override this to affect the original area if needed.

returns: Area

Area.hitTest(areas: IArea | IArea[])

Test whether an area (or any of a list of areas) overlap a target area.

returns: boolean

TODO

  • comprehensive documentation
  • better demo page
  • more operations
  • different shapes
0.3.6

7 years ago

0.3.4

7 years ago

0.3.3

7 years ago

0.3.2

7 years ago

0.3.1

7 years ago

0.3.0

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.61

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago

0.0.14

7 years ago

0.0.13

7 years ago

0.0.12

7 years ago

0.0.11

7 years ago

0.0.1

7 years ago