internal void Resolve(CadastralMapModel model) { IFeatureRef fr = m_LineRef.ReferenceFrom; Debug.Assert(fr is Operation); Feature f = model.Find <Feature>(m_LineRef.InternalId); if (f == null) { throw new ApplicationException("Cannot locate forward reference " + m_LineRef.InternalId); } // Only IntersectDirectionAndLineOperation has forward splits, so follow that logic LineFeature line = (LineFeature)f; var dff = new DeserializationFactory(fr as Operation); dff.AddLineSplit(line, DataField.SplitBefore, m_SplitBeforeId); dff.AddLineSplit(line, DataField.SplitAfter, m_SplitAfterId); IntersectOperation xop = (IntersectOperation)fr; LineFeature lineBefore, lineAfter; dff.MakeSections(line, DataField.SplitBefore, xop.IntersectionPoint, DataField.SplitAfter, out lineBefore, out lineAfter); }
internal void Resolve(CadastralMapModel model) { IFeatureRef fr = m_LineRef.ReferenceFrom; Debug.Assert(fr is Operation); Feature f = model.Find<Feature>(m_LineRef.InternalId); if (f == null) throw new ApplicationException("Cannot locate forward reference " + m_LineRef.InternalId); // Only IntersectDirectionAndLineOperation has forward splits, so follow that logic LineFeature line = (LineFeature)f; var dff = new DeserializationFactory(fr as Operation); dff.AddLineSplit(line, DataField.SplitBefore, m_SplitBeforeId); dff.AddLineSplit(line, DataField.SplitAfter, m_SplitAfterId); IntersectOperation xop = (IntersectOperation)fr; LineFeature lineBefore, lineAfter; dff.MakeSections(line, DataField.SplitBefore, xop.IntersectionPoint, DataField.SplitAfter, out lineBefore, out lineAfter); }