@@ -24,6 +24,8 @@ NE::DynamicSerializationInfo IntegerIncrementedNode::serializationInfo (NE::Obje
2424NE ::DynamicSerializationInfo DoubleIncrementedNode::serializationInfo (NE ::ObjectId (" {B697B7DE-7AB9-479D-8DBE-8D3CCB6E4F50}" ), NE::ObjectVersion (1 ), DoubleIncrementedNode::CreateSerializableInstance);
2525NE ::DynamicSerializationInfo DoubleDistributedNode::serializationInfo (NE ::ObjectId (" {DDD3DF7C-AEA5-4E1E-B48A-2A10EA3FC7EF}" ), NE::ObjectVersion (1 ), DoubleDistributedNode::CreateSerializableInstance);
2626
27+ NE ::DynamicSerializationInfo ListBuilderNode::serializationInfo (NE ::ObjectId (" {FE9C19DE-4847-458D-8F2D-5D943E7CF8AF}" ), NE::ObjectVersion (1 ), ListBuilderNode::CreateSerializableInstance);
28+
2729template <typename NodeType>
2830class MinValueIntegerParameter : public NUIE ::SlotDefaultValueNodeParameter<NodeType, NE ::IntValue>
2931{
@@ -737,4 +739,55 @@ NE::Stream::Status DoubleDistributedNode::Write (NE::OutputStream& outputStream)
737739 return outputStream.GetStatus ();
738740}
739741
742+ ListBuilderNode::ListBuilderNode () :
743+ ListBuilderNode (std::wstring (), NUIE ::Point ())
744+ {
745+
746+ }
747+
748+ ListBuilderNode::ListBuilderNode (const std::wstring& name, const NUIE ::Point& position) :
749+ BasicUINode (name, position)
750+ {
751+
752+ }
753+
754+ ListBuilderNode::~ListBuilderNode ()
755+ {
756+
757+ }
758+
759+ void ListBuilderNode::Initialize ()
760+ {
761+ RegisterUIInputSlot (NUIE::UIInputSlotPtr (new NUIE::UIInputSlot (NE::SlotId (" in" ), NE::Localize (L" Input" ), nullptr , NE ::OutputSlotConnectionMode::Multiple)));
762+ RegisterUIOutputSlot (NUIE::UIOutputSlotPtr (new NUIE::UIOutputSlot (NE::SlotId (" out" ), NE::Localize (L" Output" ))));
763+ }
764+
765+ NE ::ValueConstPtr ListBuilderNode::Calculate (NE ::EvaluationEnv& env) const
766+ {
767+ NE ::ValueConstPtr in = EvaluateInputSlot (NE::SlotId (" in" ), env);
768+ if (in == nullptr ) {
769+ return nullptr ;
770+ }
771+
772+ NE ::ListValuePtr list (new NE::ListValue ());
773+ NE::FlatEnumerate (in, [&] (const NE ::ValueConstPtr& innerVal) {
774+ list->Push (innerVal);
775+ });
776+ return list;
777+ }
778+
779+ NE ::Stream::Status ListBuilderNode::Read (NE ::InputStream& inputStream)
780+ {
781+ NE ::ObjectHeader header (inputStream);
782+ BasicUINode::Read (inputStream);
783+ return inputStream.GetStatus ();
784+ }
785+
786+ NE ::Stream::Status ListBuilderNode::Write (NE ::OutputStream& outputStream) const
787+ {
788+ NE ::ObjectHeader header (outputStream, serializationInfo);
789+ BasicUINode::Write (outputStream);
790+ return outputStream.GetStatus ();
791+ }
792+
740793}
0 commit comments