====== Объединение в цепи ====== Объединение в цепи - процесс отбора подмножества чанков (или ремней) на базе определённого [[ru:toolworks:docs:apparatus:filter|фильтр]]-критерия. Как только ремни и чанки были объединены в цепь, они блокируются и любые структурные их изменения минимизируются в целях целостности [[ru:toolworks:docs:apparatus:iterating|итерации]]. ===== Организация в C++ ===== В реальности довольно просто. Вы не создаёте цепи вручную, но они, на самом деле, управляются [[appi>class_u_machine.html|объектом-Машиной]] (Machine class). Предположим, вы уже собрали необходимый [[ru:toolworks:docs:apparatus:filter|Фильтр]], всё что осталось сделать - так это вызвать глобальный метод Механизма, называемый [[appi>class_u_mechanism.html#ab9c5280bbf348bee04751204ce0687c1|Enchain]], передавая применяемый фильтр. FChain& Chain = Mechanism->Enchain(Filter).Get(); Теперь вы готовы [[ru:toolworks:docs:apparatus:iterating|итерироваться]] или [[ru:toolworks:docs:apparatus:operating|оперировать]] над цепью, но есть ещё кое-что. ==== Твердотельные цепи ==== Вы можете создать специальную цепь, называемую //твердотельной//. Твердотельные цепи дают некоторые дополнительные возможности: получение прямых ссылок на трейты, например, параллелизм итерирования, - но они также и ограничивают доступные операции над Сущностями, так что изменить их структуру не получится. Иными словами, вы не сможете добавлять или удалять трейты, если цепь твердотельная. Создание твердотельной цепи выглядит просто: FSolidChain& Chain = Mechanism->EnchainSolid(Filter).Get(); ==== Чанк - Прокси ==== Если вы хотите итерироваться по чанкам напрямую, вам следует объединить их в один список прокси-чанков. Чтобы это сделать, доступен специальный перегруженный [[appi>class_a_mechanism.html#ae72188d973bed3d8484dc5ab87e5e1e1|метод]]. Он принимает [[ue>API/Runtime/Core/Containers/TArray|массив]] прокси-чанков своим вторым аргументом. Первый аргумент - фильтр.