Esempio n. 1
0
        public Transform(TransformFunction function = null)
        {
            Function = function;

            Input  = AddInput("Input", Units.Scalar);
            Output = AddOutput("Output", Units.Scalar);

            Input.ValueChanged += (s, e) => Run();
        }
Esempio n. 2
0
        public Transform (TransformFunction function = null)
        {
            Function = function;

            Input = AddInput ("Input", Units.Scalar);
            Output = AddOutput ("Output", Units.Scalar);

            Input.ValueChanged += (s,e) => Run ();
        }
Esempio n. 3
0
 public PatchOperation(TransformFunction transform, IQueryableDocument document, IWhereFragment fragment,
                       IDictionary <string, object> patch, ISerializer serializer)
 {
     _transform  = transform;
     _document   = document;
     _fragment   = fragment;
     _patch      = patch;
     _serializer = serializer;
 }
Esempio n. 4
0
        internal void CreatePatching()
        {
            if (PLV8Enabled)
            {
                var patching = new TransformFunction(this, PatchDoc, SchemaBuilder.GetJavascript(this, "mt_patching"));
                patching.OtherArgs.Add("patch");

                Transforms.Load(patching);
            }
        }
Esempio n. 5
0
        public void create_function_for_file()
        {
            var options = new StoreOptions();
            var func    = TransformFunction.ForFile(options, _getFullnameJs);

            func.Name.ShouldBe("get_fullname");

            func.Body.ShouldContain("module.exports");

            func.Identifier.Name.ShouldBe("mt_transform_get_fullname");
        }
Esempio n. 6
0
        public StoreOptions()
        {
            Events     = new EventGraph(this);
            Schema     = new MartenRegistry(this);
            Transforms = new Transforms.Transforms(this);

            var patching = new TransformFunction(this, PatchDoc, SchemaBuilder.GetJavascript(this, "mt_patching"));

            patching.OtherArgs.Add("patch");

            Transforms.Load(patching);
        }
        public void FunctionFromMethod()
        {
            //create a custom function
            TransformFunction function1 = new TransformFunction(
                this,
                "TestMethod",
                null,
                new TableColumn("test"),
                null);

            Assert.True((Int32)function1.RunFunction(new object[] { 6, 2 }) == 8);
        }
Esempio n. 8
0
        public void picks_up_the_schema_from_storeoptions()
        {
            var options = new StoreOptions
            {
                DatabaseSchemaName = "other"
            };

            var func = new TransformFunction(options, "nfl.team.chiefs",
                                             "module.exports = function(doc){return doc;};");


            func.Identifier.Schema.ShouldBe("other");
        }
        private decimal CalculateHistoricalValue(List <QuotesModel> quotes, TransformFunction transform, HistoricalDataSeriesType dataSeries)
        {
            List <decimal> values;

            switch (dataSeries)
            {
            case HistoricalDataSeriesType.Open:
                values = quotes.Select(q => q.Open).ToList();
                break;

            case HistoricalDataSeriesType.Close:
                values = quotes.Select(q => q.Close).ToList();
                break;

            case HistoricalDataSeriesType.High:
                values = quotes.Select(q => q.High).ToList();
                break;

            case HistoricalDataSeriesType.Low:
                values = quotes.Select(q => q.Low).ToList();
                break;

            case HistoricalDataSeriesType.Volume:
                values = quotes.Select(q => q.Volume).ToList();
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(dataSeries), dataSeries, null);
            }

            switch (transform)
            {
            case TransformFunction.First:
                return(values.First());

            case TransformFunction.Max:
                return(values.Max(v => v));

            case TransformFunction.Min:
                return(values.Min(v => v));

            case TransformFunction.Sum:
                return(values.Sum(v => v));

            case TransformFunction.Avg:
                return(values.Average(v => v));

            default:
                throw new ArgumentOutOfRangeException(nameof(transform), transform, null);
            }
        }
Esempio n. 10
0
 public static object[] TransformFunctionMany(this object[] items, TransformFunction filter)
 {
     if (items == null)
     {
         return(null);
     }
     if (filter == null)
     {
         filter = PassthroughTransform;
     }
     object[] newItems = new object[items.Length];
     for (int i = 0; i < items.Length; i++)
     {
         newItems[i] = filter(items[i]);
     }
     return(newItems);
 }
