Example #1
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            //create inputs
            FHost.CreateValueConfig("Ansi/UTF8", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FAnsiUtf);
            FAnsiUtf.SetSubType(0, 1, 1, 0, false, true, false);

            FHost.CreateValueConfig("Toggle line-wise", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FLineWise);
            FLineWise.SetSubType(0, 1, 1, 0, false, true, false);

            FHost.CreateStringInput("Filename", TSliceMode.Dynamic, TPinVisibility.True, out FFilename);
            FFilename.SetSubType("", true);

            FHost.CreateValueInput("Startindex", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FIndex);
            FIndex.SetSubType(0, double.MaxValue, 1, 0, false, false, true);

            FHost.CreateValueInput("Count", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FCount);
            FCount.SetSubType(0, double.MaxValue, 1, 1, false, false, true);

            FHost.CreateValueInput("Update", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FUpdate);
            FUpdate.SetSubType(0, 1, 1, 0, true, false, false);

            //create outputs
            FHost.CreateStringOutput("Content", TSliceMode.Dynamic, TPinVisibility.True, out FContent);
            FContent.SetSubType("", false);
        }
Example #2
0
        public static IValueConfig CreateValueConfig(this IPluginHost host, ConfigAttribute attribute, Type type)
        {
            attribute = NormalizePinAttribute(attribute, type);

            IValueConfig result = null;

            host.CreateValueConfig(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;
            return(result);
        }
Example #3
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            var guids = new System.Guid[1];

            guids[0] = SkeletonNodeIO.GUID;

            //create inputs
            FHost.CreateStringInput("Joint Name", TSliceMode.Single, TPinVisibility.True, out FJointNameInput);
            FHost.CreateTransformInput("Base Transform", TSliceMode.Single, TPinVisibility.True, out FBaseTransformInput);
            String[] dimensions = new String[2];
            dimensions[0] = "Min";
            dimensions[1] = "Max";
            FHost.CreateValueInput("Rotation Constraints", 2, dimensions, TSliceMode.Dynamic, TPinVisibility.True, out FRotationConstraintsInput);
            FRotationConstraintsInput.SetSubType2D(-1.0, 1.0, 0.1, -1.0, 1.0, false, false, false);
            INodeIn node;

            FHost.CreateNodeInput("Child1", TSliceMode.Single, TPinVisibility.True, out node);
            node.SetSubType(guids, "Skeleton");
            FChildPins.Add(node);

            FHost.CreateValueConfig("Children Count", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FChildrenCountInput);
            FChildrenCountInput.SetSubType(0, 50, 1.0, 1.0, false, false, true);

            // create outputs
            FHost.CreateNodeOutput("Skeleton", TSliceMode.Single, TPinVisibility.True, out FSkeletonOutput);
            FSkeletonOutput.SetSubType(guids, "Skeleton");
            FSkeletonOutput.MarkPinAsChanged();
        }
Example #4
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            var guids = new System.Guid[1];

            guids[0] = SkeletonNodeIO.GUID;

            FHost.CreateValueConfig("Number of Input Poses", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPoseCount);
            FPoseCount.SetSubType(2, 10, 1, 2, false, false, true);

            //create inputs
            FHost.CreateValueInput("Input", 1, null, TSliceMode.Single, TPinVisibility.True, out FInput);
            FInput.SetSubType(0.0, 1.0, 0.01, 0.0, false, false, false);

            INodeIn currPoseNode;

            for (int i = 0; i < 2; i++)
            {
                FHost.CreateNodeInput("Pose " + (i + 1), TSliceMode.Single, TPinVisibility.True, out currPoseNode);
                currPoseNode.SetSubType(guids, "Skeleton");
                FPoseNodes.Add(currPoseNode);
                FPoses.Add(null);
            }

            // create outputs
            FHost.CreateNodeOutput("Mixed Pose", TSliceMode.Single, TPinVisibility.True, out FPoseOutput);
            FPoseOutput.SetSubType(guids, "Skeleton");
        }
