26.05.02 Artifact Volume
Artifact volume models each artifact as a three-dimensional box. The box then participates in the reconstruction logic, instead of relying on the explicit content of the artifact. For layout modes that use artifact volume, the scale member of the Embedding object SHOULD be ignored and a new member is introduced to Artifact's Metadata:
interface Metadata {
volume: Volume // OPTIONAL
// ...
}
where
volumeis OPTIONAL, and its value MUST be of typeVolume. If it is not provided but is needed for the reconstruction logic, the default value MUST be used.
The Volume type object is used to represent the dimensions of the artifact for the reconstruction logic, such as the stacking logic. The Volume type is defined as
type Volume = {
width: number // REQUIRED
length: number // REQUIRED
height: number // REQUIRED
}
where each member is REQUIRED. If the artifact has not been rotated in the scene, then
widthcorresponds to the x-axis in the scene.lengthcorresponds to the y-axis in the scene.heightcorresponds to the z-axis in the scene.
The default value for volume is 1 for each member of the Volume type.
Implementations SHOULD proportionally scale down oversized artifacts to fit within their volume box, or their volume box multiplied by a factor. The Layout Mode module introduces a new member in FormProperties:
interface FormProperties {
scaleVolumeMultiplier: number // OPTIONAL
// ...
}
where
scaleVolumeMultiplieris OPTIONAL and its value MUST be of typenumber. It represents the tolerance for oversized artifacts and the target size of the scale-down, i.e.,volumescaleVolumeMultiplier. If it is not provided, the default value1MAY be used, or implementations MAY use their own default value and SHOULD state the default value they use.