- Matter.Composite
- Methods
- Matter.Composite.add
- Matter.Composite.addBody
- Matter.Composite.addComposite
- Matter.Composite.addConstraint
- Matter.Composite.allBodies
- Matter.Composite.allComposites
- Matter.Composite.allConstraints
- Matter.Composite.bounds
- Matter.Composite.clear
- Matter.Composite.create
- Matter.Composite.get
- Matter.Composite.move
- Matter.Composite.rebase
- Matter.Composite.remove
- Matter.Composite.removeBody
- Matter.Composite.removeBodyAt
- Matter.Composite.removeComposite
- Matter.Composite.removeCompositeAt
- Matter.Composite.removeConstraint
- Matter.Composite.removeConstraintAt
- Matter.Composite.rotate
- Matter.Composite.scale
- Matter.Composite.setModified
- Matter.Composite.translate
- Item Index
- Properties
- Events
- Methods
Matter.Composite
Defined in: src/body/Composite.js:1
The Matter.Composite
module contains methods for creating and manipulating composite bodies. A composite body is a collection of Matter.Body
, Matter.Constraint
and other Matter.Composite
, therefore composites form a tree structure. It is important to use the functions in this module to modify composites, rather than directly modifying their properties. Note that the Matter.World
object is also a type of Matter.Composite
and as such all composite methods here can also operate on a Matter.World
.
See the included usage examples.
Methods
Matter.Composite.add
(composite, object)
Generic add function. Adds one or many body(s), constraint(s) or a composite(s) to the given composite. Triggers beforeAdd
and afterAdd
events on the composite
.
Parameters
composite
Composite
object
Object
Returns
CompositeThe original composite with the objects added
Matter.Composite.addBody
(composite, body)
→ Compositeprivate
Adds a body to the given composite.
Parameters
composite
Composite
body
Body
Returns
CompositeThe original composite with the body added
Matter.Composite.addComposite
(compositeA, compositeB)
→ Compositeprivate
Adds a composite to the given composite.
Parameters
compositeA
Composite
compositeB
Composite
Returns
CompositeThe original compositeA with the objects from compositeB added
Matter.Composite.addConstraint
(composite, constraint)
→ Compositeprivate
Adds a constraint to the given composite.
Parameters
composite
Composite
constraint
Constraint
Returns
CompositeThe original composite with the constraint added
Matter.Composite.allBodies
(composite)
→ Body[]
Returns all bodies in the given composite, including all bodies in its children, recursively.
Parameters
composite
Composite
Returns
Body[]All the bodies
Matter.Composite.allComposites
(composite)
Returns all composites in the given composite, including all composites in its children, recursively.
Parameters
composite
Composite
Returns
Composite[]All the composites
Matter.Composite.allConstraints
(composite)
Returns all constraints in the given composite, including all constraints in its children, recursively.
Parameters
composite
Composite
Returns
Constraint[]All the constraints
Matter.Composite.bounds
(composite)
→ Bounds
Returns the union of the bounds of all of the composite's bodies.
Parameters
composite
Composite
The composite.
Returns
BoundsThe composite bounds.
Matter.Composite.clear
(composite, keepStatic, [deep=false])
Removes all bodies, constraints and composites from the given composite. Optionally clearing its children recursively.
Parameters
composite
Composite
keepStatic
Boolean
[deep=false]
Booleanoptional
Matter.Composite.create
([options])
Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults. See the properites section below for detailed information on what you can pass via the options
object.
Parameters
[options]
Objectoptional
Returns
CompositeA new composite
Matter.Composite.get
(composite, id, type)
→ Object
Searches the composite recursively for an object matching the type and id supplied, null if not found.
Parameters
composite
Composite
id
Number
type
String
Returns
ObjectThe requested object, if found
Matter.Composite.move
(compositeA, objects, compositeB)
Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add).
Parameters
compositeA
CompositeA
objects
Object[]
compositeB
CompositeB
Returns
CompositeReturns compositeA
Matter.Composite.rebase
(composite)
Assigns new ids for all objects in the composite, recursively.
Parameters
composite
Composite
Returns
CompositeReturns composite
Matter.Composite.remove
(composite, object, [deep=false])
Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite. Optionally searching its children recursively. Triggers beforeRemove
and afterRemove
events on the composite
.
Parameters
composite
Composite
object
Object
[deep=false]
Booleanoptional
Returns
CompositeThe original composite with the objects removed
Matter.Composite.removeBody
(composite, body, [deep=false])
→ Compositeprivate
Removes a body from the given composite, and optionally searching its children recursively.
Parameters
composite
Composite
body
Body
[deep=false]
Booleanoptional
Returns
CompositeThe original composite with the body removed
Matter.Composite.removeBodyAt
(composite, position)
→ Compositeprivate
Removes a body from the given composite.
Parameters
composite
Composite
position
Number
Returns
CompositeThe original composite with the body removed
Matter.Composite.removeComposite
(compositeA, compositeB, [deep=false])
→ Compositeprivate
Removes a composite from the given composite, and optionally searching its children recursively.
Parameters
compositeA
Composite
compositeB
Composite
[deep=false]
Booleanoptional
Returns
CompositeThe original compositeA with the composite removed
Matter.Composite.removeCompositeAt
(composite, position)
→ Compositeprivate
Removes a composite from the given composite.
Parameters
composite
Composite
position
Number
Returns
CompositeThe original composite with the composite removed
Matter.Composite.removeConstraint
(composite, constraint, [deep=false])
→ Compositeprivate
Removes a constraint from the given composite, and optionally searching its children recursively.
Parameters
composite
Composite
constraint
Constraint
[deep=false]
Booleanoptional
Returns
CompositeThe original composite with the constraint removed
Matter.Composite.removeConstraintAt
(composite, position)
→ Compositeprivate
Removes a body from the given composite.
Parameters
composite
Composite
position
Number
Returns
CompositeThe original composite with the constraint removed
Matter.Composite.rotate
(composite, rotation, point, [recursive=true])
Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity.
Parameters
composite
Composite
rotation
Number
point
Vector
[recursive=true]
Booloptional
Matter.Composite.scale
(composite, scaleX, scaleY, point, [recursive=true])
Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point.
Parameters
composite
Composite
scaleX
Number
scaleY
Number
point
Vector
[recursive=true]
Booloptional
Matter.Composite.setModified
(composite, isModified, [updateParents=false], [updateChildren=false])
Sets the composite's isModified
flag. If updateParents
is true, all parents will be set (default: false). If updateChildren
is true, all children will be set (default: false).
Parameters
composite
Composite
isModified
Boolean
[updateParents=false]
Booleanoptional
[updateChildren=false]
Booleanoptional
Matter.Composite.translate
(composite, translation, [recursive=true])
Translates all children in the composite by a given vector relative to their current positions, without imparting any velocity.
Parameters
composite
Composite
translation
Vector
[recursive=true]
Booloptional
Item Index
Methods
- add
- addBody
- addComposite
- addConstraint
- allBodies
- allComposites
- allConstraints
- bounds
- clear
- create
- get
- move
- rebase
- remove
- removeBody
- removeBodyAt
- removeComposite
- removeCompositeAt
- removeConstraint
- removeConstraintAt
- rotate
- scale
- setModified
- translate
Properties
The following properties are specified for objects created by <span class="prefix">Matter.</span>.create
and for objects passed to it via the options
argument.
Events
Properties
The following properties are specified for objects created by Matter.Composite.create
and for objects passed to it via the options
argument.
Composite.bodies
An array of Body
that are direct children of this composite. To add or remove bodies you should use Composite.add
and Composite.remove
methods rather than directly modifying this property. If you wish to recursively find all descendants, you should use the Composite.allBodies
method.
Default: []
Composite.composites
An array of Composite
that are direct children of this composite. To add or remove composites you should use Composite.add
and Composite.remove
methods rather than directly modifying this property. If you wish to recursively find all descendants, you should use the Composite.allComposites
method.
Default: []
Composite.constraints
An array of Constraint
that are direct children of this composite. To add or remove constraints you should use Composite.add
and Composite.remove
methods rather than directly modifying this property. If you wish to recursively find all descendants, you should use the Composite.allConstraints
method.
Default: []
Composite.id
An integer Number
uniquely identifying number generated in Composite.create
by Common.nextId
.
Composite.isModified
A flag that specifies whether the composite has been modified during the current step. Most Matter.Composite
methods will automatically set this flag to true
to inform the engine of changes to be handled. If you need to change it manually, you should use the Composite.setModified
method.
Default: false
Composite.label
An arbitrary String
name to help the user identify and manage composites.
Default: "Composite"
Composite.parent
The Composite
that is the parent of this composite. It is automatically managed by the Matter.Composite
methods.
Default: null
Composite.plugin
An object reserved for storing plugin-specific properties.
Composite.type
A String
denoting the type of object.
Default: "composite"
Events
The following events are emitted by objects created by <span class="prefix">Matter.</span>Composite.create
to objects that have subscribed using Matter.Events.on
.
Events.on(Composite, "afterAdd", callback)
Fired when a call to Composite.add
is made, after objects have been added.
Event Payload:
event
Object
An event object
object
The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these)
source
The source object of the event
name
The name of the event
Events.on(Composite, "afterRemove", callback)
Fired when a call to Composite.remove
is made, after objects have been removed.
Event Payload:
event
Object
An event object
object
The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these)
source
The source object of the event
name
The name of the event
Events.on(Composite, "beforeAdd", callback)
Fired when a call to Composite.add
is made, before objects have been added.
Event Payload:
event
Object
An event object
object
The object(s) to be added (may be a single body, constraint, composite or a mixed array of these)
source
The source object of the event
name
The name of the event
Events.on(Composite, "beforeRemove", callback)
Fired when a call to Composite.remove
is made, before objects have been removed.
Event Payload:
event
Object
An event object
object
The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these)
source
The source object of the event
name
The name of the event