Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provisional Feature/netcore integration #436

Draft
wants to merge 413 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
413 commits
Select commit Hold shift + click to select a range
ab77ce8
fix: linear deflection and angular deflection values got from mesh fa…
Jan 9, 2023
4bd2c8f
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Jan 9, 2023
458d9b2
fix: ShapeProximityTests
Jan 9, 2023
0b8c5bb
Abstractions ++
SteveLockley Jan 10, 2023
6686017
Abstractions++
SteveLockley Jan 10, 2023
b34d6ca
NodeType extended to layerd material instances
SteveLockley Jan 10, 2023
96f148a
Ifc4 support for material layer added
SteveLockley Jan 10, 2023
09700ac
MaterialLayer made a storeable item
SteveLockley Jan 10, 2023
19f2ce5
typo fix
SteveLockley Jan 10, 2023
e52d048
fix: shape service IsOverlapping
Jan 10, 2023
527dc3c
Second derivative added to curves
SteveLockley Jan 11, 2023
f24127a
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Jan 11, 2023
dcacc7e
GetSecondDerivative bug fixed
SteveLockley Jan 11, 2023
5688de9
Derivations changed to return directions
SteveLockley Jan 11, 2023
e1beab2
Axis built with directions
SteveLockley Jan 11, 2023
b9b9711
facingawayfrom updated
SteveLockley Jan 11, 2023
0c391ce
IsFacingAwayFrom updated
SteveLockley Jan 11, 2023
bfd4886
revert isfacingawayfrom change
SteveLockley Jan 11, 2023
08dec9c
GetTypical3DContexts made a little less strict to support older models
SteveLockley Jan 12, 2023
fd5a832
Merge remote-tracking branch 'origin/develop' into feature/netcore
SteveLockley Jan 12, 2023
b9d8290
abstractions++
Jan 12, 2023
24dfbda
abstractions++
Jan 12, 2023
ac692f0
Derivatives and XDirection fixed
SteveLockley Jan 13, 2023
af0fc41
Trimmed circle tests fixed
SteveLockley Jan 13, 2023
70c3cc8
RectangleProfileDef added
SteveLockley Jan 13, 2023
8d61c3b
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Jan 13, 2023
8533ec2
Swept pipes made more acurate
SteveLockley Jan 16, 2023
b6c130b
Net core ssweep support upgraded
SteveLockley Jan 16, 2023
e0473c3
Support for IfcCurveBoundedPlane added
SteveLockley Jan 17, 2023
c4f621a
feat: boolean ops implementations in shape service
Jan 17, 2023
35187c3
fix: remove min gap ctr parameter
Jan 17, 2023
6d156c0
BSpline and bounded surface support added
SteveLockley Jan 18, 2023
16e9718
Several tests with composite curve construction failures fixed
SteveLockley Jan 18, 2023
12988e6
Accepted NShapeService updates
SteveLockley Jan 18, 2023
fe1e780
Exceptions moved to Geometry abstractions, tests fixed up
SteveLockley Jan 19, 2023
934d34d
Mirrored Profile test Fixed
SteveLockley Jan 19, 2023
146c44a
Upgraded to Net6 and multi-target nuget package builds
SteveLockley Jan 21, 2023
85f7125
targets file corrected
SteveLockley Jan 21, 2023
1729d18
Support for testing net60 and net472 completed
SteveLockley Jan 23, 2023
b301364
Updated Xbim.Geometry nuget package builder
SteveLockley Jan 23, 2023
e8e0149
Generate interop package on build
SteveLockley Jan 23, 2023
96038c9
IjwHost added to buildtransient net60 artifacts
SteveLockley Jan 25, 2023
002c405
Logger initialise before assembly probing
SteveLockley Jan 25, 2023
80f7a84
boolean timeout default reduced to 30 seconds
SteveLockley Jan 26, 2023
97ebbed
Timeout for net472 booleans reinstated and reduced to 30 secs
SteveLockley Jan 26, 2023
8fdf433
Fixed up IjwHost issue
SteveLockley Jan 26, 2023
3b1350b
Abstractions++
Feb 1, 2023
5a9ed88
essentials++
Feb 1, 2023
09dab61
Refactoring of the approach to construction Geometry engine (#413)
andyward Feb 1, 2023
a307d7f
Change assembly load location to account for code running in Appdomai…
andyward Feb 2, 2023
cf48b79
Updated Essentials and Abstractions
SteveLockley Feb 7, 2023
02d9e28
Updated GE to use the new DI service (XbimServices.Current) in xbim.C…
andyward Feb 7, 2023
17ebb42
Build fixup after deleting namespace
andyward Feb 7, 2023
978a86b
Slimmed down dependencies in core GE packages
andyward Feb 7, 2023
0002d73
tangency check in shape proximity
Feb 15, 2023
8247ae3
fix (ShapeService.IsOverlapping): overlapping shapes with no actual o…
Feb 15, 2023
8cadc8a
Ensure Geometry services have default registrations
andyward Feb 18, 2023
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
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.
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[*.cs]

# IDE0055: Fix formatting
dotnet_diagnostic.IDE0055.severity = suggestion
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
20 changes: 9 additions & 11 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,33 +1,31 @@
<Project>

<PropertyGroup>
<IsTestProject Condition="$(MSBuildProjectName.EndsWith('Tests')) OR $(MSBuildProjectName.EndsWith('Regression'))">true</IsTestProject>
</PropertyGroup>
<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>false</SignAssembly>
<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.363-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