1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
   | private void TriangulateCorner(     Vector3 bottom, HexCell bottomCell,     Vector3 left, HexCell leftCell,     Vector3 right, HexCell rightCell) {     …
      if (leftEdgeType == HexEdgeType.Slope)     {         if (rightEdgeType == HexEdgeType.Slope)         {             TriangulateCornerTerraces(bottom, bottomCell, left, leftCell, right, rightCell);         }         else if (rightEdgeType == HexEdgeType.Flat)         {             TriangulateCornerTerraces(left, leftCell, right, rightCell, bottom, bottomCell);         }         else         {             TriangulateCornerTerracesCliff(bottom, bottomCell, left, leftCell, right, rightCell);         }     }     else if (rightEdgeType == HexEdgeType.Slope)     {         if (leftEdgeType == HexEdgeType.Flat)         {             TriangulateCornerTerraces(right, rightCell, bottom, bottomCell, left, leftCell);         }         else         {             TriangulateCornerCliffTerraces(bottom, bottomCell, left, leftCell, right, rightCell);         }     }     else if (leftCell.GetEdgeType(rightCell) == HexEdgeType.Slope)     {         if (leftCell.Elevation < rightCell.Elevation)         {             TriangulateCornerCliffTerraces(right, rightCell, bottom, bottomCell, left, leftCell);         }         else         {             TriangulateCornerTerracesCliff(left, leftCell, right, rightCell, bottom, bottomCell);         }     }     else     {         AddTriangle(bottom, left, right);         AddTriangleColor(bottomCell.color, leftCell.color, rightCell.color);         }     } }
   |