import defaultValue from "./defaultValue.js"; /** * Attributes, which make up a geometry's vertices. Each property in this object corresponds to a * {@link GeometryAttribute} containing the attribute's data. *

* Attributes are always stored non-interleaved in a Geometry. *

* * @alias GeometryAttributes * @constructor */ function GeometryAttributes(options) { options = defaultValue(options, defaultValue.EMPTY_OBJECT); /** * The 3D position attribute. *

* 64-bit floating-point (for precision). 3 components per attribute. *

* * @type GeometryAttribute * * @default undefined */ this.position = options.position; /** * The normal attribute (normalized), which is commonly used for lighting. *

* 32-bit floating-point. 3 components per attribute. *

* * @type GeometryAttribute * * @default undefined */ this.normal = options.normal; /** * The 2D texture coordinate attribute. *

* 32-bit floating-point. 2 components per attribute *

* * @type GeometryAttribute * * @default undefined */ this.st = options.st; /** * The bitangent attribute (normalized), which is used for tangent-space effects like bump mapping. *

* 32-bit floating-point. 3 components per attribute. *

* * @type GeometryAttribute * * @default undefined */ this.bitangent = options.bitangent; /** * The tangent attribute (normalized), which is used for tangent-space effects like bump mapping. *

* 32-bit floating-point. 3 components per attribute. *

* * @type GeometryAttribute * * @default undefined */ this.tangent = options.tangent; /** * The color attribute. *

* 8-bit unsigned integer. 4 components per attribute. *

* * @type GeometryAttribute * * @default undefined */ this.color = options.color; } export default GeometryAttributes;