project method

void project({
  1. required Vector3 point,
  2. required Vector3 normal,
  3. required double size,
  4. double depth = 0.5,
  5. double rotation = 0.0,
})

Places the box so it projects onto point along normal, spanning size world units across and depth units along the normal, centered on point. rotation spins the projection about the normal, in radians.

The texture is sampled across the box's local XZ plane. Give depth enough room to absorb the depth precision at the decal's distance from the camera; a surface outside the box is not painted.

Implementation

void project({
  required Vector3 point,
  required Vector3 normal,
  required double size,
  double depth = 0.5,
  double rotation = 0.0,
}) {
  localTransform = boxTransform(
    point: point,
    normal: normal,
    size: size,
    depth: depth,
    rotation: rotation,
  );
  _writeParameters();
}