private void OnAction_callback(NodeActionEvent action, IntPtr native_context_ref, IntPtr native_trigger_ref, IntPtr native_traverser_ref, IntPtr userdata) { if (action != NodeActionEvent.REMOVE) { OnAction?.Invoke(this, action, CreateObject(native_context_ref) as Context, CreateObject(native_trigger_ref) as NodeActionProvider, CreateObject(native_traverser_ref) as TraverseAction, userdata); } else { OnAction?.Invoke(this, action, CreateObject(native_context_ref) as Context, null, CreateObject(native_traverser_ref) as TraverseAction, native_trigger_ref); } }
private void ActionReceiver_OnAction(NodeAction sender, NodeActionEvent action, Context context, NodeActionProvider trigger, TraverseAction traverser, IntPtr userdata) { // Locked in edit or render (render) by caller if ((action == NodeActionEvent.IS_TRAVERSABLE) || (action == NodeActionEvent.IS_NOT_TRAVERSABLE)) { pendingActivations.Add(new ActivationInfo(action, trigger as Node)); } else { trigger?.ReleaseNoDelete(); // We are getting ref counts on objects in scene graph and these need to be released immediately } traverser?.ReleaseNoDelete(); context?.ReleaseNoDelete(); }
static private void OnAction_callback(IntPtr instance, NodeActionEvent action, IntPtr native_context_ref, IntPtr native_trigger_ref, IntPtr native_traverser_ref, IntPtr userdata) { NodeAction na = ReferenceDictionary <NodeAction> .GetObject(instance); if (na != null) { if (action != NodeActionEvent.REMOVE) { na.OnAction?.Invoke(na, action, CreateObject(native_context_ref) as Context, CreateObject(native_trigger_ref) as NodeActionProvider, CreateObject(native_traverser_ref) as TraverseAction, userdata); } else { na.OnAction?.Invoke(na, action, CreateObject(native_context_ref) as Context, null, CreateObject(native_traverser_ref) as TraverseAction, native_trigger_ref); } } }
public ActivationInfo(NodeActionEvent _state, Node _node) { state = _state; node = _node; }
public void AddActionInterface(NodeActionInterface receiver, NodeActionEvent action, IntPtr userdata = default(IntPtr)) { NodeActionProvider_addActionInterface(GetNativeReference(), receiver.GetNativeReference(), action, userdata); }
private static extern void NodeActionProvider_addActionInterface(IntPtr nodeact_reference, IntPtr recv_ref, NodeActionEvent action, IntPtr userdata);