Example #5
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            System.Guid[] guids = new System.Guid[1];
            guids[0] = new Guid("AB312E34-8025-40F2-8241-1958793F3D39");

            FHost.CreateValueConfig("Number of Input Poses", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPoseCount);
            FPoseCount.SetSubType(2, 10, 1, 2, false, false, true);

            INodeIn  currPoseNode;
            IValueIn currAmountNode;

            for (int i = 0; i < 2; i++)
            {
                FHost.CreateNodeInput("Pose " + (i + 1), TSliceMode.Single, TPinVisibility.True, out currPoseNode);
                currPoseNode.SetSubType(guids, "Skeleton");
                poseNodes.Add(currPoseNode);

                FHost.CreateValueInput("Amount " + (i + 1), 1, null, TSliceMode.Single, TPinVisibility.True, out currAmountNode);
                currAmountNode.SetSubType(0.0, 1.0, 0.01, 0.0, false, false, false);
                amountNodes.Add(currAmountNode);

                poses.Add(null);
                amounts.Add(1 - i);
            }

            // create outputs

            FHost.CreateNodeOutput("Mixed Pose", TSliceMode.Single, TPinVisibility.True, out FPoseOutput);
            FPoseOutput.SetSubType(guids, "Skeleton");
        }
Example #6
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            //create inputs
            FHost.CreateValueConfig("Pin Count", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPinCountPin);
            FPinCountPin.SetSubType(1, double.MaxValue, 1, 2, false, false, true);

            FHost.CreateValueConfig("Cons Count", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPinCountCons);
            FPinCountCons.SetSubType(1, double.MaxValue, 1, 2, false, false, true);

            FHost.CreateValueInput("Input 1,1", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FInputPin1_1);
            FInputPin1_1.SetSubType(double.MinValue, double.MaxValue, 0.01, 0.0, false, false, false);

            FHost.CreateValueInput("Input 1,2", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FInputPin1_2);
            FInputPin1_2.SetSubType(double.MinValue, double.MaxValue, 0.01, 0.0, false, false, false);

            FHost.CreateValueInput("Select 1", 1, null, TSliceMode.Single, TPinVisibility.True, out FSelectPin1);
            FSelectPin1.SetSubType(0, double.MaxValue, 1, 1, false, false, true);

            FHost.CreateValueInput("Input 2,1", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FInputPin2_1);
            FInputPin2_1.SetSubType(double.MinValue, double.MaxValue, 0.01, 0.0, false, false, false);

            FHost.CreateValueInput("Input 2,2", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FInputPin2_2);
            FInputPin2_2.SetSubType(double.MinValue, double.MaxValue, 0.01, 0.0, false, false, false);

            FHost.CreateValueInput("Select 2", 1, null, TSliceMode.Single, TPinVisibility.True, out FSelectPin2);
            FSelectPin2.SetSubType(0, double.MaxValue, 1, 1, false, false, true);

            FInputPinList.Add(FInputPin1_1);
            FInputPinList.Add(FInputPin1_2);
            FInputPinList.Add(FInputPin2_1);
            FInputPinList.Add(FInputPin2_2);
            FSelectPinList.Add(FSelectPin1);
            FSelectPinList.Add(FSelectPin2);

            //create outputs
            FHost.CreateValueOutput("Output 1", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FOutputPin1);
            FOutputPin1.SetSubType(double.MinValue, double.MaxValue, 0.01, 0, false, false, false);

            FHost.CreateValueOutput("Output 2", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FOutputPin2);
            FOutputPin2.SetSubType(double.MinValue, double.MaxValue, 0.01, 0, false, false, false);

            FOutputPinList.Add(FOutputPin1);
            FOutputPinList.Add(FOutputPin2);
        }
