API Docs for: 6.0.1
Show:

Force Class

Extends Base
Module: scrawlPhysics

Force

Instantiation

  • scrawl.makeForce()

Purpose

  • Defines a Force function that can calculate forces on Particle objects

Two forces are pre-defined by scrawl-canvas:

  • scrawl.force.gravity - calculates the gravitational force acting on a Particle, as determined by the scrawl.physics.gravity value and the Particle's mass
  • scrawl.force.drag - calculates the air drag force acting on a Particle, as determined by the scrawl.physics.airDensity value, and the Particle's area and drag attribute values

Constructor

Force

(
  • [items]
)

Parameters:

  • [items] Object optional

    Key:value Object argument for setting attributes

Methods

clone

(
  • items
)
chainable

Clone a Scrawl.js object, optionally altering attribute values in the cloned object

Note that any callback or fn attribute functions will be referenced by the clone, not copied to the clone; these can be overwritten with new anonymous functions by including them in the items argument object

(This function is replaced by the path extension)

Parameters:

  • items Object

    Object containing attribute key:value pairs; will overwrite existing values in the cloned, but not the source, Object

Returns:

Cloned object

Example:

var box = scrawl.makeBlock({
    width: 50,
    height: 50
    });
var newBox = box.clone({
    height: 100
    });
newBox.get('width');        //returns 50
newBox.get('height');       //returns 100

get

(
  • item
)

Retrieve an attribute value. If the attribute value has not been set, then the default value for that attribute will be returned.

Parameters:

  • item String

    Attribute key

Returns:

Attribute value

Example:

var box = scrawl.makeBlock({
    width: 50,
    });
box.get('width');               //returns 50
box.get('height');              //returns 0
box.get('favouriteAnimal');     //returns undefined

kill

()

Remove this Force from the scrawl-canvas library

Returns:

Always true

numberConvert

(
  • val
  • dim
)
private

Stamp helper function - convert string percentage values to numerical values

Parameters:

  • val String

    coordinate String

  • dim Number

    dimension value

Returns:

Number - value

parse

()

Turn the object into a JSON String

Returns:

object of object's currently set attributes

run

()

Calculate the force for this calculation cycle iteration

Returns:

force Vector, as defined in the force function

set

(
  • items
)
chainable

Set attribute values. Multiple attributes can be set in the one call by including the attribute key:value pair in the argument object.

An attribute value will only be set if the object already has a default value for that attribute. This restricts the ability of coders to add attributes to Scrawl objects.

Parameters:

  • items Object

    Object containing attribute key:value pairs

Returns:

This

Example:

var box = scrawl.makeBlock({
    width: 50,
    height: 50
    });
box.set({
    height: 100,
    favouriteAnimal: 'cat'
    });
box.get('width');               //returns 50
box.get('height');              //returns 100
box.get('favouriteAnimal');     //returns undefined

Properties

comment

String

Comment, for accessibility

Default: ''

fn

Function

Anonymous function for calculating a force on a Particle

Functions need to be in the form:

function(ball){
    //get or build a Vector object to hold the result
    var result = scrawl.makeVector();    //creating the vector
    var result = scrawl.work.workphys.v1;    //using an existing work vector: scrawl.work.workphys.v1 to v5

    //calculate the force - Particle attributes are available via the _ball_ argument

    //add the force to the Particle's load Vector
    ball.load.vectorAdd(result);
    }

Default: function(){}

name

String

Unique identifier for each object; default: computer-generated String based on Object's type

timestamp

String

Creation timestamp

Default: ''

title

String

Title, for accessibility

Default: ''

type

String final

Inherited from Base but overwritten in source\scrawlPhysics.js:1002

Default: 'Force'