Don't return undefined when an empty model is passed to makerjs.measure.modelExtents
Currently makerjs.measure.modelExtents({ models: {} }) returns undefined which makes code prone to NPE's
This PR updates modelExtents to instead return an empty IMeasureWithCenter object: { height: 0, width: 0, center: null, low: null, high: null }
It might be better to return { width: 0, height: 0, center: [0, 0], low: [0, 0], high: [0, 0] } instead since according to the types, center, low, and high aren't nullable
Thanks for the PR! But, since the whole library doesn't have 100% test coverage (my fault not yours), I'm a little hesitant to take this. Perhaps you could add your own defensive function in your own code:
function alwaysMeasureModel(model) {
return makerjs.measure.modelExtents(model) || { width: 0, height: 0, center: [0, 0], low: [0, 0], high: [0, 0] };
}
Or perhaps the return type of modelExtents should be changed to IMeasureWithCenter | null? I created this PR mostly because I got bitten by this in production
Sorry it bit you in production. Yes the | null is a good approach.
Updated PR. Also updated method to explicitly return null