public async Task <IActionResult> PutNumberParameter(long id, NumberParameter numberParameter) { if (id != numberParameter.NumberParameterId) { return(BadRequest()); } _context.Entry(numberParameter).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!NumberParameterExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <NumberParameter> > PostNumberParameter(NumberParameter numberParameter) { _context.NumberParameter.Add(numberParameter); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetNumberParameter), new { id = numberParameter.NumberParameterId }, numberParameter)); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { NumberParameter hz = new NumberParameter("Sampling Frequency(Hz)", 0.01M, 10000, 2); hz.Value = 60M; return(new ProcParam <SequenceProcEnv>[] { hz }); }
public IList <ProcParam <MotionProcEnv> > GetParameters() { MotionObjectSingleSelectParameter main = new MotionObjectSingleSelectParameter("Main Line", info => info.IsTypeOf <LineObject>(), true); NumberParameter enlarge = new NumberParameter("Enlarge targets", -10000, 10000, 3); return(new ProcParam <MotionProcEnv>[] { main, enlarge }); }
public static NumberComponent Instantiate(GameObject prefab, GameObject parent, NumberParameter parameter) { NumberComponent obj = Instantiate(prefab, parent.transform).GetComponent <NumberComponent>(); obj.parameter = parameter; if (parameter.Title == null) { obj.title.gameObject.SetActive(false); } else { obj.title.text = parameter.Title; } if (parameter.Text == null) { obj.dscriptionObj.SetActive(false); } else { obj.dscription.text = parameter.Text; } if (parameter.Value != null) { obj.inputField.text = parameter.Value; } return(obj); }
public SequenceData Operate(IList <ProcParam <SequenceProcEnv> > args, SequenceProcEnv env) { NumberParameter offset = args[0] as NumberParameter; NumberParameter scale = args[1] as NumberParameter; SingleSelectParameter mode = args[2] as SingleSelectParameter; bool offsetFirst = mode.Value == 0; TimeSeriesValues ret = new TimeSeriesValues(env.SelectedSequence.Values.ColumnNames); foreach (var pair in env.SelectedSequence.Values.Enumerate()) { decimal?[] row = new decimal?[pair.Value.Length]; for (int i = 0; i < row.Length; i++) { decimal?tmp = pair.Value[i]; if (tmp.HasValue) { if (offsetFirst) { tmp = tmp.Value + offset.Value; } tmp = tmp.Value * scale.Value; if (!offsetFirst) { tmp = tmp.Value + offset.Value; } } row[i] = tmp; } ret[pair.Key] = row; } return(new SequenceData(ret, null, PathEx.GiveName("OffsetScale", env.SelectedSequence.Title))); }
public IList <ProcParam <MotionProcEnv> > GetParameters() { NumberParameter begin = new NumberParameter("Begin Time", 0, 100000, 0); NumberParameter end = new NumberParameter("End Time", 0, 100000, 0); return(new ProcParam <MotionProcEnv>[] { begin, end }); }
public bool ValidateArguments(IList <ProcParam <MotionProcEnv> > args, ref string errorMessage) { NumberParameter begin = args[0] as NumberParameter; NumberParameter end = args[1] as NumberParameter; return(true); }
public void Operate(IList <MotionObjectInfo> selectedInfoList, IList <ProcParam <MotionProcEnv> > args, MotionDataSet dataSet, ProgressInformation progressInfo) { NumberParameter begin = args[0] as NumberParameter; NumberParameter end = args[1] as NumberParameter; dataSet.RemoveFrameAll((f, i) => f.Time < begin.Value || end.Value < f.Time); }
public bool ValidateArguments(IList <ProcParam <MotionProcEnv> > args, ref string errorMessage) { SingleSelectParameter mode = args[0] as SingleSelectParameter; NumberParameter limit = args[1] as NumberParameter; return(true); }
public IList <ProcParam <MotionProcEnv> > GetParameters() { SingleSelectParameter mode = new SingleSelectParameter("Mode", new string[] { "上書き", "追加" }); NumberParameter limit = new NumberParameter("連続する欠落を補完するのフレーム数の上限", 0, 1000000, 0); limit.Value = 60; return(new ProcParam <MotionProcEnv>[] { mode, limit }); }
public IList <ProcParam <MotionProcEnv> > GetParameters() { NumberParameter x = new NumberParameter("X", -100000, 100000, 3); NumberParameter y = new NumberParameter("Y", -100000, 100000, 3); NumberParameter z = new NumberParameter("Z", -100000, 100000, 3); return(new ProcParam <MotionProcEnv>[] { x, y, z }); }
public IList <ProcParam <MotionProcEnv> > GetParameters() { SingleSelectParameter mode = new SingleSelectParameter("Mode ", new string[] { "倍率", "長さ指定", "長さ加算" }); NumberParameter value = new NumberParameter("Value", -100000, 100000, 3); value.Value = 1; return(new ProcParam <MotionProcEnv>[] { mode, value }); }
public IList <MotionObject> EditObject(IList <MotionObjectInfo> targetInfoList, IList <ProcParam <MotionProcEnv> > args, ReadOnlyMotionFrame frame, bool previewMode) { SingleSelectParameter modeRad = args[0] as SingleSelectParameter; NumberParameter valueRad = args[1] as NumberParameter; SingleSelectParameter modeAxis = args[2] as SingleSelectParameter; NumberParameter valueAxis = args[3] as NumberParameter; List <MotionObject> ret = new List <MotionObject>(); foreach (MotionObjectInfo info in targetInfoList) { CylinderObject cylinder = frame[info] as CylinderObject; if (cylinder != null) { float radius = cylinder.Radius; float axis = cylinder.AxisLength(); try { switch (modeRad.Value) { case 0: radius *= (float)valueRad.Value; break; case 1: radius = (float)valueRad.Value; break; case 2: radius += (float)valueRad.Value; break; } } catch (ArithmeticException) { } try { switch (modeAxis.Value) { case 0: axis *= (float)valueAxis.Value; break; case 1: axis = (float)valueAxis.Value; break; case 2: axis += (float)valueAxis.Value; break; } } catch (ArithmeticException) { } ret.Add(new CylinderObject(cylinder.Position, cylinder.AxisDirection() * axis, radius)); } else { ret.Add(null); } } return(ret); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { var target = new LabelSelectParameter("対象のラベル", true); var length = new NumberParameter("秒数", 0, 10000, 3); var action = new SingleSelectParameter("大小", new[] { "「秒数」より短いものを置換", "「秒数」より長いものを置換" }); var border = new BooleanParameter("「秒数」に一致するものを置換"); var glue = new SingleSelectParameter("置換結果", new[] { "空ラベル", "前後のラベルが等しければそのラベル", "直前のラベル", "直後のラベル" }); return(new ProcParam <SequenceProcEnv>[] { target, length, action, border, glue }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { NumberParameter offset = new NumberParameter("Offset", -10000000, 10000000, 3, 1); NumberParameter scale = new NumberParameter("Scale", -10000000, 10000000, 3, 1); scale.Value = 1M; SingleSelectParameter mode = new SingleSelectParameter("Mode", new String[] { "offset後にscale", "scale後にoffset" }); return(new ProcParam <SequenceProcEnv>[] { offset, scale, mode }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { LabelSelectParameter border = new LabelSelectParameter("Target Label", true); NumberParameter left = new NumberParameter("Extend second before Begin", -1000, 1000, 3); NumberParameter right = new NumberParameter("Extend second after End", -1000, 1000, 3); BooleanParameter percent = new BooleanParameter("Values as Percentage of Label length"); BooleanParameter withEmpty = new BooleanParameter("Fill with Empty label when shrink"); return(new ProcParam <SequenceProcEnv>[] { border, left, right, percent, withEmpty }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { var mode = new SingleSelectParameter("Mode", new[] { "Per Time", "Per Correct Label Count", "Per Obtained Label Count" }); var threshold = new NumberParameter("Threshold for Ratio of Label Coverage for Matching", 0.001M, 1, 3); threshold.Value = 0.001M; var correct = new SequenceSingleSelectParameter("Correct Label", (v) => v.Type != SequenceType.Numeric); return(new ProcParam <SequenceProcEnv>[] { mode, threshold, correct }); }
private void SetComponentForParameter() { List <SubNodeParameter> subNodeParameters = new List <SubNodeParameter>(); foreach (Parameter p in this.node.parameters) { //Number if (p.type == ParameterType.number) { NumberParameter pram = p as NumberParameter; var compo = NumberComponent.Instantiate(MainViweModel.instance.NumberComponentPrefab, contentsObject, pram); componentList.Add(compo); } //sentence if (p.type == ParameterType.sentence) { SentenceParameter pram = p as SentenceParameter; var compo = SentenceComponent.Instantiate(MainViweModel.instance.SentenceComponentPrefab, contentsObject, pram); componentList.Add(compo); } //dropdown if (p.type == ParameterType.dropdown) { DropdownParameter pram = p as DropdownParameter; var compo = DropdownComponent.Instantiate(MainViweModel.instance.DropdownComponentPrefab, contentsObject, pram); componentList.Add(compo); } //nodes if (p.type == ParameterType.nodes) { NodesParameter pram = p as NodesParameter; var compo = SubNodeListComponent.Instantiate(MainViweModel.instance.SubNodeListComponentPrefab, contentsObject, pram.list, this); componentList.Add(compo); if (pram.Title != null) { compo.title.text = pram.Title; } } //subNodeList if (p.type == ParameterType.subNode) { subNodeParameters.Add(p as SubNodeParameter); } } if (subNodeParameters.Count != 0) { var compo = SubNodeListComponent.Instantiate(MainViweModel.instance.SubNodeListComponentPrefab, contentsObject, subNodeParameters, this); componentList.Add(compo); } }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { var timeBefore = new NumberParameter("前方の時間範囲", 0, 1000, 3); timeBefore.Value = 0.1M; var timeAfter = new NumberParameter("後方の時間範囲", 0, 1000, 3); timeAfter.Value = 0.1M; var exclude = new NumberParameter("欠損があっても値を出力する限界値(0~1)", 0, 1, 3); return(new[] { timeBefore, timeAfter, exclude }); }
public IList <ProcParam <MotionProcEnv> > GetParameters() { SingleSelectParameter modeRad = new SingleSelectParameter("Mode for Radius", new string[] { "倍率", "半径指定", "半径加算" }); NumberParameter valueRad = new NumberParameter("Value for Radius", -10000, 10000, 3); valueRad.Value = 1; SingleSelectParameter modeAxis = new SingleSelectParameter("Mode for Thickness", new string[] { "倍率", "厚さ指定", "厚さ加算" }); NumberParameter valueAxis = new NumberParameter("Value for Thickness", -10000, 10000, 3); valueAxis.Value = 1; return(new ProcParam <MotionProcEnv>[] { modeRad, valueRad, modeAxis, valueAxis }); }
public IList <ProcParam <SequenceProcEnv> > GetParameters() { var stddev = new NumberParameter("StdDev", 0, 1000, 3); stddev.Value = 0.05M; var details = new NumberParameter("Detail", 1, 100, 0); details.Value = 10; var exclude = new NumberParameter("Limit rate to contain empty values", 0, 1, 3); return(new[] { stddev, details, exclude }); }
public bool ValidateArguments(IList <ProcParam <MotionProcEnv> > args, ref string errorMessage) { MotionObjectSingleSelectParameter main = args[0] as MotionObjectSingleSelectParameter; if (main.Value == null) { errorMessage = global::MotionDataHandler.Properties.Settings.Default.Msg_CannotSpecifyNull + ": " + args[0].ParamName; return(false); } NumberParameter enlarge = args[1] as NumberParameter; return(true); }
public bool ValidateArguments(IList <ProcParam <MotionProcEnv> > args, ref string errorMessage) { SingleSelectParameter mode = args[0] as SingleSelectParameter; NumberParameter value = args[1] as NumberParameter; if (mode.Value == 0 || mode.Value == 1) { if (value.Value < 0) { errorMessage = "負のサイズを指定できません"; return(false); } } return(true); }
public IList <MotionObject> EditObject(IList <MotionObjectInfo> targetInfoList, IList <ProcParam <MotionProcEnv> > args, ReadOnlyMotionFrame frame, bool previewMode) { NumberParameter x = args[0] as NumberParameter; NumberParameter y = args[1] as NumberParameter; NumberParameter z = args[2] as NumberParameter; List <MotionObject> ret = new List <MotionObject>(); foreach (MotionObjectInfo info in targetInfoList) { MotionObject obj = frame[info]; if (obj == null) { ret.Add(null); } else { ret.Add(obj.CloneOffsetObject(new Microsoft.DirectX.Vector3((float)x.Value, (float)y.Value, (float)z.Value))); } } return(ret); }
public IList <MotionObject> EditObject(IList <MotionObjectInfo> targetInfoList, IList <ProcParam <MotionProcEnv> > args, ReadOnlyMotionFrame frame, bool previewMode) { SingleSelectParameter mode = args[0] as SingleSelectParameter; NumberParameter value = args[1] as NumberParameter; List <MotionObject> ret = new List <MotionObject>(); foreach (MotionObjectInfo info in targetInfoList) { LineObject line = frame[info] as LineObject; if (line != null) { float length = line.Edge.Length(); try { switch (mode.Value) { case 0: length *= (float)value.Value; break; case 1: length = (float)value.Value; break; case 2: length += (float)value.Value; break; } } catch (ArithmeticException) { } ret.Add(new LineObject(line.Position, line.Direction() * length)); } else { ret.Add(null); } } return(ret); }
public IList <MotionObject> EditObject(IList <MotionObjectInfo> targetInfoList, IList <ProcParam <MotionProcEnv> > args, ReadOnlyMotionFrame frame, bool previewMode) { SingleSelectParameter mode = args[0] as SingleSelectParameter; NumberParameter value = args[1] as NumberParameter; List <MotionObject> ret = new List <MotionObject>(); foreach (MotionObjectInfo info in targetInfoList) { SphereObject sphere = frame[info] as SphereObject; if (sphere != null) { float radius = sphere.Radius; try { switch (mode.Value) { case 0: radius *= (float)value.Value; break; case 1: radius = (float)value.Value; break; case 2: radius += (float)value.Value; break; } } catch (ArithmeticException) { } ret.Add(new SphereObject(sphere.Position, radius)); } else { ret.Add(null); } } return(ret); }
protected override void SetupParameters() { Parameters.Add(new NumberParameter() { Name = "DrawCalls Count", Min = 1, Max = 5000, Value = 50, Precision = 0.1f, OnChanged = Handler_DrawcallsCountChanged }); _VariantsCountParameter = new NumberParameter() { Name = "Variants Count", Min = 1, Max = 10, Value = 1, Precision = 1f, OnChanged = Handler_VariantsCountChanged }; Parameters.Add(_VariantsCountParameter); Parameters.Add(new VariantParameter() { Name = "Draw Mode", Variants = VariantParameter.ParseEnum <DrawModes>(), OnChanged = Handler_DrawModeChanged }); Parameters.Add(new VariantParameter() { Name = "TestSubject", Variants = VariantParameter.ParseEnum <TestSubjects>(), OnChanged = Handler_TestSubjectChanged }); Parameters.Add(new FlagParameter() { Name = "Z Culling", Checked = true, OnChanged = Handler_ZCullingChanged }); Parameters.Add(new VariantParameter() { Name = "Shader", Variants = new List <object>() { "Unlit", "Standard" }, OnChanged = Handler_ShaderChanged }); Parameters.Add(new VariantParameter() { Name = "Texture Size", Variants = new List <object>() { "256", "2048", "4096" }, CurrentIndex = 1, OnChanged = Handler_TextureSizeChanged }); Parameters.Add(new VariantParameter() { Name = "Mesh", Variants = new List <object>() { "quad_2", "quad_512", "quad_2048", "quad_32768" }, CurrentIndex = 0, OnChanged = Handler_MeshSizeChanged }); foreach (var testParameter in Parameters) { testParameter.ExecuteChangedCallback(); } Initialized = true; UpdateMaterials(); }
public void Operate(IList <MotionObjectInfo> selectedInfoList, IList <ProcParam <MotionProcEnv> > args, MotionDataSet dataSet, ProgressInformation progressInfo) { SingleSelectParameter mode = args[0] as SingleSelectParameter; NumberParameter limit2 = args[1] as NumberParameter; bool addMode = mode.Value == 1; int limit = (int)limit2.Value; progressInfo.Initialize(selectedInfoList.Count, "Interpolate"); foreach (var info in selectedInfoList) { // 欠落範囲の集合 RangeSet <int> missings = new RangeSet <int>(); bool exist = true; int begin = 0; // 最初のフレームからかけている部分,最後のかけている部分は無視 for (int i = 0; i < dataSet.FrameLength; i++) { if (dataSet.GetFrameByIndex(i)[info] == null) { if (exist) { begin = i; exist = false; } } else { if (!exist) { if (begin != 0) { missings.Add(new RangeSet <int> .Range(begin, i)); exist = true; } } } } // 別オブジェクトにするとき用に入力オブジェクトと出力オブジェクトを分ける MotionObjectInfo addInfo = info; if (addMode) { // 別オブジェクトにするオプション addInfo = new MotionObjectInfo(info.ObjectType, info); addInfo.Name = PathEx.GiveName("interpolate", info.Name); dataSet.AddObject(addInfo); } // 線形補間 foreach (var range in missings) { if (limit == 0 || range.End - range.Start <= limit) { int pre = range.Start - 1; int post = range.End; MotionFrame preFrame = dataSet.GetFrameByIndex(pre); MotionFrame postFrame = dataSet.GetFrameByIndex(post); MotionObject preObject = preFrame[info]; if (preObject != null) { for (int index = range.Start; index < range.End; index++) { float interpolater = (float)(index - pre) / (post - pre); MotionFrame frame = dataSet.GetFrameByIndex(index); frame[addInfo] = preObject.InterpolateLinear(postFrame[info], interpolater); } } } } progressInfo.CurrentValue++; } dataSet.DoFrameListChanged(); if (addMode) { dataSet.DoObjectInfoSetChanged(); } }
public IList <SequenceData> OutputSequence(IList <MotionObjectInfo> selected, IList <ProcParam <MotionProcEnv> > args, IEnumerable <ReadOnlyMotionFrame> frames, ProgressInformation progressInfo) { MotionObjectSingleSelectParameter main = args[0] as MotionObjectSingleSelectParameter; NumberParameter enlarge = args[1] as NumberParameter; float enlargement = 0; try { enlargement = (float)enlarge.Value; } catch (ArithmeticException) { } IList <MotionObjectInfo> targetInfoList = selected.Where(info => info != main.Value).ToList(); ICSLabelSequence labelSequence = new ICSLabelSequence(TimeController.Singleton.EndTime); string prevLabelText = null; decimal prevTime = decimal.MinValue; decimal wholeEndTime = decimal.MinValue; foreach (var frame in frames) { wholeEndTime = frame.Time; LineObject line = frame[main.Value] as LineObject; string labelText = ""; if (line == null || targetInfoList.Any(info => frame[info] == null)) { labelText = "no data"; } else { float minDistance = float.MaxValue; MotionObjectInfo nearest = null; foreach (var targetInfo in targetInfoList) { float distance; if (frame[targetInfo].DetectLineCollision(line.Position, line.AnotherEnd, enlargement, out distance)) { if (distance < minDistance) { nearest = targetInfo; minDistance = distance; } } } if (nearest != null) { labelText = nearest.Name; } else { labelText = "else"; } } if (prevLabelText != labelText) { decimal endTime = frame.Time; if (prevTime < endTime && prevLabelText != null) { labelSequence.SetLabel(prevTime, endTime, prevLabelText); } prevTime = endTime; prevLabelText = labelText; } } if (prevTime < wholeEndTime && prevLabelText != null) { labelSequence.SetLabel(prevTime, wholeEndTime, prevLabelText); } SequenceData data = SequenceData.FromLabelSequence(labelSequence, PathEx.GiveName("Collision", main.Value.Name)); return(new SequenceData[] { data }); }