public static IValueIn CreateValueInput(this IPluginHost host, InputAttribute attribute, Type type) { attribute = NormalizePinAttribute(attribute, type); IValueIn result = null; host.CreateValueInput(attribute.Name, attribute.Dimension, attribute.DimensionNames, (TSliceMode)attribute.SliceMode, (TPinVisibility)attribute.Visibility, out result); switch (attribute.Dimension) { case 2: result.SetSubType2D(attribute.MinValue, attribute.MaxValue, attribute.StepSize, attribute.DefaultValues[0], attribute.DefaultValues[1], attribute.IsBang, attribute.IsToggle, attribute.AsInt); break; case 3: result.SetSubType3D(attribute.MinValue, attribute.MaxValue, attribute.StepSize, attribute.DefaultValues[0], attribute.DefaultValues[1], attribute.DefaultValues[2], attribute.IsBang, attribute.IsToggle, attribute.AsInt); break; case 4: result.SetSubType4D(attribute.MinValue, attribute.MaxValue, attribute.StepSize, attribute.DefaultValues[0], attribute.DefaultValues[1], attribute.DefaultValues[2], attribute.DefaultValues[3], attribute.IsBang, attribute.IsToggle, attribute.AsInt); break; default: result.SetSubType(attribute.MinValue, attribute.MaxValue, attribute.StepSize, attribute.DefaultValue, attribute.IsBang, attribute.IsToggle, attribute.AsInt); break; } result.Order = attribute.Order; result.AutoValidate = attribute.AutoValidate; return(result); }
//this method is called by vvvv when the node is created public void SetPluginHost(IPluginHost Host) { //assign host FHost = Host; //create inputs FHost.CreateValueInput("Input 1 ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FMyValueInput1); FMyValueInput1.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 1, 0, 0, 0, false, false, false); FHost.CreateValueInput("Input 2 ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FMyValueInput2); FMyValueInput2.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 0, 0, 0, 0, false, false, false); FHost.CreateValueInput("Input 3 ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FMyValueInput3); FMyValueInput3.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 1, 0, 0, 0, false, false, false); FHost.CreateValueInput("Input 4 ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FMyValueInput4); FMyValueInput4.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 0, 0, 0, 0, false, false, false); //create outputs FHost.CreateValueOutput("Output 1 ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FMyValueOutput1); FMyValueOutput1.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 0, 0, 0, 0, false, false, false); FHost.CreateValueOutput("Output 2 ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FMyValueOutput2); FMyValueOutput2.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 0, 0, 0, 0, false, false, false); }
//this method is called by vvvv when the node is created public void SetPluginHost(IPluginHost Host) { //assign host FHost = Host; //create inputs FHost.CreateValueInput("Radius", 1, null, TSliceMode.Single, TPinVisibility.True, out Radius); Radius.SetSubType(0.001, 1000.0, 0.001, 1.0, false, false, false); FHost.CreateValueInput("Perspective", 1, null, TSliceMode.Single, TPinVisibility.True, out Perspective); Perspective.SetSubType(0.1, 1, 0.001, 0.5, false, false, false); FHost.CreateValueInput("Quaternion Transform ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out QuaternionTransform); QuaternionTransform.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 0, 0, 0, 1, false, false, false); //create outputs FHost.CreateMeshOutput("Mesh", TSliceMode.Dynamic, TPinVisibility.True, out FMyMeshOutput); }
//this method is called by vvvv when the node is created public void SetPluginHost(IPluginHost Host) { //assign host FHost = Host; //create inputs FHost.CreateTransformInput("Transform In", TSliceMode.Dynamic, TPinVisibility.True, out FTransformInput); FHost.CreateValueInput("Upper Left Point ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FP1Input); FP1Input.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 0, 1, 0, 1, false, false, false); FHost.CreateValueInput("Upper Right Point ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FP2Input); FP2Input.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 1, 1, 0, 1, false, false, false); FHost.CreateValueInput("Lower Right Point ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FP3Input); FP3Input.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 1, 0, 0, 1, false, false, false); FHost.CreateValueInput("Lower Left Point ", 4, null, TSliceMode.Dynamic, TPinVisibility.True, out FP4Input); FP4Input.SetSubType4D(double.MinValue, double.MaxValue, 0.01, 0, 1, 0, 1, false, false, false); //create outputs FHost.CreateTransformOutput("Transform Out", TSliceMode.Dynamic, TPinVisibility.True, out FTransformOutput); }
//this method is called by vvvv when the node is created public void SetPluginHost(IPluginHost Host) { FHost = Host; FHost.CreateStringInput("Wiimote ID", TSliceMode.Dynamic, TPinVisibility.OnlyInspector, out FPinInputID); FPinInputID.SetSubType("-1", false); FHost.CreateValueInput("Enable", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinInputEnable); FPinInputEnable.SetSubType(0, 1, 1, 0, false, true, false); FHost.CreateValueInput("LED", 4, new string[4] { "0", "1", "2", "3" }, TSliceMode.Dynamic, TPinVisibility.True, out FPinInputLED); FPinInputLED.SetSubType4D(0, 1, 1, 0, 0, 0, 0, false, true, false); FHost.CreateValueInput("Rumble", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FPinInputRumble); FPinInputRumble.SetSubType(0, 1, 1, 0, false, true, false); FHost.UpdateEnum("WiimoteInfraredMode", "Extended", new string[4] { "Full", "Extended", "Basic", "Off" }); FHost.CreateEnumInput("Infrared Mode", TSliceMode.Dynamic, TPinVisibility.True, out FPinInputMode); FPinInputMode.SetSubType("WiimoteInfraredMode"); FHost.CreateValueFastInput("Calibration ZeroG", 3, null, TSliceMode.Dynamic, TPinVisibility.OnlyInspector, out FPinInputCalibrationZeroG); FPinInputCalibrationZeroG.SetSubType3D(0, 0xFF, 1, 126, 126, 131, false, false, true); FHost.CreateValueFastInput("Calibration OneG", 3, null, TSliceMode.Dynamic, TPinVisibility.OnlyInspector, out FPinInputCalibrationOneG); FPinInputCalibrationOneG.SetSubType3D(0, 0xFF, 1, 151, 151, 151, false, false, true); FHost.CreateValueInput("Calibrate", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPinInputCalibrate); FPinInputCalibrate.SetSubType(0, 1, 1, 0, true, false, false); FHost.CreateValueInput("Force Reset", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPinForceReset); FPinForceReset.SetSubType(0, 1, 1, 0, true, false, false); FHost.UpdateEnum("WiimoteExtensionEnum", "none", new string[5] { "none", "Nunchuk", "Classic", "BalanceBoard", "Guitar" }); FHost.CreateEnumConfig("Extension", TSliceMode.Single, TPinVisibility.True, out FPinConfigExtension); FPinConfigExtension.SetSubType("WiimoteExtensionEnum"); // FHost.CreateValueConfig("MotionPlus", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinMotionPlus); // FPinMotionPlus.SetSubType(0, 1, 1, 0, false, true, false); //create outputs FHost.CreateStringOutput("Available Wiimotes", TSliceMode.Dynamic, TPinVisibility.OnlyInspector, out FPinOutputAvailable); FPinOutputAvailable.SetSubType("none", false); FHost.CreateStringOutput("Working", TSliceMode.Single, TPinVisibility.True, out FPinOutputWorking); FPinOutputWorking.SetSubType("Initializing", false); FHost.CreateStringOutput("Extension Found", TSliceMode.Single, TPinVisibility.True, out FPinOutputExtensionFound); FPinOutputExtensionFound.SetSubType("none", false); FHost.CreateValueOutput("Battery", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputBattery); FPinOutputBattery.SetSubType(double.MinValue, double.MaxValue, 0.0001, 0, false, false, false); FHost.CreateValueOutput("Cursor", 4, new string[4] { "Up", "Down", "Left", "Right" }, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputCursor); FPinOutputCursor.SetSubType4D(0, 1, 1, 0, 0, 0, 0, false, true, false); FHost.CreateValueOutput("Buttons", 4, new string[4] { "A", "B", "1", "2" }, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputButtons); FPinOutputButtons.SetSubType4D(0, 1, 1, 0, 0, 0, 0, false, true, false); FHost.CreateValueOutput("System", 3, new string[3] { "Plus", "Minus", "Home" }, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputControls); FPinOutputControls.SetSubType3D(0, 1, 1, 0, 0, 0, false, true, false); FHost.CreateValueOutput("Acceleration", 3, null, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputAccelleration); FPinOutputAccelleration.SetSubType3D(double.MinValue, double.MaxValue, 0.0001, 0, 0, 0, false, false, false); FHost.CreateValueOutput("Angle", 3, new string[3] { "Pitch", "Roll", "Yaw" }, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputTilt); FPinOutputTilt.SetSubType3D(double.MinValue, double.MaxValue, 0.0001, 0, 0, 0, false, false, false); FHost.CreateValueOutput("Infrared", 3, new string[3] { "X", "Y", "Size" }, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputInfraredBlobs); FPinOutputInfraredBlobs.SetSubType3D(0, 1023, 1, 0, 0, 0, false, false, true); Enable(); }