Esempio n. 11
0
        public void end_to_end_test_using_the_transform()
        {
            var user = new User {
                FirstName = "Jeremy", LastName = "Miller"
            };
            var json = new TestsSerializer().ToCleanJson(user);

            var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs);

            using var conn = theStore.Tenancy.Default.Database.CreateConnection();
            conn.Open();
            conn.CreateCommand(func.GenerateFunction()).ExecuteNonQuery();

            var actual = (string)conn.CreateCommand("select mt_transform_get_fullname(:json)")
                         .With("json", json, NpgsqlDbType.Jsonb)
                         .ExecuteScalar();

            actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}");
        }
Esempio n. 12
0
        public void does_not_regenerate_the_function_if_it_exists()
        {
            var schema    = Substitute.For <IDocumentSchema>();
            var dbobjects = Substitute.For <IDbObjects>();

            schema.DbObjects.Returns(dbobjects);

            var func = TransformFunction.ForFile(new StoreOptions(), "get_fullname.js");

            dbobjects.DefinitionForFunction(func.Function).Returns(func.GenerateFunction());

            var runner = Substitute.For <IDDLRunner>();

            func.GenerateSchemaObjectsIfNecessary(AutoCreate.All, schema, runner);

            var generated = func.GenerateFunction();

            runner.DidNotReceive().Apply(func, generated);
        }
Esempio n. 13
0
        public void end_to_end_test_using_the_transform()
        {
            var user = new User {
                FirstName = "Jeremy", LastName = "Miller"
            };
            var json = new TestsSerializer().ToCleanJson(user);

            var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs);

            using (var conn = theStore.Tenancy.Default.OpenConnection())
            {
                var cmd = new NpgsqlCommand(func.GenerateFunction());
                conn.Execute(cmd);

                var cmd2   = new NpgsqlCommand("select mt_transform_get_fullname(:json)").WithJsonParameter("json", json);
                var actual = conn.QueryScalar <string>(cmd2);

                actual.ShouldBe("{\"fullname\": \"Jeremy Miller\"}");
            }
        }
        public Mapping GetValidationMapping(string columnName)
        {
            var parameters = new Parameters()
            {
                Inputs           = new Parameter[] { new ParameterColumn(columnName, ETypeCode.String) },
                ReturnParameters = new Parameter[] { new ParameterOutputColumn(columnName, ETypeCode.String) },
                Outputs          = new Parameter[] { new ParameterOutputColumn(columnName, ETypeCode.String), new ParameterOutputColumn("RejectReason", new TableColumn("RejectReason", EDeltaType.RejectedReason)) }
            };

            var validationFunction =
                new TransformFunction(this, GetType().GetMethod(nameof(Run)), null, parameters, null)
            {
                FunctionName     = ColumnValidation.Name,
                InitializeMethod = new TransformMethod(GetType().GetMethod(nameof(Initialize))),
                InvalidAction    = ColumnValidation.InvalidAction,
                OnNull           = EErrorAction.Execute,
            };
            var mapping = new MapValidation(validationFunction, parameters);

            return(mapping);
        }
Esempio n. 15
0
        public void throws_exception_if_auto_create_is_none_and_the_function_does_not_exist()
        {
            var schema    = Substitute.For <IDocumentSchema>();
            var dbobjects = Substitute.For <IDbObjects>();

            schema.DbObjects.Returns(dbobjects);

            var func = TransformFunction.ForFile(new StoreOptions {
                AutoCreateSchemaObjects = AutoCreate.None
            }, "get_fullname.js");

            dbobjects.SchemaFunctionNames().Returns(Enumerable.Empty <FunctionName>());

            var runner = Substitute.For <IDDLRunner>();


            Exception <InvalidOperationException> .ShouldBeThrownBy(() =>
            {
                func.GenerateSchemaObjectsIfNecessary(AutoCreate.None, schema, runner);
            });
        }
