/// <summary> /// Converts collection of Barriers to GPFeatureRecordSetLayer of Point barriers. /// </summary> /// <param name="barriers">Collection of Point barriers to convert.</param> /// <param name="solverSR">Reference to GP spatial.</param> /// <returns>GPFeature RecordSet Layer of Point barriers.</returns> public GPFeatureRecordSetLayer ConvertToPointBarriersLayer(IEnumerable <Barrier> barriers, GPSpatialReference solverSR) { Debug.Assert(barriers != null); return(_GenerateLayer(barriers, BarrierGeometryType.Point, solverSR)); }
/// <summary> /// Generate GPFeatureRecordSetLayer of specified barrier type. /// </summary> /// <param name="barriers">Collection of Typed Barriers to include into layer.</param> /// <param name="type">Type of barriers to convert in.</param> /// <param name="solverSR">Reference to GP spatial.</param> /// <returns>GPFeatureRecordSetLayer of barriers of specified type.</returns> private GPFeatureRecordSetLayer _GenerateLayer(IEnumerable <Barrier> barriers, BarrierGeometryType type, GPSpatialReference solverSR) { Debug.Assert(barriers != null); GPFeatureRecordSetLayer layer = null; GPFeature[] features = _ConvertBarriers(barriers, type); if (features.Length > 0) { layer = new GPFeatureRecordSetLayer(); layer.SpatialReference = solverSR; layer.Features = features; switch (type) { case BarrierGeometryType.Point: layer.GeometryType = NAGeometryType.esriGeometryPoint; break; case BarrierGeometryType.Polygon: layer.GeometryType = NAGeometryType.esriGeometryPolygon; break; case BarrierGeometryType.Polyline: layer.GeometryType = NAGeometryType.esriGeometryPolyline; break; case BarrierGeometryType.None: // Not supported type. Debug.Assert(false); break; default: Debug.Assert(false); break; } } return(layer); }