parent
2e90b3bce8
commit
2975038891
|
@ -684,17 +684,32 @@ function getMeshIndexRange(indexRanges: Range[], pathRange: Range): Range {
|
||||||
if (indexRanges.length === 0)
|
if (indexRanges.length === 0)
|
||||||
return new Range(0, 0);
|
return new Range(0, 0);
|
||||||
|
|
||||||
let firstIndex;
|
const lastIndexRange = unwrapUndef(_.last(indexRanges));
|
||||||
if (pathRange.start - 1 >= indexRanges.length)
|
const descending = indexRanges[0].start > lastIndexRange.start;
|
||||||
firstIndex = unwrapUndef(_.last(indexRanges)).end;
|
|
||||||
else
|
|
||||||
firstIndex = indexRanges[pathRange.start - 1].start;
|
|
||||||
|
|
||||||
let lastIndex;
|
pathRange = new Range(pathRange.start - 1, pathRange.end - 1);
|
||||||
if (pathRange.end - 1 >= indexRanges.length)
|
|
||||||
lastIndex = unwrapUndef(_.last(indexRanges)).end;
|
|
||||||
else
|
|
||||||
lastIndex = indexRanges[pathRange.end - 1].start;
|
|
||||||
|
|
||||||
return new Range(firstIndex, lastIndex);
|
let startIndex;
|
||||||
|
if (pathRange.start >= indexRanges.length)
|
||||||
|
startIndex = lastIndexRange.end;
|
||||||
|
else if (!descending)
|
||||||
|
startIndex = indexRanges[pathRange.start].start;
|
||||||
|
else
|
||||||
|
startIndex = indexRanges[pathRange.start].end;
|
||||||
|
|
||||||
|
let endIndex;
|
||||||
|
if (pathRange.end >= indexRanges.length)
|
||||||
|
endIndex = lastIndexRange.end;
|
||||||
|
else if (!descending)
|
||||||
|
endIndex = indexRanges[pathRange.end].start;
|
||||||
|
else
|
||||||
|
endIndex = indexRanges[pathRange.end - 1].start;
|
||||||
|
|
||||||
|
if (descending) {
|
||||||
|
const tmp = startIndex;
|
||||||
|
startIndex = endIndex;
|
||||||
|
endIndex = tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Range(startIndex, endIndex);
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,7 +140,7 @@ impl MeshLibrary {
|
||||||
let mut new_interior_indices =
|
let mut new_interior_indices =
|
||||||
Vec::with_capacity(self.cover_indices.interior_indices.len());
|
Vec::with_capacity(self.cover_indices.interior_indices.len());
|
||||||
|
|
||||||
for path_range in &mut self.path_ranges {
|
for path_range in self.path_ranges.iter_mut().rev() {
|
||||||
let old_interior_indices = &self.cover_indices.interior_indices[..];
|
let old_interior_indices = &self.cover_indices.interior_indices[..];
|
||||||
let old_range = path_range.cover_interior_indices.clone();
|
let old_range = path_range.cover_interior_indices.clone();
|
||||||
let old_range = (old_range.start as usize)..(old_range.end as usize);
|
let old_range = (old_range.start as usize)..(old_range.end as usize);
|
||||||
|
|
Loading…
Reference in New Issue