Esempio n. 16
0
        public void does_not_regenerate_the_function_if_it_exists()
        {
            var schema    = Substitute.For <IDocumentSchema>();
            var dbobjects = Substitute.For <IDbObjects>();

            schema.DbObjects.Returns(dbobjects);

            var func = TransformFunction.ForFile(new StoreOptions(), _getFullnameJs);

            var body = new FunctionBody(func.Function, new string[0], func.GenerateFunction());

            dbobjects.DefinitionForFunction(func.Function).Returns(body);

            var patch = new SchemaPatch(new DdlRules());

            func.GenerateSchemaObjectsIfNecessary(AutoCreate.All, schema, patch);

            var generated = func.GenerateFunction();

            patch.UpdateDDL.ShouldNotContain(generated);
            patch.RollbackDDL.ShouldNotContain(func.Function.QualifiedName);
        }
Esempio n. 17
0
        public void rebuilds_if_it_does_not_exist_in_the_schema_if_auto_create_is_create_only()
        {
            var schema    = Substitute.For <IDocumentSchema>();
            var dbobjects = Substitute.For <IDbObjects>();

            schema.DbObjects.Returns(dbobjects);

            var func = TransformFunction.ForFile(new StoreOptions {
                AutoCreateSchemaObjects = AutoCreate.CreateOnly
            }, "get_fullname.js");

            dbobjects.SchemaFunctionNames().Returns(Enumerable.Empty <FunctionName>());

            var runner = Substitute.For <IDDLRunner>();


            func.GenerateSchemaObjectsIfNecessary(AutoCreate.CreateOnly, schema, runner);

            var generated = func.GenerateFunction();

            runner.Received().Apply(func, generated);
        }
