PointsCloudSystem

The PointCloudSystem (PCS) is a single updatable mesh. The points corresponding to the vertices of this big mesh. As it is just a mesh, the PointCloudSystem has all the same properties as any other BJS mesh : not more, not less. It can be scaled, rotated, translated, enlighted, textured, moved, etc. The PointCloudSytem is also a particle system, with each point being a particle. It provides some methods to manage the particles. However it is behavior agnostic. This means it has no emitter, no particle physics, no particle recycler. You have to implement your own behavior.

Full documentation here : TO BE ENTERED

Hierarchy

  • PointsCloudSystem

Implements

Index

Constructors

constructor

Find examples in Playground
  • Creates a PCS (Points Cloud System) object

    Parameters

    • name: string

      (String) is the PCS name, this will be the underlying mesh name

    • pointSize: number

      (number) is the size for each point

    • scene: Scene

      (Scene) is the scene in which the PCS is added

    • Optional options: object

      defines the options of the PCS e.g.

      • updatable (optional boolean, default true) : if the PCS must be updatable or immutable
      • Optional updatable?: boolean

    Returns PointsCloudSystem

Properties

computeBoundingBox

Find examples in Playground
computeBoundingBox: boolean

Gets if setParticles() computes or not the mesh bounding box when computing the particle positions.

computeParticleColor

Find examples in Playground
computeParticleColor: boolean

Gets if setParticles() computes the particle colors or not. Default value : false. The PCS is faster when it's set to false. Note : the particle colors are stored values, so setting computeParticleColor to false will keep yet the last colors set.

computeParticleRotation

Find examples in Playground
computeParticleRotation: boolean

Tells to setParticles() to compute the particle rotations or not Default value : false. The PCS is faster when it's set to false Note : particle rotations are only applied to parent particles Note : the particle rotations aren't stored values, so setting computeParticleRotation to false will prevents the particle to rotate

computeParticleTexture

Find examples in Playground
computeParticleTexture: boolean

Gets if setParticles() computes the particle textures or not. Default value : false. The PCS is faster when it's set to false. Note : the particle textures are stored values, so setting computeParticleTexture to false will keep yet the last colors set.

counter

Find examples in Playground
counter: number

This a counter for your own usage. It's not set by any SPS functions.

isAlwaysVisible

Find examples in Playground
isAlwaysVisible: boolean

Sets the PCS as always visible or not doc :

mesh

Find examples in Playground
mesh: Mesh

The PCS mesh. It's a standard BJS Mesh, so all the methods from the Mesh class are avalaible.

name

Find examples in Playground
name: string

The PCS name. This name is also given to the underlying mesh.

nbParticles

Find examples in Playground
nbParticles: number

The PCS total number of particles. Read only. Use PCS.counter instead if you need to set your own value.

particles

Find examples in Playground
particles: CloudPoint[]

The PCS array of cloud point objects. Just access each particle as with any classic array. Example : var p = SPS.particles[i];

vars

Find examples in Playground
vars: any

This empty object is intended to store some PCS specific or temporary values in order to lower the Garbage Collector activity. Please read :

Methods

addPoints

Find examples in Playground
  • addPoints(nb: number, pointFunction?: any): number
  • Adds points to the PCS in random positions within a unit sphere

    Parameters

    • nb: number

      (positive integer) the number of particles to be created from this model

    • Optional pointFunction: any

      is an optional javascript function to be called for each particle on PCS creation

    Returns number

    the number of groups in the system

addSurfacePoints

Find examples in Playground
  • addSurfacePoints(mesh: Mesh, nb: number, colorWith?: number, color?: Color4 | number, range?: number): number
  • Adds points to the PCS from the surface of the model shape

    Parameters

    • mesh: Mesh

      is any Mesh object that will be used as a surface model for the points

    • nb: number

      (positive integer) the number of particles to be created from this model

    • Optional colorWith: number

      determines whether a point is colored using color (default), uv, random, stated or none (invisible)

    • Optional color: Color4 | number

      (color4) to be used when colorWith is stated or color (number) when used to specify texture position

    • Optional range: number

      (number from 0 to 1) to determine the variation in shape and tone for a stated color

    Returns number

    the number of groups in the system