Example #7
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            //create inputs
            FHost.CreateValueConfig("List Count", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FListCount);
            FListCount.SetSubType(1, double.MaxValue, 1, 1, false, false, true);

            FHost.CreateValueConfig("Columns", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FColumns);
            FColumns.SetSubType(1, double.MaxValue, 1, 1, false, false, true);

            FHost.CreateStringInput("List Item", TSliceMode.Dynamic, TPinVisibility.True, out FItems);
            FItems.SetSubType("Item", false);

            FHost.CreateValueInput("Bin Size", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FBinSize);
            FBinSize.SetSubType(-1, double.MaxValue, 1, -1, false, false, true);

            FHost.CreateValueInput("Default Slice", 1, null, TSliceMode.Single, TPinVisibility.Hidden, out FDefault);
            FDefault.SetSubType(0, double.MaxValue, 1, 0, false, false, true);

            FHost.CreateValueInput("Select Item", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSelectItem);
            FSelectItem.SetSubType(0, double.MaxValue, 1, 0, false, false, true);

            FHost.CreateValueInput("Do Select", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FDoSelect);
            FDoSelect.SetSubType(0, 1, 1, 0, true, false, false);


            //create outputs
            FHost.CreateValueOutput("Selected Index", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSelectIndex);
            FSelectIndex.SetSubType(0, double.MaxValue, 0.01, 0, false, false, true);

            FHost.CreateStringOutput("Selected Item", TSliceMode.Dynamic, TPinVisibility.True, out FItem);
            FItem.SetSubType("", false);

            FComboList.Add(startCombo);
        }
Example #8
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            //create config
            FHost.CreateValueConfig("Input Count", 1, null, TSliceMode.Single, TPinVisibility.True, out FInCount);
            FInCount.SetSubType(1, double.MaxValue, 1, 1, false, false, true);

            //create inputs
            FHost.CreateValueInput("Prepend Patch Path", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPrepend);
            FPrepend.SetSubType(0, 1, 1, 1, false, true, false);

            FHost.CreateStringInput("Input 1", TSliceMode.Dynamic, TPinVisibility.True, out FIn1);
            FIn1.SetSubType("", false);

            //create outputs
            FHost.CreateStringOutput("Output", TSliceMode.Dynamic, TPinVisibility.True, out FOutput);
            FOutput.SetSubType("", false);

            //
            FInList.Add(FIn1);
        }
