Class AccessorBase
An accessor defines a method for retrieving data as typed arrays from within a buffer view. See . accessor in the glTF 2.0 specification.
Inherited Members
Namespace: GLTFast.Schema
Assembly: glTFast.dll
Syntax
[Serializable]
public abstract class AccessorBase : NamedObject
Fields
bufferView
The index of the bufferView. If this is undefined, look in the sparse object for the index and value buffer views.
Declaration
public int bufferView
Field Value
| Type | Description |
|---|---|
| int |
byteOffset
The offset relative to the start of the bufferView in bytes. This must be a multiple of the size of the component datatype.
Declaration
public int byteOffset
Field Value
| Type | Description |
|---|---|
| int |
componentType
The datatype of components in the attribute.
All valid values correspond to WebGL enums.
The corresponding typed arrays are: Int8Array, Uint8Array, Int16Array,
Uint16Array, Uint32Array, and Float32Array, respectively.
5125 (UNSIGNED_INT) is only allowed when the accessor contains indices
i.e., the accessor is only referenced by primitive.indices.
Declaration
public GltfComponentType componentType
Field Value
| Type | Description |
|---|---|
| GltfComponentType |
count
The number of attributes referenced by this accessor, not to be confused with the number of bytes or number of components.
Declaration
public int count
Field Value
| Type | Description |
|---|---|
| int |
max
Maximum value of each component in this attribute. Both min and max arrays have the same length. The length is determined by the value of the type property; it can be 1, 2, 3, 4, 9, or 16.
When componentType is 5126 (FLOAT) each array value must be stored as
double-precision JSON number with numerical value which is equal to
buffer-stored single-precision value to avoid extra runtime conversions.
normalized property has no effect on array values: they always correspond
to the actual values stored in the buffer. When accessor is sparse, this
property must contain max values of accessor data with sparse substitution
applied.
Declaration
public float[] max
Field Value
| Type | Description |
|---|---|
| float[] |
min
Minimum value of each component in this attribute. Both min and max arrays have the same length. The length is determined by the value of the type property; it can be 1, 2, 3, 4, 9, or 16.
When componentType is 5126 (FLOAT) each array value must be stored as
double-precision JSON number with numerical value which is equal to
buffer-stored single-precision value to avoid extra runtime conversions.
normalized property has no effect on array values: they always correspond
to the actual values stored in the buffer. When accessor is sparse, this
property must contain min values of accessor data with sparse substitution
applied.
Declaration
public float[] min
Field Value
| Type | Description |
|---|---|
| float[] |
normalized
Specifies whether integer data values should be normalized
(true) to [0, 1] (for unsigned types) or [-1, 1] (for signed types),
or converted directly (false) when they are accessed.
Must be false when accessor is used for animation data.
Declaration
public bool normalized
Field Value
| Type | Description |
|---|---|
| bool |
type
Specifies if the attribute is a scalar, vector, or matrix, and the number of elements in the vector or matrix.
Declaration
[Obsolete("Use GetAttributeType and SetAttributeType for access.")]
public string type
Field Value
| Type | Description |
|---|---|
| string |
Properties
ByteSize
Overall, byte size. Ignores interleaved or sparse accessors
Declaration
public int ByteSize { get; }
Property Value
| Type | Description |
|---|---|
| int |
ElementByteSize
Byte size of one element
Declaration
public int ElementByteSize { get; }
Property Value
| Type | Description |
|---|---|
| int |
IsSparse
True if the accessor is sparse
Declaration
public bool IsSparse { get; }
Property Value
| Type | Description |
|---|---|
| bool |
Sparse
Sparse storage of attributes that deviate from their initialization value.
Declaration
public abstract AccessorSparseBase Sparse { get; }
Property Value
| Type | Description |
|---|---|
| AccessorSparseBase |
Methods
GetAccessorAttributeType(int)
Get one-dimensional glTF attribute type by number of components per elements. Note that this does not support matrix types.
Declaration
public static GltfAccessorAttributeType GetAccessorAttributeType(int dimension)
Parameters
| Type | Name | Description |
|---|---|---|
| int | dimension | Number of components per element |
Returns
| Type | Description |
|---|---|
| GltfAccessorAttributeType | Corresponding one-dimensional glTF attribute type |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown when dimension is not between 1 and 4. |
GetAccessorAttributeTypeLength(GltfAccessorAttributeType)
Get number of components of glTF attribute type.
Declaration
public static int GetAccessorAttributeTypeLength(GltfAccessorAttributeType type)
Parameters
| Type | Name | Description |
|---|---|---|
| GltfAccessorAttributeType | type | glTF attribute type |
Returns
| Type | Description |
|---|---|
| int | Number of components |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown when the value of type is unknown. |
GetAttributeType()
GltfAccessorAttributeType typed/cached getter from the type string.
Declaration
public GltfAccessorAttributeType GetAttributeType()
Returns
| Type | Description |
|---|---|
| GltfAccessorAttributeType | The Accessor's attribute type, if it could be retrieved correctly. Undefined otherwise |
GetComponentType(VertexAttributeFormat)
Converts Unity vertex attribute format to glTF component type.
Declaration
public static GltfComponentType GetComponentType(VertexAttributeFormat format)
Parameters
| Type | Name | Description |
|---|---|---|
| VertexAttributeFormat | format | vertex attribute format |
Returns
| Type | Description |
|---|---|
| GltfComponentType | glTF component type |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown when the value of format is unknown. |
GetComponentTypeSize(GltfComponentType)
Provides size of components by type
Declaration
public static int GetComponentTypeSize(GltfComponentType componentType)
Parameters
| Type | Name | Description |
|---|---|---|
| GltfComponentType | componentType | glTF component type |
Returns
| Type | Description |
|---|---|
| int | Component size in bytes |
Exceptions
| Type | Condition |
|---|---|
| ArgumentOutOfRangeException | Thrown when value of componentType is unknown |
SetAttributeType(GltfAccessorAttributeType)
GltfAccessorAttributeType typed setter for the type string.
Declaration
public void SetAttributeType(GltfAccessorAttributeType attributeType)
Parameters
| Type | Name | Description |
|---|---|---|
| GltfAccessorAttributeType | attributeType | Attribute type |
TryGetBounds()
For 3D positional data, returns accessor's bounding box. Applies coordinate system transform (glTF to Unity)
Declaration
public Bounds? TryGetBounds()
Returns
| Type | Description |
|---|---|
| Bounds? | Bounding box enclosing the minimum and maximum values |