-- -- 50-ftdetect.lua -- -- * Detects bash files and sets 'filetype'. -- -- Detect bash files vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { desc = "Detect bash file", group = vim.g.dotfiles.augroup, pattern = "*", callback = function() if string.find(vim.api.nvim_buf_get_name(0), "%.bash$") or string.find(vim.api.nvim_buf_get_lines(0, 0, 1, false)[1] or "", "^#!/usr/bin/bash") then vim.bo.filetype = "bash" end end, })
using OxyPlot;
using OxyPlot.Wpf;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Core;
namespace Tango.MachineStudio.ThreadExtensions.Models
{
public class CalibrationPlotModel : ExtendedObject
{
#region Properties
public Plot DataPlotControl { get; set; }
public Plot LinearizationPlotControl { get; set; }
private string _title;
public string Title
{
get { return _title; }
set { _title = value; RaisePropertyChangedAuto(); }
}
private FactorColors _color;
private IList<DataPoint> _LPoints;
public IList<DataPoint> LPoints
{
get { return _LPoints; }
set { _LPoints = value; }
}
private IList<DataPoint> _APoints;
public IList<DataPoint> APoints
{
get { return _APoints; }
set { _APoints = value; }
}
private IList<DataPoint> _BPoints;
public IList<DataPoint> BPoints
{
get { return _BPoints; }
set { _BPoints = value; }
}
private IList<DataPoint> _points;
/// <summary>
/// Binding to ItemsSource of line chart.
/// </summary>
public IList<DataPoint> LinearizationPoints
{
get { return _points; }
set
{
_points = value;
RaisePropertyChangedAuto();
}
}
private int _step;
public int XStep
{
get { return _step; }
set { _step = value; RaisePropertyChangedAuto(); }
}
private double _minY;
/// <summary>
/// From use to binding to left axis min value
/// </summary>
public double MinY
{
get { return _minY; }
set
{
_minY = value; RaisePropertyChangedAuto();
}
}
private double _maxY;
/// <summary>
/// To use to binding to left axis max value
/// </summary>
public double MaxY
{
get { return _maxY; }
set
{
_maxY = value; RaisePropertyChangedAuto();
}
}
private int _maxX;
/// <summary>
/// Gets or sets the maximum lab plot X values for LinearizationGraph left part
/// </summary>
public int MaxX
{
get { return _maxX; }
set
{
_maxX = value;
RaisePropertyChangedAuto();
}
}
private double _linearizationMaxX;
public double LinearizationMaxX
{
get { return _linearizationMaxX; }
set
{
_linearizationMaxX = value;
RaisePropertyChangedAuto();
}
}
private double _linearizationMaxY;
public double LinearizationMaxY
{
get { return _linearizationMaxY; }
set
{
_linearizationMaxY = value;
RaisePropertyChangedAuto();
}
}
#endregion
public CalibrationPlotModel(FactorColors color, string title)
{
LinearizationPoints = new List<DataPoint>();
LPoints = new List<DataPoint>();
APoints = new List<DataPoint>();
BPoints = new List<DataPoint>();
_color = color;
_title = title;
}
public void ClearResults()
{
LPoints.Clear();
APoints.Clear();
BPoints.Clear();
LinearizationPoints.Clear();
}
public void InitDataGraph(List<ColorLinearizationModel.LinearizationDataItem> items)
{
if (items == null || items.Count == 0)
return;
ClearResults();
if (DataPlotControl != null)
DataPlotControl.InvalidatePlot(true);
if (LinearizationPlotControl != null)
LinearizationPlotControl.InvalidatePlot(true);
foreach (var labItem in items)
{
LPoints.Add(new DataPoint(labItem.InkPercentage, labItem.L));
APoints.Add(new DataPoint(labItem.InkPercentage, labItem.A));
BPoints.Add(new DataPoint(labItem.InkPercentage, labItem.B));
}
int maxValue = (int)(items.Max(x => x.InkPercentage));
MaxX = Math.Max(100, maxValue);
MinY = Math.Min(0, items.Min(x => Math.Min(x.L, Math.Min(x.A, x.B))));
MaxY = Math.Max( 100, items.Max(x => Math.Max(x.L, Math.Max(x.A, x.B))));
if (DataPlotControl != null)
DataPlotControl.InvalidatePlot(true);
}
public void InitLinearizationGraph(List<ColorLinearizationModel.LinearizationDataItem> items, List<double> outputPoints)
{
if (outputPoints == null)
return;
LinearizationPoints.Clear();
foreach (var nw in items.Zip(outputPoints, Tuple.Create))
{
LinearizationPoints.Add(new DataPoint(nw.Item1.InkPercentage, nw.Item2));
}
LinearizationMaxX = Math.Max(100, LinearizationPoints.Count > 0? LinearizationPoints.Max(x => x.X) : 0);
LinearizationMaxY = Math.Max(100, LinearizationPoints.Count > 0 ? LinearizationPoints.Max(x => x.Y) : 0);
if (LinearizationPlotControl != null)
{
LinearizationPlotControl.InvalidatePlot(true);
}
}
}
}