public override bool GetPortal (GraphNode other, List<Vector3> left, List<Vector3> right, bool backwards)
{
if (backwards) return true;
LayerGridGraph graph = GetGridGraph (GraphIndex);
int[] neighbourOffsets = graph.neighbourOffsets;
LevelGridNode[] nodes = graph.nodes;
int index = NodeInGridIndex;
for (int i=0;i<4;i++) {
int conn = GetConnectionValue(i);//(gridConnections >> i*4) & 0xF;
if (conn != LevelGridNode.NoConnection) {
if (other == nodes[index+neighbourOffsets[i] + graph.width*graph.depth*conn]) {
Vector3 middle = ((Vector3)(position + other.position))*0.5f;
Vector3 cross = Vector3.Cross (graph.collision.up, (Vector3)(other.position-position));
cross.Normalize();
cross *= graph.nodeSize*0.5f;
left.Add (middle - cross);
right.Add (middle + cross);
return true;
}
}
}
return false;
}