Esempio n. 18
0
        public void rebuilds_if_it_does_not_exist_in_the_schema_if_auto_create_is_create_only()
        {
            var schema = Substitute.For <IDocumentSchema>();

            schema.StoreOptions.Returns(new StoreOptions());
            var dbobjects = Substitute.For <IDbObjects>();

            schema.DbObjects.Returns(dbobjects);

            var func = TransformFunction.ForFile(new StoreOptions {
                AutoCreateSchemaObjects = AutoCreate.CreateOnly
            }, _getFullnameJs);

            dbobjects.SchemaFunctionNames().Returns(Enumerable.Empty <FunctionName>());

            var patch = new SchemaPatch(new DdlRules());


            func.GenerateSchemaObjectsIfNecessary(AutoCreate.CreateOnly, schema, patch);

            var generated = func.GenerateFunction();

            patch.UpdateDDL.ShouldContain(generated);
        }
        /// <summary>
        /// Gets a reference to the specified profile function.
        /// </summary>
        /// <param name="functionAssemblyName"></param>
        /// <param name="functionClassName"></param>
        /// <param name="functionMethodName"></param>
        /// <param name="columnName"></param>
        /// <param name="detailedResults"></param>
        /// <param name="globalSettings"></param>
        /// <returns></returns>
        /// <exception cref="TransformManagerException"></exception>
        public Mapping GetProfileFunction(string functionAssemblyName, string functionClassName, string functionMethodName, string columnName, bool detailedResults, GlobalSettings globalSettings)
        {
            try
            {
                var functionMethod =
                    Functions.GetFunctionMethod(functionClassName, functionMethodName, functionAssemblyName);

                var profileObject = Activator.CreateInstance(functionMethod.type);

                var property = profileObject.GetType().GetProperty("DetailedResults");
                if (property != null)
                {
                    property.SetValue(profileObject, detailedResults);
                }

                var parameters = new Parameters()
                {
                    Inputs = new Parameter[] { new ParameterColumn("value", new TableColumn(columnName)) },
                    ResultReturnParameters = new List <Parameter>()
                    {
                        new ParameterOutputColumn("value", ETypeCode.String)
                    },
                    ResultOutputs = new List <Parameter>()
                    {
                        new ParameterOutputColumn("distribution", ETypeCode.Unknown)
                    },
                };
                var profileFunction = new TransformFunction(profileObject, functionMethodName, null, parameters, globalSettings);
                var mapFunction     = new MapFunction(profileFunction, parameters, EFunctionCaching.NoCache);
                return(mapFunction);
            }
            catch (Exception ex)
            {
                throw new TransformManagerException($"Get profile function failed.  {ex.Message}.", ex);
            }
        }
        public async Task Mappings()
        {
            var Source           = Helpers.CreateSortedTestData();
            var transformMapping = new TransformMapping();

            var Mappings = new List <TransformFunction>();

            //Mappings.Add(new Function("CustomFunction", false, "test", "return StringColumn + number.ToString();", null, ETypeCode.String,
            //    new dexih.functions.Parameter[] {
            //        new dexih.functions.Parameter("StringColumn", ETypeCode.String, true, null, "StringColumn" ),
            //        new dexih.functions.Parameter("number", ETypeCode.Int32, false, 123)
            //    }, null));

            var transformFunction = new TransformFunction(
                new Func <string, int, string>((StringColumn, number) => StringColumn + number.ToString()),
                new TableColumn[] { new TableColumn("StringColumn"), new TableColumn("number", ETypeCode.Int32) },
                new TableColumn("CustomFunction"),
                null)
            {
                Inputs = new dexih.functions.Parameter[] {
                    new dexih.functions.Parameter("StringColumn", ETypeCode.String, true, null, new TableColumn("StringColumn")),
                    new dexih.functions.Parameter("number", ETypeCode.Int32, false, 123)
                }
            };

            Mappings.Add(transformFunction);

            transformFunction = Functions.GetFunction("dexih.functions.BuiltIn.MapFunctions", "Substring").GetTransformFunction();
            transformFunction.TargetColumn = new TableColumn("Substring");
            transformFunction.Inputs       = new dexih.functions.Parameter[] {
                new dexih.functions.Parameter("name", ETypeCode.String, true, null, new TableColumn("StringColumn")),
                new dexih.functions.Parameter("start", ETypeCode.Int32, false, 1),
                new dexih.functions.Parameter("start", ETypeCode.Int32, false, 3)
            };
            Mappings.Add(transformFunction);

            var MappingColumn = new List <ColumnPair>
            {
                new ColumnPair(new TableColumn("DateColumn", ETypeCode.DateTime), new TableColumn("DateColumn", ETypeCode.DateTime))
            };

            transformMapping = new TransformMapping(Source, false, MappingColumn, Mappings);

            Assert.Equal(3, transformMapping.FieldCount);

            var count = 0;

            while (await transformMapping.ReadAsync() == true)
            {
                count = count + 1;
                Assert.Equal("value" + count.ToString().PadLeft(2, '0') + "123", transformMapping["CustomFunction"]);
                Assert.Equal("alu", transformMapping["Substring"]);
                Assert.Equal((DateTime)Convert.ToDateTime("2015-01-" + count.ToString()), (DateTime)transformMapping["DateColumn"]);
            }
            Assert.Equal(10, count);

            //test the getschematable table function.
            //DataReaderAdapter SchemaTable = TransformMapping.GetSchemaTable();
            //Assert.Equal("DateColumn", SchemaTable.Rows[0]["ColumnName"]);
            //Assert.Equal("CustomFunction", SchemaTable.Rows[1]["ColumnName"]);
            //Assert.Equal("Substring", SchemaTable.Rows[2]["ColumnName"]);
        }
Esempio n. 21
0
 public void Init(params double[] Parameters)
 {
     _Age = 0;
     _Params = Parameters;
     _position = new Vector2();
     _scale = 1;
     _Function = null;
 }
        public static void Run()
        {
            var scope = new DebugScope();

            //
            // Create the robot
            //
            var leftMotor = HBridgeMotor.CreateForNetduino(PWMChannels.PWM_PIN_D3, Pins.GPIO_PIN_D1, Pins.GPIO_PIN_D2);

            leftMotor.CalibrationInput.Value = 1;

            var rightMotor = HBridgeMotor.CreateForNetduino(PWMChannels.PWM_PIN_D6, Pins.GPIO_PIN_D4, Pins.GPIO_PIN_D5);

            rightMotor.CalibrationInput.Value = 1;

            //
            // Create his eyes
            //
            var leftRange = new SharpGP2D12 {
                Name = "LeftRange"
            };
            var rightRange = new SharpGP2D12 {
                Name = "RightRange"
            };

            leftRange.AnalogInput.ConnectTo(new AnalogInputPin(AnalogChannels.ANALOG_PIN_A0, 10).Analog);
            rightRange.AnalogInput.ConnectTo(new AnalogInputPin(AnalogChannels.ANALOG_PIN_A1, 10).Analog);

            scope.ConnectTo(leftRange.DistanceOutput);
            scope.ConnectTo(rightRange.DistanceOutput);

            //
            // Now some intelligence
            // Each motor is driven by the distance sensor's reading
            //
            var nearDist = 0.1;
            var farDist  = 0.5;
            var minSpeed = 0.4;

            TransformFunction distanceToSpeed = d => {
                if (d < nearDist)
                {
                    return(-minSpeed);
                }
                if (d > farDist)
                {
                    return(1);
                }
                var a = (d - nearDist) / (farDist - nearDist);
                return(a * (1 - minSpeed) + minSpeed);
            };

            var leftSpeed = new Transform(distanceToSpeed);

            leftSpeed.Input.ConnectTo(leftRange.DistanceOutput);
            leftSpeed.Output.ConnectTo(leftMotor.SpeedInput);

            var rightSpeed = new Transform(distanceToSpeed);

            rightSpeed.Input.ConnectTo(rightRange.DistanceOutput);
            rightSpeed.Output.ConnectTo(rightMotor.SpeedInput);
        }
