public CMAngle(int id, CMLine line1, CMLine line2, int?angle = null) : base(line1.Owner, id) { Line1 = line1; Line2 = line2; Point = line1.GetCommonPoint(line2); this.angle = angle; }
public void Detach(CMLine line) { lines.Remove(line.Id); if (line.Contains(this)) { line.Detach(this); } }
private bool disposed = false; // Для определения избыточных вызовов #endregion public void Attach(CMLine line) { // неизвестно куда вставлять точку, так что она должна быть уже вставлена в линию if (!line.Contains(this)) { throw new Exception("Line hasn't point yet (point id: " + Id + ", line id: " + line.Id + ")"); } lines.Add(line.Id, line); }
private CMAngle CreateAngle(int id, CMLine line1, CMLine line2, int?angle = null) { var model = new CMAngle(id, line1, line2, angle); relations.Add(model.Id, model); if (AngleCreated != null) { AngleCreated(this, model); } return(model); }
private CMLine CreateLine(int id, IEnumerable <int> pointsId) { CMLine line = new CMLine(this, id, pointsId); primitives.Add(line.Id, line); if (LineCreated != null) { LineCreated(this, line); } return(line); }
public bool Contains(CMLine line) { return(lines.ContainsKey(line.Id)); }
public CMPoint GetCommonPoint(CMLine line) { return(pointsDict.Values.FirstOrDefault(point => point.Contains(line))); }
public void Detach(CMLine line) { lines.Remove(line.Id); }
private bool disposed = false; // Для определения избыточных вызовов #endregion #region ILineLinkable Support public void Attach(CMLine line) { lines.Add(line.Id, line); }
public CMAngle CreateAngle(CMLine line1, CMLine line2, int?angle = null) { return(CreateAngle(nextId++, line1, line2, angle)); }