Vertices constructor
Creates a set of vertex data for use with Canvas.drawVertices.
The mode
and positions
parameters must not be null.
If the textureCoordinates
or colors
parameters are provided, they must
be the same length as positions
.
If the indices
parameter is provided, all values in the list must be
valid index values for positions
.
Implementation
Vertices(
VertexMode mode,
List<Offset> positions, {
List<Offset> textureCoordinates,
List<Color> colors,
List<int> indices,
}) : assert(mode != null),
assert(positions != null) {
if (textureCoordinates != null && textureCoordinates.length != positions.length)
throw ArgumentError('"positions" and "textureCoordinates" lengths must match.');
if (colors != null && colors.length != positions.length)
throw ArgumentError('"positions" and "colors" lengths must match.');
if (indices != null && indices.any((int i) => i < 0 || i >= positions.length))
throw ArgumentError('"indices" values must be valid indices in the positions list.');
final Float32List encodedPositions = _encodePointList(positions);
final Float32List encodedTextureCoordinates = (textureCoordinates != null)
? _encodePointList(textureCoordinates)
: null;
final Int32List encodedColors = colors != null
? _encodeColorList(colors)
: null;
final Uint16List encodedIndices = indices != null
? Uint16List.fromList(indices)
: null;
_constructor();
if (!_init(mode.index, encodedPositions, encodedTextureCoordinates, encodedColors, encodedIndices))
throw ArgumentError('Invalid configuration for vertices.');
}