Skip to main content

Class: Particle

physics/fluid/particle.Particle

Hierarchy

Constructors

constructor

โ€ข new Particle(radius, mass)

Creates a Particle.

Parameters

NameTypeDescription
radiusnumberThe radius of the particle
massnumberThe mass of the particle

Overrides

RigidBody.constructor

Defined in

src/physics/fluid/particle.ts:31

Properties

airFriction

โ€ข airFriction: number = 0

The damping applied to the object's linear velocity every physics update.

Inherited from

RigidBody.airFriction

Defined in

src/physics/object.ts:68


angularDamping

โ€ข angularDamping: number = 0

The damping applied to the object's angular velocity every physics update.

Inherited from

RigidBody.angularDamping

Defined in

src/physics/object.ts:97


angularVelocity

โ€ข angularVelocity: number = 0

The object's angular velocity in radians per second.

Inherited from

RigidBody.angularVelocity

Defined in

src/physics/object.ts:80


collider

โ€ข collider: Collider

The object's collider.

Inherited from

RigidBody.collider

Defined in

src/physics/collisionObject.ts:23


density

โ€ข density: number

Defined in

src/physics/fluid/particle.ts:14


densityNear

โ€ข densityNear: number

Defined in

src/physics/fluid/particle.ts:15


dx

โ€ข dx: vec2

Defined in

src/physics/fluid/particle.ts:20


dynamicFriction

โ€ข dynamicFriction: number = 0.1

Coefficient of dynamic/kinetic friction.

This value should be between 0 and 1 for best results.

see Static And Kinetic Friction

Inherited from

RigidBody.dynamicFriction

Defined in

src/physics/object.ts:51


filter

โ€ข filter: CollisionFilter

The object's collision filter.

Inherited from

RigidBody.filter

Defined in

src/physics/collisionObject.ts:18


force

โ€ข force: vec2

The net force applied to the object in newtons.

Inherited from

RigidBody.force

Defined in

src/physics/object.ts:58


gravity

โ€ข gravity: vec2

The gravitational froce applied to the object.

Inherited from

RigidBody.gravity

Defined in

src/physics/object.ts:12


isDynamic

โ€ข isDynamic: boolean = true

Wether the body has dynamics or not.

Inherited from

RigidBody.isDynamic

Defined in

src/physics/rigidbody.ts:15


isStatic

โ€ข isStatic: boolean = false

Wether or not the object is static, static objects do not move during collisions.

Inherited from

RigidBody.isStatic

Defined in

src/physics/collisionObject.ts:38


isTrigger

โ€ข isTrigger: boolean = false

Wether or not the collision object should be a trigger.

When true the object will detect but not respond to collisions.

Inherited from

RigidBody.isTrigger

Defined in

src/physics/collisionObject.ts:45


listeners

โ€ข Protected listeners: Object = {}

Index signature

โ–ช [index: string]: Listener[]

Inherited from

RigidBody.listeners

Defined in

src/object2d.ts:32


lockRotation

โ€ข lockRotation: boolean = false

Wether or not the object can rotate.

When true the object's rotation will not be affected by collisions or dynamics.

Inherited from

RigidBody.lockRotation

Defined in

src/physics/object.ts:125


lockXAxis

โ€ข lockXAxis: boolean = false

Wether or not the object's x position is locked.

When true the object's x position will not be affected by collisions or dynamics.

Inherited from

RigidBody.lockXAxis

Defined in

src/physics/object.ts:111


lockYAxis

โ€ข lockYAxis: boolean = false

Wether or not the object's y position is locked.

When true the object's y position will not be affected by collisions or dynamics.

Inherited from

RigidBody.lockYAxis

Defined in

src/physics/object.ts:118


neighbours

โ€ข neighbours: Particle[]

Defined in

src/physics/fluid/particle.ts:23


posPrev

โ€ข posPrev: vec2

Defined in

src/physics/fluid/particle.ts:21


