Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
470 commits
Select commit Hold shift + click to select a range
95825ee
Reinstate XML Docs
andyward Feb 19, 2023
b0967b8
Fixed up various Xml Docs so we document more public interfaces
andyward Feb 19, 2023
4741551
Harmonised projects and versions so we can have a single version
andyward Feb 20, 2023
eb7369f
Updated remaining test failures to skipped with SRL note. Added xUnit…
andyward Feb 20, 2023
a3af497
Bumped Abstractions and fixed up interfaces
andyward Feb 20, 2023
3afa586
Brittle test - affected by timing issue in static IfcStore ctor and n…
andyward Feb 20, 2023
dd43223
Switched most Information logs to debug.
andyward Feb 20, 2023
b6a6065
Changing RaiseGeometryFactoryException so we log the underlying excep…
andyward Feb 21, 2023
6701255
Applied previous logging update to ModelService's Exception logging
andyward Feb 21, 2023
ca00a36
Disable intermittent test under CI
andyward Feb 21, 2023
e32c0cb
Update azure-pipelines.yml for Azure Pipelines
andyward Feb 21, 2023
dbcfa88
Updated essentials - Ifc4x3 IfcSegment.Dim fix
andyward Feb 21, 2023
4fe960b
Fixed up various Structured logging issues - Makes Seq logging clearer
andyward Feb 21, 2023
cebf799
Fixed Cylindrical Surfaces in advanced breps
SteveLockley Feb 12, 2023
46e291a
Fixup post cherrypick
andyward Feb 25, 2023
662c441
wip checkin
SteveLockley Feb 20, 2023
36583e8
XbimCurve and XbimCurve2d update to nest ModelServices
SteveLockley Feb 20, 2023
f2c470e
All XbimOccShape entites made aware of model context
SteveLockley Feb 20, 2023
c0b495b
All tests pass
SteveLockley Feb 23, 2023
576afc7
Errors in test project fixed, Geoemtry engine upgraded, ALL tests now…
SteveLockley Feb 24, 2023
3edbecf
Final Fix up. All tests pass
andyward Feb 26, 2023
6063af2
Updated/renamed test assembly - tidy up of test infrastructure
andyward Feb 26, 2023
047baff
Fixed warning - improved log
andyward Feb 26, 2023
7541d1e
Merge pull request #416 from xBimTeam/feature/netcore-fixup
andyward Feb 27, 2023
095c81b
Update azure-pipelines.yml for Azure Pipelines
andyward Feb 27, 2023
d19668d
Test removed as volume calculation fixed
SteveLockley Mar 3, 2023
74d2e64
Removed the dictionary lookup into the IModel for the Geometry Service
SteveLockley Mar 5, 2023
f6ba4fb
ShapeService: Transform method impl. supports non-uniform transformat…
Mar 10, 2023
ef53c63
skip failed SurfaceCurveSweptAreaSolid tests for now
Mar 10, 2023
44db84c
skipped SurfaceCurveSweptAreaSolid tests: fix engine version
Mar 10, 2023
36f35dc
fix(Warning C4172) in to transform extension
Mar 10, 2023
fabeeab
fix: shape service boolean operations and add logging
Mar 22, 2023
c2098bd
Added V6 support for SurfaceCurveSweptAreaSolid and deleted V5 implem…
SteveLockley Mar 23, 2023
f582c04
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Mar 23, 2023
2e74488
const auto&& adplied to all interators
SteveLockley Mar 23, 2023
a5c8952
test: projection factory test init
Mar 23, 2023
79f4eec
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Mar 23, 2023
b81cb9c
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Mar 23, 2023
263155b
Projection fixed for small complex meshed objects
SteveLockley Mar 25, 2023
85fad8f
Fixes for creation of BIM word sample, fixes shapes only not wexbim g…
SteveLockley Mar 26, 2023
01e219b
Calculation and smoothing of normals for wexbim output amended
SteveLockley Mar 26, 2023
7501e73
Normal iterator for wexbim processed amended
SteveLockley Mar 27, 2023
8be3621
Computer Normals globally for each face
SteveLockley Mar 27, 2023
f8107ec
Normals calculated per UV location
SteveLockley Mar 27, 2023
80411fd
normal iteration amended to avoid pointer dereference
SteveLockley Mar 27, 2023
c316648
Test case for normal calculation enhanced
SteveLockley Mar 28, 2023
dce321d
Normal processing optimised
SteveLockley Mar 28, 2023
505bf98
Test cases added for meshing sphere and block
SteveLockley Mar 28, 2023
f1cc829
Correct support in V6 for IfcCompsiteProfileDef in IfxExtrudedArea an…
SteveLockley Mar 31, 2023
f118d50
V6 Advanced Breps create correct solids, improvement over V5
SteveLockley Apr 2, 2023
579ea9a
Reference direction of Planes fixed
SteveLockley Apr 2, 2023
b0c61e8
T shaped Profile implemented in V6
SteveLockley Apr 3, 2023
01c6468
L Shape profile added to V6
SteveLockley Apr 3, 2023
9afb15b
V6 support for Trapezium and Asymmetric I shape profile definitions a…
SteveLockley Apr 4, 2023
a12418e
XbimRegression fixed
SteveLockley Apr 5, 2023
64bc62a
refactor: wexbim creation factory
Apr 6, 2023
4146a90
fix: IsValidShape method checks for the validity of the handle
Apr 6, 2023
47d904c
Projection factory: remove l-value refrenes of shapes and add excepti…
Apr 6, 2023
a14d51e
WexBimMeshFactory: throw exception if shape is not valid
Apr 6, 2023
b9d15aa
Logging levels adjusted and excpetion handling corrected in geometry …
SteveLockley Apr 7, 2023
c8d6a10
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Apr 7, 2023
0088506
update geometry abstractions
SteveLockley Apr 7, 2023
073f64a
feature: use polygonal hidden-line removal algorithm for footprinting…
Apr 13, 2023
8492f88
fix (NProjectionFactory): building segments of visibile edges don't b…
Apr 14, 2023
8f0da17
fix (ProjectionFactory): Increase complex shape threshold that swithc…
Apr 14, 2023
305b115
Add explicit param to invoke exact footprint creation to projection f…
Apr 17, 2023
87fef86
Abstractiosn ++
Apr 17, 2023
b4986f5
externalFeedCredentials input for nuget restore
Apr 17, 2023
9a0edbc
remove externalFeedCredentials param from nuget restore task
Apr 17, 2023
9144585
test (ProjectionFactory): add test for polyhedral simplification foot…
Apr 17, 2023
2ee0bf2
Upgrade geometry abstractions package
Apr 18, 2023
2fc56ee
Facetted Brep handles mis-aligned places and vertices
SteveLockley Apr 24, 2023
ef19412
Booleans warnings correxted, facetted BREPs made thread safe
SteveLockley Apr 26, 2023
ca379cc
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Apr 26, 2023
982789e
Upgrade Geometry Abstractions package
Apr 28, 2023
214313e
enhancing CreateFootPrint logs
Apr 28, 2023
0acffff
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Apr 28, 2023
446a753
Surface based face models with faces that are lines and not areas gua…
SteveLockley Apr 30, 2023
af35676
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Apr 30, 2023
9ce77b2
Length for short polyline segments in composite curves reduced to mod…
SteveLockley May 1, 2023
0dbc92d
Unit test given another test criteria for composite curve creation
SteveLockley May 1, 2023
0c517af
Upgraded to V6 Boolean code
SteveLockley May 2, 2023
e9c96cc
Fix for GE being thrown when a wire profile is self intersecting and …
SteveLockley May 3, 2023
baf7e86
Cutting opens in an empty shape handled
SteveLockley May 3, 2023
63bc6ca
Fix to allow multiple file processing in XbimRegression
SteveLockley May 4, 2023
c102f6f
Reference geometries are not processed as boolean operations on a bod…
SteveLockley May 5, 2023
eaefd5a
Spot fix for edge-case crash determing face direction
andyward May 10, 2023
2f3f986
Geometry Abstractions ++
SteveLockley May 16, 2023
cd44fd5
Abstractions ++
SteveLockley May 16, 2023
d7f9b46
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley May 16, 2023
c6a5f40
Added WexBimCreateMesh to shape service
SteveLockley May 26, 2023
e7fd679
MeshFactors exposed in GeometryPrimitives service
SteveLockley May 26, 2023
534a863
fix (XbimShapeColour::SetStyle): shinning value boxing and casting is…
Jul 12, 2023
5dc69b2
Upgrade abstraction package
Jul 12, 2023
5f43633
feat: axis aligned bb transform
Jul 21, 2023
591dba9
feature: model placement builder service, used to build model element…
Jul 29, 2023
5df93c3
more rigorous tests for the placement builder
Jul 29, 2023
3641148
Merge pull request #432 from xBimTeam/feature/model-placement-builder
Ibrahim5aad Jul 29, 2023
b9f1ea7
fix (ModelPlacementBuilder): WCS is the taken as the translation part…
Jul 31, 2023
e345b42
Merge pull request #433 from xBimTeam/fix/model-placement-builder
Ibrahim5aad Jul 31, 2023
6ed9e18
Abstractions++;
Jul 31, 2023
90f1012
upgrade Abstractions package
Aug 8, 2023
6d182c0
Fix #440 - Provide a fallback service provider when none is configured
andyward Aug 31, 2023
56dc514
Fix deployment of transient dependencies on net framework #439
andyward Aug 31, 2023
1f57983
Fix for #444 - Openings not being cut
andyward Sep 1, 2023
490317d
Upgrade abstractions package
Sep 14, 2023
df1bd23
Upgrade abstractions package
Sep 14, 2023
97e01b7
Use more recent nuget version
Sep 14, 2023
fa9325e
disable trigger the build pipeline from other feature branches
Sep 15, 2023
11bcf70
feat: check self intersection in cut operation and add retry pattern
Ibrahim5aad Oct 9, 2023
5d0ee0a
Merge pull request #453 from xBimTeam/feat/retry-pattern-shape-fac
Ibrahim5aad Oct 9, 2023
e3c9c7d
Explicitly target MSVC toolset version 14.34.17.4
andyward Nov 27, 2023
30be8da
Revert "Explicitly target MSVC toolset version 14.34.17.4"
andyward Nov 28, 2023
3c193ae
Changed obj folder for net472 project so we don't get clashes between…
andyward Nov 28, 2023
c6192c1
Fix DI issue when setting up DI under net framework
andyward Dec 2, 2023
73f4bd6
Standardised DI Config namespaces for extension methods so all config…
andyward Dec 2, 2023
7869cfc
Added ability for consumers to overide the folder native GE assemblie…
andyward Dec 3, 2023
a09f69c
Improved logging to help diagnose unsupported Geometry shapes better
andyward Dec 5, 2023
44610f1
Added support for SolidSets; WIP
andyward Dec 5, 2023
dc4ff7b
Fixed warnings
andyward Dec 5, 2023
9388fe6
Minor tidying/housekeeping of DI approach
andyward Dec 20, 2023
925fe1e
Removed test file added in error
andyward Dec 20, 2023
0ef9200
Fixed transparency of IIfcSurfaceStyleShading set to opaque when tran…
Feb 29, 2024
27bfa94
Merge pull request #466 from xBimTeam/fix/shades-transparency
Ibrahim5aad Feb 29, 2024
456686a
Use M_PI instead of std::_Pi in NProjectionFactory
Feb 29, 2024
2e181c0
Fixed invalid String params on exception
andyward Mar 22, 2024
bf96be4
Disabled SimplifyResult (UnifyingDomain) for cut operation in NBoolea…
Apr 19, 2024
8997137
Merge remote-tracking branch 'origin/feature/netcore' into feature/ne…
Apr 19, 2024
ae1e4ef
Fixed failing tests
Apr 19, 2024
feddec8
Guard PolygonalFaceSets faces orientation fixing (it's done already w…
Apr 24, 2024
f662a5d
Merge pull request #474 from xBimTeam/fix/polygonal-face-set-orientat…
Ibrahim5aad Apr 24, 2024
cc8c267
Fixed GE6 calls that called GE5 impl. and removed boolean timeout exc…
Apr 25, 2024
8b44146
Merge pull request #475 from xBimTeam/fix/v6-engine
Ibrahim5aad Apr 25, 2024
321fed8
Revert v6 creator modifications
Apr 25, 2024
c5c093c
Updated Xbim3DModelContext to default to faster Tesselation in v6 eng…
andyward Apr 26, 2024
bcaed36
fix for single-file deployment
WalchAndreas Jun 18, 2024
9649f29
Merge pull request #486 from aardvark-community/feature/netcore
andyward Jun 18, 2024
90f6437
Added pipeline definition to build PRs
andyward Aug 8, 2024
428fbdf
PR on all branches
andyward Aug 8, 2024
ad3c276
Added CreateContext() overloads to remove ambiguous method signature …
andyward Aug 8, 2024
f762506
Use RIDs without platform version (#496)
hyazinthh Aug 12, 2024
fc0c20c
Update Geometry Abstractions package
Sep 5, 2024
081c827
Added ability to process IfcSectionedSurface, IfcAxis2PlacementLinear…
Sep 30, 2024
8e234d0
Tidy up BuildSectionedSurface
Sep 30, 2024
ce3e570
Updated IFC4x3 curves and curves segments
Nov 8, 2024
409aad3
Added occ ransient geometry cache
Nov 8, 2024
cd8bbe5
Supported linear placement in placement builder and xbim scene
Nov 8, 2024
db03663
Added support for SectionedSolidHorizontal and DirectrixDerivedRefere…
Nov 8, 2024
16c9261
Project config files changes
Nov 8, 2024
b5151e1
Testing suite for ifc4x3 resources
Nov 8, 2024
2fa831a
Added CosineSpiral and proper test cases for the spiral curves
Nov 12, 2024
226552d
Added support for IfcPolynomialCurve with proper unit tests
Nov 13, 2024
8be925c
Cache IfcDerivedProfileDef parent profile
Nov 19, 2024
0ce9fe7
Reparameterization of the GradientCurve to align horizontal and verti…
Nov 19, 2024
dc342b8
Trim SectionSolid spines with distances along values of linear placme…
Nov 19, 2024
769779f
Tidy
Nov 19, 2024
2f4c852
Merge pull request #510 from xBimTeam/feature/netcore-4x3
Ibrahim5aad Nov 22, 2024
329a867
Try 'Default' azure build agent pool
Nov 29, 2024
6206ecf
Removed storage module
Dec 10, 2024
044cf70
Replaced BrepDocumentManager with ShapeBinarySerializer
Dec 10, 2024
278d9a3
Merge pull request #516 from xBimTeam/fix/remove-storage-module
Ibrahim5aad Dec 10, 2024
10bf19f
Fixed ModelGeometryService forward declaration in ShapeBinarySerializ…
Dec 10, 2024
efd9c04
Fixed linking issue for ShapeBinarySerializer
Dec 10, 2024
85d1b79
Fixed BuildSurface method in SurfaceFactory
Dec 10, 2024
a0bc3bc
Azure pipeline modifications
Dec 11, 2024
346c25d
Revert "Azure pipeline modifications"
Dec 11, 2024
9fa60a4
Fixed build configurations
Dec 12, 2024
3b0c001
Fixed linker warning; object specified more than once
Dec 13, 2024
ce5f446
Fixed thread safety issue of cached geometries
Dec 13, 2024
fdca4a6
Updated Essentials with fix for IfcCurveSegment to permit IfcLengthMe…
andyward Dec 15, 2024
9a183d9
Relax Implementor agreement checking on CurveSegments so we don't fai…
andyward Dec 16, 2024
2707aee
Moved all Ifc43.MeasureResource.IfcLengthMeasure code to interface, p…
andyward Dec 16, 2024
4e347ee
Enable commented out GradientCurve tests
Dec 17, 2024
e3f7832
Worakround for bug in VS17.12 C++ Compiler
andyward Dec 17, 2024
8c42804
Fixed unstable unit test configuration
andyward Dec 17, 2024
8867b07
Tidied warnings, updated DI/Logging
andyward Dec 17, 2024
8b7368c
Removed incorrectly added test
andyward Dec 18, 2024
084cbcf
Fixed boolean operations fuzzy tolerance
Dec 18, 2024
f8ebe9d
Added test for projecting a faulty clipping resutl solid
Dec 18, 2024
6cd02e3
Fix conflicts
Dec 18, 2024
f98a755
Temporarily skip failing test
andyward Dec 19, 2024
6f59f6f
Fix for failing unit test.
andyward Dec 19, 2024
4c6389e
Improved regression suite.
CBenghi Mar 14, 2022
7fd60ca
Added Test for #483
andyward Dec 23, 2024
5c3727e
Unique region names for many context w/geometries.
CBenghi Feb 23, 2023
86c696e
add an unit test to create XbimWire without errors even if girth and …
okaharu0795 Mar 7, 2023
3cd67fc
fixed up IfcCShapeProfileDef error when values of girth and tchicknes…
okaharu0795 Feb 27, 2023
9b56ab9
Reimplemented fix for #417/#414 based on
andyward Dec 30, 2024
138e1c7
Added test on trimmed curve creation
Sep 18, 2023
06848b2
Fixed XbimCurve geometry construction for trimmed ellipse
Sep 18, 2023
f8b1b9c
Fix for memory access violation when filling loop #512 (#517)
andyward Dec 14, 2024
53eedc2
Workaround for Invalid AdvancedBrep reporting infinite bounding box (…
andyward Dec 14, 2024
76d4d4b
Merge pull request #524 from xBimTeam/netcore-merge
andyward Dec 30, 2024
f38388f
OCC 7.8 init
Jan 6, 2025
3bb4766
Updated Opencascade 7.7 to version built without NO_EXCEPTION - so we…
andyward Jan 9, 2025
985a682
Switched Xbim.Geomettry.OCCT version strategy to be more aligned to O…
andyward Jan 10, 2025
6bde68e
Merge branch 'feature/netcore' into feature/occ7.8
Jan 13, 2025
220f745
Updated to 7.7.0 OCC release package.
andyward Jan 13, 2025
27e84fe
Fixed up prior renaming issue
andyward Jan 13, 2025
37b7f9a
Refactored some old v5 code, to get around OCC native collections can…
Jan 24, 2025
647ab12
Updated for released OCCT 7.8.1 nuget.
andyward Mar 3, 2025
e4e593a
Merged netcore
andyward Mar 3, 2025
fddec6b
Fix up
andyward Mar 3, 2025
b41ef23
Merge pull request #528 from xBimTeam/feature/occ7.8
andyward Mar 3, 2025
37c7d17
Publish netcore to Myget Develop
andyward Mar 4, 2025
1a85454
Fixed warning
andyward Mar 4, 2025
7c2f698
Updated Essentials for 4x3 fixes/partials
andyward Mar 6, 2025
ca811fe
Minor changes:
CBenghi Mar 26, 2025
8b5d33a
Attempt to add back strong naming.
CBenghi Mar 26, 2025
39f444e
PR #530 add back Strong naming
andyward Mar 27, 2025
6be07d4
Updated to latest master dependencies.
andyward Mar 31, 2025
c93980c
More tolerant geometry creation of models
CBenghi Apr 28, 2025
f94839e
Update `cs` files for spacing style.
CBenghi Apr 29, 2025
d7ab13b
Merge pull request #535 from CBenghi/tolerantContext
Ibrahim5aad Apr 30, 2025
3262a9a
Fix RunSettingsFilePath misspelled x86 condition.
CBenghi May 9, 2025
fb47ebc
Fixed regression of connected face sets with colinear face vertices
May 19, 2025
403ec25
Added post mesh tesselation callback for custom tessellator post-proc…
May 27, 2025
0e4c78b
Added Xbim.Tessellator and related tests
May 29, 2025
95561ca
Merge pull request #541 from xBimTeam/feature/tessellator
Ibrahim5aad May 29, 2025
0e4a521
Added XbimTriangulatedMesh simplifier based on Garland-Heckbert algor…
May 30, 2025
24b0337
Tessellator to process all the faces at one go for text polyhedron
May 30, 2025
18f7cb8
Merge pull request #537 from CBenghi/fix536
Ibrahim5aad Jun 5, 2025
75cb66f
Added dynamic deflection settings to Xbim3DModelContext
Jun 5, 2025
ec148bc
Made DynamicDeflection caching collections thread-safe
Jun 5, 2025
66a5924
Added documentation to the DynamicDeflection and XbimMeshSimplifier
Jun 5, 2025
af86e0b
Merge pull request #545 from xBimTeam/enhance-docs
Ibrahim5aad Jun 5, 2025
21dd57a
Fixed issue in XbimTriangulatedMeshConnectivity generated triangle IDs
Jun 11, 2025
b97998b
Upgrade Geometry Abstractions package
Jun 17, 2025
e1de80b
Ignore hollow circles inner diameter when it is less than zero
Jun 17, 2025
54c9a7b
Merge pull request #546 from xBimTeam/fix/circles-invalid-inner-diameter
Ibrahim5aad Jun 17, 2025
50ad15a
Upgrade Geometry Abstractions package
Jun 19, 2025
391f8d2
Fix for merged Quadri project not displaying geometry from IfcGeometr…
andyward Aug 8, 2025
3045488
Updated Essentials
andyward Aug 9, 2025
28bc76c
SimplifyResult (UnifyingDomain) for boolean operations in NBooleanFac…
Aug 25, 2025
0a6360b
Fixed failing boolean tests
Aug 26, 2025
1bfeceb
Fixed failing test ComplexNestedBooleanResult
Aug 26, 2025
9df1ddd
FIX: Parallelism failure in IIfcIndexedPolyCurve
CBenghi Sep 12, 2025
a301474
Merge pull request #551 from CBenghi/fix/IIfcIndexedPolyCurveCrash
andyward Sep 16, 2025
4e377de
fix: Warnungen entfernt
rainer-helbing Sep 21, 2025
4789dbf
fix: std::mutex replaced by std::shared_mutex
rainer-helbing Sep 22, 2025
bd0f77c
Merge pull request #553 from byroninformatik/byron/shared-mutext-tests
andyward Sep 25, 2025
45993ac
Adding test case to demonstrate failure model.
CBenghi Oct 22, 2025
3305eb7
Invoke BOP simplification when safe
CBenghi Oct 22, 2025
3e89d91
Merge pull request #558 from CBenghi/issues/fix557
Ibrahim5aad Oct 31, 2025
57b2f74
Fixed building composite curve 2d segments for raw conics and trimmed…
Oct 31, 2025
be59eae
Merge pull request #560 from xBimTeam/fix/554-conic-composite-segments
Ibrahim5aad Oct 31, 2025
a23049b
Fix race condition in BuildCurve causing false "previously failed" ex…
Oct 31, 2025
ebd9775
Merge pull request #562 from xBimTeam/fix/561-concurrent-gradient-cur…
Ibrahim5aad Oct 31, 2025
f49fc92
Fixed Swept Disk Solids parameterization semantics
Nov 5, 2025
31f56d9
Merge pull request #564 from xBimTeam/fix/550-swept-solids-params
Ibrahim5aad Nov 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
7 changes: 7 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[*.cs]

# IDE0055: Fix formatting
dotnet_diagnostic.IDE0055.severity = suggestion
indent_style = space
indent_size = 4

2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
*.sln.docstates
*.orig
.vs/
.idea/
global.json

# Build results
[Dd]ebug/
Expand Down
21 changes: 10 additions & 11 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,28 @@
<PropertyGroup>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<GenerateDocumentationFile Condition=" '$(IsTestProject)' != 'true' ">true</GenerateDocumentationFile>
<NoWarn>CS1591</NoWarn>
</PropertyGroup>

<PropertyGroup>
<Version>5.1.0.0</Version>
<AssemblyVersion>5.1.0.0</AssemblyVersion>
<Version>6.0.0.0-dev</Version>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<Copyright>Copyright © XBIM Ltd</Copyright>
<Company>Xbim Ltd.</Company>
<Authors>Steve Lockley, Martin Cerny and XBIMTeam Contributors</Authors>
<Product>XBIM Geometry</Product>
<PackageLicenseExpression>CDDL-1.0</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/xBimTeam/XbimGeometry</PackageProjectUrl>
<PackageIcon>xbim-toolkit-icon.png</PackageIcon>
<PackageReleaseNotes>Version 5.1 update. See https://github.com/xBimTeam/XbimGeometry/blob/master/CHANGELOG.md
<PackageProjectUrl>https://github.com/xBimTeam/XbimGeometry</PackageProjectUrl>
<PackageIcon>xbim-toolkit-icon.png</PackageIcon>
<PackageReleaseNotes>TODO: Update for v6. See https://github.com/xBimTeam/XbimGeometry/blob/master/CHANGELOG.md
</PackageReleaseNotes>
<PackageTags>BIM, IFC, Geometry, Meshing, Tesselation</PackageTags>
<RepositoryUrl>https://github.com/xBimTeam/XbimEssentials/tree/master</RepositoryUrl>
<RepositoryUrl>https://github.com/xBimTeam/XbimGeometry/tree/master</RepositoryUrl>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\XbimOpenSourceKeyFile.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\XbimOpenSourceKeyFile.snk</AssemblyOriginatorKeyFile>
<DelaySign>false</DelaySign><DelaySign>false</DelaySign>
<LangVersion>10.0</LangVersion>
</PropertyGroup>

</Project>
22 changes: 22 additions & 0 deletions GeometryProfiler/GeometryProfiler.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<SignAssembly>False</SignAssembly>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0" />
<PackageReference Include="Xbim.Geometry.Abstractions" Version="6.2.138" />
<PackageReference Include="Xbim.Ifc" Version="5.1.361-develop" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Xbim.Geometry.Engine.Interop\Xbim.Geometry.Engine.Interop.csproj" />
</ItemGroup>

</Project>
52 changes: 52 additions & 0 deletions GeometryProfiler/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// See https://aka.ms/new-console-template for more information
using Microsoft.Extensions.Logging;
using System.Diagnostics;
using Xbim.Geometry.Engine.Interop;
using Xbim.Ifc4.GeometricModelResource;
using Xbim.Ifc4.GeometryResource;
using Xbim.IO.Memory;

Console.WriteLine("Profiling");
ILoggerFactory loggerFactory = LoggerFactory.Create(builder => builder.AddConsole());
using var csgModel = InitCsgModel();
var modelService = XbimGeometryEngine.CreateModelGeometryService(csgModel, loggerFactory);
var v5Engine = XbimGeometryEngine.CreateGeometryEngineV5(csgModel, loggerFactory);

var cone = csgModel.Instances.OfType<IfcRightCircularCone>().First();
var v5Time = Time(() => v5Engine.CreateSolid(cone, null), 1000);
var v6Time = Time(() => modelService.SolidFactory.Build(cone), 1000);


MemoryModel InitCsgModel()
{
var m = new MemoryModel(new Xbim.Ifc4.EntityFactoryIfc4());

using (var txn = m.BeginTransaction("Test"))
{
var cylinder = m.Instances.New<IfcRightCircularCone>();
var p = m.Instances.New<IfcAxis2Placement3D>();
p.Axis = m.Instances.New<IfcDirection>(d => d.SetXYZ(1, 0, 0));
p.Location = m.Instances.New<IfcCartesianPoint>(c => c.SetXYZ(0, 0, 0));
cylinder.Position = p;
cylinder.BottomRadius = 0.5;
cylinder.Height = 2;




txn.Commit();
}
return m;
}

TimeSpan Time(Action action, int executionCount = 1)
{
action();
var t = Stopwatch.StartNew();
for (int i = 0; i < executionCount; i++)
{
action();
}
t.Stop();
return t.Elapsed;
}
26 changes: 22 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,40 @@ XbimGeometry is part of the [Xbim Toolkit](https://github.com/xBimTeam).
It contains the the Geometry Engine and Scene processing, which provide geometric and topological operations
to enable users to visualise models in 3D models, typically as a Tesselated scene or mesh.

The native Geometry Engine is built around the open source [Open Cascade 7.3 library](https://www.opencascade.com/content/overview)
The native Geometry Engine is built around the open source [Open Cascade 7.7.0 library](https://www.opencascade.com/content/overview)
which performs much of the boolean operations involve in generating 3D solids.
This technology is included under a licence which permits the use as part of a larger work, compatible with our open source CDDL licence.

## Getting started

Before using this library you should register the Geometry Engine with the xbim ServiceProvider.

```csharp
// Either configure the internal Services
XbimServices.Current.ConfigureServices(opt => opt.AddXbimToolkit(conf =>
conf.AddGeometryServices()
));

// or configure your services and register the provider with xbim:

services.AddXbimToolkit(conf => conf.AddGeometryServices());
// Once the DI container is built
XbimServices.Current.UseExternalServiceProvider(serviceProvider);
```


## Compilation

**Visual Studio 2017 or 2019 is recommended.**
**Visual Studio 2022 is recommended.**
Prior versions of Visual Studio are unlikely to work on this solution.

The [free VS 2019 Community Edition](https://visualstudio.microsoft.com/downloads/) will be fine.
The [free VS 2022 Community Edition](https://visualstudio.microsoft.com/downloads/) will be fine.

In order to compile this solution which includes C++ projects you'll need the following additional
components installed:

- Visual C++ Core desktop features
- VC++ 2017 v141 tools
- VC++ 2022 v143 tools
- Windows 10 SDK (10.0.17134.0)

The XBIM toolkit [uses the NuGet](https://www.nuget.org/packages/Xbim.Geometry/) for the management of our published packages.
Expand Down
12 changes: 12 additions & 0 deletions Xbim.Geometry.Dependencies/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System;

namespace Xbim.Geometry.Dependencies
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
41 changes: 41 additions & 0 deletions Xbim.Geometry.Dependencies/Xbim.Geometry.Dependencies.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net472</TargetFramework>
<Configurations>Debug;Release</Configurations>
<Platforms>x64;x86;AnyCPU</Platforms>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<RuntimeIdentifiers>win-x86;win-x64</RuntimeIdentifiers>
<PackageIcon>xbim-toolkit-icon.png</PackageIcon>
</PropertyGroup>

<PropertyGroup Condition="'$(Platform)'=='AnyCPU'">
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>

<PropertyGroup Condition="'$(PlatformTarget)'=='x86'">
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(PlatformTarget)'=='x64'">
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>

<ItemGroup>
<None Include="..\xbim-toolkit-icon.png">
<Pack>True</Pack>
<PackagePath>\</PackagePath>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xbim.Geometry.Abstractions" Version="6.2.376-develop" />
</ItemGroup>

<Target Name="Buildx64" BeforeTargets="AfterBuild" Condition="'$(PlatformTarget)' == 'x86'">
<Message Importance="high" Text="Building x64 Platform: $(Platform)" />
<MSBuild Projects="$(MSBuildProjectFile)" Properties="Platform = AnyCPU;PlatformTarget=x64;Configuration=$(Configuration);RunTimeIdentifier=win-x64" RunEachTargetSeparately="true" />
</Target>

</Project>
32 changes: 0 additions & 32 deletions Xbim.Geometry.Engine.Interop.Tests/EntityRepository.cs

This file was deleted.

32 changes: 0 additions & 32 deletions Xbim.Geometry.Engine.Interop.Tests/GithubIssuesTests.cs

This file was deleted.

Loading