Exemple #1
0
        public void AddRepPoints(int AId, PointValues value)
        {
            Article article = context.Articles.Find(AId);

            article.RepPoints           += (int)Enum.Parse(typeof(PointValues), Enum.GetName(typeof(PointValues), value));
            context.Entry(article).State = EntityState.Modified;
            Save();
        }
Exemple #2
0
 public PointData(UV uv, XYZ xyz, double value)
 {
     UVPoint    = uv;
     XYZPoint   = xyz;
     PointValue = value;
     PointValues.Add(PointValue);
     ValueAtPoint = new ValueAtPoint(PointValues);
 }
        private SpiceObject CreatePointValues(ParseTreeNodeEvaluationValues values)
        {
            var pointValues = new PointValues(new SpiceLineInfo(values));

            if (values.Count == 3)
            {
                pointValues.Items.Add(values.GetSpiceObject <SingleParameter>(0));
                pointValues.Items.AddRange(values.GetSpiceObject <PointValues>(2).Items);
            }
            else
            {
                if (values.Count == 2)
                {
                    pointValues.Items.Add(values.GetSpiceObject <SingleParameter>(0));
                    pointValues.Items.AddRange(values.GetSpiceObject <PointValues>(1).Items);
                }
                else
                {
                    pointValues.Items.Add(values.GetSpiceObject <SingleParameter>(0));
                }
            }

            return(pointValues);
        }
 public void AddPoints(int AId, PointValues value)
 {
     _unitOfWork.ArticleRepository.AddRepPoints(AId, value);
 }
Exemple #5
0
    public void Execute()
    {
        // find all pixels within threshold
        int l       = values.Length;
        int nPixels = 0;

        float  minSpacing = float.MaxValue;
        float2 lastPos    = float2.zero;

        for (int i = 0; i < l; i++)
        {
            var cI = new float3(values[i].r / 255f, values[i].g / 255f, values[i].b / 255f);
            if (math.distance(cI, color) < threshold)
            {
                float  y   = math.floor(i / width);
                float2 pos = new float2((i - y * width) / width, y / height);
                if (math.distance(lastPos, pos) > minSpacingThreshold)
                {
                    minSpacing = math.min(math.distance(lastPos, pos), minSpacing);
                }
                lastPos = pixels[nPixels++] = pos;
            }
        }

        r[0]  = nPixels;
        r2[0] = minSpacing;
        if (nPixels == 0)
        {
            return;
        }

        // collect summed pixel values of pixels within the merge distance

        mergeDistance *= minSpacing;
        positions[0]   = new PointValues(pixels[0], pixels[0], 1);
        int nPositions  = 1;
        int posMaxIndex = positions.Length - 1;

        for (int pI = 1; pI < nPixels; pI++)
        {
            int   closestInd     = 0;
            float closesDistance = float.MaxValue;
            for (int posI = 0; posI < nPositions; posI++)
            {
                float d = math.distance(positions[posI].Position, pixels[pI]);
                if (d < closesDistance)
                {
                    closesDistance = d;
                    closestInd     = posI;
                }
            }
            if (closesDistance < mergeDistance)
            {
                positions[closestInd] = new PointValues(
                    positions[closestInd].Position,
                    positions[closestInd].Cummulative + pixels[pI],
                    positions[closestInd].Count + 1
                    );
            }
            else
            {
                positions[nPositions++] = new PointValues(
                    pixels[pI],
                    pixels[pI],
                    1
                    );
            }
        }

        r[1] = nPositions;

        // calculate the average merged pixel point positions
        for (int i = 0; i < nPositions; i++)
        {
            result[i] = positions[i].Cummulative / positions[i].Count;
        }
    }