private static void MergeBlockSegList(ref FowLos.SBlockContext blockContext, List <FowLos.SPolylineSegment> rawPolylineSegList, int inAreaId) { int count = rawPolylineSegList.get_Count(); for (int i = 0; i < count; i++) { int count2 = blockContext.m_polylineSegList.get_Count(); FowLos.SPolylineSegment sPolylineSegment = default(FowLos.SPolylineSegment); sPolylineSegment.ParamlessConstruct(); sPolylineSegment.m_belongBlockId = inAreaId; sPolylineSegment.m_index = count2; VInt2 start = rawPolylineSegList.get_Item(i).m_start; VInt2 end = rawPolylineSegList.get_Item(i).m_end; int num = -1; if (blockContext.ContainsPoint(start, out num)) { sPolylineSegment.m_startPtIndex = num; sPolylineSegment.m_start = blockContext.m_polylineVertices.get_Item(num).m_point; DebugHelper.Assert(blockContext.m_polylineVertices.get_Item(num).m_belongSegNoList.get_Count() > 0); blockContext.m_polylineVertices.get_Item(num).m_belongSegNoList.Add(count2); DebugHelper.Assert(blockContext.m_polylineVertices.get_Item(num).m_belongSegNoList.get_Count() <= 4); } else { int count3 = blockContext.m_polylineVertices.get_Count(); FowLos.SPolylineVertex sPolylineVertex = default(FowLos.SPolylineVertex); sPolylineVertex.ParamlessConstruct(); sPolylineVertex.m_point = start; sPolylineVertex.m_belongBlockId = inAreaId; sPolylineVertex.m_belongSegNoList.Add(count2); sPolylineVertex.m_bNative = true; sPolylineSegment.m_startPtIndex = count3; sPolylineSegment.m_start = sPolylineVertex.m_point; blockContext.m_polylineVertices.Add(sPolylineVertex); } if (blockContext.ContainsPoint(end, out num)) { sPolylineSegment.m_endPtIndex = num; sPolylineSegment.m_end = blockContext.m_polylineVertices.get_Item(num).m_point; DebugHelper.Assert(blockContext.m_polylineVertices.get_Item(num).m_belongSegNoList.get_Count() > 0); blockContext.m_polylineVertices.get_Item(num).m_belongSegNoList.Add(count2); DebugHelper.Assert(blockContext.m_polylineVertices.get_Item(num).m_belongSegNoList.get_Count() <= 4); } else { int count4 = blockContext.m_polylineVertices.get_Count(); FowLos.SPolylineVertex sPolylineVertex2 = default(FowLos.SPolylineVertex); sPolylineVertex2.ParamlessConstruct(); sPolylineVertex2.m_point = end; sPolylineVertex2.m_belongBlockId = inAreaId; sPolylineVertex2.m_belongSegNoList.Add(count2); sPolylineVertex2.m_bNative = true; sPolylineSegment.m_endPtIndex = count4; sPolylineSegment.m_end = sPolylineVertex2.m_point; blockContext.m_polylineVertices.Add(sPolylineVertex2); } blockContext.m_polylineSegList.Add(sPolylineSegment); } }