/// <summary> /// Updates an IM from the label for an edge. /// Handles edges from both L and A geometries. /// </summary> /// <param name="im"></param> /// <param name="label"></param> public static void UpdateIM(Label label, IntersectionMatrix im) { im.SetAtLeastIfValid(label.GetLocation(0, Positions.On), label.GetLocation(1, Positions.On), Dimensions.Curve); if (label.IsArea()) { im.SetAtLeastIfValid(label.GetLocation(0, Positions.Left), label.GetLocation(1, Positions.Left), Dimensions.Surface); im.SetAtLeastIfValid(label.GetLocation(0, Positions.Right), label.GetLocation(1, Positions.Right), Dimensions.Surface); } }
/// <summary> /// Update the IM with the contribution for this component. /// A component only contributes if it has a labelling for both parent geometries. /// </summary> public override void ComputeIM(IntersectionMatrix im) { im.SetAtLeastIfValid(Label.GetLocation(0), Label.GetLocation(1), Dimension.Point); }