pressure

โ€ข pressure: number

Defined in

src/physics/fluid/particle.ts:17


pressureNear

โ€ข pressureNear: number

Defined in

src/physics/fluid/particle.ts:18


radius

โ€ข Private radius: number

Defined in

src/physics/fluid/particle.ts:12


restitution

โ€ข restitution: number = 0

Elasticity/bounciness

This value should be between 0 and 1 for best results.

Inherited from

RigidBody.restitution

Defined in

src/physics/object.ts:33


staticFriction

โ€ข staticFriction: number = 0.1

Coefficient of static friction.

This value should be between 0 and 1 for best results.

see Static And Kinetic Friction

Inherited from

RigidBody.staticFriction

Defined in

src/physics/object.ts:42


stickyCollider

โ€ข stickyCollider: boolean = true

Wether or not to clone the object's position and rotation to it's collider.

Inherited from

RigidBody.stickyCollider

Defined in

src/physics/collisionObject.ts:33


takesGravity

โ€ข takesGravity: boolean = true

Wether or not the object should take gravity from the physics world.

Inherited from

RigidBody.takesGravity

Defined in

src/physics/object.ts:104


torque

โ€ข torque: number = 0

The object's torque in newtons, can be thought of as rotational force.

Inherited from

RigidBody.torque

Defined in

src/physics/object.ts:75


totalContacts

โ€ข totalContacts: number = 0

The number of contact points the object is colliding at.

Inherited from

RigidBody.totalContacts

Defined in

src/physics/collisionObject.ts:28


velocity

โ€ข velocity: vec2

The object's velocity in world space units (metres).

Inherited from

RigidBody.velocity

Defined in

src/physics/object.ts:63

Methods

addEventListener

โ–ธ addEventListener(event, listener): boolean

Executes a function when an event is fired.

Parameters

NameTypeDescription
eventstringThe event to listen for
listenerListenerThe function to execute when the event fired

Returns

boolean

Wether or not the listener was added

Inherited from

RigidBody.addEventListener

Defined in

src/object2d.ts:209


advancePosition

โ–ธ advancePosition(delta, smoothingRadius): void

Advanced the particle's position.

Parameters

NameTypeDescription
deltanumberThe time since the last update
smoothingRadiusnumberThe smoothing radius of the fluid

Returns

void

Defined in

src/physics/fluid/particle.ts:108


applyForce

โ–ธ applyForce(force, contact?): void

Adds a force to the object's current total force vector.

If no contact point is provided then the force will be applied at the object's centre, generating 0 torque.

Parameters

NameTypeDescription
forcevec2The force vector to apply
contact?vec2The local position on the body to apply the force at

Returns

void

Inherited from

RigidBody.applyForce

Defined in

src/physics/object.ts:156


applyForceAtAngle

โ–ธ applyForceAtAngle(force, angle, contact?): void

Applies a force to the object at an angle.

The direction vector is calculated from the unit y+ vector.

If no contact point is provided then the force will be applied at the object's centre, generating 0 torque.

Parameters

NameTypeDescription
forcenumberThe force to apply in newtons
anglenumberThe angle at which to apply the force in radians (world space)
contact?vec2The local position on the body to apply the force at

Returns

void

Inherited from

RigidBody.applyForceAtAngle

Defined in

src/physics/object.ts:178


applyImpulse

โ–ธ applyImpulse(impulse, contactVector): void

Applies an impulse to the physics object.

This will apply an instantaneous change to the object's angular and linear velocity.

Parameters

NameTypeDescription
impulsevec2The impulse to apply
contactVectorvec2A vector from the object's center to the contact point

Returns

void

Inherited from

RigidBody.applyImpulse

Defined in

src/physics/object.ts:199


computeDoubleDensityRelaxation

โ–ธ computeDoubleDensityRelaxation(smoothingRadius): void

Computes the density and density near of the particle based on it's neighbours.

