Создание нового нода
Материал из CryWiki Russia
(Различия между версиями)
| Строка 10: | Строка 10: | ||
= Создание нового нода = | = Создание нового нода = | ||
| + | |||
| + | Статья описывает шаги по внедрению нового нода '''Flowgraph'''. | ||
| + | |||
| + | == Базовый код == | ||
| + | |||
| + | Рекоммендуется реализовывать ноды, принадлежащие одинаковой группе в едином '''cpp''' файле. Обычно нет необходимости в заголовке, за исключением некоторых специальных нодов. Поместите''' cpp''' файл в файл проекта CryAction/Flow System Files/Nodes и в рамках структуры директории файловой системы в Code/CryEngine/CryAction/FlowSystem/Nodes. | ||
| + | |||
| + | В '''cpp''' файле добавьте класс используя следующий шаблон кода и замените «MyName» желаемым именем вашего '''ФГ''' [сокр. '''Флоуграф'''] нода. Замените «FlowNodeGroup» желаемым именем группы и создайте соответствующую подпапку в селекторе редактора нода, где этот тип нода будет располагаться: | ||
| + | |||
| + | <source lang="cpp"> | ||
| + | #include "stdafx.h" | ||
| + | #include "FlowBaseNode.h" | ||
| + | |||
| + | class CFlowNode_MyName : public CFlowBaseNode | ||
| + | { | ||
| + | public: | ||
| + | CFlowNode_MyName( SActivationInfo * pActInfo ) | ||
| + | { | ||
| + | }; | ||
| + | |||
| + | virtual void GetConfiguration( SFlowNodeConfig& config ) | ||
| + | { | ||
| + | static const SInputPortConfig in_config[] = { | ||
| + | {0} | ||
| + | }; | ||
| + | static const SOutputPortConfig out_config[] = { | ||
| + | {0} | ||
| + | }; | ||
| + | config.sDescription = _HELP( "A description of this flow node" ); | ||
| + | config.pInputPorts = in_config; | ||
| + | config.pOutputPorts = out_config; | ||
| + | config.nFlags = 0; | ||
| + | } | ||
| + | |||
| + | virtual void ProcessEvent( EFlowEvent event, SActivationInfo * pActInfo ) | ||
| + | { | ||
| + | switch (event) | ||
| + | { | ||
| + | }; | ||
| + | } | ||
| + | }; | ||
| + | |||
| + | REGISTER_FLOW_NODE("FlowNodeGroup:MyName", CFlowNode_MyName); | ||
| + | </source> | ||
| + | |||
| + | |||
| + | == Добавление портов Output== | ||
| + | |||
| + | '''ФГ''' ноды имеют как '''input''' (т.е. входящие ) так и '''output''' (исходящие) порты. | ||
Версия 08:55, 13 января 2013
Эта страница страница помечена как находящиеся в процессе перевода с: 13 января 2013.
|
|
Создание нового нода
Статья описывает шаги по внедрению нового нода Flowgraph.
Базовый код
Рекоммендуется реализовывать ноды, принадлежащие одинаковой группе в едином cpp файле. Обычно нет необходимости в заголовке, за исключением некоторых специальных нодов. Поместите cpp файл в файл проекта CryAction/Flow System Files/Nodes и в рамках структуры директории файловой системы в Code/CryEngine/CryAction/FlowSystem/Nodes.
В cpp файле добавьте класс используя следующий шаблон кода и замените «MyName» желаемым именем вашего ФГ [сокр. Флоуграф] нода. Замените «FlowNodeGroup» желаемым именем группы и создайте соответствующую подпапку в селекторе редактора нода, где этот тип нода будет располагаться:
#include "stdafx.h" #include "FlowBaseNode.h" class CFlowNode_MyName : public CFlowBaseNode { public: CFlowNode_MyName( SActivationInfo * pActInfo ) { }; virtual void GetConfiguration( SFlowNodeConfig& config ) { static const SInputPortConfig in_config[] = { {0} }; static const SOutputPortConfig out_config[] = { {0} }; config.sDescription = _HELP( "A description of this flow node" ); config.pInputPorts = in_config; config.pOutputPorts = out_config; config.nFlags = 0; } virtual void ProcessEvent( EFlowEvent event, SActivationInfo * pActInfo ) { switch (event) { }; } }; REGISTER_FLOW_NODE("FlowNodeGroup:MyName", CFlowNode_MyName);
Добавление портов Output
ФГ ноды имеют как input (т.е. входящие ) так и output (исходящие) порты.