Reenable early Z.

It regressed again!
This commit is contained in:
Patrick Walton 2017-11-11 14:04:57 -08:00
parent 2e90b3bce8
commit 2975038891
2 changed files with 27 additions and 12 deletions

View File

@ -684,17 +684,32 @@ function getMeshIndexRange(indexRanges: Range[], pathRange: Range): Range {
if (indexRanges.length === 0)
return new Range(0, 0);
let firstIndex;
if (pathRange.start - 1 >= indexRanges.length)
firstIndex = unwrapUndef(_.last(indexRanges)).end;
else
firstIndex = indexRanges[pathRange.start - 1].start;
const lastIndexRange = unwrapUndef(_.last(indexRanges));
const descending = indexRanges[0].start > lastIndexRange.start;
let lastIndex;
if (pathRange.end - 1 >= indexRanges.length)
lastIndex = unwrapUndef(_.last(indexRanges)).end;
else
lastIndex = indexRanges[pathRange.end - 1].start;
pathRange = new Range(pathRange.start - 1, pathRange.end - 1);
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);
}

View File

@ -140,7 +140,7 @@ impl MeshLibrary {
let mut new_interior_indices =
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_range = path_range.cover_interior_indices.clone();
let old_range = (old_range.start as usize)..(old_range.end as usize);