Example #9
0
        //this method is called by vvvv when the node is created
        public override void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            //create inputs:

            //transform
            FHost.CreateTransformInput("Transform In", TSliceMode.Dynamic, TPinVisibility.True, out FTransformIn);

            //value
            FHost.CreateValueInput("Value Input ", 2, null, TSliceMode.Dynamic, TPinVisibility.True, out FValueIn);
            FValueIn.SetSubType2D(0, 1, 0.01, 0, 0, false, false, false);

            FHost.CreateValueInput("Set Value", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSetValueIn);
            FSetValueIn.SetSubType(0, 1, 1, 0, true, false, false);

            //counts
            FHost.CreateValueInput("Count X", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FCountXIn);
            FCountXIn.SetSubType(1, double.MaxValue, 1, 1, false, false, true);

            FHost.CreateValueInput("Count Y", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FCountYIn);
            FCountYIn.SetSubType(1, double.MaxValue, 1, 1, false, false, true);

            //size
            FHost.CreateValueInput("Size X", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSizeXIn);
            FSizeXIn.SetSubType(double.MinValue, double.MaxValue, 0.01, 0.9, false, false, false);

            FHost.CreateValueInput("Size Y", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSizeYIn);
            FSizeYIn.SetSubType(double.MinValue, double.MaxValue, 0.01, 0.9, false, false, false);

            //mouse
            FHost.CreateValueInput("Mouse X", 1, null, TSliceMode.Single, TPinVisibility.True, out FMouseXIn);
            FMouseXIn.SetSubType(double.MinValue, double.MaxValue, 0.01, 0, false, false, false);

            FHost.CreateValueInput("Mouse Y", 1, null, TSliceMode.Single, TPinVisibility.True, out FMouseYIn);
            FMouseYIn.SetSubType(double.MinValue, double.MaxValue, 0.01, 0, false, false, false);

            FHost.CreateValueInput("Mouse Left", 1, null, TSliceMode.Single, TPinVisibility.True, out FLeftButtonIn);
            FLeftButtonIn.SetSubType(0, 1, 1, 0, false, true, false);

            //color
            FHost.CreateColorInput("Color", TSliceMode.Dynamic, TPinVisibility.True, out FColorIn);
            FColorIn.SetSubType(new RGBAColor(0.2, 0.2, 0.2, 1), true);

            FHost.CreateColorInput("Mouse Over Color", TSliceMode.Dynamic, TPinVisibility.True, out FOverColorIn);
            FOverColorIn.SetSubType(new RGBAColor(0.5, 0.5, 0.5, 1), true);

            FHost.CreateColorInput("Activated Color", TSliceMode.Dynamic, TPinVisibility.True, out FActiveColorIn);
            FActiveColorIn.SetSubType(new RGBAColor(1, 1, 1, 1), true);

            FHost.CreateValueInput("Size Slider", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSizeSliderIn);
            FSizeSliderIn.SetSubType(double.MinValue, double.MaxValue, 0.01, 0.02, false, false, false);

            FHost.CreateColorInput("Slider Color", TSliceMode.Dynamic, TPinVisibility.True, out FSliderColorIn);
            FSliderColorIn.SetSubType(new RGBAColor(1, 1, 1, 1), true);

            FHost.CreateValueInput("Slider Speed", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSliderSpeedIn);
            FSliderSpeedIn.SetSubType(0, double.MaxValue, 0.01, 1, false, false, false);


            //create outputs
            FHost.CreateTransformOutput("Transform Out", TSliceMode.Dynamic, TPinVisibility.True, out FTransformOut);

            FHost.CreateColorOutput("Color", TSliceMode.Dynamic, TPinVisibility.True, out FColorOut);
            FColorOut.SetSubType(new RGBAColor(0.2, 0.2, 0.2, 1), true);

            FHost.CreateValueOutput("Value Output ", 2, null, TSliceMode.Dynamic, TPinVisibility.True, out FValueOut);
            FValueOut.SetSubType2D(0, 1, 0.01, 0, 0, false, false, false);

            FHost.CreateValueOutput("Active", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FActiveOut);
            FActiveOut.SetSubType(0, 1, 1, 0, false, true, false);

            FHost.CreateValueOutput("Hit", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FHitOut);
            FHitOut.SetSubType(0, 1, 1, 0, true, false, false);

            FHost.CreateValueOutput("Mouse Over", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FMouseOverOut);
            FMouseOverOut.SetSubType(0, 1, 1, 0, false, true, false);

            FHost.CreateValueOutput("Spread Counts", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FSpreadCountsOut);
            FSpreadCountsOut.SetSubType(0, double.MaxValue, 0.01, 0, false, false, true);

            //create config pin
            FHost.CreateValueConfig("Internal Value ", 2, null, TSliceMode.Dynamic, TPinVisibility.OnlyInspector, out FInternalValueConfig);
            FInternalValueConfig.SetSubType2D(0, 1, 0.01, 0, 0, false, false, false);

            FControllerGroups = new ArrayList();
        }
