// // /*=============================================================================== // // Copyright (C) 2020 PhantomsXR Ltd. All Rights Reserved. // // // // This file is part of the AR-MOD SDK. // // // // The AR-MOD SDK cannot be copied, distributed, or made available to // // third-parties for commercial purposes without written permission of PhantomsXR Ltd. // // // // Contact info@phantomsxr.com for licensing requests. // // ===============================================================================*/ using com.PhantomsXR.BarracudaExtension.Runtime; using Unity.Barracuda; using Unity.VisualScripting; namespace com.PhantomsXR.VisualScriptingExtension.Runtime { [UnitCategory("ARMOD/NNEInference"), UnitTitle("NNEExecute"), UnitShortTitle("NNEExecute")] public class NNEExecuteUnit : ARMODBaseWithResultUnit { [DoNotSerialize] public ValueInput Input; [DoNotSerialize] public ValueInput Worker; private IWorker worker; protected override void Definition() { base.Definition(); Input = ValueInput(nameof(Tensor), (Tensor) null); Worker = ValueInput(nameof(Worker), (IWorker) null); Result = ValueOutput(nameof(Worker), _flow => worker); Requirement(Input, inputTrigger); // Requirement(Worker, inputTrigger); } public override ControlOutput Execute(Flow _arg) { var tmp_Tensor = _arg.GetValue(Input); var tmp_Worker = _arg.GetValue(Worker); tmp_Worker?.Execute(tmp_Tensor); worker = tmp_Worker; return outputTrigger; } } }