File tree Expand file tree Collapse file tree 2 files changed +17
-1
lines changed
lib/src/vector_math_geometry Expand file tree Collapse file tree 2 files changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -213,14 +213,16 @@ class MeshGeometry {
213
213
// Copy over the buffer data:
214
214
int bufferOffset = 0 ;
215
215
int indexOffset = 0 ;
216
+ int vertexOffset = 0 ;
216
217
for (int i = 0 ; i < meshes.length; ++ i) {
217
218
final MeshGeometry srcMesh = meshes[i];
218
219
mesh.buffer.setAll (bufferOffset, srcMesh.buffer);
219
220
220
221
if (totalIndices > 0 ) {
221
222
for (int j = 0 ; j < srcMesh.indices.length; ++ j) {
222
- mesh.indices[j + indexOffset] = srcMesh.indices[j] + bufferOffset ;
223
+ mesh.indices[j + indexOffset] = srcMesh.indices[j] + vertexOffset ;
223
224
}
225
+ vertexOffset += srcMesh.length;
224
226
indexOffset += srcMesh.indices.length;
225
227
}
226
228
Original file line number Diff line number Diff line change @@ -122,11 +122,25 @@ void testColorFilter() {
122
122
}
123
123
}
124
124
125
+ void testCombineIndices () {
126
+ // Combining two meshes should generate indices that are not out of range.
127
+ SphereGenerator sphereGenerator = new SphereGenerator ();
128
+
129
+ MeshGeometry sphere0 = sphereGenerator.createSphere (10.0 ,
130
+ latSegments: 8 , lonSegments: 8 );
131
+ MeshGeometry sphere1 = sphereGenerator.createSphere (10.0 ,
132
+ latSegments: 8 , lonSegments: 8 );
133
+
134
+ MeshGeometry combined = new MeshGeometry .combine ([sphere0, sphere1]);
135
+ expect (combined.indices, everyElement (lessThan (combined.length)));
136
+ }
137
+
125
138
void main () {
126
139
group ('Geometry' , () {
127
140
group ('Generators' , () {
128
141
test ('normal generation' , testGenerateNormals);
129
142
test ('tangent generation' , testGenerateTangents);
143
+ test ('geometry combination' , testCombineIndices);
130
144
});
131
145
group ('Filters' , () {
132
146
test ('transform filter' , testTransformFilter);
You can’t perform that action at this time.
0 commit comments