Parameters

NameTypeDescription
smoothingRadiusnumberThe smoothing radius of the fluid

Returns

void

Defined in

src/physics/fluid/particle.ts:68


computeNewVelocity

โ–ธ computeNewVelocity(delta, gravity): void

Comptues the particle's new velocity and performs the second force solving pass.

Parameters

NameTypeDescription
deltanumberThe time since the last update
gravityvec2The physics world's gravity vector

Returns

void

Defined in

src/physics/fluid/particle.ts:145


computePressure

โ–ธ computePressure(stiffness, stiffnessNear, restDensity): void

Calculate the pressure the particle based on it's neighbours.

Parameters

NameTypeDescription
stiffnessnumber-
stiffnessNearnumber-
restDensitynumberThe rest density of the fluid

Returns

void

Defined in

src/physics/fluid/particle.ts:97


findNeighbours

โ–ธ findNeighbours(kdTree, smoothingRadius, smoothingRadiusSqr): void

Finds particles which are closer to this particle than the fluid's smoothing radius.

Particles which are closer than this distance are added to this particle's neighbours array.

Parameters

NameTypeDescription
kdTreekdTreeThe kdTree of the fluid
smoothingRadiusnumberThe fluid's smoothing radius
smoothingRadiusSqrnumberThe fluid's smoothing radius squared

Returns

void

Defined in

src/physics/fluid/particle.ts:59


fireEvent

โ–ธ fireEvent(event, ...e): void

Executes all listeners attached to a given event.

Parameters

NameTypeDescription
eventstringThe event to fire
...eanyThe data to pass to each event listener

Returns

void

Inherited from

RigidBody.fireEvent

Defined in

src/object2d.ts:185


getEventListeners

โ–ธ getEventListeners(event): Listener[]

Gets the listeners attached to an event.

Parameters

NameType
eventstring

Returns

Listener[]

An array of listeners attached to the given event

Inherited from

RigidBody.getEventListeners

Defined in

src/object2d.ts:198


getEvents

โ–ธ getEvents(): string[]

Gets the events that can be listened to on the object.

Returns

string[]

The events the object supports

Inherited from

RigidBody.getEvents

Defined in

src/object2d.ts:175


getInertia

โ–ธ getInertia(): number

Gets the moment of inertia of the object.

Returns

number

The inertia of the object

Inherited from

RigidBody.getInertia

Defined in

src/physics/object.ts:257


getInverseInertia

โ–ธ getInverseInertia(): number

Gets the inverse moment of inertia of the object (1 / inertia).

Returns

number

The inverse inertia of the object

Inherited from

RigidBody.getInverseInertia

Defined in

src/physics/object.ts:266


getInverseMass

โ–ธ getInverseMass(): number

Gets the inverse mass of the object (1 / mass).

Returns

number

The inverse mass of the object

Inherited from

RigidBody.getInverseMass

Defined in

src/physics/object.ts:234


getMass

โ–ธ getMass(): number

Gets the mass of the object.

Returns

number

The mass of the object

Inherited from

RigidBody.getMass

Defined in

src/physics/object.ts:225


getPosition

โ–ธ getPosition(): vec2

Gets the object's position.

Returns

vec2

The object's position as a vec2

Inherited from

RigidBody.getPosition

Defined in

src/object2d.ts:82


getRadius

โ–ธ getRadius(): number

Gets the radius of the particle.

Returns

number

The particle's radius

Defined in

src/physics/fluid/particle.ts:169


getRotation

โ–ธ getRotation(): number

Gets the object's rotation as a number in radians relative to y+.

Returns

number

The object's rotation

Inherited from

RigidBody.getRotation

Defined in

src/object2d.ts:139


moveRight

โ–ธ moveRight(dist): void

Moves the object's position right (x+) relative to it's rotation.

Parameters

NameTypeDescription
distnumberThe distance to move right, can be + or -

Returns

void

Inherited from

