MatrixCloner
The MatrixCloner clones and distributes given meshes in 3D space. If more than one mesh is provided, then the corresponding clones will be placed subsequently one after another starting in the x direction followed by y and z direction.
The MatrixCloner returns an object with an important property: root. It is an invisible mesh, it's the anchor and parent of all generated clones, its position is the middle position of all generated clones. Transforming this root affects all underlying clones (childs) at once. The given input meshes will be made inactive during construction, so after construction there will be only one of two possible mesh types: BABYLON clones or instances.
Note: Input meshes can be BABYLON meshes but other Cloners as well!
Example
Example of a LinearCloner with a count of 10 clones (5 x cube1, 5 x cube2) with an increment vector of {x:2,y:0,z:-1} :
var mc = new BABYLONX.MatrixCloner([cube1, cube2], demo.scene, { mcount: { x: 5, y: 5, z: 5 } });
Transforming of all clones can be done as you would do with a single mesh:
mc.root.scaling.y = 2;
mc.root.rotation.x = Math.PI / 4;
Parameters
BABYLONX.MatrixCloner( meshes, scene[, {optional parameters}])
Mandatory Parameter | Description |
---|---|
Mandatory Parameter meshes | Description array of meshes/cloners to be cloned, meshes will be made inactive after construction |
Mandatory Parameter scene | Description BABYLON scene |
Optional Parameter | Description | Default Value |
---|---|---|
Optional Parameter mcount | Description the nuber of clones in x,y and z direction | Default Value { x: 3, y: 3, z: 3 } |
Optional Parameter size | Description distance from one clon to another in x,y and z direction | Default Value { x: 2, y: 2, z: 2 } |
Optional Parameter useInstances | Description flag if clones should be technical "clones" or "instances" | Default Value true |
Properties | Description |
---|---|
Properties count | Description READONLY, total number of clones after initialization |
Properties size | Description @see Optional Parameter |
Properties mcount | Description @see Optional Parameter |
Properties effectors | Description READONLY, gets a list of Effectors assigned to this Cloner |
Methods | Description |
---|---|
Methods addEffector(effector, sensitivity) | Description adds an effector to this Cloner and sets the sensitivity (1=full sensitivity, 0=no sensitivity ==ignore effector) |
Methods setEnabled(flag) | Description set the cloner's root node to the state of the flag (true=enabled) |