private Vector2 CalculateFollowerMarginUv(WeldSideSource biggerTerrain, WeldSideSource smallerTerrain) { var biggerSideRange = new Vector2(0, 0); if (biggerTerrain.SideType.GetOrientation() == WeldOrientation.Horizontal) { biggerSideRange = RectangleUtils.CalculateSubPosition(biggerTerrain.Terrain.DetailGlobalArea, biggerTerrain.Terrain.UvCoordsPositions2D).XRange; } else { biggerSideRange = RectangleUtils.CalculateSubPosition(biggerTerrain.Terrain.DetailGlobalArea, biggerTerrain.Terrain.UvCoordsPositions2D).YRange; } var smallerSideRange = new Vector2(0, 0); if (smallerTerrain.SideType.GetOrientation() == WeldOrientation.Horizontal) { smallerSideRange = RectangleUtils.CalculateSubPosition(smallerTerrain.Terrain.DetailGlobalArea, smallerTerrain.Terrain.UvCoordsPositions2D).XRange; } else { smallerSideRange = RectangleUtils.CalculateSubPosition(smallerTerrain.Terrain.DetailGlobalArea, smallerTerrain.Terrain.UvCoordsPositions2D).YRange; } var uv = VectorUtils.CalculateSubelementUv(biggerSideRange, smallerSideRange); Preconditions.Assert(uv.IsNormalized(), $"E76 Margin uv is not normalized: {uv}, biggerSideRange:{biggerSideRange}, smallerSideRange {smallerSideRange}"); return(uv); }