RigidBody.moveRight

Defined in

src/object2d.ts:100


moveUp

โ–ธ moveUp(dist): void

Moves the object's position up (y+) relative to it's rotation.

Parameters

NameTypeDescription
distnumberThe distance to move up, can be + or -

Returns

void

Inherited from

RigidBody.moveUp

Defined in

src/object2d.ts:114


removeEventListener

โ–ธ removeEventListener(event, listener): boolean

Removes a listener from an event.

Parameters

NameTypeDescription
eventstringThe event the listener is attached to
listenerListenerThe listener to remove

Returns

boolean

Wether or not the listener was removed

Inherited from

RigidBody.removeEventListener

Defined in

src/object2d.ts:223


rotate

โ–ธ rotate(angle): void

Increments the object's rotation by an angle in radians.

Parameters

NameTypeDescription
anglenumberThe angle to rotate by in radians

Returns

void

Inherited from

RigidBody.rotate

Defined in

src/object2d.ts:148


setInertia

โ–ธ setInertia(inertia): void

Sets the moment of inertia of the object.

Also computes the inverse inertia.

NOTE: Setting the inertia to 0 will act as infinite inertia.

Parameters

NameTypeDescription
inertianumberThe objects new inertia

Returns

void

Inherited from

RigidBody.setInertia

Defined in

src/physics/object.ts:247


setMass

โ–ธ setMass(mass): void

Sets the mass of the object in kg.

Also computes the inverse mass.

NOTE: Setting the mass to 0 will act as infinite mass.

Parameters

NameTypeDescription
massnumberThe objects new mass

Returns

void

Inherited from

RigidBody.setMass

Defined in

src/physics/object.ts:213


setPosition

โ–ธ setPosition(pos): void

Sets the object's position.

Also sets this.collider's position, if this.stickyCollider is true.

Parameters

NameTypeDescription
posvec2The object's new position

Returns

void

Inherited from

RigidBody.setPosition

Defined in

src/physics/collisionObject.ts:121


setPositionX

โ–ธ setPositionX(x): void

Sets the x component of the object's position.

Parameters

NameTypeDescription
xnumberThe object's new x coordinate

Returns

void

Inherited from

RigidBody.setPositionX

Defined in

src/object2d.ts:56


setPositionY

โ–ธ setPositionY(y): void

Sets the y component of the object's position.

Parameters

NameTypeDescription
ynumberThe object's new y coordinate

Returns

void

Inherited from

RigidBody.setPositionY

Defined in

src/object2d.ts:69


setRadius

โ–ธ setRadius(radius): void

Sets the particle's radius.

Parameters

NameTypeDescription
radiusnumberThe particle's new radius

Returns

void

Defined in

src/physics/fluid/particle.ts:159


setRotation

โ–ธ setRotation(angle): void

Sets the object's rotation, in radians.

Also sets this.collider's rotation, if this.stickyCollider is true.

Parameters

NameTypeDescription
anglenumberThe object's new rotation angle (in radians)

Returns

void

Inherited from

RigidBody.setRotation

Defined in

src/physics/collisionObject.ts:133


setupEvents

โ–ธ Protected setupEvents(): void

Sets all the events that can be used in listeners.

Returns

void

Inherited from

RigidBody.setupEvents

Defined in

src/physics/rigidbody.ts:31


testCollision

โ–ธ testCollision(B): CollisionResult

Checks if this object's collider is colliding with another object's collider.

Parameters

NameTypeDescription
BCollisionObjectCollisionObject to test collisions against

Returns

CollisionResult

CollisionResult with the results of the test

Inherited from

RigidBody.testCollision

Defined in

src/physics/collisionObject.ts:75


translate

โ–ธ translate(v): void

Translates the object by the provided vector.

Parameters

NameTypeDescription
vvec2The vector to translate by

Returns

void

Inherited from

RigidBody.translate

Defined in

src/object2d.ts:91