pc.LayerComposition
Layer Composition is a collection of pc.Layer that is fed to pc.Scene#layers to define rendering order.
Summary
Properties
cameras | A read-only array of pc.CameraComponent that can be used during rendering, e. |
layerList | A read-only array of pc.Layer sorted in the order they will be rendered. |
subLayerEnabled | A read-only array of boolean values, matching pc.Layer#layerList. |
subLayerList | A read-only array of boolean values, matching pc.Layer#layerList. |
Methods
getLayerById | Finds a layer inside this composition by its ID. |
getLayerByName | Finds a layer inside this composition by its name. |
getOpaqueIndex | Gets index of the opaque part of the supplied layer in the pc.Layer#layerList. |
getTransparentIndex | Gets index of the semi-transparent part of the supplied layer in the pc.Layer#layerList. |
insert | Inserts a layer (both opaque and semi-transparent parts) at the chosen index in the pc.Layer#layerList. |
insertOpaque | Inserts an opaque part of the layer (non semi-transparent mesh instances) at the chosen index in the pc.Layer#layerList. |
insertTransparent | Inserts a semi-transparent part of the layer at the chosen index in the pc.Layer#layerList. |
push | Adds a layer (both opaque and semi-transparent parts) to the end of the pc.Layer#layerList. |
pushOpaque | Adds part of the layer with opaque (non semi-transparent) objects to the end of the pc.Layer#layerList. |
pushTransparent | Adds part of the layer with semi-transparent objects to the end of the pc.Layer#layerList. |
remove | Removes a layer (both opaque and semi-transparent parts) from pc.Layer#layerList. |
removeOpaque | Removes an opaque part of the layer (non semi-transparent mesh instances) from pc.Layer#layerList. |
removeTransparent | Removes a transparent part of the layer from pc.Layer#layerList. |
sortOpaqueLayers | Used to determine which array of layers has any opaque sublayer that is on top of all the opaque sublayers in the other array. |
sortTransparentLayers | Used to determine which array of layers has any transparent sublayer that is on top of all the transparent sublayers in the other array. |
Details
Constructor
LayerComposition()
Create a new layer composition.
Properties
A read-only array of pc.CameraComponent that can be used during rendering, e.g. inside pc.Layer#onPreCull, pc.Layer#onPostCull, pc.Layer#onPreRender, pc.Layer#onPostRender.
A read-only array of boolean values, matching pc.Layer#layerList. True means the layer is rendered, false means it's skipped.
A read-only array of boolean values, matching pc.Layer#layerList. True means only semi-transparent objects are rendered, and false means opaque.
Methods
getLayerById(id)
Finds a layer inside this composition by its ID. null is returned, if nothing is found.
Parameters
id | Number | An ID of the layer to find. |
Returns
pc.Layer The layer corresponding to the specified ID. Returns null if layer is not found.getLayerByName(name)
Finds a layer inside this composition by its name. null is returned, if nothing is found.
Parameters
name | String | The name of the layer to find. |
Returns
pc.Layer The layer corresponding to the specified name. Returns null if layer is not found.getOpaqueIndex(layer)
Gets index of the opaque part of the supplied layer in the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to find index of. |
Returns
Number The index of the opaque part of the specified layer.getTransparentIndex(layer)
Gets index of the semi-transparent part of the supplied layer in the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to find index of. |
Returns
Number The index of the semi-transparent part of the specified layer.insert(layer, index)
Inserts a layer (both opaque and semi-transparent parts) at the chosen index in the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to add. |
index | Number | Insertion position. |
insertOpaque(layer, index)
Inserts an opaque part of the layer (non semi-transparent mesh instances) at the chosen index in the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to add. |
index | Number | Insertion position. |
insertTransparent(layer, index)
Inserts a semi-transparent part of the layer at the chosen index in the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to add. |
index | Number | Insertion position. |
push(layer)
Adds a layer (both opaque and semi-transparent parts) to the end of the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to add. |
pushOpaque(layer)
Adds part of the layer with opaque (non semi-transparent) objects to the end of the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to add. |
pushTransparent(layer)
Adds part of the layer with semi-transparent objects to the end of the pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to add. |
remove(layer)
Removes a layer (both opaque and semi-transparent parts) from pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to remove. |
removeOpaque(layer)
Removes an opaque part of the layer (non semi-transparent mesh instances) from pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to remove. |
removeTransparent(layer)
Removes a transparent part of the layer from pc.Layer#layerList.
Parameters
layer | pc.Layer | A pc.Layer to remove. |
sortOpaqueLayers(layersA, layersB)
Used to determine which array of layers has any opaque sublayer that is on top of all the opaque sublayers in the other array.
Parameters
layersA | Number[] | IDs of layers |
layersB | Number[] | IDs of layers |
Returns
Number Returns a negative number if any of the opaque sublayers in layersA is on top of all the opaque sublayers in layersB, or a positive number if any of the opaque sublayers in layersB is on top of all the opaque sublayers in layersA, or 0 otherwise.sortTransparentLayers(layersA, layersB)
Used to determine which array of layers has any transparent sublayer that is on top of all the transparent sublayers in the other array.
Parameters
layersA | Number[] | IDs of layers |
layersB | Number[] | IDs of layers |