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: solution.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 |