Esempio n. 23
0
        /// <summary>
        /// Zvolí a inicializuje transformaci podle aktuálního stavu výběru
        /// </summary>
        /// <param name="mousePosition"></param>
        public void InitTransformation(Point mousePosition)
        {
            this.flippedHorizontaly = this.flippedVerticaly = false;
            if (this.State == SelectionState.Draw)
            {
                // změna proporcí nově kresleného objektu
                this.defaultProportions = new Point(1, 1);
                this.TransformLock      = TransformLock.None;
                this.solidPoint         = this.position;
                this.Transform          = this.resizeToPoint;
                return;
            }
            else if (this.State == SelectionState.Resize)
            {
                // změna pozice výběru
                if (this.border.Visibility == Visibility.Hidden || this.border.ActiveCorner == null)
                {
                    this.defaultProportions = new Point(1, 1);
                    this.border.Visibility  = Visibility.Hidden;
                    this.solidPoint         = mousePosition;
                    this.Transform          = this.moveToPoint;
                    return;
                }

                // změna proporcí výběru
                this.defaultProportions = this.proportions;
                this.Transform          = this.resizeToPoint;
                switch (this.border.ActiveCorner.Name)
                {
                case "corner1":
                    this.drawCanvas.Cursor  = Cursors.SizeNESW;
                    this.TransformLock      = TransformLock.None;
                    this.solidPoint         = new Point(this.position.X + this.proportions.X, this.position.Y + this.proportions.Y);
                    this.flippedHorizontaly = this.flippedVerticaly = true;
                    break;

                case "corner2":
                    this.drawCanvas.Cursor  = Cursors.SizeNWSE;
                    this.TransformLock      = TransformLock.None;
                    this.solidPoint         = new Point(this.position.X + this.proportions.X, this.position.Y);
                    this.flippedHorizontaly = true;
                    this.flippedVerticaly   = false;
                    break;

                case "corner3":
                    this.drawCanvas.Cursor  = Cursors.SizeNWSE;
                    this.TransformLock      = TransformLock.None;
                    this.solidPoint         = new Point(this.position.X, this.position.Y + this.proportions.Y);
                    this.flippedHorizontaly = false;
                    this.flippedVerticaly   = true;
                    break;

                case "corner4":
                    this.drawCanvas.Cursor  = Cursors.SizeNESW;
                    this.TransformLock      = TransformLock.None;
                    this.solidPoint         = this.position;
                    this.flippedHorizontaly = this.flippedVerticaly = false;
                    break;

                case "corner5":
                    this.drawCanvas.Cursor = Cursors.SizeNS;
                    this.TransformLock     = TransformLock.Horizontal;
                    this.solidPoint        = new Point(this.position.X, this.position.Y + this.proportions.Y);
                    this.flippedVerticaly  = true;
                    break;

                case "corner6":
                    this.drawCanvas.Cursor = Cursors.SizeNS;
                    this.TransformLock     = TransformLock.Horizontal;
                    this.solidPoint        = this.position;
                    this.flippedVerticaly  = false;
                    break;

                case "corner7":
                    this.drawCanvas.Cursor  = Cursors.SizeWE;
                    this.TransformLock      = TransformLock.Vertical;
                    this.solidPoint         = new Point(this.position.X + this.proportions.X, this.position.Y);
                    this.flippedHorizontaly = true;
                    break;

                case "corner8":
                    this.drawCanvas.Cursor  = Cursors.SizeWE;
                    this.TransformLock      = TransformLock.Vertical;
                    this.solidPoint         = this.position;
                    this.flippedHorizontaly = false;
                    break;

                default:
                    this.Transform = delegate(Point point) { };
                    break;
                }
            }
            else
            {
                if (this.border.ActiveCorner == null)
                {
                    this.Transform = delegate(Point point) { }
                }
                ;
                else
                {
                    this.drawCanvas.Cursor = Cursors.Cross;
                    this.border.Visibility = Visibility.Hidden;
                    this.Transform         = rotateToPoint;
                    this.solidAngle        = 180 * Math.Atan(this.Width / this.Height) / Math.PI;

                    switch (this.border.ActiveCorner.Name)
                    {
                    case "corner1":
                        this.solidAngle = 180 - this.solidAngle;
                        break;

                    case "corner2":
                        break;

                    case "corner3":
                        this.solidAngle -= 180;
                        break;

                    case "corner4":
                        this.solidAngle = -this.solidAngle;
                        break;
                    }
                    this.solidAngle -= this.rotationAngle;
                }
            }
        }
