// Fresh constructor public EmoteSetVariableNode() : base(EmoteSetVariableNodeFactory.TYPESTRING) { // Prepare Connections conExecute = new ExecutionConnectorViewModel(); inputValue = new ConnectorViewModel("Value", typeof(NodeDataNumeric)); inputFrameCount = new ConnectorViewModel("FrameCount", typeof(NodeDataNumeric)); inputEasing = new ConnectorViewModel("Easing", typeof(NodeDataNumeric)); this.InputExecutionConnectors.Add(conExecute); this.InputConnectors.Add(inputValue); this.InputConnectors.Add(inputFrameCount); this.InputConnectors.Add(inputEasing); // State Values value = 0f; frameCount = 0.1f; easing = 0.9f; varName = string.Empty; // Create Dialog dlgEdit = new PropertyDialog(); // Get Character Context charContext = CharacterContext.GetCharacterContext(); }
public XInputControllerAnalogNode() : base(XInputControllerAnalogNodeFactory.TYPESTRING) { // Prepare Execution Connection conExecuted = new ExecutionConnectorViewModel(); conExecute = new ExecutionConnectorViewModel(); this.InputExecutionConnectors.Add(conExecuted); this.OutputExecutionConnectors.Add(conExecute); // Prepare Connections conLeftThumbX = new ConnectorViewModel("LeftThumbX", typeof(NodeDataNumeric)); conLeftThumbY = new ConnectorViewModel("LeftThumbY", typeof(NodeDataNumeric)); conLeftTrigger = new ConnectorViewModel("LeftTrigger", typeof(NodeDataNumeric)); conRightThumbX = new ConnectorViewModel("RightThumbX", typeof(NodeDataNumeric)); conRightThumbY = new ConnectorViewModel("RightThumbY", typeof(NodeDataNumeric)); conRightTrigger = new ConnectorViewModel("RightTrigger", typeof(NodeDataNumeric)); //conButtons = new ConnectorViewModel("Buttons", typeof(NodeDataXInputButtons)); this.OutputConnectors.Add(conLeftThumbX); this.OutputConnectors.Add(conLeftThumbY); this.OutputConnectors.Add(conLeftTrigger); this.OutputConnectors.Add(conRightThumbX); this.OutputConnectors.Add(conRightThumbY); this.OutputConnectors.Add(conRightTrigger); //this.OutputConnectors.Add(conButtons); // State Values currentUser = UserIndex.One; controller = new SharpDX.XInput.Controller(currentUser); // Create Dialog dlgEdit = new PropertyDialog(); }
//public override string Note { get { } } public ExecuteRoutingNode() : base(ExecuteRoutingNodeFactory.TYPESTRING) { // Prepare Execution Connection conExecuted = new ExecutionConnectorViewModel(); conExecute = new ExecutionConnectorViewModel(); this.InputExecutionConnectors.Add(conExecuted); this.OutputExecutionConnectors.Add(conExecute); }
public ExecuteRoutingNode(JObject data, Guid[] executeIn, Guid[] executeOut, Guid[] dataIn, Guid[] dataOut) : base(ExecuteRoutingNodeFactory.TYPESTRING) { // Prepare Execution Connection conExecuted = new ExecutionConnectorViewModel(executeIn[0]); conExecute = new ExecutionConnectorViewModel(executeOut[0]); this.InputExecutionConnectors.Add(conExecuted); this.OutputExecutionConnectors.Add(conExecute); // Set Name //Name = (string)data["name"]; }
public XInputControllerDigitalNode() : base(XInputControllerDigitalNodeFactory.TYPESTRING) { // Prepare Execution Connection conExecuted = new ExecutionConnectorViewModel(); conExecute = new ExecutionConnectorViewModel(); this.InputExecutionConnectors.Add(conExecuted); this.OutputExecutionConnectors.Add(conExecute); // Prepare Connections conDPadUp = new ConnectorViewModel("DPadUp", typeof(NodeDataBoolean)); conDPadDown = new ConnectorViewModel("DPadDown", typeof(NodeDataBoolean)); conDPadLeft = new ConnectorViewModel("DPadLeft", typeof(NodeDataBoolean)); conDPadRight = new ConnectorViewModel("DPadRight", typeof(NodeDataBoolean)); conStart = new ConnectorViewModel("Start", typeof(NodeDataBoolean)); conBack = new ConnectorViewModel("Back", typeof(NodeDataBoolean)); conLeftThumb = new ConnectorViewModel("LeftThumb", typeof(NodeDataBoolean)); conRightThumb = new ConnectorViewModel("RightThumb", typeof(NodeDataBoolean)); conLeftShoulder = new ConnectorViewModel("LeftShoulder", typeof(NodeDataBoolean)); conRightShoulder = new ConnectorViewModel("RightShoulder", typeof(NodeDataBoolean)); conA = new ConnectorViewModel("A", typeof(NodeDataBoolean)); conB = new ConnectorViewModel("B", typeof(NodeDataBoolean)); conX = new ConnectorViewModel("X", typeof(NodeDataBoolean)); conY = new ConnectorViewModel("Y", typeof(NodeDataBoolean)); this.OutputConnectors.Add(conDPadUp); this.OutputConnectors.Add(conDPadDown); this.OutputConnectors.Add(conDPadLeft); this.OutputConnectors.Add(conDPadRight); this.OutputConnectors.Add(conStart); this.OutputConnectors.Add(conBack); this.OutputConnectors.Add(conLeftThumb); this.OutputConnectors.Add(conRightThumb); this.OutputConnectors.Add(conLeftShoulder); this.OutputConnectors.Add(conRightShoulder); this.OutputConnectors.Add(conA); this.OutputConnectors.Add(conB); this.OutputConnectors.Add(conX); this.OutputConnectors.Add(conY); // State Values currentUser = UserIndex.One; controller = new SharpDX.XInput.Controller(currentUser); // Create Dialog dlgEdit = new PropertyDialog(); }
public IntervalTriggerNode() : base(IntervalTriggerNodeFactory.TYPESTRING) { // Prepare Connections conExecute = new ExecutionConnectorViewModel(); this.OutputExecutionConnectors.Add(conExecute); //diposeInterlock = new Semaphore(0, 1); // State Value this.period = 100; worker = new Thread(DoWork); // Create Dialog dlgEdit = new PropertyDialog(); }
public XInputControllerAnalogNode(JObject data, Guid[] executeIn, Guid[] executeOut, Guid[] dataIn, Guid[] dataOut) : base(XInputControllerAnalogNodeFactory.TYPESTRING) { // Prepare Execution Connection conExecuted = new ExecutionConnectorViewModel(executeIn[0]); conExecute = new ExecutionConnectorViewModel(executeOut[0]); this.InputExecutionConnectors.Add(conExecuted); this.OutputExecutionConnectors.Add(conExecute); // Prepare Connections conLeftThumbX = new ConnectorViewModel("LeftThumbX", typeof(NodeDataNumeric), dataOut[0]); conLeftThumbY = new ConnectorViewModel("LeftThumbY", typeof(NodeDataNumeric), dataOut[1]); conLeftTrigger = new ConnectorViewModel("LeftTrigger", typeof(NodeDataNumeric), dataOut[2]); conRightThumbX = new ConnectorViewModel("RightThumbX", typeof(NodeDataNumeric), dataOut[3]); conRightThumbY = new ConnectorViewModel("RightThumbY", typeof(NodeDataNumeric), dataOut[4]); conRightTrigger = new ConnectorViewModel("RightTrigger", typeof(NodeDataNumeric), dataOut[5]); //if (dataIn.Length > 5) //{ // conButtons = new ConnectorViewModel("Buttons", typeof(NodeDataXInputButtons), dataOut[6]); //} //else //{ // conButtons = new ConnectorViewModel("Buttons", typeof(NodeDataXInputButtons)); //} this.OutputConnectors.Add(conLeftThumbX); this.OutputConnectors.Add(conLeftThumbY); this.OutputConnectors.Add(conLeftTrigger); this.OutputConnectors.Add(conRightThumbX); this.OutputConnectors.Add(conRightThumbY); this.OutputConnectors.Add(conRightTrigger); //this.OutputConnectors.Add(conButtons); // Set Name Name = (string)data["name"]; // State Values if (!Enum.TryParse<UserIndex>((string)data["currentUser"], out currentUser)) currentUser = UserIndex.One; controller = new SharpDX.XInput.Controller(currentUser); // Create Dialog dlgEdit = new PropertyDialog(); }
public ForkNode() : base(ForkNodeFactory.TYPESTRING) { // Prepare Connections conExecuteIn = new ExecutionConnectorViewModel(); conExecuteOut = new ExecutionConnectorViewModel(); conIn = new ConnectorViewModel("Set", typeof(NodeDataBoolean)); this.InputExecutionConnectors.Add(conExecuteIn); this.OutputExecutionConnectors.Add(conExecuteOut); this.InputConnectors.Add(conIn); // State Values Value = null; // Create Dialog dlgEdit = new PropertyDialog(); }
public ValueBufferNode() : base(ValueBufferNodeFactory.TYPESTRING) { // Prepare Connections conExecute = new ExecutionConnectorViewModel(); conIn = new ConnectorViewModel("Set", typeof(INodeData)); conOut = new ConnectorViewModel("Value", typeof(INodeData)); this.InputExecutionConnectors.Add(conExecute); this.InputConnectors.Add(conIn); this.OutputConnectors.Add(conOut); // State Values Value = null; // Create Dialog dlgEdit = new PropertyDialog(); }
public IntervalTriggerNode(JObject data, Guid[] executeIn, Guid[] executeOut, Guid[] dataIn, Guid[] dataOut) { // Prepare Connections conExecute = new ExecutionConnectorViewModel(executeOut[0]); this.OutputExecutionConnectors.Add(conExecute); //diposeInterlock = new Semaphore(0, 1); // Set Name Name = (string)data["name"]; // State Value this.period = (int)data["period"]; worker = new Thread(DoWork); // Create Dialog dlgEdit = new PropertyDialog(); }
public ForkNode(JObject data, Guid[] executeIn, Guid[] executeOut, Guid[] dataIn, Guid[] dataOut) : base(ForkNodeFactory.TYPESTRING) { // Prepare Connections conExecuteIn = new ExecutionConnectorViewModel(executeIn[0]); conExecuteOut = new ExecutionConnectorViewModel(executeOut[0]); conIn = new ConnectorViewModel("Set", typeof(NodeDataBoolean), dataIn[0]); this.InputExecutionConnectors.Add(conExecuteIn); this.OutputExecutionConnectors.Add(conExecuteOut); this.InputConnectors.Add(conIn); // Set Name Name = (string)data["name"]; // State Values //Value = (Double)data["value"]; // no way to serilize generic values yet // Create Dialog dlgEdit = new PropertyDialog(); }
// Load Data Constructor public EmoteSetVariableNode(JObject data, Guid[] executeIn, Guid[] executeOut, Guid[] dataIn, Guid[] dataOut) { // Prepare Connections conExecute = new ExecutionConnectorViewModel(executeIn[0]); inputValue = new ConnectorViewModel("Value", typeof(NodeDataNumeric), dataIn[0]); if (dataIn.Length > 1) // allow loading older node graph saves { inputFrameCount = new ConnectorViewModel("FrameCount", typeof(NodeDataNumeric), dataIn[1]); inputEasing = new ConnectorViewModel("Easing", typeof(NodeDataNumeric), dataIn[2]); } else { inputFrameCount = new ConnectorViewModel("FrameCount", typeof(NodeDataNumeric)); inputEasing = new ConnectorViewModel("Easing", typeof(NodeDataNumeric)); } this.InputExecutionConnectors.Add(conExecute); this.InputConnectors.Add(inputValue); this.InputConnectors.Add(inputFrameCount); this.InputConnectors.Add(inputEasing); // Set Name Name = (string)data["name"]; // State Values value = (float)data["value"]; frameCount = (float)data["frameCount"]; easing = (float)data["easing"]; varName = (string)data["varName"]; // Create Dialog dlgEdit = new PropertyDialog(); // Get Character Context charContext = CharacterContext.GetCharacterContext(); }
/// <summary> /// Called to query the application for feedback while the user is dragging the connection. /// </summary> public void QueryExecutionConnnectionFeedback(ExecutionConnectorViewModel draggedOutConnector, ExecutionConnectorViewModel draggedOverConnector, out object feedbackIndicator, out bool connectionOk) { if (draggedOutConnector == draggedOverConnector) { // // Can't connect to self! // Provide feedback to indicate that this connection is not valid! // feedbackIndicator = new ConnectionBadIndicator(); connectionOk = false; } else { var sourceConnector = draggedOutConnector; var destConnector = draggedOverConnector; // // Only allow connections from output connector to input connector (ie each // connector must have a different type). // Also only allocation from one node to another, never one node back to the same node. // connectionOk = sourceConnector.ParentNode != destConnector.ParentNode && sourceConnector.Type != destConnector.Type; if (connectionOk) { // // Yay, this is a valid connection! // Provide feedback to indicate that this connection is ok! // feedbackIndicator = new ConnectionOkIndicator(); } else { // // Connectors with the same connector type (eg input & input, or output & output) // can't be connected. // Only connectors with separate connector type (eg input & output). // Provide feedback to indicate that this connection is not valid! // feedbackIndicator = new ConnectionBadIndicator(); } } }
/// <summary> /// Retrieve a connection between the two connectors. /// Returns null if there is no connection between the connectors. /// </summary> public ExecutionConnectionViewModel FindExecutionConnection(ExecutionConnectorViewModel connector1, ExecutionConnectorViewModel connector2) { Trace.Assert(connector1.Type != connector2.Type); // // Figure out which one is the source connector and which one is the // destination connector based on their connector types. // var sourceConnector = connector1.Type == ConnectorType.Output ? connector1 : connector2; var destConnector = connector1.Type == ConnectorType.Output ? connector2 : connector1; // // Now we can just iterate attached connections of the source // and see if it each one is attached to the destination connector. // foreach (var connection in sourceConnector.AttachedExecutionConnections) { if (connection.DestConnector == destConnector) { // // Found a connection that is outgoing from the source connector // and incoming to the destination connector. // return connection; } } return null; }
/// <summary> /// Called when the user has started to drag out a connector, thus creating a new connection. /// </summary> public ExecutionConnectionViewModel ExecutionConnectionDragStarted(ExecutionConnectorViewModel draggedOutConnector, Point curDragPoint) { // // Create a new connection to add to the view-model. // var connection = new ExecutionConnectionViewModel(); if (draggedOutConnector.Type == ConnectorType.Output) { // // The user is dragging out a source connector (an output) and will connect it to a destination connector (an input). // connection.SourceConnector = draggedOutConnector; connection.DestConnectorHotspot = curDragPoint; } else { // // The user is dragging out a destination connector (an input) and will connect it to a source connector (an output). // connection.DestConnector = draggedOutConnector; connection.SourceConnectorHotspot = curDragPoint; } // // Add the new connection to the view-model. // this.Network.ExecutionConnections.Add(connection); return connection; }
/// <summary> /// Called when the user has finished dragging out the new connection. /// </summary> public void ExecutionConnectionDragCompleted(ExecutionConnectionViewModel newConnection, ExecutionConnectorViewModel connectorDraggedOut, ExecutionConnectorViewModel connectorDraggedOver) { if (connectorDraggedOver == null) { // // The connection was unsuccessful. // Maybe the user dragged it out and dropped it in empty space. // this.Network.ExecutionConnections.Remove(newConnection); return; } // // Only allow connections from output connector to input connector (ie each // connector must have a different type). // Also only allocation from one node to another, never one node back to the same node. // bool connectionOk = connectorDraggedOut.ParentNode != connectorDraggedOver.ParentNode && connectorDraggedOut.Type != connectorDraggedOver.Type; if (!connectionOk) { // // Connections between connectors that have the same type, // eg input -> input or output -> output, are not allowed, // Remove the connection. // this.Network.ExecutionConnections.Remove(newConnection); return; } // // The user has dragged the connection on top of another valid connector. // // // Remove any existing connection between the same two connectors. // var existingConnection = FindExecutionConnection(connectorDraggedOut, connectorDraggedOver); if (existingConnection != null) { this.Network.ExecutionConnections.Remove(existingConnection); } // // Finalize the connection by attaching it to the connector // that the user dragged the mouse over. // if (newConnection.DestConnector == null) { newConnection.DestConnector = connectorDraggedOver; } else { newConnection.SourceConnector = connectorDraggedOver; } }
public XInputControllerDigitalNode(JObject data, Guid[] executeIn, Guid[] executeOut, Guid[] dataIn, Guid[] dataOut) : base(XInputControllerDigitalNodeFactory.TYPESTRING) { // Prepare Execution Connection conExecuted = new ExecutionConnectorViewModel(executeIn[0]); conExecute = new ExecutionConnectorViewModel(executeOut[0]); this.InputExecutionConnectors.Add(conExecuted); this.OutputExecutionConnectors.Add(conExecute); // Prepare Connections conDPadUp = new ConnectorViewModel("DPadUp", typeof(NodeDataBoolean), dataOut[0]); conDPadDown = new ConnectorViewModel("DPadDown", typeof(NodeDataBoolean), dataOut[1]); conDPadLeft = new ConnectorViewModel("DPadLeft", typeof(NodeDataBoolean), dataOut[2]); conDPadRight = new ConnectorViewModel("DPadRight", typeof(NodeDataBoolean), dataOut[3]); conStart = new ConnectorViewModel("Start", typeof(NodeDataBoolean), dataOut[4]); conBack = new ConnectorViewModel("Back", typeof(NodeDataBoolean), dataOut[5]); conLeftThumb = new ConnectorViewModel("LeftThumb", typeof(NodeDataBoolean), dataOut[6]); conRightThumb = new ConnectorViewModel("RightThumb", typeof(NodeDataBoolean), dataOut[7]); conLeftShoulder = new ConnectorViewModel("LeftShoulder", typeof(NodeDataBoolean), dataOut[8]); conRightShoulder = new ConnectorViewModel("RightShoulder", typeof(NodeDataBoolean), dataOut[9]); conA = new ConnectorViewModel("A", typeof(NodeDataBoolean), dataOut[10]); conB = new ConnectorViewModel("B", typeof(NodeDataBoolean), dataOut[11]); conX = new ConnectorViewModel("X", typeof(NodeDataBoolean), dataOut[12]); conY = new ConnectorViewModel("Y", typeof(NodeDataBoolean), dataOut[13]); this.OutputConnectors.Add(conDPadUp); this.OutputConnectors.Add(conDPadDown); this.OutputConnectors.Add(conDPadLeft); this.OutputConnectors.Add(conDPadRight); this.OutputConnectors.Add(conStart); this.OutputConnectors.Add(conBack); this.OutputConnectors.Add(conLeftThumb); this.OutputConnectors.Add(conRightThumb); this.OutputConnectors.Add(conLeftShoulder); this.OutputConnectors.Add(conRightShoulder); this.OutputConnectors.Add(conA); this.OutputConnectors.Add(conB); this.OutputConnectors.Add(conX); this.OutputConnectors.Add(conY); // Set Name Name = (string)data["name"]; // State Values if (!Enum.TryParse<UserIndex>((string)data["currentUser"], out currentUser)) currentUser = UserIndex.One; controller = new SharpDX.XInput.Controller(currentUser); // Create Dialog dlgEdit = new PropertyDialog(); }
public SetVariableNode(JObject data, Guid[] executeIn, Guid[] executeOut, Guid[] dataIn, Guid[] dataOut) : base(SetVariableNodeFactory.TYPESTRING) { // Prepare Connections conExecute = new ExecutionConnectorViewModel(executeIn[0]); conIn = new ConnectorViewModel("Set", typeof(INodeData), dataIn[0]); this.InputExecutionConnectors.Add(conExecute); this.InputConnectors.Add(conIn); // Set Name Name = (string)data["name"]; // State Values VarName = (string)data["varname"]; // Create Dialog dlgEdit = new PropertyDialog(); }