Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
40
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
      1. Чувствительность

Если регион чувствителен к какому-то конкретному типу события, то владелец региона собирает копии всех событий этого типа, которые пересекли регион. Если другие регионы чувствительны к этому же самому типу и событие с ними пересекается, то они тоже накапливают копии события – но с возможно другим набором прямоугольников.

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

Если регион нечувствителен к некоему типу события, владелец региона никогда не будет накапливать этот тип события. Атрибут чувствительности не модифицирует набор прямоугольников события и не оказывает никакого влияния на способности события продолжать свой путь сквозь пространство событий.

      1. Непрозрачность

Непрозрачные регионы блокируют дальнейшее прохождение набора прямоугольников события сквозь пространство событий. Атрибут непрозрачности управляет тем, корректируется ли набор прямоугольников события в результате взаимодействия с регионом.

Если регион непрозрачен для какого-то типа события, любое событие этого типа, пересекающее регион, получает набор прямоугольников события, откорректированный таким образом, что отсекается пересекаемым регионом. Эти изменения набора прямоугольников таковы, что они включают прямоугольники меньших размеров. Эти новые прямоугольники описывают части события, которые остались видимы для регионов, находящихся в пространстве событий позади этого региона.

Если какой-то регион не является непрозрачным для какого-то типа события, то для событий этого типа набор прямоугольников никогда не подвергается корректировке в результате пересечения с этим регионом.

      1. Краткая сводка атрибутов

В следующей таблице суммируется, как атрибуты региона оказывают воздействие на пересекающие регион события:

Если регион является:

То событие является:

И набор для прямоугольников является:

Не чувствительным, не непрозрачным

Проигнорированным

Не подвергшимся воздействию

Не чувствительным, непрозрачным

Проигнорированным

Подвергшимся воздействию

Чувствительным, не непрозрачным

Собранным

Не подвергшимся воздействию

Чувствительным, непрозрачным

Собранным

Подвергшимся воздействию

      1. Регистрация событий (event logging)

Размещая регион так, чтобы тот перекрывал всё пространство событий, процесс может взаимодействовать и модифицировать любые события, проходящие через регион. Если регион чувствителен ко всем событиям, но не является непрозрачным, он может прозрачно регистрировать все события.

      1. Модификация событий

Если регион является чувствительным и непрозрачным, он может принять решение продолжить испускание уже модифицированной версии события. Например, регион может накапливать события мыши, выполнять в этих событиях распознавание рукописного текста, и затем генерировать эквивалентное событие клавиатуры.

      1. Взаимосвязь родитель/потомок

Все регионы обладают взаимосвязями типа родитель/потомок. Регион потомка всегда располагается впереди родительского региона (т.е. ближе к пользователю), и его координаты являются относительными – задаются относительно родительского региона.

      1. Координатное пространство Photon'а

Все регионы располагаются внутри координатного пространства Photon'а, имеющего следующие размеры:

      1. Корневой регион

Самым дальним от пользователя всегда является особый регион, называемый корневым регионом. Все другие регионы в некотором роде произошли от него. Как только какое-то событие прошло от пользователя и достигло корневого региона, оно прекращает свой существование.

Размерами корневого региона являеются размеры всего координатного пространства Photon'а. Как результат взаимосвязи родитель/потомок всех регионов, месторасположение любого региона в конечном счёте является относительным к размерам корневого региона.

 Регион может быть расположен в пространстве событий где угодно и тем не менее он имеет в качестве своего родителя корневой регион.

Соседние файлы в папке Литература