// Copyright (c) 2015 Kiel University and others.
//
// This program and the accompanying materials are made available under the
// terms of the Eclipse Public License 2.0 which is available at
// https://www.eclipse.org/legal/epl-2.0.
//
// SPDX-License-Identifier: EPL-2.0

package p3order

import 

// portsInNorthSouthEastWestOrder implements CrossMinUtil's deliberately
// asymmetric iteration order. LNode's side views are clockwise; crossing
// counting needs NORTH/EAST as-is and SOUTH/WEST reversed.
func portsInNorthSouthEastWestOrder(
	 *layered.LGraphArena,
	 layered.LNodeID,
	 layered.PortSide,
) []layered.LPortID {
	 := .NodePortSideView(, )
	switch  {
	case layered.NorthSide, layered.EastSide:
		return 
	case layered.SouthSide, layered.WestSide:
		 := append([]layered.LPortID(nil), ...)
		for ,  := 0, len()-1;  < ; ,  = +1, -1 {
			[], [] = [], []
		}
		return 
	default:
		return nil
	}
}