Skip to content

Commit b6d6eef

Browse files
committed
Merge branch 'develop'
2 parents a3bd71b + f633784 commit b6d6eef

33 files changed

+6760
-39
lines changed
Lines changed: 52 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,66 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4+
<PackageId>DEM.Net.Extension.Osm</PackageId>
5+
<Version>0.2.7.3</Version>
6+
<AssemblyVersion>0.2.7.3</AssemblyVersion>
7+
<Authors>Xavier Fischer</Authors>
8+
<Copyright>Xavier Fischer and Contributors</Copyright>
9+
<Owners>Xavier Fischer</Owners>
10+
<PackageProjectUrl>https://github.com/dem-net/DEM.Net.Extensions</PackageProjectUrl>
11+
<PackageReleaseNotes>Intial release</PackageReleaseNotes>
12+
<PackageTags>OSM, OpenStreetMap</PackageTags>
13+
<Title>DEM.Net.Extension.Osm</Title>
14+
<Product>DEM.Net Elevation API</Product>
15+
<Description>OpenStreetMap extension for DEM.Net</Description>
16+
<Summary>OpenStreetMap extension for DEM.Net</Summary>
17+
<RepositoryUrl>https://github.com/dem-net/DEM.Net.Extensions</RepositoryUrl>
18+
<RepositoryType>git</RepositoryType>
19+
<PackageLicenseExpression>
20+
</PackageLicenseExpression>
21+
<PackageIconUrl>https://raw.githubusercontent.com/dem-net/Resources/master/images/DEMnet_512.png</PackageIconUrl>
22+
<PackageIcon>DEMnet_64.png</PackageIcon>
423
<TargetFramework>netstandard2.0</TargetFramework>
24+
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
25+
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
26+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
27+
<EmbedUntrackedSources>true</EmbedUntrackedSources>
528
</PropertyGroup>
629

30+
31+
<!-- Build package only in Release -->
32+
<PropertyGroup Condition=" '$(Configuration)' == 'Release'">
33+
<IncludeSymbols>true</IncludeSymbols>
34+
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
35+
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
36+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
37+
</PropertyGroup>
38+
<!-- Build package only in Release -->
39+
<PropertyGroup Condition=" '$(Configuration)' == 'Debug'">
40+
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
41+
<GenerateDocumentationFile>false</GenerateDocumentationFile>
42+
</PropertyGroup>
43+
744
<ItemGroup>
845
<Compile Remove="Extensions\IEnumerableExtensions.cs" />
946
</ItemGroup>
1047

48+
<ItemGroup>
49+
<None Include="DEMnet_64.png" Pack="true" PackagePath="\" />
50+
<None Include="..\..\DEM.Net\LICENSE.md" Link="LICENSE.md">
51+
<PackagePath>
52+
</PackagePath>
53+
<Pack>True</Pack>
54+
</None>
55+
</ItemGroup>
56+
1157

1258
<ItemGroup>
13-
<PackageReference Include="GeoJSON.Net" Version="1.2.14" />
59+
<PackageReference Include="GeoJSON.Net" Version="1.2.15" />
60+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0">
61+
<PrivateAssets>all</PrivateAssets>
62+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
63+
</PackageReference>
1464
<PackageReference Include="protobuf-net" Version="2.4.4" />
1565
<PackageReference Include="System.Drawing.Common" Version="4.7.0" />
1666
</ItemGroup>
@@ -20,8 +70,4 @@
2070
<ProjectReference Include="..\..\DEM.Net\DEM.Net.Core\DEM.Net.Core.csproj" />
2171
<ProjectReference Include="..\..\DEM.Net\DEM.Net.glTF\DEM.Net.glTF.csproj" />
2272
</ItemGroup>
23-
24-
<ItemGroup>
25-
<Reference Include="SharpGLTF.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
26-
</ItemGroup>
2773
</Project>

DEM.Net.Extension.Osm/DEMnet_64.png

4.8 KB
Loading

DEM.Net.Extension.Osm/Implementation/Buildings/OsmBuildingProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public TriangulationNormals Triangulate(List<BuildingModel> buildingModels)
135135

136136
var triangulation = this.Triangulate(building);
137137

