API

Class 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 PointCloudSystem 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

Implements

Index
  • 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. Has no effect on a WebGPU engine.

    • scene: Scene

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

    • Optionaloptions: { updatable?: boolean }

      defines the options of the PCS e.g.

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

    Returns PointsCloudSystem

counter: number = 0

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

mesh?: Mesh

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

name: string

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

nbParticles: number = 0

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

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: any = {}

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

  • get 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.

    Returns boolean

  • set computeParticleColor(val: boolean): void

    Tells to setParticles() to compute the particle colors or not. Default value : true. 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.

    Parameters

    • val: boolean

    Returns void

  • set computeParticleRotation(val: boolean): void

    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

    Parameters

    • val: boolean

    Returns void

  • 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

    • 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

  • 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

    • OptionalcolorWith: number

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

    • Optionalcolor: number | Color4

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

    • Optionalrange: 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

  • 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

    • OptionalcolorWith: number

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

    • Optionalcolor: number | Color4

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

    • Optionalrange: 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

  • 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

    • Optionalstart: number

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

    • Optionalstop: number

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

    • Optionalupdate: boolean

      the boolean update value actually passed to setParticles()

    Returns 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

    • Optionalstart: number

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

    • Optionalstop: number

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

    • Optionalupdate: boolean

      the boolean update value actually passed to setParticles()

    Returns void

  • 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.

    Parameters

    • Optionalmaterial: Material

      The material to use to render the mesh. If not provided, will create a default one

    Returns Promise<Mesh>

    a promise for the created mesh

  • 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

    • start: number = 0

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

    • end: number = ...

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

    • update: boolean = true

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

    Returns PointsCloudSystem

    the PCS.

  • 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