public static BuildingContourDto ToBuildingContourDto(this BuildingContour buildingContour) { return(new BuildingContourDto { bottomAltitude = buildingContour.BottomAltitude, topAltitude = buildingContour.TopAltitude, points = buildingContour.Points.Select(_x => _x.ToLatLongInterop()).ToArray() }); }
private static BuildingInformation CreateBuildingInformation( BuildingInformationInterop buildingInfoInterop, LatLongInterop[] contourPointsBuffer, BuildingContourInterop[] buildingContoursBuffer) { var buildingContours = new List <BuildingContour>(); var contourPointsOffset = 0; for (int i = 0; i < buildingInfoInterop.BuildingContoursSize; ++i) { var buildingContourInterop = buildingContoursBuffer[i]; var pointCount = buildingContourInterop.PointCount; var points = new List <LatLong>(); for (int j = 0; j < pointCount; ++j) { points.Add(contourPointsBuffer[contourPointsOffset + j].ToLatLong()); } var buildingContour = new BuildingContour( buildingContourInterop.BottomAltitude, buildingContourInterop.TopAltitude, points.AsReadOnly()); buildingContours.Add(buildingContour); contourPointsOffset += pointCount; } var buildingInformation = new BuildingInformation( Marshal.PtrToStringAnsi(buildingInfoInterop.BuildingId, buildingInfoInterop.BuildingIdSize - 1), buildingInfoInterop.BuildingDimensions.ToBuildingDimensions(), buildingContours.AsReadOnly() ); return(buildingInformation); }