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