Closed admake closed 6 years ago
Я тут подумал, что бесполезные изменения это. Не знаю, если не навредят, то принимайте. Если не интересно - не обижусь.
если не навредят, то принимайте
Там есть замена rib.profile
<- rib.elm
, но люди в своих формулах могли создать контекст, в котором rib
имеет свойство profile
В своих целях делаю попытку подправить
Лучше это сделать в том месте, где вызывается perimeter_inner
- вы ведь можете добавить алиасы своим объектам или завернуть в Proxy. Последнее - вообще полезно. Не просто расширяет кругозор, но всю картину мира переворачивает - вы становитесь Богом.
Так в том и дело, что вот этот кусок
const perimeter = elm.perimeter ? elm.perimeter : (
this.insert_type == $p.enm.inserts_types.МоскитнаяСетка
? elm.layer.perimeter_inner(row_ins_spec.sz)
: elm.layer.perimeter
)`
Что значит алиасы в этом контексте?
Proxy это круто, всё ждал момента, где же их применить.
Получается напрямую запрещаем переопределить rib.profile
-> rib.elm
.
Предусмотреть в своем коде (Модификаторе) обращение к .profile
из rib
проксировав к .elm
?
Всё-таки, как, не испортив ни чьи ожидания, расширить возможности этого куска?
Внутри perimeter_inner
Proxy не нужен - его можно использовать выше, чтобы притвориться элементом. У вас elm
и layer
какого типа?
Ну и вообще, Proxy
- это тяжелая артиллерия. Если нужные контексту свойства известны заранее, их проще определить явно, через defineProperty
elm
просто Object, собранный вот так для контекста вставки:
const elm = {
_row: {},
elm: 0,
clr: clr,
layer: contour,
};
А вот layer
класса Contour
Можно поступить так:
Вы примете первый коммит, он привносит только косметические изменения и дополнительно прокидывает elm
. Никто ничего не заметит.
Логические изменения я сам внесу через модификатор. Осталось придумать как.
Вообще я против строго переопределять .profile
. С Proxy можно придумать умный get()
, который бы отдавал то, что ждут.
По первому коммиту, там где elm: curr.elm
- в переменной curr
, нет свойства elm
- не надо ничего прокидывать.
Какая именно вставка и в каком контексте вас беспокоит?
Корректировку угла в +360 сделал. Остальное мне не понятно.
Я полез сюда, потому, что хотел научить формулу для Москитки забирать и углы у профилей периметра.
И оказалось, что не во всех случаях углы a1
и a2
корректные. Это тянулось от того, что периметр москитки это вовсе не створка, на которой она будет висеть, а то что за ней.
Вот эскиз например:
Долгая история. Хотел обойтись малой кровью. Вообще встала потребность дать больше данных для производства 'кривых' москиток.
забирать и углы у профилей периметра
У каждого ребра есть sub_path
типа Paper.Path
, и расчет угла в точке касания путей не должен вызывать трудностей. Этот PR закрываю, давайте с чистого листа.
Принято
elm не являлся тем, кем кого ожидала вставка по периметру. В своих целях делаю попытку подправить.