Esempio n. 24
0
 public BitmapDrawer(DataProvider data)
 {
     this.data = data;
     DrawImage = new TransformFunction(DrawImageWinForms);
 }
Esempio n. 25
0
        public static DataTable GenerateDiffReport2(DataTable diff, DataTable first, IEnumerable <string> pkeyColumns, IEnumerable <string> ignoreColumns, TransformFunction filter)
        {
            if (filter == null)
            {
                filter = PassthroughTransform;
            }
            var allColumnSet = first.GetColumnNames().ToList();

            DataTable resultTable = new DataTable();

            resultTable.Columns.Add("OLD(0)/NEW(1)");
            resultTable.Columns.Add("PairNumber");
            resultTable.Columns.Add("PkeyDelta");
            resultTable.Columns.Add("ValueDelta");
            resultTable.Columns.Add("DeltaSummary");
            foreach (var col in allColumnSet)
            {
                resultTable.Columns.Add(col);
            }
            int columnCount = first.Columns.Count;
            int id          = 0;

            for (int i = 0; i < diff.Rows.Count; i++)
            {
                var itemList1 = new List <object>();
                var itemList2 = new List <object>();
                itemList1.Add("0");
                itemList2.Add("1");
                DataRow  oldRow          = diff.Rows[i]["OldRow"] as DataRow;
                DataRow  newRow          = diff.Rows[i]["NewRow"] as DataRow;
                bool     oldRowIsNull    = oldRow == null;
                bool     newRowIsNull    = newRow == null;
                object[] firstItemArray  = oldRowIsNull ? new object[columnCount] : oldRow.ItemArray;
                object[] secondItemArray = newRowIsNull ? new object[columnCount] : newRow.ItemArray;
                if (oldRowIsNull || newRowIsNull)
                {
                    itemList1.Add(""); //no id
                    itemList2.Add(""); //no id
                }
                else
                {
                    itemList1.Add(id);
                    itemList2.Add(id++);
                }

                if (oldRowIsNull)
                {
                    itemList2.AddRange("", "");
                }
                else
                {
                    itemList2.AddRange(diff.Rows[i]["PkeyDelta"], diff.Rows[i]["ValueDelta"]);
                }
                if (newRowIsNull)
                {
                    itemList1.AddRange("", "");
                }
                else
                {
                    itemList1.AddRange(diff.Rows[i]["PkeyDelta"], diff.Rows[i]["ValueDelta"]);
                }
                //string a = firstItemArray.SequenceToString(" ");
                //string b = firstItemArray.SequenceToString(" ");
                StringBuilder changeSummary = new StringBuilder();
                changeSummary.Append("\"");
                if (!oldRowIsNull && !newRowIsNull)
                {
                    for (int j = 0; j < firstItemArray.Length; j++)
                    {
                        itemList1.Add(firstItemArray[j]);
                        if (!firstItemArray[j].Equals(secondItemArray[j]))
                        {
                            itemList2.Add(secondItemArray[j]);
                            changeSummary.Append(string.Concat(allColumnSet[j], " {", filter(firstItemArray[j]), "} / {", filter(secondItemArray[j]), "}\n"));
                        }
                        else
                        {
                            itemList2.Add("''");
                        }
                    }
                }
                else
                {
                    itemList1.AddRange(firstItemArray);
                    itemList2.AddRange(secondItemArray);
                }
                changeSummary.Append("\"");
                //firstItemArray = firstItemArray.FillNull(string.Empty).FillEmpty(" ");
                //secondItemArray = secondItemArray.FillNull(string.Empty).FillEmpty(" ");
                if (!oldRowIsNull)
                {
                    itemList1[3] = changeSummary.ToString();
                    resultTable.Rows.Add(itemList1.ToArray().TransformFunctionMany(filter).FillEmpty(" "));
                }
                if (!newRowIsNull)
                {
                    resultTable.Rows.Add(itemList2.ToArray().TransformFunctionMany(filter).FillEmpty(" "));
                }
            }
            return(resultTable);
        }
