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 362 commits into
base: develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
362 commits
Select commit Hold shift + click to select a range
8ebb6b2
Abstractions ++
SteveLockley Jan 2, 2023
f01115c
XCurve and XCurve2d no longer abstract
SteveLockley Jan 2, 2023
8b80c15
feat: 'Moved' impl. in shape service to transform shapes
Jan 2, 2023
e3c6ddf
Abstractions ++
SteveLockley Jan 2, 2023
dc85624
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Jan 2, 2023
4bfc16f
Abstractions ++
SteveLockley Jan 2, 2023
e4f5e76
Abstractions++
SteveLockley Jan 2, 2023
4c46787
Abstractions++
SteveLockley Jan 3, 2023
4546c3d
feat: IsColliding implementation in shape service
Jan 3, 2023
2122968
Abstractions ++
SteveLockley Jan 3, 2023
6127ed0
Clashes on Abstractions resolved
SteveLockley Jan 3, 2023
b6a70bc
Abstractions++
SteveLockley Jan 3, 2023
15630e8
XMatrix Multiply added
SteveLockley Jan 3, 2023
407c879
Fixed logs so we don't swallow internal exceptions/stacks
andyward Jan 4, 2023
335db27
Pass logger to engine in legacy v5 methods
andyward Jan 4, 2023
06d6e52
RGB Transparency defaulted to 1
SteveLockley Jan 4, 2023
fba9a0b
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Jan 4, 2023
3254acf
Add logging scopes
andyward Jan 4, 2023
bfc6b0e
Missed a scope in prior commit
andyward Jan 4, 2023
859e59f
added wall
Jan 5, 2023
70dbf92
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Jan 5, 2023
66b73d0
Abstractions++
SteveLockley Jan 5, 2023
9964a0a
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Jan 5, 2023
4d42179
fix: rename shape proximity unmanaged utils and update overlapping sh…
Jan 5, 2023
626a7dc
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Jan 5, 2023
b939c57
fix: ShapeProximityTests
Jan 5, 2023
937885d
Tests fixed for rename of IsColliding to IsOverlapping
SteveLockley Jan 5, 2023
4e6c6e5
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Jan 5, 2023
ff29dec
Abstractions++
SteveLockley Jan 5, 2023
01fed3c
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Jan 6, 2023
b40b9e4
Fixed Logging hangs in XbimRegression
SteveLockley Jan 6, 2023
2d92317
abstractions++
Jan 6, 2023
7ba11cd
fix conflicts
Jan 6, 2023
1d21434
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
Jan 6, 2023
e3dbb06
abstractions upgrade
Jan 6, 2023
0c56b16
feat: scaled implementation in ShapeService
Jan 6, 2023
6815f78
implemented iMatrix into Xlocation
Jan 6, 2023
1b88222
updated abstractions
Jan 6, 2023
efdeeac
IsFacingAwayFrom implement of ShapeService
SteveLockley Jan 6, 2023
e6a97dc
Merge branch 'feature/netcore' of https://github.com/xBimTeam/XbimGeo…
SteveLockley Jan 6, 2023
99448ca
Values of XMatrix fixed and ToByteArray added
SteveLockley Jan 7, 2023
dc5d6e3
Abstractions++
SteveLockley Jan 7, 2023
a728111
Abstractions++
SteveLockley Jan 7, 2023
80c8d69
Move implemented for bounding boxes
SteveLockley Jan 7, 2023
f476f44
Centroid added to bounding box
SteveLockley Jan 8, 2023
9f11037
Colour defaults set to null for emmisive and specular if not defined
SteveLockley Jan 8, 2023
add046a
XMatrix update
SteveLockley Jan 8, 2023
45f44a7
Translation added to XAxisAlignedBox
SteveLockley Jan 9, 2023
9c42f18
Abstractions++
SteveLockley Jan 9, 2023
032f3fa
Translated method added to XLocation
SteveLockley Jan 9, 2023
71bff94
XLocation matrix transposed for conversion to Xbim Matrix Format
SteveLockley Jan 9, 2023
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
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
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.347-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