Example #10
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            //create inputs

            FHost.CreateValueConfig("Debug Pins", 1, null, TSliceMode.Single, TPinVisibility.OnlyInspector, out FPinConfigDebug);
            FPinConfigDebug.SetSubType(0, 1, 1, 0, false, true, false);

            FHost.CreateValueInput("Enable", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinInputEnable);
            FPinInputEnable.SetSubType(0, 1, 1, 0, false, true, false);

            FHost.CreateValueInput("Exclusive", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinInputDigitizing);
            FPinInputDigitizing.SetSubType(0, 1, 1, 1, false, true, false);

            //create outputs
            FHost.CreateValueOutput("X", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputX);
            FPinOutputX.SetSubType(-1, 1, 0.01, 0, false, false, false);

            FHost.CreateValueOutput("Y", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputY);
            FPinOutputY.SetSubType(-1, 1, 0.01, 0, false, false, false);

            FHost.CreateValueOutput("Pressure", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputPressure);
            FPinOutputPressure.SetSubType(0, 1, 0.01, 0, false, false, false);

            FHost.CreateValueOutput("Proximity", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputProximity);
            FPinOutputProximity.SetSubType(0, 1, 1, 0, false, true, false);

            FHost.CreateValueOutput("Tilt", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputTilt);
            FPinOutputTilt.SetSubType(-1, 1, 0.01, 0, false, false, false);

            FHost.CreateValueOutput("Azimuth", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputAzimuth);
            FPinOutputAzimuth.SetSubType(0, 1, 0.01, 0, false, false, false);

            FHost.CreateValueOutput("Cursor", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputCursor);
            FPinOutputCursor.SetSubType(int.MinValue, int.MaxValue, 1, 0, false, false, true);

            FHost.CreateValueOutput("Cursor Serial No.", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputSerialNo);
            FPinOutputSerialNo.SetSubType(int.MinValue, int.MaxValue, 1, 0, false, false, true);

            FHost.CreateValueOutput("Cursor Type", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputCursorType);
            FPinOutputCursorType.SetSubType(int.MinValue, int.MaxValue, 1, 0, false, false, true);

            FHost.CreateValueOutput("Cursor Subtype", 1, null, TSliceMode.Single, TPinVisibility.True, out FPinOutputCursorSubtype);
            FPinOutputCursorSubtype.SetSubType(int.MinValue, int.MaxValue, 1, 0, false, false, true);

            FHost.CreateStringOutput("Cursor Name", TSliceMode.Single, TPinVisibility.True, out FPinOutputCursorName);
            FPinOutputCursorName.SetSubType("", false);

            FHost.CreateValueOutput("Dimensions", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputDimensions);
            FPinOutputDimensions.SetSubType(double.MinValue, double.MaxValue, 0.01, 0, false, false, false);

            FHost.CreateValueOutput("Buttons", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FPinOutputButtons);
            FPinOutputButtons.SetSubType(0, 1, 1, 0, false, true, true);

            if (Tablet != null)
            {
                Connect();
            }
            Configurate(FPinConfigDebug);
        }
