예제 #1
0
        public void Delete(int Id)
        {
            AdditionalPoint additionalPoint = db.AdditionalPoints.Find(Id);

            db.AdditionalPoints.Remove(additionalPoint);
            Save();
        }
예제 #2
0
        private void AddControlPoint(Vector3 pos)
        {
            for (int i = 0; i < pointsInMiddle; i++)
            {
                AddPoint(new TrailPoint(), pos);
            }
            AddPoint(new TrailPoint(), pos);
            AdditionalPoint ap = new AdditionalPoint {
                position = pos
            };

            switch (parameter.orientationType)
            {
            case TrailOrientation.World:
                ap.forward = parameter.forwardOverride;
                break;

            case TrailOrientation.Local:
                ap.forward = m_transform.forward;
                break;

            case TrailOrientation.LookAt:
                ap.forward = (parameter.lookAt.position - m_transform.position).normalized;
                break;

            default:
                break;
            }

            controlPoints.Add(ap);
        }
예제 #3
0
        private PointF DrawBrokenLine(List <List <VisualUnit> > visual_table, PointF begin, PointF end)
        {
            AdditionalPoint point = CheckIntersection(visual_table, begin, end);

            if (point.Slider.X != -1 && point.Slider.Y != -1)
            {
                while (true)
                {
                    if (point.Direction == "left")
                    {
                        point.Slider = new PointF(point.Slider.X - 50, point.Slider.Y);
                    }
                    else if (point.Direction == "right")
                    {
                        point.Slider = new PointF(point.Slider.X + 50, point.Slider.Y);
                    }
                    if (CheckIntersection(visual_table, begin, point.Slider).Slider.X == -1 && CheckIntersection(visual_table, begin, point.Slider).Slider.Y == -1 &&
                        CheckIntersection(visual_table, point.Slider, end).Slider.X == -1 && CheckIntersection(visual_table, point.Slider, end).Slider.Y == -1)
                    {
                        return(point.Slider);
                    }
                }
            }
            return(new PointF(-1, -1));
        }
예제 #4
0
 public void Update(AdditionalPoint additionalPoint)
 {
     db.Entry(additionalPoint).State        = EntityState.Modified;
     db.Configuration.ValidateOnSaveEnabled = false;
     Save();
     db.Configuration.ValidateOnSaveEnabled = true;
 }
 public IHttpActionResult Post(AdditionalPoint additionalPoint)
 {
     if (ModelState.IsValid)
     {
         additionalPointObjBs.Insert(additionalPoint);
         return(CreatedAtRoute("DefaultApi", new { id = additionalPoint.AdditionalPointId }, additionalPoint));
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
예제 #6
0
 public bool Update(AdditionalPoint additionalPoint)
 {
     if (IsValidOnUpdate(additionalPoint))
     {
         objDb.Update(additionalPoint);
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #7
0
 public bool Insert(AdditionalPoint additionalPoint)
 {
     if (IsValidOnInsert(additionalPoint))
     {
         objDb.Insert(additionalPoint);
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #8
0
        private void AddControlPoint(Vector3 pos)
        {
            for (int i = 0; i < pointsInMiddle; i++)
            {
                AddPoint(new TrailPoint(), pos);
            }
            AddPoint(new TrailPoint(), pos);
            AdditionalPoint ap = new AdditionalPoint {
                position = pos
            };

            ap.forward = GetFacing();

            controlPoints.Add(ap);
        }
 public IHttpActionResult Put(AdditionalPoint additionalPoint)
 {
     //if (ModelState.IsValid)
     //{
     //    additionalPointObjBs.Update(additionalPoint);
     //    return Ok(additionalPoint);
     //}
     //else
     //{
     //    return BadRequest(ModelState);
     //}
     if (ModelState.IsValid)
     {
         additionalPointObjBs.Update(additionalPoint);
         return(Ok(additionalPoint));// CreatedAtRoute("DefaultApi", new { id = additionalPoint.AdditionalPointId }, additionalPoint);
     }
     else
     {
         return(BadRequest(ModelState));
     }
 }
예제 #10
0
        private AdditionalPoint CheckIntersection(List <List <VisualUnit> > visual_table, PointF begin, PointF end)
        {
            AdditionalPoint point  = new AdditionalPoint();
            float           k      = -(begin.Y - end.Y) / (end.X - begin.X);
            float           b      = -(begin.X * end.Y - end.X * begin.Y) / (end.X - begin.X);
            PointF          slider = begin;

            if (begin.X < end.X) //наклон вправо
            {
                while (slider.X < end.X && slider.Y > end.Y)
                {
                    foreach (List <VisualUnit> list in visual_table)
                    {
                        foreach (VisualUnit unit in list)
                        {
                            if (((slider.X - unit.points[0].X) * (unit.points[0].Y - unit.points[1].Y) - (slider.Y - unit.points[0].Y) * (unit.points[0].X - unit.points[1].X)) <= 0 &&
                                ((slider.X - unit.points[1].X) * (unit.points[1].Y - unit.points[2].Y) - (slider.Y - unit.points[1].Y) * (unit.points[1].X - unit.points[2].X)) <= 0 &&
                                ((slider.X - unit.points[2].X) * (unit.points[2].Y - unit.points[0].Y) - (slider.Y - unit.points[2].Y) * (unit.points[2].X - unit.points[0].X)) <= 0)
                            {
                                if (slider.X - unit.points[1].X < unit.points[2].X - slider.X)
                                {
                                    point.Direction = "left";
                                }
                                else
                                {
                                    point.Direction = "right";
                                }
                                point.Slider = slider;
                                return(point);
                            }
                        }
                    }
                    slider.X += 1; slider.Y = k * slider.X + b;
                }
            }
            else //наклон влево
            {
                while (slider.X > end.X && slider.Y > end.Y)
                {
                    foreach (List <VisualUnit> list in visual_table)
                    {
                        foreach (VisualUnit unit in list)
                        {
                            if (((slider.X - unit.points[0].X) * (unit.points[0].Y - unit.points[1].Y) - (slider.Y - unit.points[0].Y) * (unit.points[0].X - unit.points[1].X)) <= 0 &&
                                ((slider.X - unit.points[1].X) * (unit.points[1].Y - unit.points[2].Y) - (slider.Y - unit.points[1].Y) * (unit.points[1].X - unit.points[2].X)) <= 0 &&
                                ((slider.X - unit.points[2].X) * (unit.points[2].Y - unit.points[0].Y) - (slider.Y - unit.points[2].Y) * (unit.points[2].X - unit.points[0].X)) <= 0)
                            {
                                if (slider.X - unit.points[1].X < unit.points[2].X - slider.X)
                                {
                                    point.Direction = "left";
                                }
                                else
                                {
                                    point.Direction = "right";
                                }
                                point.Slider = slider;
                                return(point);
                            }
                        }
                    }
                    slider.X -= 1; slider.Y = k * slider.X + b;
                }
            }
            point.Slider    = new PointF(-1, -1);
            point.Direction = "No direction";
            return(point);
        }
예제 #11
0
 public void Insert(AdditionalPoint additionalPoint)
 {
     db.AdditionalPoints.Add(additionalPoint);
     Save();
 }
예제 #12
0
 public bool IsValidOnUpdate(AdditionalPoint additionalPoint)
 {
     return(true);
 }
예제 #13
0
 public bool IsValidOnInsert(AdditionalPoint additionalPoint)
 {
     return(true);
 }