[AI CC-CC2021] Получить размер объекта обрезанного Clipping Mask

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Ну да, вопрос, что именно ее ограничивает
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
так как внутри группы содержатся другие группы, а pageItems захватывает только элементы самого верхнего уровня

в выделенной группе не могу получить все pageItems, возвращаются только первого уровня

а что мешает рекурсивно перебрать объекты в каждой groupItem, не пойму? проверяете typename, если это GroupItem - берете ее pageItems. и так далее
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
а что мешает рекурсивно перебрать объекты в каждой groupItem?
Там не всегда получается тото и оно. Я как то совсем недавно нарывался на это - пришлось именно всевсевсе перебирать и искать окончательного родителя
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
пример в студию
Сейчас естественно сходу не найду поскольку на самоискоренении нахожусь да и не уверен что специально смогу повторить
Но тем не менее было достаточно чтобы от рекурсии отказаться
Ну а как с компаундом бороться например предлагаешь?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а что с ним не так и зачем с ним бороться?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
У него нет Clipping
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
а он не может быть clipping контуром
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Да ладно? Даже группа может, попробуй
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
разумеется, я попробовал перед тем, как об этом писать. не делает маску
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
В какой версии делал? В CS6 запросто
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Да просто исходя из логики, допустим маска из неодносвязной области, скажем буква А
Если бы компаунд не мог быть маской то как?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
мда, получилось действительно ) а первый раз не удалось

но! у pathItems внутри такого compoundPathItem clipping == true
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну делов то, проверить один pathItem внутри компаунда и признать его clipping
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Не один, все. Вдобавок они тоже пересекаться могут
Может быть масса вложенных компаундов и клипов
Это ж не корел, тут все заднепроходно
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
так они все и будут clipping, разве нет? )
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
По идее да но родители у них будут свои собственные компаунды понимаешь?
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
ну так и что? ) мы же все равно смотрим среди объектов корневой группы изначально. у компаундов тоже родители есть
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
У компаунда запросто родителем может быть другой компаунд, там по моему были еще какие то подводные камни. Если ты все таки хочешь меня убедить в том что задача может решиться рекурсивным перебором сверху вниз то сам видишь, что это не так.