addVolumePoints

Find examples in Playground
  • addVolumePoints(mesh: Mesh, nb: number, colorWith?: number, color?: Color4 | number, range?: number): number
  • Adds points to the PCS inside the model shape

    Parameters

    • mesh: Mesh

      is any Mesh object that will be used as a surface model for the points

    • nb: number

      (positive integer) the number of particles to be created from this model

    • Optional colorWith: number

      determines whether a point is colored using color (default), uv, random, stated or none (invisible)

    • Optional color: Color4 | number

      (color4) to be used when colorWith is stated or color (number) when used to specify texture position

    • Optional range: number

      (number from 0 to 1) to determine the variation in shape and tone for a stated color

    Returns number

    the number of groups in the system

afterUpdateParticles

Find examples in Playground
  • afterUpdateParticles(start?: number, stop?: number, update?: boolean): void
  • This will be called by setParticles() after all the other treatments and just before the actual mesh update. This will be passed three parameters. This does nothing and may be overwritten by the user.

    Parameters

    • Optional start: number

      the particle index in the particle array where to start to iterate, same than the value passed to setParticle()

    • Optional stop: number

      the particle index in the particle array where to stop to iterate, same than the value passed to setParticle()

    • Optional update: boolean

      the boolean update value actually passed to setParticles()

    Returns void

beforeUpdateParticles

Find examples in Playground
  • beforeUpdateParticles(start?: number, stop?: number, update?: boolean): void
  • This will be called before any other treatment by setParticles() and will be passed three parameters. This does nothing and may be overwritten by the user.

    Parameters

    • Optional start: number

      the particle index in the particle array where to start to iterate, same than the value passed to setParticle()

    • Optional stop: number

      the particle index in the particle array where to stop to iterate, same than the value passed to setParticle()

    • Optional update: boolean

      the boolean update value actually passed to setParticles()

    Returns void

buildMeshAsync

Find examples in Playground
  • buildMeshAsync(): Promise<Mesh>
  • Builds the PCS underlying mesh. Returns a standard Mesh. If no points were added to the PCS, the returned mesh is just a single point.

    Returns Promise<Mesh>

    a promise for the created mesh

dispose

Find examples in Playground
  • dispose(): void

initParticles

Find examples in Playground
  • initParticles(): void
  • This function does nothing. It may be overwritten to set all the particle first values. The PCS doesn't call this function, you may have to call it by your own. doc :

    Returns void

recycleParticle

Find examples in Playground
  • This function does nothing. It may be overwritten to recycle a particle The PCS doesn't call this function, you can to call it doc :

    Parameters

    Returns CloudPoint

    the recycled particle

refreshVisibleSize

Find examples in Playground
  • Visibilty helper : Recomputes the visible size according to the mesh bounding box doc :

    Returns PointsCloudSystem

    the PCS.

setParticles

Find examples in Playground
  • Sets all the particles : this method actually really updates the mesh according to the particle positions, rotations, colors, textures, etc. This method calls updateParticle() for each particle of the SPS. For an animated SPS, it is usually called within the render loop.

    Parameters

    • Optional start: number

      The particle index in the particle array where to start to compute the particle property values (default 0)

    • Optional end: number

      The particle index in the particle array where to stop to compute the particle property values (default nbParticle - 1)

    • Optional update: boolean

      If the mesh must be finally updated on this call after all the particle computations (default true)

    Returns PointsCloudSystem

    the PCS.

setVisibilityBox

Find examples in Playground
  • setVisibilityBox(size: number): void
  • Visibility helper : Sets the size of a visibility box, this sets the underlying mesh bounding box.

    Parameters

    • size: number

      the size (float) of the visibility box note : this doesn't lock the PCS mesh bounding box. doc :

    Returns void

updateParticle

Find examples in Playground
  • Updates a particle : this function should be overwritten by the user. It is called on each particle by setParticles(). This is the place to code each particle behavior. doc :

    example

    : just set a particle position or velocity and recycle conditions

    Parameters

    Returns CloudPoint

    the updated particle

Generated using TypeDoc