Следующая версия | Предыдущая версия |
ru:toolworks:docs:apparatus:enchaining [2021/06/15 14:51] – создано + переведено jispar | ru:toolworks:docs:apparatus:enchaining [2022/07/18 18:11] (текущий) – Remove trouble. jispar |
---|
====== Объединение в цепи ====== | ====== Объединение в цепи ====== |
| |
Объединение в цепи - процесс отбора подмножества чанков (или белтов) на базе определённого филььтр-критерия. | Объединение в цепи - процесс отбора подмножества чанков (или ремней) на базе определённого [[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]], передавая применяемый фильтр. |
| |
| <code cpp> |
| FChain& Chain = Mechanism->Enchain(Filter).Get(); |
| </code> |
| |
| Теперь вы готовы [[ru:toolworks:docs:apparatus:iterating|итерироваться]] или [[ru:toolworks:docs:apparatus:operating|оперировать]] над цепью, но есть ещё кое-что. |
| |
| ==== Твердотельные цепи ==== |
| |
| Вы можете создать специальную цепь, называемую //твердотельной//. |
| Твердотельные цепи дают некоторые дополнительные возможности: получение прямых ссылок на трейты, например, параллелизм итерирования, - но они также и ограничивают доступные операции над Сущностями, так что изменить их структуру не получится. Иными словами, вы не сможете добавлять или удалять трейты, если цепь твердотельная. Создание твердотельной цепи выглядит просто: |
| |
| <code cpp> |
| FSolidChain& Chain = Mechanism->EnchainSolid(Filter).Get(); |
| </code> |
| |
| |
| ==== Чанк - Прокси ==== |
| |
| Если вы хотите итерироваться по чанкам напрямую, вам следует объединить их в один список прокси-чанков. |
| |
| Чтобы это сделать, доступен специальный перегруженный [[appi>class_a_mechanism.html#ae72188d973bed3d8484dc5ab87e5e1e1|метод]]. |
| Он принимает [[ue>API/Runtime/Core/Containers/TArray|массив]] прокси-чанков своим вторым аргументом. Первый аргумент - фильтр. |