pushPoint method

void pushPoint(
  1. Vector4 newVector4,
  2. Object3D object,
  3. Camera camera
)

Implementation

void pushPoint(Vector4 newVector4, Object3D object, Camera camera) {
  double invW = 1 / newVector4.w;
  newVector4.z *= invW;
  if ( newVector4.z >= - 1 && newVector4.z <= 1 ) {
    _sprite = getNextSpriteInPool();
    _sprite.id = object.id;
    _sprite.x = newVector4.x * invW;
    _sprite.y = newVector4.y * invW;
    _sprite.z = newVector4.z;
    _sprite.renderOrder = object.renderOrder;
    _sprite.object = object;
    _sprite.rotation = object.rotation;
    _sprite.scale.x = object.scale.x * ( _sprite.x - ( newVector4.x + camera.projectionMatrix.storage[ 0 ] ) / ( newVector4.w + camera.projectionMatrix.storage[ 12 ] ) ).abs();
    _sprite.scale.y = object.scale.y * ( _sprite.y - ( newVector4.y + camera.projectionMatrix.storage[ 5 ] ) / ( newVector4.w + camera.projectionMatrix.storage[ 13 ] ) ).abs();
    _sprite.material = object.material;
    _renderData.elements.add( _sprite );
  }
}