Point fixes and asymmetry tests

This commit is contained in:
Bán Dénes 2020-05-31 20:33:23 +02:00
parent cdb081a377
commit afdc467daf
4 changed files with 44 additions and 22 deletions

View file

@ -1,6 +1,8 @@
const m = require('makerjs')
const fs = require('fs-extra')
const u = require('./utils')
const Point = exports.Point = class Point {
constructor(x=0, y=0, r=0, meta={}) {
if (Array.isArray(x)) {
@ -54,7 +56,7 @@ const Point = exports.Point = class Point {
this.x,
this.y,
this.r,
this.meta
u.deepcopy(this.meta)
)
}
}
@ -186,14 +188,18 @@ exports.parse = (config) => {
x += (config.mirror.distance || 0) / 2
const mirrored_points = {}
for (const [name, p] of Object.entries(points)) {
if (p.meta.col.asym == 'left' || p.meta.row.asym == 'left') continue
const mp = p.clone().mirror(x)
mp.meta.mirrored = true
const mname = `mirror_${name}`
mirrored_points[mname] = mp
delete mp.meta.asym
mirrored_points[`mirror_${name}`] = mp
if (p.meta.col.asym == 'right' || p.meta.row.asym == 'right') {
p.meta.col.skip = true
}
}
Object.assign(points, mirrored_points)
}
const filtered = {}
for (const [k, p] of Object.entries(points)) {
if (p.meta.col.skip || p.meta.row.skip) continue