A {@link NativeType} is a {@link Type} that that provides access to datastored in Java primitive arrays. To this end, implementations maintain a reference to the current storage array and the index of an element in that array. The {@link NativeType} is positioned on the correct storage array and indexby accessors ( {@link Cursor Cursors} and {@link RandomAccess RandomAccesses}).
The {@link NativeType} is the only class that is aware of the actual datatype, i.e., which Java primitive type is used to store the data. On the other hand it does not know the storage layout, i.e., how n-dimensional pixel coordinates map to indices in the current array. It also doesn't know whether and how the data is split into multiple chunks. This is determined by the container implementation (e.g., {@link ArrayImg}, {@link CellImg}, ...). Separating the storage layout from access and operations on the {@link Type}avoids re-implementation for each container type.
@author Stephan Preibisch
@author Stephan Saalfeld
@author Tobias Pietzsch