[uquote="Forward",url="/forum/viewtopic.php?p=3402144#p3402144"]Чтобы было более понятно, я бы для каждого слоя выделил бы дополнительный атрибут (включен - выключен), и отдельно (позитив - негатив).[/uquote]
Изначально так и планировал сделать, но столкнулся с косяком в шарпе - атрибут selectedindex у комбобоксов чекбоксов, расположенных на одной форме работает через
одну общую переменную, и иногда получается коллизия, как это обойти пока не придумал, а так - да в классе поля все предусмотрены, и инверсия и разрешение слоя.
Добавлено after 8 minutes 30 seconds:
[uquote="smacorp",url="/forum/viewtopic.php?p=3402025#p3402025"]Я бы сделал так:[/uquote]
То есть вся доработка сводиться к тому что:
1. При открытии файла, смотрим сигнатуру (допустим "mask") в названии файла (поле сигнатура добавлено в конфиг)
2. Если в названии она не встречается, или она не определена в конфиге - берем размер реперов из настроек.
3. Если в названии она есть добавляем к размеру реперов припуск умноженный на 2 (поле припуск добавлено в конфиг).
4. Исходя из вышеизложенного ищем реперы.
Все это актуально только для первого слоя, в остальных поиск реперов не производим.
Почему только для первого?
Ну во первых исходя из того, что он может быть один единственный.
Во вторых - слои я объединяю не на уровне графики а на уровне найденных в гербере примитивов (просто сливаю два массива),
и количество реперов после объединения может удвоиться.
Поиск же ведется по редко используемому размеру, и условие того, что реперы найдены это количество - 4 (не больше и не меньше),
иначе это не реперы.
Если искать после объединения, или взаимоперемещения слоев, результат поиска реперов будет непредсказуемый.
Ну и в третьих, я считаю, что реперов найденных в одном из файлов одного и того же проекта - достаточно.
UPD:
Приходит на ум еще один способ:
Если реперы в файле не найдены по установленным размерам, пробуем найти реперы с учетом припуска (поле добавлено в конфиг),
если результат поиска равен 4 - это реперы иначе их нет.
Короче жду отзывы
