blob: 823c18b7b58b63ff4ad0634ce8db9375cc7a9b93 [file] [log] [blame]
// Copyright (c) 2015, Google Inc. Please see the AUTHORS file for details.
// All rights reserved. Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
part of vector_math_geometry;
class ColorFilter extends GeometryFilter {
Vector4 color;
ColorFilter(this.color);
@override
List<VertexAttrib> get generates =>
<VertexAttrib>[VertexAttrib('COLOR', 4, 'float')];
@override
MeshGeometry filter(MeshGeometry mesh) {
MeshGeometry output;
if (mesh.getAttrib('COLOR') == null) {
final attributes = <VertexAttrib>[...mesh.attribs]
..add(VertexAttrib('COLOR', 4, 'float'));
output = MeshGeometry.resetAttribs(mesh, attributes);
} else {
output = MeshGeometry.copy(mesh);
}
final VectorList<Vector> colors = output.getViewForAttrib('COLOR');
if (colors is Vector4List) {
for (var i = 0; i < colors.length; ++i) {
colors[i] = color;
}
return output;
} else {
return null;
}
}
}