Example #11
0
        //this method is called by vvvv when the node is created
        public void SetPluginHost(IPluginHost Host)
        {
            //assign host
            FHost = Host;

            //create inputs
            FHost.CreateValueFastInput("X", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FXIn);
            FXIn.SetSubType(-1.0, 1.0, 0.01, 0, false, false, false);
            FHost.CreateValueFastInput("Y", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FYIn);
            FYIn.SetSubType(-1.0, 1.0, 0.01, 0, false, false, false);
            FHost.CreateColorInput("Color", TSliceMode.Dynamic, TPinVisibility.True, out FColorIn);
            FColorIn.SetSubType(VColor.White, false);
            FHost.CreateValueFastInput("Corner", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FCornerIn);
            FCornerIn.SetSubType(int.MinValue, int.MaxValue, 1.0, 0.0, false, false, true);
            FHost.CreateValueFastInput("Travel Blank", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FTravelBlankIn);
            FTravelBlankIn.SetSubType(int.MinValue, int.MaxValue, 1.0, 0.0, false, false, true);
            FHost.CreateValueFastInput("Frame Size", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FFrameSizeIn);
            FFrameSizeIn.SetSubType(int.MinValue, int.MaxValue, 1.0, -1.0, false, false, true);
            FHost.CreateValueFastInput("Frame", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FFrameIn);
            FFrameIn.SetSubType(1.0, int.MaxValue, 1.0, 1.0, false, false, true);
            FHost.CreateValueFastInput("Projection Zone", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FZoneIn);
            FZoneIn.SetSubType(1.0, 30.0, 1.0, 1.0, false, false, true);
            FHost.CreateValueFastInput("Frame Scan Rate", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FFrameScanRateIn);
            FFrameScanRateIn.SetSubType(-130.0, int.MaxValue, 1.0, 100.0, false, false, true);
            FHost.CreateValueFastInput("Animation Count", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FAnimationCountIn);
            FAnimationCountIn.SetSubType(0.0, int.MaxValue, 1.0, 0.0, false, false, true);
            FHost.CreateValueFastInput("Is Vector Frame", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FIsVectorFrameIn);
            FIsVectorFrameIn.SetSubType(0.0, 1.0, 1.0, 1.0, false, true, false);

            CreatePins(FVDPins);
            CreatePins(FSkewPins);

            FHost.CreateValueInput("Working Track", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FWorkingTrackIn);
            FWorkingTrackIn.SetSubType(-1.0, int.MaxValue, 1.0, 1.0, false, false, true);

            /*
             * FHost.CreateValueInput("Active Scanner", 1, null, TSliceMode.Dynamic, TPinVisibility.Hidden, out FActiveScannerIn);
             * FActiveScannerIn.SetSubType(-1.0, int.MaxValue, 1.0, -1.0, false, false, true);
             */
            FHost.CreateValueInput("Do Write", 1, null, TSliceMode.Single, TPinVisibility.True, out FDoWriteIn);
            FDoWriteIn.SetSubType(0.0, 1.0, 1.0, 0.0, false, true, false);

            //create configuration inputs
            FHost.CreateValueConfig("Scan Rate", 1, null, TSliceMode.Single, TPinVisibility.True, out FScanRateIn);
            FScanRateIn.SetSubType(25.0, 130000.0, 1.0, 30000.0, false, false, true);

            //create outputs
            FHost.CreateValueOutput("X", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FXOut);
            FXOut.SetSubType(-1.0, 1.0, 0.01, 0, false, false, false);
            FHost.CreateValueOutput("Y", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FYOut);
            FYOut.SetSubType(-1.0, 1.0, 0.01, 0, false, false, false);
            FHost.CreateColorOutput("Color", TSliceMode.Dynamic, TPinVisibility.True, out FColorOut);
            FColorOut.SetSubType(VColor.White, false);
            FHost.CreateValueOutput("Corner", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FCornerOut);
            FCornerOut.SetSubType(int.MinValue, int.MaxValue, 1.0, 0.0, false, false, true);
            FHost.CreateValueOutput("Frame Size", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FFrameSizeOut);
            FFrameSizeOut.SetSubType(int.MinValue, int.MaxValue, 1.0, -1.0, false, false, true);
            FHost.CreateValueOutput("Frame Scan Rate", 1, null, TSliceMode.Dynamic, TPinVisibility.OnlyInspector, out FFrameScanRateOut);
            FFrameScanRateOut.SetSubType(-130.0, int.MaxValue, 1.0, 100.0, false, false, true);
            FHost.CreateValueOutput("Projection Zone", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FZoneOut);
            FZoneOut.SetSubType(1.0, 30.0, 1.0, 1.0, false, false, true);
            FHost.CreateValueOutput("Animation Count", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FAnimationCountOut);
            FAnimationCountOut.SetSubType(0.0, int.MaxValue, 1.0, 0.0, false, false, true);
            FHost.CreateValueOutput("Is Vector Frame", 1, null, TSliceMode.Dynamic, TPinVisibility.True, out FIsVectorFrameOut);
            FIsVectorFrameOut.SetSubType(0.0, 1.0, 1.0, 0.0, false, true, false);
            FHost.CreateStringOutput("Status", TSliceMode.Single, TPinVisibility.True, out FStatusOut);

            RunLD();
        }