Skip to content

Commit

Permalink
Use new ProxyMap that is source gen (#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
adamhathcock authored Jun 13, 2024
1 parent e37d05c commit 22235f2
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 47 deletions.
4 changes: 2 additions & 2 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<PackageVersion Include="Glob" Version="1.1.9" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.5.0" />
<PackageVersion Include="SimpleExec" Version="12.0.0" />
<PackageVersion Include="Speckle.ProxyGenerator" Version="0.1.6" />
<PackageVersion Include="Speckle.ProxyGenerator" Version="0.1.7" />
<PackageVersion Include="Mapster" Version="7.3.0" />
<PackageVersion Include="MinVer" Version="5.0.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
Expand All @@ -15,4 +15,4 @@
<PackageVersion Include="NUnit.Analyzers" Version="4.2.0" />
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
</ItemGroup>
</Project>
</Project>
6 changes: 3 additions & 3 deletions Revit/Revit2023/Speckle.Revit2023.Api/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
},
"Speckle.ProxyGenerator": {
"type": "Direct",
"requested": "[0.1.6, )",
"resolved": "0.1.6",
"contentHash": "SO9Udllol9Krpq+UFBr54Es79kmiIQmtSRXKFcvplnisdwmjo5CBlucuuvgZYmQUSvF/9KC4BcuVllZRTCBDHQ=="
"requested": "[0.1.7, )",
"resolved": "0.1.7",
"contentHash": "CyMcXENu9e5qHPPbcSTMAtYt4AYHaFaeo/WL7Qhw4MiQyEk+j2ZFsDRY3YxWDmrp41gMcOmuXUPzFEWd0A6YYA=="
},
"Speckle.Revit.API": {
"type": "Direct",
Expand Down
6 changes: 3 additions & 3 deletions Revit/Revit2024/Speckle.Revit2024.Api/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
},
"Speckle.ProxyGenerator": {
"type": "Direct",
"requested": "[0.1.6, )",
"resolved": "0.1.6",
"contentHash": "SO9Udllol9Krpq+UFBr54Es79kmiIQmtSRXKFcvplnisdwmjo5CBlucuuvgZYmQUSvF/9KC4BcuVllZRTCBDHQ=="
"requested": "[0.1.7, )",
"resolved": "0.1.7",
"contentHash": "CyMcXENu9e5qHPPbcSTMAtYt4AYHaFaeo/WL7Qhw4MiQyEk+j2ZFsDRY3YxWDmrp41gMcOmuXUPzFEWd0A6YYA=="
},
"Speckle.Revit.API": {
"type": "Direct",
Expand Down
6 changes: 3 additions & 3 deletions Revit/Speckle.Revit.Api/RevitFilterFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,12 @@ public partial interface IRevitFilteredElementCollectorProxy : IRevitFilteredEle

public partial class FilteredElementCollectorProxy
{
public IEnumerable<T> OfClass<T>(IProxyMap proxyMap) =>
public IEnumerable<T> OfClass<T>() =>
_Instance
.OfClass(
proxyMap.GetHostTypeFromMappedType(typeof(T))
ProxyMap.GetHostTypeFromMappedType(typeof(T))
?? throw new InvalidOperationException($"Could not unmap type: {typeof(T).FullName}")
)
.Select(x => proxyMap.CreateProxy(typeof(T), x))
.Select(x => ProxyMap.CreateProxy(typeof(T), x))
.Cast<T>();
}
6 changes: 0 additions & 6 deletions Revit/Speckle.Revit.Interfaces/IRevitCurve.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,12 +101,6 @@ public interface IRevitGroup : IRevitElement
IList<IRevitElementId> GetMemberIds();
}

public interface IRevitSolid : IRevitGeometryObject
{
IRevitFaceArray Faces { get; }
double SurfaceArea { get; }
}

public interface IRevitFace
{
IRevitMesh Triangulate();
Expand Down
30 changes: 1 addition & 29 deletions Revit/Speckle.Revit.Interfaces/IRevitFilterFactory.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;

namespace Speckle.Revit.Interfaces;

Expand All @@ -19,31 +19,3 @@ params IRevitElementId[] elementIds
IRevitPointCloudFilter CreateMultiPlaneFilter(params IRevitPlane[] planes);
IRevitElementCategoryFilter CreateElementCategoryFilter(RevitBuiltInCategory category);
}

public interface IProxyMap
{
Type? GetMappedTypeFromHostType(Type type);
Type? GetMappedTypeFromProxyType(Type type);
Type? GetHostTypeFromMappedType(Type type);

object CreateProxy(Type type, object toWrap);
}

// ghetto default interface implementation :(
public static class ProxyMapExtensions
{
public static (Type, object)? WrapIfExists(this IProxyMap proxyMap, Type target, object toWrap)
{
var mappedType = proxyMap.GetMappedTypeFromHostType(target);
if (mappedType is not null)
{
return (mappedType, proxyMap.CreateProxy(mappedType, toWrap));
}
mappedType = proxyMap.GetMappedTypeFromProxyType(target);
if (mappedType is not null)
{
return (mappedType, toWrap);
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

public interface IRevitFilteredElementCollector : IRevitElementFilter
{
IEnumerable<T> OfClass<T>(IProxyMap proxyMap);
IEnumerable<T> OfClass<T>();
}
8 changes: 8 additions & 0 deletions Revit/Speckle.Revit.Interfaces/IRevitSolid.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#nullable enable
namespace Speckle.Revit.Interfaces;

public interface IRevitSolid : IRevitGeometryObject
{
IRevitFaceArray Faces { get; }
double SurfaceArea { get; }
}

0 comments on commit 22235f2

Please sign in to comment.