SolidCoreNet 1.0.1
See the version list below for details.
dotnet add package SolidCoreNet --version 1.0.1
NuGet\Install-Package SolidCoreNet -Version 1.0.1
<PackageReference Include="SolidCoreNet" Version="1.0.1" />
<PackageVersion Include="SolidCoreNet" Version="1.0.1" />
<PackageReference Include="SolidCoreNet" />
paket add SolidCoreNet --version 1.0.1
#r "nuget: SolidCoreNet, 1.0.1"
#:package SolidCoreNet@1.0.1
#addin nuget:?package=SolidCoreNet&version=1.0.1
#tool nuget:?package=SolidCoreNet&version=1.0.1
SolidCoreNet
A managed C# binding over the solidcore
B-rep kernel (itself a port of the SMLib kernel from NVIDIA's USD-brep ).
This repository holds both halves of the binding:
solidcore-ffi— the native Rust crate: a C ABI over solidcore.SolidCoreNet— a class library targeting net8.0 and net48.
Supported platforms and frameworks
| Framework | Windows (x64) | Linux (x64) |
|---|---|---|
| net8.0 | ✅ | ✅ |
| net48 (.NET Framework 4.8) | ✅ | — |
The NuGet package ships native
binaries for win-x64 (solidcore_ffi.dll) and linux-x64 (libsolidcore_ffi.so,
glibc 2.17 baseline);
Tested combinations: net8.0 on Windows, net48 on Windows, and net8.0 on Linux (Ubuntu via WSL).
Building
Native — build
Build the native libraries (solidcore_ffi.dll on Windows, libsolidcore_ffi.so on
Linux):
./build-native.ps1 # Windows: builds the .dll and cross-compiles the Linux .so
./build-native.sh # Linux/macOS: builds the .so
build-native.ps1 will cross compile for Windows/Linux on windows. It checks for cargo-zigbuild, zig, and the Rust
x86_64-unknown-linux-gnu target, and prints an install command for anything that is missing. The Linux .so targets a glibc 2.17 baseline.
Native — test
cd solidcore-ffi
cargo test
Managed — build
dotnet build SolidCoreNet.slnx
Managed — test
dotnet test
NuGet package
dotnet pack SolidCoreNet/SolidCoreNet.csproj -c Release -o artifacts/packages
API
using Kernel kernel = new();
using Brep a = kernel.MakeBox(0, 0, 0, 2, 2, 2);
using Brep b = kernel.MakeBox(1, 1, 1, 2, 2, 2);
using Brep cut = a.Difference(kernel, b); // Consumes a and b
double volume = cut.GetVolume(kernel); // 7 for the 2x2x2 cubes offset by (1,1,1)
Mesh mesh = box.CreateMesh(kernel, MeshTolerance.Chord(1.0), MeshAttributes.All);
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Framework | net48 is compatible. net481 was computed. |
-
.NETFramework 4.8
- System.Memory (>= 4.6.3)
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.