138-
var positionsVec3 = triangulation.Positions.ToVector3().ToList();
138+
var positionsVec3 = triangulation.Positions.ToVector3GlTFSpace().ToList();
139139
var buildingNormals = _meshService.ComputeMeshNormals(positionsVec3, triangulation.Indices);
140140

141141
int initialPositionsCount = positions.Count;

DEM.Net.Extension.Osm/Implementation/Highway/HighwayModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public class HighwayModel : CommonModel
1818
public bool Bridge { get; internal set; } = false;
1919
public int Layer { get; internal set; } = 0;
2020

21-
public List<GeoPoint> LineString { get; internal set; }
21+
public List<GeoPoint> LineString { get; set; }
2222

2323
public IEnumerable<GeoPoint> Points
2424
{

DEM.Net.Extension.Osm/Implementation/Highway/HighwayValidator.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using GeoJSON.Net.Feature;
33
using GeoJSON.Net.Geometry;
44
using Microsoft.Extensions.Logging;
5+
using Microsoft.Extensions.Logging.Abstractions;
56
using System;
67
using System.Collections.Generic;
78
using System.Globalization;
@@ -11,9 +12,9 @@ namespace DEM.Net.Extension.Osm.Highways
1112
{
1213
internal class HighwayValidator : OsmModelFactory<HighwayModel>
1314
{
14-
public HighwayValidator(ILogger logger) : base(logger)
15+
public HighwayValidator(ILogger logger) : base(logger ?? NullLogger<HighwayValidator>.Instance)
1516
{
16-
this._logger = logger;
17+
this._logger = logger ?? NullLogger<HighwayValidator>.Instance;
1718
}
1819

1920
private readonly ILogger _logger;
@@ -57,9 +58,9 @@ public override HighwayModel CreateModel(Feature feature)
5758
break;
5859
case GeoJSON.Net.GeoJSONObjectType.Polygon:
5960
var poly = (Polygon)feature.Geometry;
60-
61+
6162
model = BuildModelFromGeometry(poly.Coordinates.First(), ref _totalPoints);
62-
63+
6364
if (poly.Coordinates.Count > 1) _logger.LogWarning($"Polygon has {poly.Coordinates.Count} rings. Single ring processing supported so far. {nameof(HighwayModel)} {feature.Id}.");
6465

6566
break;

DEM.Net.Extension.Osm/Implementation/Highway/OsmHighwayProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ protected override ModelRoot AddToModel(ModelRoot gltfModel, string nodeName, Os
4646

4747
private float GetRoadWidth(HighwayModel road)
4848
{
49-
if (road.Lanes.HasValue)
49+
if ((road.Lanes ?? 0) > 0)
5050
{
5151
return road.Lanes.Value * LaneWidthMeters;
5252
}

DEM.Net.Extension.Tests/DEM.Net.Extension.Tests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
</PropertyGroup>
88

99
<ItemGroup>
10-
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.4" />
11-
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.3" />
12-
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.3" />
13-
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.3" />
10+
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.5" />
11+
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.5" />
12+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.5" />
13+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.5" />
1414
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
1515
<PackageReference Include="xunit" Version="2.4.0" />
1616
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
using DEM.Net.Core;
2+
using SixLabors.ImageSharp.ColorSpaces;
3+
using SixLabors.ImageSharp.ColorSpaces.Conversion;
4+
using System;
5+
using System.Collections.Generic;
6+
using System.Linq;
7+
using System.Numerics;
8+
using System.Text;
9+
10+
namespace DEM.Net.Extension.VisualTopo
11+
{
12+
public interface IColorCalculator
13+
{
14+
Vector4 GetColor(VisualTopoData currentNode, Vector3 position);
15+
}
16+
17+
internal class ColorFromModelCalculation : IColorCalculator
18+
{
19+
public Vector4 GetColor(VisualTopoData currentNode, Vector3 position) => currentNode.Set.Color;
20+
}
21+
internal class ColorFromDepthCalculation : IColorCalculator
22+
{
23+
private readonly float _maxDepth;
24+
private readonly ColorSpaceConverter _colorConverter;
25+
26+
public ColorFromDepthCalculation(VisualTopoModel model)
27+
{
28+
_maxDepth = model.Graph.AllNodes.Min(n => n.Model.GlobalVector.Z);
29+
_colorConverter = new ColorSpaceConverter();
30+
}
31+
32+
public Vector4 GetColor(VisualTopoData currentNode, Vector3 position)
33+
{
34+
float lerpAmout = _maxDepth == 0 ? 0 : Math.Abs(position.Z / _maxDepth);
35+
Hsv hsvColor = new Hsv(MathHelper.Lerp(0f, 360f, lerpAmout), 1, 1);
36+
var rgb = _colorConverter.ToRgb(hsvColor);
37+
38+
return new Vector4(rgb.R, rgb.G, rgb.B, 255);
39+
//return Vector4.Lerp(VectorsExtensions.CreateColor(0, 255, 255), VectorsExtensions.CreateColor(0, 255, 0), lerpAmout);
40+
}
41+
}
42+
43+
44+
public static class ColorStrategy
45+
{
46+
public static IColorCalculator CreateFromModel => new ColorFromModelCalculation();
47+
public static IColorCalculator CreateDepthGradient(VisualTopoModel model) => new ColorFromDepthCalculation(model);
48+
49+
50+
}
51+
52+
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<PackageId>DEM.Net.Extension.VisualTopo</PackageId>
5+
<Version>0.2.7.3</Version>
6+
<Authors>Xavier Fischer</Authors>
7+
<Copyright>Xavier Fischer and Contributors</Copyright>
8+
<Owners>Xavier Fischer</Owners>
9+
<PackageProjectUrl>https://github.com/dem-net/DEM.Net.Extensions</PackageProjectUrl>
10+
<PackageReleaseNotes>Intial release</PackageReleaseNotes>
11+
<PackageTags>Speleology, Geology, Vtopo, VisualTopo</PackageTags>
12+
<Title>DEM.Net.Extension.VisualTopo</Title>
13+
<Product>DEM.Net Elevation API</Product>
14+
<Description>VisualTopo extension for DEM.Net</Description>
15+
<Summary>VisualTopo extension for DEM.Net</Summary>
16+
<RepositoryUrl>https://github.com/dem-net/DEM.Net.Extensions</RepositoryUrl>
17+
<RepositoryType>git</RepositoryType>
18+
<PackageLicenseExpression>
19+
</PackageLicenseExpression>
20+
<PackageIconUrl>https://raw.githubusercontent.com/dem-net/Resources/master/images/DEMnet_512.png</PackageIconUrl>
21+
<PackageIcon>DEMnet_64.png</PackageIcon>
22+
<AssemblyVersion>0.2.7.3</AssemblyVersion>
23+
<TargetFramework>netstandard2.0</TargetFramework>
24+
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
25+
<PackageLicenseFile>LICENSE.md</PackageLicenseFile>
26+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
27+
<EmbedUntrackedSources>true</EmbedUntrackedSources>
28+
</PropertyGroup>
29+
30+
<!-- Build package only in Release -->
31+
<PropertyGroup Condition=" '$(Configuration)' == 'Release'">
32+
<IncludeSymbols>true</IncludeSymbols>
33+
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
34+
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
35+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
36+
</PropertyGroup>
37+
<!-- Build package only in Release -->
38+
<PropertyGroup Condition=" '$(Configuration)' == 'Debug'">
39+
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
40+
<GenerateDocumentationFile>false</GenerateDocumentationFile>
41+
</PropertyGroup>
42+
43+
<ItemGroup>
44+
<None Include="DEMnet_64.png" Pack="true" PackagePath="\" />
45+
<None Include="..\..\DEM.Net\LICENSE.md" Link="LICENSE.md">
46+
<PackagePath>
47+
</PackagePath>
48+
<Pack>True</Pack>
49+
</None>
50+
</ItemGroup>
51+
<ItemGroup>
52+
<PackageReference Include="ClosedXML" Version="0.95.3" />
53+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0">
54+
<PrivateAssets>all</PrivateAssets>
55+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
56+
</PackageReference>
57+
</ItemGroup>
58+
59+
<ItemGroup>
60+
<ProjectReference Include="..\..\DEM.Net\DEM.Net.Core\DEM.Net.Core.csproj" />
61+
<ProjectReference Include="..\..\DEM.Net\DEM.Net.glTF\DEM.Net.glTF.csproj" />
62+
</ItemGroup>
63+
64+
</Project>
4.8 KB
Loading

0 commit comments

Comments
 (0)