Esempio n. 26
0
 public void SetImageFast()
 {
     DrawImage = new TransformFunction(DrawImageWinForms);
 }
 public Transformation(string name, TransformFunction transform) : this(name, transform, null)
 {
 }
Esempio n. 28
0
        // Main parse loop
        void Parse()
        {
            // First, try to see if the transform is actually "no transform"
            if (parseString.Trim() == "none")
            {
                return;
            }

            // Flag to report an error if a transform function ends too soon
            bool allowEnd = true;

            try
            {
                while (true)
                {
                    // First, try to extract a command
                    allowEnd = true;
                    var function = ParseTransformFunctionType();
                    allowEnd = false;

                    switch (function)
                    {
                    case TransformFunctionType.Matrix:
                    {
                        var a = DelimitedParenthesizedSequence(6, 6);
                        transformFunctions.Add(TransformFunction.Matrix(a[0], a[1], a[2], a[3], a[4], a[5]));
                        break;
                    }

                    case TransformFunctionType.Translate:
                    {
                        var a = DelimitedParenthesizedSequence(1, 2);
                        transformFunctions.Add(TransformFunction.Translate(a[0], a.TryGetOr(1, 0)));
                        break;
                    }

                    case TransformFunctionType.Rotate:
                    {
                        var a = DelimitedParenthesizedSequence(1, 1);
                        transformFunctions.Add(TransformFunction.Rotate(a[0].ToRadians()));
                        break;
                    }

                    case TransformFunctionType.Scale:
                    {
                        var a = DelimitedParenthesizedSequence(1, 2);
                        transformFunctions.Add(TransformFunction.Scale(a[0], a.TryGetOr(1, a[0])));
                        break;
                    }

                    case TransformFunctionType.SkewX:
                    {
                        var a = DelimitedParenthesizedSequence(1, 1);
                        transformFunctions.Add(TransformFunction.SkewX(a[0].ToRadians()));
                        break;
                    }

                    case TransformFunctionType.SkewY:
                    {
                        var a = DelimitedParenthesizedSequence(1, 1);
                        transformFunctions.Add(TransformFunction.SkewY(a[0].ToRadians()));
                        break;
                    }

                    default:
                        // This code will never come, but the C# compiler cannot detect it
                        throw new ParserException("Unrecognized transform function matched!");
                    }
                }
            }
            catch (EndParseException)
            {
                // The name says it all
                if (!allowEnd)
                {
                    throw new ParserException("Unexpected end of transform string!");
                }
            }
        }
Esempio n. 29
0
 public void SetImageNaive()
 {
     DrawImage = new TransformFunction(DrawImageNaive);
 }
 public Transformation(string name, TransformFunction transform, string trigger)
 {
     this.name      = name;
     this.transform = transform;
     this.trigger   = trigger;
 }
 public Transformation(string name, TransformFunction transform, string trigger) {
     this.name = name;
     this.transform = transform;
     this.trigger = trigger;
 }
Esempio n. 32
0
 public void SetImageFiltering()
 {
     DrawImage = new TransformFunction(DrawImageFiltering);
 }
 public Transformation(string name, TransformFunction transform) : this(name, transform, null) { }