public void Remove(FrontierPt _pt) { if (_pt == First) { First = m_Count == 1 ? null : First.Right; } m_Count--; }
public void Remove(FrontierPt _fPt, Delaunay.Triangle.HalfEdge _newEdgeRight) { var fpLeft = _fPt.Left; var fpRight = _fPt.Right; fpLeft.Right = fpRight; fpRight.Left = fpLeft; fpLeft.EdgeRight = _newEdgeRight; CS.m_PolPos[_fPt.VertIdx].thetaGroup.Remove(_fPt); }
public FrontierPt Add(PolartPt _pt, FrontierPt _fLt) { var fRt = _fLt.Right; var newEdgeLt = _fLt.EdgeRight.Twin.NextEdge; var newEdgeRt = newEdgeLt.NextEdge; var fNew = new FrontierPt(newEdgeRt, CS); _fLt.Right = fRt.Left = fNew; _fLt.EdgeRight = newEdgeLt; fNew.Left = _fLt; fNew.Right = fRt; _pt.thetaGroup.Add(fNew); LastAddedFPt = fNew; return(fNew); }
public void Add(FrontierPt _pt) { if (First == null) { First = _pt; m_Count++; return; } var newTheta = _pt.Theta; var firstTheta = First.Theta; if (firstTheta > newTheta) { First = _pt; } else if (_pt.Right == First) { First = _pt; } m_Count++; }