public void LengthOfStrings() { const string xml = @" <add name='TestProcess'> <entities> <add name='TestData'> <rows> <add Input='1 2 3 4' /> </rows> <fields> <add name='Input' /> </fields> <calculated-fields> <add name='Length' type='int' t='copy(Input).length()' /> <add name='Len' type='int' t='copy(Input).len()' /> </calculated-fields> </add> </entities> </add>"; var logger = new ConsoleLogger(LogLevel.Debug); var lengthTransform = new TransformHolder((c) => new LengthTransform(c), new LengthTransform().GetSignatures()); using (var cfgScope = new ConfigurationContainer(lengthTransform).CreateScope(xml, logger)) { var process = cfgScope.Resolve <Process>(); using (var scope = new Container(lengthTransform).CreateScope(process, logger)) { scope.Resolve <IProcessController>().Execute(); var output = process.Entities.First().Rows; Assert.AreEqual(7, output[0]["Len"]); Assert.AreEqual(7, output[0]["Length"]); } } }
public ActorRecord(IActor actor) { _actor = actor; _id = _actor.GetID(); var trans = _actor.GetTransform(); _transform = new TransformHolder(trans); _parent = _actor.GetActorParent(); _components = GetActorComponents(_actor); _prefabKey = _actor.GetPrefabKey(); _actorType = actor.GetActorType().ToString(); }
public void Try1() { const string xml = @" <add name='TestProcess'> <entities> <add name='TestData'> <rows> <add id='1' xml=""<things><add name='deez'/><add name='nutz'/></things>"" /> <add id='2' xml=""<things><add name='got'/><add name='eeee'/></things>"" /> </rows> <fields> <add name='id' type='int' /> <add name='xml' length='max'> <transforms> <add method='fromxml' root='things' xml-mode='all'> <fields> <add name='name' node-type='attribute' /> </fields> </add> </transforms> </add> </fields> </add> </entities> </add>"; var logger = new ConsoleLogger(LogLevel.Debug); var fromXml = new TransformHolder((c) => new Transformalize.Transforms.Xml.FromXmlTransform(c), new Transformalize.Transforms.Xml.FromXmlTransform().GetSignatures()); using (var cfgScope = new ConfigurationContainer(fromXml).CreateScope(xml, logger)) { var process = cfgScope.Resolve <Process>(); using (var scope = new Container(fromXml).CreateScope(process, logger)) { var output = scope.Resolve <IProcessController>().Read().ToArray(); Assert.AreEqual(4, output.Length); var name = process.Entities.First().CalculatedFields.First(); var first = output[0]; Assert.AreEqual("deez", first[name]); var second = output[1]; Assert.AreEqual("nutz", second[name]); } } }
public void TrySomeDateMath() { const string xml = @" <add name='TestDateMath'> <entities> <add name='Dates'> <rows> <add Date='2017-01-01 9 AM' /> <add Date='2016-06-07 12:31:22' /> </rows> <fields> <add name='Date' type='datetime' /> </fields> <calculated-fields> <add name='RoundToMonth' type='datetime' t='copy(Date).dateMath(/M)' /> <add name='AddOneHourOneMinute' type='datetime' t='copy(Date).DateMath(+1h+1m)' /> </calculated-fields> </add> </entities> </add>"; var logger = new ConsoleLogger(LogLevel.Debug); var dateMath = new TransformHolder((c) => new DateMathTransform(c), new DateMathTransform().GetSignatures()); using (var cfgScope = new ConfigurationContainer(dateMath).CreateScope(xml, logger)) { var process = cfgScope.Resolve <Process>(); using (var scope = new Container(dateMath).CreateScope(process, logger)) { scope.Resolve <IProcessController>().Execute(); var row1 = process.Entities.First().Rows[0]; var row2 = process.Entities.First().Rows[1]; Assert.AreEqual(new DateTime(2017, 1, 1, 0, 0, 0), row1["RoundToMonth"]); Assert.AreEqual(new DateTime(2017, 1, 1, 10, 1, 0), row1["AddOneHourOneMinute"]); Assert.AreEqual(new DateTime(2016, 6, 1, 0, 0, 0), row2["RoundToMonth"]); Assert.AreEqual(new DateTime(2016, 6, 7, 13, 32, 22), row2["AddOneHourOneMinute"]); } } }
public void DateDiff1() { var xml = @" <add name='TestProcess'> <entities> <add name='TestData' > <rows> <add StartDate='2016-06-01' EndDate='2016-08-01' /> </rows> <fields> <add name='StartDate' type='datetime' /> <add name='EndDate' type='datetime' /> </fields> <calculated-fields> <add name='Years' type='int' t='copy(StartDate,EndDate).datediff(year)' /> <add name='Days' type='int' t='copy(StartDate,EndDate).datediff(day)' /> <add name='Minutes' type='int' t='copy(StartDate,EndDate).datediff(minute)' /> <add name='Hours' type='double' t='copy(StartDate,EndDate).datediff(hour)' /> </calculated-fields> </add> </entities> </add> ".Replace('\'', '"'); var transform = new TransformHolder((c) => new DateDiffTransform(c), new DateDiffTransform().GetSignatures()); using (var outer = new ConfigurationContainer(transform).CreateScope(xml, new DebugLogger())) { var process = outer.Resolve <Process>(); using (var inner = new Container(transform).CreateScope(process, new DebugLogger())) { var output = inner.Resolve <IProcessController>().Read().ToArray(); var cf = process.Entities.First().CalculatedFields.ToArray(); Assert.AreEqual(0, output[0][cf[0]]); Assert.AreEqual(61, output[0][cf[1]]); Assert.AreEqual(87840, output[0][cf[2]]); Assert.AreEqual(1464d, output[0][cf[3]]); } } }
public void Test() { const string xml = @" <add name='TestProcess'> <entities> <add name='TestData'> <rows> <add Date='2019-07-01 10:30 AM' /> </rows> <fields> <add name='Date' type='datetime'/> </fields> <calculated-fields> <add name='Milliseconds' type='long' t='copy(Date).timezone(Eastern Standard Time,UTC).tounixtime(ms)' /> <add name='Seconds' type='long' t='copy(Date).timezone(Eastern Standard Time,UTC).tounixtime(seconds)' /> </calculated-fields> </add> </entities> </add>"; var logger = new ConsoleLogger(LogLevel.Debug); var specifyKind = new TransformHolder((c) => new TimeZoneTransform(c), new TimeZoneTransform().GetSignatures()); var toUnixTime = new TransformHolder((c) => new ToUnixTimeTransform(c), new ToUnixTimeTransform().GetSignatures()); using (var outer = new ConfigurationContainer(new[] { specifyKind, toUnixTime }).CreateScope(xml, logger)) { var process = outer.Resolve <Process>(); using (var inner = new Container(new[] { specifyKind, toUnixTime }).CreateScope(process, logger)) { var controller = inner.Resolve <IProcessController>(); var output = controller.Read().ToArray(); var milliseconds = (long)output[0][process.Entities.First().CalculatedFields.First()]; var seconds = (long)output[0][process.Entities.First().CalculatedFields.Last()]; Assert.AreEqual(1561991400000, milliseconds); Assert.AreEqual(1561991400, seconds); } } }
public void Try() { var xml = @" <add name='TestProcess'> <entities> <add name='TestData' > <rows> <add Date1='2019-05-05 1:05 PM' Date2='2019-05-05 1:05 PM' Date3='2019-05-05 1:05 PM' Date4='2019-05-05 1:05 PM' Date5='2019-05-05T13:05:00Z' /> </rows> <fields> <add name='Date1' type='datetime' t='specifyKind(unspecified)' /> <add name='Date2' type='datetime' t='specifyKind(local)' /> <add name='Date3' type='datetime' t='specifyKind(utc)' /> <add name='Date4' type='datetime' /> <add name='Date5' type='datetime' /> </fields> </add> </entities> </add>"; var logger = new ConsoleLogger(LogLevel.Debug); var transform = new TransformHolder((c) => new SpecifyKindTransform(c), new SpecifyKindTransform().GetSignatures()); using (var outer = new ConfigurationContainer(transform).CreateScope(xml, logger)) { var process = outer.Resolve <Process>(); using (var inner = new Container(transform).CreateScope(process, logger)) { inner.Resolve <IProcessController>().Execute(); var row = process.Entities.First().Rows.First(); Assert.AreEqual(DateTimeKind.Unspecified, ((DateTime)row["Date1"]).Kind); Assert.AreEqual(DateTimeKind.Local, ((DateTime)row["Date2"]).Kind); Assert.AreEqual(DateTimeKind.Utc, ((DateTime)row["Date3"]).Kind); Assert.AreEqual(DateTimeKind.Unspecified, ((DateTime)row["Date4"]).Kind); Assert.AreEqual(DateTimeKind.Utc, ((DateTime)row["Date5"]).Kind); } } }
void Start() { // Generamos malla CreateWaterMesh(); // Generamos cada uno de los springs for (int i = 0; i < SurfaceVertices; ++i) { Transform TransformHolder; TransformHolder = Instantiate(SpringPrefab, vertices[i], Quaternion.identity) as Transform; SpringList[i] = TransformHolder.GetComponent <Comp_Spring>(); SpringList[i].MaxIncrease = MaxIncrease; SpringList[i].MaxDecrease = MaxDecrease; SpringList[i].TargetY = YSurface; SpringList[i].Damping = Damping; SpringList[i].Tension = Tension; SpringList[i].ID = i; SpringList[i].Water = this; if (i > 0) { SpringList[i].comp_connected_spring = SpringList[i - 1]; } var boxCollider = TransformHolder.GetComponent <BoxCollider>() as BoxCollider; //boxCollider.size = new Vector3(VertexSpacing,0,2); SpringList[i].transform.parent = this.transform; } //Wave Simulator WaveSimulatorPrefab = Instantiate(WaveSimulatorPrefab, new Vector3(0, 0, 0), Quaternion.identity) as Transform; WaveSimulator = WaveSimulatorPrefab.GetComponent <Comp_WaveSimulator>(); WaveSimulator.WaveHeight = WaveSimHeight; WaveSimulator.WaveSpeed = WaveSimSpeed; //StartCoroutine(ChangeWaterHeight(5,2)); }
public void AddTransform(TransformHolder t) { _transforms.Add(t); }
private void Start() { _boxCollider = GetComponent <BoxCollider>(); _transformHolder = GetComponent <TransformHolder>(); }
void Start() { //Generating Mesh mf = GetComponent <MeshFilter>(); mesh = new Mesh(); mf.mesh = mesh; //Generates the the surface using var i, then generates the bottom using var oo int oo = SurfaceVertices - 1; for (int i = 0; i <= VertexCount - 1; i++) { if (i < SurfaceVertices) { vertices[i] = new Vector3(StartX + (VertexSpacing * i), YSurface, 0); } else if (i >= SurfaceVertices) { vertices[i] = new Vector3(vertices[oo].x, YBottom, 0); oo += -1; } } mesh.vertices = vertices; //Connecting the dots. :) //Setting the Triangles. I got this part working by lots of trial and error. I am sure there could be a better solution but anyways for now this doesnt affect the gameplay peformance and it works. int tt; tt = SurfaceVertices; for (int t = SurfaceVertices - 1; t > 0 / 2; t += -1) { TriangulateRectangle(t, t - 1, tt, tt + 1); tt++; } mesh.triangles = triangle; //Setting the Normals Vector3[] normals = new Vector3[VertexCount]; for (int n = 0; n <= VertexCount - 1; n++) { normals[n] = -Vector3.forward; } mesh.normals = normals; //Setting the UVS int nVertices = mesh.vertices.Length; var uvs = new Vector2[nVertices]; for (int r = 0; r < nVertices; r++) { uvs[r] = mesh.vertices[r]; } mesh.uv = uvs; //Mesh Generation Done //Generating Springs and saving each of Spring's Scripts into the array for refrence later. Also setting the properties of it. for (int sprngs = 0; sprngs < SurfaceVertices; sprngs++) { Transform TransformHolder; TransformHolder = Instantiate(SpringPrefab, vertices[sprngs], Quaternion.identity) as Transform; SpringList[sprngs] = TransformHolder.GetComponent <SpringScript>(); SpringList[sprngs].MaxIncrease = MaxIncrease; SpringList[sprngs].MaxDecrease = MaxDecrease; SpringList[sprngs].TargetY = YSurface; SpringList[sprngs].Damping = Damping; SpringList[sprngs].Tension = Tension; SpringList[sprngs].ID = sprngs; SpringList[sprngs].Water = this; var boxCollider = TransformHolder.GetComponent <BoxCollider>() as BoxCollider; boxCollider.size = new Vector3(VertexSpacing, 0, 2); SpringList[sprngs].transform.parent = this.transform; } //Wave Simulator WaveSimulatorPrefab = Instantiate(WaveSimulatorPrefab, new Vector3(0, 0, 0), Quaternion.identity) as Transform; WaveSimulator = WaveSimulatorPrefab.GetComponent <WaveSimulator>(); WaveSimulator.WaveHeight = WaveSimHeight; WaveSimulator.WaveSpeed = WaveSimSpeed; //StartCoroutine(ChangeWaterHeight(5,2)); }