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

3djan/merge implicit #394

Merged
merged 348 commits into from
Nov 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
348 commits
Select commit Hold shift + click to select a range
9414702
Fix default filter attribute
martinweismann Mar 31, 2022
01a6071
Rename linear to linearcolor
martinweismann Jun 24, 2022
51b1fd5
Always write ScalarFieldFromImage3D-channel
martinweismann Jun 24, 2022
d8c0bb9
Fix fieldid vs scalar/vector3d-fieldid
martinweismann Jun 24, 2022
44871ed
Implement RemoveProperty
martinweismann Sep 1, 2022
73b936a
Implement RemoveBoundary and RemoveColor
martinweismann Sep 1, 2022
8c39331
Merge remote-tracking branch 'origin/develop' into volumetric
martinweismann Sep 1, 2022
4847327
Merge remote-tracking branch 'origin/develop' into volumetric
martinweismann Sep 1, 2022
c4a0e8e
Add test for properties
martinweismann Sep 1, 2022
f758c99
Fix some iterators
martinweismann Sep 1, 2022
17f1ee9
Add tests for iterators
martinweismann Nov 5, 2022
d1e577d
Add composite volumetric data
martinweismann Nov 24, 2022
a2dccba
Replace "Red", "Green",... with "R", "G", ...
martinweismann Nov 28, 2022
edd9ace
Using file globbing for gathering source files, removing unused *.cpp…
3dJan Mar 31, 2023
c026353
Adding generateWrapper-script for linux64
3dJan Mar 31, 2023
7be1189
[lib3mf.xml] Introducing ImplicitNode and InplicitAddition
3dJan Mar 31, 2023
1189cb6
[genertateWrapperAndBindingsLinux64.sh] Creating implementation stubs…
3dJan Mar 31, 2023
2c4ce8b
Updating year and version
3dJan Mar 31, 2023
0761c8f
ModelReaderNode for implicit node
3dJan Apr 3, 2023
a330441
Introducing addition node
3dJan Apr 3, 2023
248c1c8
[lib3mf.xml] Removing ImplicitAdditon. Introducing a class for each n…
3dJan Apr 4, 2023
8b34163
[lib3mf.xml] Adding node types
3dJan Apr 11, 2023
5389674
Introducing a resource Function that wraps an Implicit Function
3dJan Apr 11, 2023
f00d1e9
Adding install step for cmake config
3dJan Apr 11, 2023
d35d95e
ImplicitFunction is now a resource
3dJan Apr 12, 2023
a697d1b
[CMakeLists.txt] Disabling optimization for gcc in debug
3dJan Apr 13, 2023
0817f80
AddFunction works
3dJan Apr 13, 2023
e017b04
[lib3mf_implicitfunction] Avoiding dynamic casting of underlying reso…
3dJan Apr 13, 2023
f5e3887
Adding NMR_Model prefix to all implicit classes
3dJan Apr 13, 2023
724ac48
Moving methods for writing implicit functions to NMR_ModelWriterNode_…
3dJan Apr 13, 2023
c65e109
Write out functions to resource section
3dJan Apr 14, 2023
8e63570
Adding reader for implicit function
3dJan Apr 14, 2023
9992e83
[.gitignore] Ignoring TestOutput
3dJan Apr 14, 2023
db45644
[API] Replacing the Accessor by an Iterator to be consistent with the…
3dJan Apr 14, 2023
61d6933
Extending the model for implicit nodes,ports etc.
3dJan Apr 17, 2023
fda1010
Reading node elements of a function
3dJan Apr 18, 2023
d1a4dc0
Adding input and output ports automatically
3dJan Apr 19, 2023
e1825b6
Reading input ports
3dJan Apr 20, 2023
3388212
Adding SetupWriteReadx.3mf to .gitignore
3dJan Apr 24, 2023
b48cf68
Input ports with references can be written and read back again
3dJan Apr 24, 2023
0e58167
Writing function inputs and outputs
3dJan Apr 24, 2023
605213b
Reading inputs and outputs of a function
3dJan Apr 24, 2023
dcd91a8
Throw on incompatible port types
3dJan Apr 25, 2023
a656a03
Introducing FindInput/FindOutput
3dJan Apr 25, 2023
f420928
Constants can be written and read back
3dJan Apr 26, 2023
8c92aef
Reading and writing constvec
3dJan Apr 27, 2023
31814d2
Reading and writing constMat
3dJan Apr 27, 2023
bb32933
Untracking and deleting 3mf files generate by tests
3dJan Apr 27, 2023
087f805
Adding missing #include <memory> and some static casts for 32 bit pla…
3dJan Apr 28, 2023
0a5aec7
Replacing std::make_unique to be c++11 compatible
3dJan Apr 28, 2023
f27ad95
Should now compile on 32 bit platforms
3dJan Apr 28, 2023
c077786
Missed another cast
3dJan Apr 28, 2023
dab4cee
Replacing cast to wrong type
3dJan Apr 28, 2023
e74139a
[github action] Use ubuntu-latest runner rather than 18.04
3dJan Apr 28, 2023
5ca7330
[CMakeLists.txt] VS2022 failed to compile lib3mf because compile opti…
3dJan May 19, 2023
f9b5e3b
[CMakeLists.txt] Using generator expressions only for ninja
3dJan May 22, 2023
c9c1730
[CMakeLists.txt] target_compile_definitions -> target_compile_options
3dJan May 22, 2023
836dcc9
[CMakeLists.txt] Adding buildcache support
3dJan May 22, 2023
02000c2
[implicit] Updating naming of inputs and outputs
3dJan May 30, 2023
bc5012a
[implicit] Correcting case of some node names
3dJan May 30, 2023
3311f30
Adding ScalarFieldFunction and Vector3DFieldFunction
3dJan Jun 3, 2023
e889668
Writng the new function based fields, but Seg Fault in ImplicitSphere…
3dJan Jun 3, 2023
e9470fe
[Volumetric tests] Check if the output directory already exists
3dJan Jun 6, 2023
2347cc7
[.gitifnore] Adding .vs
3dJan Jun 6, 2023
d87ccb2
Adding CMakeSettings for legacy visual studio versions
3dJan Jun 6, 2023
7dbfc62
Adding decomposevector-node for implicit graph
3dJan Jun 6, 2023
fb42236
[Volumetric test] New gyroid test, fixing some issues on the way
3dJan Jun 6, 2023
4ac9d21
Update lib3mf.xml
martinweismann Jun 13, 2023
b4600ae
Restructure Function-classes, add 'tag'
martinweismann Jun 13, 2023
725c789
Fix CMakeLists (potentially)
martinweismann Jun 13, 2023
4d71f9c
[NMR_ModelImplicitNode.h] Adding missing argument name
3dJan Jun 16, 2023
c18a3a9
Removing extra qualification
3dJan Jun 16, 2023
19d6f99
Removing another unnessary qualification
3dJan Jun 16, 2023
f2035c6
Merge pull request #320 from 3MFConsortium/implicit_after_f2f
3dJan Jun 16, 2023
ba43a2a
[build.yml] macos-10.15 -> macos-11
3dJan Jun 19, 2023
4554575
[build.yml] Using macos-11 runner for deploy-macos
3dJan Jun 19, 2023
0514853
Introducing Resource Node, that allows to set a resource id that than…
3dJan Jun 22, 2023
04e32db
[implicit] Introducing port type for resource id
3dJan Jun 23, 2023
1e4e076
[implicit] point -> pos to make nameing more consistent
3dJan Jun 23, 2023
c452d34
[implicit] Resources are now set by setting a Resource
3dJan Jun 28, 2023
4ef0836
[implicit] Resources are now set by setting a Resource part II
3dJan Jun 28, 2023
9623d61
Adding .clang-format
3dJan Jun 30, 2023
d68bc82
[Volumetric tests] Exporting implicit model with a sub function
3dJan Jun 30, 2023
83c7a8a
Removing faulty call to base class constructor that is already called…
3dJan Aug 1, 2023
a5b4dad
Adding test for loading a 3d image
3dJan Aug 1, 2023
43d0e49
Updating test file
3dJan Aug 4, 2023
dd76fa4
Adding debug config
3dJan Aug 4, 2023
69766de
Introducing NMR_ModelFunctionFromImage3D
3dJan Aug 7, 2023
9e8811e
Implementing lib3mf_functionformimage3d
3dJan Aug 7, 2023
4762db6
Adding reader for FunctionFromImage3D
3dJan Aug 7, 2023
0ebb589
Adding writer for FunctionsFromImage3D
3dJan Aug 7, 2023
6427984
Writing test file for FunctionFromImage3D
3dJan Aug 7, 2023
58375de
Fixing integration test for functionFromImage3D
3dJan Aug 7, 2023
21e019d
Comparing functionsFromImage3D. Tests fails, api for accessing functi…
3dJan Aug 7, 2023
9eb636e
Extending test and fixing writing/reading of resource ids
3dJan Aug 8, 2023
dfeb32d
Breaking change: Dropping Fields in favor of Functions. Tests are WIP
3dJan Aug 11, 2023
582661d
Replacing Fields with Functions
3dJan Aug 11, 2023
24393a5
[NMR_ModelImplicitFunction] addLink now also resolves output ports
3dJan Aug 11, 2023
35e6499
[volumetric tests] Disabling broken tests, new tests requiered
3dJan Aug 11, 2023
660621f
[Volumetric tests] Updating compare functions and fixing issue with w…
3dJan Aug 11, 2023
a4103a2
[volumetric tests] Adding volume data elements
3dJan Aug 11, 2023
6a3bced
Readding Transform for VolumeData elements (boundary, color, property)
3dJan Aug 21, 2023
a0f1096
[volumetric tests] CreateImplicitWithFunctionFromImage3D writes Trans…
3dJan Aug 21, 2023
4ff649a
[volumetric tests] Adding more tests
3dJan Aug 22, 2023
46bf917
[volumetirc tests] Using cube instead of pyramid to make it easier to…
3dJan Aug 28, 2023
2a0092a
[functionfromimage3d writer] Using ModelResourceId for image3dID
3dJan Aug 28, 2023
6957c20
formatting
3dJan Aug 28, 2023
54668ca
[ModelFunctionFromImage3D] Fetching resource in getter rather than ge…
3dJan Aug 28, 2023
3b8ec2c
[volumetric test] setting boundary threshold
3dJan Aug 31, 2023
32d9972
[NodeTypes] NodeTypeMap considers port types and multiple combinations
3dJan Aug 31, 2023
d5d9c30
[ImplicitNodeTypes] Adding nodes and types according to spec
3dJan Aug 31, 2023
b40e398
[implicit] Adding per node type validation
3dJan Sep 1, 2023
b7b26b1
Adding OutputName to all volume data elements
3dJan Sep 4, 2023
b1d1229
outputname -> channelname to be consistent with old spec
3dJan Sep 4, 2023
590cc9e
Implementing ChannelName into volumedata reader
3dJan Sep 4, 2023
8a9d522
Adding missing channel attribute to writer
3dJan Sep 4, 2023
5d1d241
[implicit] Adding clamp
3dJan Sep 6, 2023
59c0b6e
[implicit] Using optionalclass for FindOutput and FindInput
3dJan Sep 6, 2023
eb37397
[implicit] Implementing removeNode
3dJan Sep 7, 2023
f1d2fb8
[implicit] Adding clear method to implicit functions
3dJan Sep 7, 2023
62ec9df
[lib3mf.xml] Introducing MinFeatureSize and MeshBBoxOnly
3dJan Sep 12, 2023
b059735
Writing and reading minfeaturesize and meshbboxonly
3dJan Sep 12, 2023
8b7837a
[lib3mf_model] Introducing mergeFunctions
3dJan Sep 12, 2023
9965e7f
Replacing resourceids during merging of functions
3dJan Sep 13, 2023
3a26620
Introducing MergeFromModel
3dJan Sep 14, 2023
05c3a54
[volumetric] Adding test for merging a second function
3dJan Sep 14, 2023
2e36691
[NMR_Model] Creating new package ids for the merged functions
3dJan Sep 14, 2023
f0e3e3c
Fixing broken tests
3dJan Sep 14, 2023
ac92c81
[ImplicitFunction] Introducing SortNodesTopologically
3dJan Sep 18, 2023
fb12a21
[Volumetric tests] Adding volume element to shell from mesh test
3dJan Oct 7, 2023
87d17a0
Fixing warning that is turning into error with VS2022
3dJan Oct 7, 2023
43129fe
Removing solidthreshold attribute from <boundary> element
3dJan Oct 18, 2023
ecada92
Introducing ImplicitNodeConfiguration, to set port types during const…
3dJan Oct 19, 2023
649c738
[Implicit] Initializing port types based on the set node configuration
3dJan Oct 19, 2023
a8f8c30
Fixing warnings and errors from gcc
3dJan Oct 20, 2023
16f7728
Satisfying clang warnings
3dJan Oct 20, 2023
ca32d26
Using local independent std::from_chars for parsing floating point nu…
3dJan Oct 20, 2023
db040c8
Setting c++17 for all compiler
3dJan Oct 20, 2023
9d55347
Replacing strtof with fnStringToFloat
3dJan Oct 20, 2023
78d4743
[fnStringToDouble] Adding std::chars_format::general, not all compile…
3dJan Oct 20, 2023
1a6bbdd
Merge branch 'implicit' of github.com:3MFConsortium/lib3mf into implicit
3dJan Oct 20, 2023
ceab144
[build.yml] Changing all runners to latest
3dJan Oct 20, 2023
74cbbd6
Revert "Replacing strtof with fnStringToFloat"
3dJan Oct 20, 2023
a52383a
Falling back to strtod for non c++17 complaint platforms
3dJan Oct 20, 2023
72deef0
[lib3mf.xml] Adding spezialized node classes
3dJan Oct 23, 2023
d365eaa
[lib3mf.xml] Adding spezialized factory methods for implicit nodes
3dJan Oct 23, 2023
aa0acfb
Generating new API with ACT
3dJan Oct 23, 2023
4a403e4
[implicit] Adding factories for spezialized node types
3dJan Oct 24, 2023
8072abe
[Volumetric tests] Using new API for node creation
3dJan Oct 27, 2023
24729d4
[CImplicitNode] Explicitly initalizining m_pImplicitNode in derived c…
3dJan Oct 30, 2023
0ac033b
[Volumetric tests] Passing again
3dJan Oct 31, 2023
094431b
[Volumetric/Implicit] Enabling dynamic_pointer_cast for nodeiterator-…
3dJan Oct 31, 2023
55c37a1
[Volumetric] Improving error messages
3dJan Nov 2, 2023
5344ac0
Ports now know the referenced port, not just its name
3dJan Nov 7, 2023
b9f0f8f
Introducing DirectedGraph
3dJan Nov 8, 2023
abc7785
[build.yml] Don't fail cli if codecoverage fails
3dJan Nov 3, 2023
8beaf20
Adding fast_float as submodule
3dJan Nov 3, 2023
1c258cb
Using fast_float for string parsing
3dJan Nov 3, 2023
9cb3d4f
[Common/graph] Unsigned indices
3dJan Nov 8, 2023
b20da1f
[GraphAlgorithms] Resolving signed/unsigned mismatch
3dJan Nov 8, 2023
c7fa73e
Updating accroding to spec: UnsignedMesh, vectorfroamscalar, matrixfr…
3dJan Nov 10, 2023
1e7d22e
Adding fallback value to volume data elements
3dJan Jan 5, 2024
cf554e0
Improving Volumetric tests, so that the output files make more sense
3dJan Jan 25, 2024
ae2390f
Breaking change: Adding implicit namespace with prefix "i", writing a…
3dJan Feb 1, 2024
d29b113
[NMR_ImplicitNodeTypes] Adding VectorFromScalar and UnsignedMesh
3dJan Feb 12, 2024
b7fb18c
[implicit] Don't write inputs for nodes that are not supposed to have…
3dJan Feb 14, 2024
f0ac0b9
Fixing namespace check for volumetric and implicit
3dJan Feb 19, 2024
f24db6f
Updating namespace urls for volumetric and implicit
3dJan Mar 4, 2024
c7c55a8
CheckRequiredExtensions now considers Volumetric and Implict namespace
3dJan Mar 13, 2024
558117d
Introducing BoundaryShape, removing boundary from VolumeData
3dJan Mar 14, 2024
20560aa
Introducing ModelBoundaryShapeObject
3dJan Mar 14, 2024
1cab619
Implementing wrapper for boundary shape
3dJan Mar 14, 2024
5abcfda
Reader for boundary shape
3dJan Mar 22, 2024
3af36e4
Removing boundary from volume data
3dJan Mar 22, 2024
3b00197
Making VolumeData a Resource (WIP)
3dJan Mar 27, 2024
e5e7de0
[CModelVolumeData] Removing boundary
3dJan Mar 27, 2024
1a5f0c9
[VectorFromScalarNode] Adding missing implementation by inheriting On…
3dJan Mar 27, 2024
886fc85
Adding VolumeData as resource
3dJan Mar 27, 2024
edbc9b0
[BoundaryShape] Implementing writer
3dJan Mar 28, 2024
a76de5c
Add XML attribute for boundary shape ID
3dJan Mar 28, 2024
c19f983
[API] Introducing AddBoundaryShape
3dJan Apr 2, 2024
7a724ae
[Volumetric tests] fixing some tests, but requiers api mehtod to quer…
3dJan Apr 2, 2024
0812191
[Volumetric tests] Tests pass again
3dJan Apr 3, 2024
0a7138a
[CBoundaryShape] Adding implementation for Set and GetVolumeData
3dJan Apr 3, 2024
8cac1de
[.gitmodules] Adding cpp-base64
3dJan Apr 3, 2024
5728098
[.gitmodules] Adding googletest, libzip and zlib
3dJan Apr 3, 2024
d4074a6
Renaming boundary shape to level set
3dJan Apr 5, 2024
937a78a
Correcting filename case
3dJan Apr 5, 2024
e2323ed
Correcting more filename cases
3dJan Apr 5, 2024
7c98e50
Implement IsMeshObject method in CLevelSet class
3dJan Apr 8, 2024
dc43e60
Introducing IsLevelSetObject
3dJan Apr 8, 2024
eb14752
Add GetLevelSetByID method to IModel interface
3dJan Apr 8, 2024
51a43e2
Fix null pointer exception in CMeshObject::GetVolumeData()
3dJan Apr 8, 2024
6bff80e
Add support for CModelLevelSetObject in CObject::fnCreateObjectFromMo…
3dJan Apr 8, 2024
37e5ba8
[implicit] Adding mod (glsl) node
3dJan Apr 10, 2024
eb716ed
Adding missing ctor for CMoeNode
3dJan Apr 23, 2024
2a1febf
Resource -> ConstResourceID
3dJan Jun 7, 2024
e931cb4
[WriterNode_Implicit] Writing function outputs at the end of function…
3dJan Jun 7, 2024
dc47f25
Merge pull request #370 from 3MFConsortium/3djan/syncwithspec
3dJan Jun 9, 2024
8ba8b31
cherrypicking fix for functionfromimage3d to read scale and offset
3dJan Jul 10, 2024
cbcc76b
Add CMakePresets.json for build configurations
3dJan Aug 6, 2024
2a0ed00
[levelset] Adding missing override for IsComponentsObject()
3dJan Aug 6, 2024
3dc0a7d
[levelset] Adding missing override for IsComponentsObject()
3dJan Aug 6, 2024
1fc96ea
Writing id attribute of <volumedata>
3dJan Aug 16, 2024
e738d9e
Removing XML constants for scalar and vector fields
3dJan Aug 16, 2024
82886d4
Reading volumedata id attribute
3dJan Aug 16, 2024
b327c10
feat: Add volumeData Id assertion and validation in Volumetric tests
3dJan Aug 16, 2024
e6b5262
XML constants for volumedata and levelset attributes
3dJan Aug 20, 2024
590cd16
Add writePrefixedIntAttribute method to ModelWriterNode
3dJan Aug 20, 2024
5cf3a2b
Levelsets writes volumeid
3dJan Aug 21, 2024
e817f9e
Mesh writer does not write VolumeData anymore
3dJan Aug 21, 2024
ab579f4
refactor: Update attribute name in ModelReaderNode_LevelSet.cpp
3dJan Aug 21, 2024
488aeb7
ModelReaderNode100_Mesh reads volumeid
3dJan Aug 21, 2024
1aa1010
volumedata is wrtten out as a resource
3dJan Aug 21, 2024
6020218
CModelReaderNode100_Mesh parses volumeid with namestace prefix
3dJan Aug 21, 2024
92b4cc2
Implicit: function -> implicitfunction, for now both element names ar…
3dJan Aug 21, 2024
f89ea86
CLevelSet::GetVolumeData returns nullptr if no volumedata is set
3dJan Aug 25, 2024
63eb21d
Levelset writes volumeid without namespace prefix
3dJan Aug 25, 2024
754dd1f
Correcting string literals based on findings by quality logic
3dJan Aug 28, 2024
669870b
Writing prefix for functions inputs again
3dJan Sep 3, 2024
d6ab66c
Improving error messages
3dJan Sep 3, 2024
09ea724
Enhance CNMRException to include detailed error messages and improve …
3dJan Sep 14, 2024
daf8c64
Improving resource ID handling for merging implicit functions
3dJan Sep 14, 2024
6f6e534
[CModel] Refactor resource ID generation to ensure uniqueness
3dJan Sep 17, 2024
a255f08
generateResourceID now considers the model resource id rather than th…
3dJan Sep 17, 2024
38c45c1
Update GitHub Actions to use checkout and upload-artifact actions ver…
3dJan Sep 18, 2024
bb05b84
Update GitHub Actions to use download-artifact action version 4
3dJan Sep 18, 2024
52ab643
Refactor model writer to introduce dedicated methods for writing base…
3dJan Oct 1, 2024
ecc6373
Extract resource write methods
3dJan Oct 7, 2024
c497b86
Extracting writeResource
3dJan Oct 7, 2024
999b723
Write resources in topological order
3dJan Oct 10, 2024
11a8e6b
Add cyclic dependency check to resource sorting algorithm
3dJan Oct 10, 2024
295f452
Prevent duplicate metadata addition and enhance test coverage for mod…
3dJan Oct 11, 2024
01471c1
Fixing mix up between unique and model resource id
3dJan Oct 11, 2024
0c7b77e
Rename UniqueResourceID to ModelResourceID in CModelImplicitNode
3dJan Oct 11, 2024
21dc8e3
Enhance error message for resource ID not found exception to include …
3dJan Oct 11, 2024
d5fcb76
Fixing issue with merging functions
3dJan Oct 11, 2024
80ecd20
Adding new tesf files for volumetric test
3dJan Oct 11, 2024
57105a4
Setting parent of merged implicit nodes
3dJan Oct 14, 2024
0b4c011
Implement RemoveResource method in model interface and bindings
3dJan Oct 16, 2024
a12a270
Remove package resource ID from resource handler upon resource removal
3dJan Oct 16, 2024
e504386
Add function resource verification in volumetric tests and update fun…
3dJan Oct 18, 2024
ed5e95e
Refactor function count retrieval and clean up debug output for merge…
3dJan Oct 18, 2024
1f46378
Merge branch 'develop' into 3djan/merge-implicit
3dJan Oct 21, 2024
e9881fc
Resolving merge conflicts
3dJan Oct 21, 2024
6aa1543
Update dynamic library copy command to use version variable for consi…
3dJan Oct 21, 2024
84a318a
Update dynamic library copy command to include version suffix
3dJan Oct 21, 2024
3073bf1
Rename enum value 'None' to 'BeamLatticeBallModeNone' to not use a py…
3dJan Oct 22, 2024
aa19600
Update lib3mf_DIR paths to use environment variable for versioning
3dJan Oct 22, 2024
455fb21
Increasing code coverage of binding tests
3dJan Oct 29, 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
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
BasedOnStyle: Google
IndentWidth: 4
AllowShortFunctionsOnASingleLine: Inline
PointerAlignment: Left
SpaceBeforeParens: Never
SpacesInParentheses: false
MaxEmptyLinesToKeep: 1
BreakBeforeBraces: Allman
DerivePointerAlignment: true
AlignAfterOpenBracket: Align
BreakConstructorInitializers: BeforeColon
ConstructorInitializerAllOnOneLineOrOnePerLine: true
NamespaceIndentation: All
SortIncludes: true
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,14 @@ Include/Model/COM/NMR_COMVersion.h
debug
.DS_Store
.vscode
TestOutput
nonrootmodels.3mf
SetupWriteRead1.3mf
SetupWriteRead2.3mf
SetupWriteRead3.3mf
SetupWriteRead4.3mf
SetupWriteRead5.3mf
v093reout.3mf
.vs
.idea
cmake-build-*
3,499 changes: 3,112 additions & 387 deletions Autogenerated/Bindings/C/lib3mf.h

Large diffs are not rendered by default.

232 changes: 225 additions & 7 deletions Autogenerated/Bindings/C/lib3mf_types.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*++

Copyright (C) 2019 3MF Consortium (Original Author)
Copyright (C) 2024 3MF Consortium (Original Author)

All rights reserved.

Expand Down Expand Up @@ -29,7 +29,7 @@ This file has been generated by the Automatic Component Toolkit (ACT) version 1.
Abstract: This is an autogenerated plain C Header file with basic types in
order to allow an easy use of the 3MF Library

Interface version: 2.3.2
Interface version: 2.4.0

*/

Expand Down Expand Up @@ -84,8 +84,8 @@ typedef void * Lib3MF_pvoid;
**************************************************************************************************************************/

#define LIB3MF_VERSION_MAJOR 2
#define LIB3MF_VERSION_MINOR 3
#define LIB3MF_VERSION_MICRO 2
#define LIB3MF_VERSION_MINOR 4
#define LIB3MF_VERSION_MICRO 0
#define LIB3MF_VERSION_PRERELEASEINFO ""
#define LIB3MF_VERSION_BUILDINFO ""

Expand Down Expand Up @@ -130,13 +130,18 @@ typedef void * Lib3MF_pvoid;
#define LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER 140 /** A progress identifier is unknown */
#define LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT 141 /** An element buffer exceeds its spec limit */
#define LIB3MF_ERROR_INVALIDRESOURCE 142 /** A resource is invalid */
#define LIB3MF_ERROR_INVALIDLEVELSET 143 /** A level set is invalid */
#define LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE 2000 /** This object type is not valid for beamlattices */
#define LIB3MF_ERROR_INVALIDKEYSTORE 3000 /** The keystore object is invalid */
#define LIB3MF_ERROR_INVALIDKEYSTORECONSUMER 3001 /** The consumer keystore object is invalid */
#define LIB3MF_ERROR_KEYSTORECONSUMERNOTFOUND 3002 /** A consumer has not been found */
#define LIB3MF_ERROR_KEYSTORERESOURCEDATANOTFOUND 3003 /** A resource data has not been found */
#define LIB3MF_ERROR_SECURECONTEXTNOTREGISTERED 3004 /** A Key or Conentent encryption callback has not been registered */
#define LIB3MF_ERROR_INVALIDKEYSIZE 3005 /** The key siue is invalid */
#define LIB3MF_ERROR_INVALIDKEYSIZE 3005 /** The key size is invalid */
#define LIB3MF_ERROR_INCOMPATIBLEPORTTYPES 4000 /** Link could not be added, the port types are incompatible */
#define LIB3MF_ERROR_GRAPHISCYCLIC 4001 /** The functin graph is cyclic. Only dircected graphs are valid and can be topological sorted. */
#define LIB3MF_ERROR_INPUTNOTSET 4002 /** The input of a node is not set. */
#define LIB3MF_ERROR_INVALIDNODECONFIGURATION 4003 /** The selected node configuration is not supported */

/*************************************************************************************************************************
Error strings for Lib3MF
Expand Down Expand Up @@ -181,13 +186,18 @@ inline const char * LIB3MF_GETERRORSTRING (Lib3MFResult nErrorCode) {
case LIB3MF_ERROR_UNKOWNPROGRESSIDENTIFIER: return "A progress identifier is unknown";
case LIB3MF_ERROR_ELEMENTCOUNTEXCEEDSLIMIT: return "An element buffer exceeds its spec limit";
case LIB3MF_ERROR_INVALIDRESOURCE: return "A resource is invalid";
case LIB3MF_ERROR_INVALIDLEVELSET: return "A level set is invalid";
case LIB3MF_ERROR_BEAMLATTICE_INVALID_OBJECTTYPE: return "This object type is not valid for beamlattices";
case LIB3MF_ERROR_INVALIDKEYSTORE: return "The keystore object is invalid";
case LIB3MF_ERROR_INVALIDKEYSTORECONSUMER: return "The consumer keystore object is invalid";
case LIB3MF_ERROR_KEYSTORECONSUMERNOTFOUND: return "A consumer has not been found";
case LIB3MF_ERROR_KEYSTORERESOURCEDATANOTFOUND: return "A resource data has not been found";
case LIB3MF_ERROR_SECURECONTEXTNOTREGISTERED: return "A Key or Conentent encryption callback has not been registered";
case LIB3MF_ERROR_INVALIDKEYSIZE: return "The key siue is invalid";
case LIB3MF_ERROR_INVALIDKEYSIZE: return "The key size is invalid";
case LIB3MF_ERROR_INCOMPATIBLEPORTTYPES: return "Link could not be added, the port types are incompatible";
case LIB3MF_ERROR_GRAPHISCYCLIC: return "The functin graph is cyclic. Only dircected graphs are valid and can be topological sorted.";
case LIB3MF_ERROR_INPUTNOTSET: return "The input of a node is not set.";
case LIB3MF_ERROR_INVALIDNODECONFIGURATION: return "The selected node configuration is not supported";
default: return "unknown error";
}
}
Expand All @@ -212,11 +222,21 @@ typedef Lib3MFHandle Lib3MF_ColorGroupIterator;
typedef Lib3MFHandle Lib3MF_Texture2DGroupIterator;
typedef Lib3MFHandle Lib3MF_CompositeMaterialsIterator;
typedef Lib3MFHandle Lib3MF_MultiPropertyGroupIterator;
typedef Lib3MFHandle Lib3MF_Image3DIterator;
typedef Lib3MFHandle Lib3MF_FunctionIterator;
typedef Lib3MFHandle Lib3MF_LevelSetIterator;
typedef Lib3MFHandle Lib3MF_MetaData;
typedef Lib3MFHandle Lib3MF_MetaDataGroup;
typedef Lib3MFHandle Lib3MF_Object;
typedef Lib3MFHandle Lib3MF_MeshObject;
typedef Lib3MFHandle Lib3MF_LevelSet;
typedef Lib3MFHandle Lib3MF_BeamLattice;
typedef Lib3MFHandle Lib3MF_FunctionReference;
typedef Lib3MFHandle Lib3MF_VolumeDataColor;
typedef Lib3MFHandle Lib3MF_MaterialMapping;
typedef Lib3MFHandle Lib3MF_VolumeDataComposite;
typedef Lib3MFHandle Lib3MF_VolumeDataProperty;
typedef Lib3MFHandle Lib3MF_VolumeData;
typedef Lib3MFHandle Lib3MF_Component;
typedef Lib3MFHandle Lib3MF_ComponentsObject;
typedef Lib3MFHandle Lib3MF_BeamSet;
Expand All @@ -225,8 +245,71 @@ typedef Lib3MFHandle Lib3MF_ColorGroup;
typedef Lib3MFHandle Lib3MF_Texture2DGroup;
typedef Lib3MFHandle Lib3MF_CompositeMaterials;
typedef Lib3MFHandle Lib3MF_MultiPropertyGroup;
typedef Lib3MFHandle Lib3MF_Image3D;
typedef Lib3MFHandle Lib3MF_ImageStack;
typedef Lib3MFHandle Lib3MF_Attachment;
typedef Lib3MFHandle Lib3MF_Texture2D;
typedef Lib3MFHandle Lib3MF_ImplicitPort;
typedef Lib3MFHandle Lib3MF_Iterator;
typedef Lib3MFHandle Lib3MF_ImplicitPortIterator;
typedef Lib3MFHandle Lib3MF_ImplicitNode;
typedef Lib3MFHandle Lib3MF_OneInputNode;
typedef Lib3MFHandle Lib3MF_SinNode;
typedef Lib3MFHandle Lib3MF_CosNode;
typedef Lib3MFHandle Lib3MF_TanNode;
typedef Lib3MFHandle Lib3MF_ArcSinNode;
typedef Lib3MFHandle Lib3MF_ArcCosNode;
typedef Lib3MFHandle Lib3MF_ArcTanNode;
typedef Lib3MFHandle Lib3MF_SinhNode;
typedef Lib3MFHandle Lib3MF_CoshNode;
typedef Lib3MFHandle Lib3MF_TanhNode;
typedef Lib3MFHandle Lib3MF_RoundNode;
typedef Lib3MFHandle Lib3MF_CeilNode;
typedef Lib3MFHandle Lib3MF_FloorNode;
typedef Lib3MFHandle Lib3MF_SignNode;
typedef Lib3MFHandle Lib3MF_FractNode;
typedef Lib3MFHandle Lib3MF_AbsNode;
typedef Lib3MFHandle Lib3MF_ExpNode;
typedef Lib3MFHandle Lib3MF_LogNode;
typedef Lib3MFHandle Lib3MF_Log2Node;
typedef Lib3MFHandle Lib3MF_Log10Node;
typedef Lib3MFHandle Lib3MF_LengthNode;
typedef Lib3MFHandle Lib3MF_TransposeNode;
typedef Lib3MFHandle Lib3MF_InverseNode;
typedef Lib3MFHandle Lib3MF_SqrtNode;
typedef Lib3MFHandle Lib3MF_ResourceIdNode;
typedef Lib3MFHandle Lib3MF_TwoInputNode;
typedef Lib3MFHandle Lib3MF_AdditionNode;
typedef Lib3MFHandle Lib3MF_SubtractionNode;
typedef Lib3MFHandle Lib3MF_MultiplicationNode;
typedef Lib3MFHandle Lib3MF_DivisionNode;
typedef Lib3MFHandle Lib3MF_DotNode;
typedef Lib3MFHandle Lib3MF_CrossNode;
typedef Lib3MFHandle Lib3MF_ArcTan2Node;
typedef Lib3MFHandle Lib3MF_MatVecMultiplicationNode;
typedef Lib3MFHandle Lib3MF_MinNode;
typedef Lib3MFHandle Lib3MF_MaxNode;
typedef Lib3MFHandle Lib3MF_FmodNode;
typedef Lib3MFHandle Lib3MF_ModNode;
typedef Lib3MFHandle Lib3MF_PowNode;
typedef Lib3MFHandle Lib3MF_SelectNode;
typedef Lib3MFHandle Lib3MF_ClampNode;
typedef Lib3MFHandle Lib3MF_ComposeVectorNode;
typedef Lib3MFHandle Lib3MF_VectorFromScalarNode;
typedef Lib3MFHandle Lib3MF_DecomposeVectorNode;
typedef Lib3MFHandle Lib3MF_ComposeMatrixNode;
typedef Lib3MFHandle Lib3MF_MatrixFromRowsNode;
typedef Lib3MFHandle Lib3MF_MatrixFromColumnsNode;
typedef Lib3MFHandle Lib3MF_ConstantNode;
typedef Lib3MFHandle Lib3MF_ConstVecNode;
typedef Lib3MFHandle Lib3MF_ConstMatNode;
typedef Lib3MFHandle Lib3MF_MeshNode;
typedef Lib3MFHandle Lib3MF_UnsignedMeshNode;
typedef Lib3MFHandle Lib3MF_FunctionCallNode;
typedef Lib3MFHandle Lib3MF_NodeIterator;
typedef Lib3MFHandle Lib3MF_Function;
typedef Lib3MFHandle Lib3MF_ImplicitFunction;
typedef Lib3MFHandle Lib3MF_FunctionFromImage3D;
typedef Lib3MFHandle Lib3MF_BuildItem;
typedef Lib3MFHandle Lib3MF_BuildItemIterator;
typedef Lib3MFHandle Lib3MF_Slice;
Expand Down Expand Up @@ -305,7 +388,7 @@ typedef enum eLib3MFBeamLatticeClipMode {
} eLib3MFBeamLatticeClipMode;

typedef enum eLib3MFBeamLatticeBallMode {
eBeamLatticeBallModeNone = 0,
eBeamLatticeBallModeBeamLatticeBallModeNone = 0,
eBeamLatticeBallModeMixed = 1,
eBeamLatticeBallModeAll = 2
} eLib3MFBeamLatticeBallMode;
Expand Down Expand Up @@ -343,6 +426,103 @@ typedef enum eLib3MFBlendMethod {
eBlendMethodMultiply = 2
} eLib3MFBlendMethod;

typedef enum eLib3MFChannelName {
eChannelNameRed = 0,
eChannelNameGreen = 1,
eChannelNameBlue = 2,
eChannelNameAlpha = 3
} eLib3MFChannelName;

typedef enum eLib3MFCompositionMethod {
eCompositionMethodWeightedSum = 0,
eCompositionMethodMultiply = 1,
eCompositionMethodMin = 2,
eCompositionMethodMax = 3,
eCompositionMethodMask = 4
} eLib3MFCompositionMethod;

typedef enum eLib3MFCompositionSpace {
eCompositionSpaceRaw = 0,
eCompositionSpaceLinearColor = 1
} eLib3MFCompositionSpace;

/**
* enum eLib3MFImplicitNodeType - The type of the node
*/
typedef enum eLib3MFImplicitNodeType {
eImplicitNodeTypeAddition = 1, /** Adds to values (scalar or vector) */
eImplicitNodeTypeSubtraction = 2, /** Subtracts two values (scalar or vector) */
eImplicitNodeTypeMultiplication = 3, /** Multiplies two values (scalar or vector) */
eImplicitNodeTypeDivision = 4, /** Divides two values (scalar or vector) */
eImplicitNodeTypeConstant = 5, /** A constant scalar value */
eImplicitNodeTypeConstVec = 6, /** A constant vector value */
eImplicitNodeTypeConstMat = 7, /** A constant matrix value */
eImplicitNodeTypeComposeVector = 8, /** Creates a vector from three scalar values */
eImplicitNodeTypeDecomposeVector = 9, /** Decomposes a vector into three scalar values */
eImplicitNodeTypeComposeMatrix = 10, /** Creates a matrix from nine scalar values */
eImplicitNodeTypeMatrixFromColumns = 11, /** Creates a matrix from three column vector values */
eImplicitNodeTypeMatrixFromRows = 12, /** Creates a matrix from three row vector values */
eImplicitNodeTypeDot = 13, /** Calculates the dot product of two vector values */
eImplicitNodeTypeCross = 14, /** Calculates the cross product of two vector values */
eImplicitNodeTypeMatVecMultiplication = 15, /** Multiplies a matrix with a vector */
eImplicitNodeTypeTranspose = 16, /** Transposes a matrix */
eImplicitNodeTypeInverse = 17, /** Computes the inverse of a matrix */
eImplicitNodeTypeSinus = 18, /** Calculates the sinus */
eImplicitNodeTypeCosinus = 19, /** Calculates the cosinus */
eImplicitNodeTypeTan = 20, /** Calculates the tangent */
eImplicitNodeTypeArcSin = 21, /** Calculates the arcsinus */
eImplicitNodeTypeArcCos = 22, /** Calculates the arccosinus */
eImplicitNodeTypeArcTan = 23, /** Calculates the arctangent */
eImplicitNodeTypeArcTan2 = 24, /** Calculates the arctangent */
eImplicitNodeTypeMin = 25, /** Calculates the minimum tow values */
eImplicitNodeTypeMax = 26, /** Calculates the maximum of two values */
eImplicitNodeTypeAbs = 27, /** Calcul the absolute value */
eImplicitNodeTypeFmod = 28, /** Computes the remainder of the divison of the inputs (same behavior as C fmod) */
eImplicitNodeTypePow = 29, /** Calculates the power A^B */
eImplicitNodeTypeSqrt = 30, /** Calculates the square root */
eImplicitNodeTypeExp = 31, /** Exponential function */
eImplicitNodeTypeLog = 32, /** Natural logarithmus */
eImplicitNodeTypeLog2 = 33, /** Logarithmus to the base 2 */
eImplicitNodeTypeLog10 = 34, /** Logarithmus to the base 10 */
eImplicitNodeTypeSelect = 35, /** If A is less B returns C, else D */
eImplicitNodeTypeClamp = 36, /** Clamps the input value to min and max */
eImplicitNodeTypeSinh = 37, /** Calculates the hyperbolic sine */
eImplicitNodeTypeCosh = 38, /** Calculates the hyperbolic cosine */
eImplicitNodeTypeTanh = 39, /** Calculates the hyperbolic tangent */
eImplicitNodeTypeRound = 40, /** Rounds a scalar value to the nearest integer */
eImplicitNodeTypeCeil = 41, /** Rounds a scalar value up to the nearest integer */
eImplicitNodeTypeFloor = 42, /** Rounds a scalar value down to the nearest integer */
eImplicitNodeTypeSign = 43, /** Returns the sign */
eImplicitNodeTypeFract = 44, /** Returns the fractional part */
eImplicitNodeTypeFunctionCall = 45, /** Calls a function */
eImplicitNodeTypeMesh = 46, /** Calculates the signed distance to a mesh */
eImplicitNodeTypeLength = 47, /** Calculates the length of a vector */
eImplicitNodeTypeConstResourceID = 48, /** Selects a resource (function, mesh etc.) */
eImplicitNodeTypeVectorFromScalar = 49, /** Creates a vector from one scalar values */
eImplicitNodeTypeUnsignedMesh = 50, /** Calculates the unsigned distance to a mesh */
eImplicitNodeTypeMod = 51 /** Calculates the modulo of two values (same behaviour as glsl mod) */
} eLib3MFImplicitNodeType;

/**
* enum eLib3MFImplicitPortType - The type of the port
*/
typedef enum eLib3MFImplicitPortType {
eImplicitPortTypeScalar = 1, /** Scalar */
eImplicitPortTypeVector = 2, /** Vector */
eImplicitPortTypeMatrix = 3, /** 4x4 Matrix */
eImplicitPortTypeResourceID = 4 /** Resource ID */
} eLib3MFImplicitPortType;

/**
* enum eLib3MFImplicitNodeConfiguration - Defines the input and output types of a node
*/
typedef enum eLib3MFImplicitNodeConfiguration {
eImplicitNodeConfigurationDefault = 1, /** Default */
eImplicitNodeConfigurationScalarToScalar = 2, /** Scalar -> Scalar */
eImplicitNodeConfigurationVectorToVector = 3, /** Vector -> Vector */
eImplicitNodeConfigurationMatrixToMatrix = 4 /** Matrix -> Matrix */
} eLib3MFImplicitNodeConfiguration;

typedef enum eLib3MFEncryptionAlgorithm {
eEncryptionAlgorithmAES256_GCM = 1 /** http://www.w3.org/2009/xmlenc11#aes256-gcm */
} eLib3MFEncryptionAlgorithm;
Expand Down Expand Up @@ -433,6 +613,36 @@ typedef union {
int m_code;
} structEnumLib3MFBlendMethod;

typedef union {
eLib3MFChannelName m_enum;
int m_code;
} structEnumLib3MFChannelName;

typedef union {
eLib3MFCompositionMethod m_enum;
int m_code;
} structEnumLib3MFCompositionMethod;

typedef union {
eLib3MFCompositionSpace m_enum;
int m_code;
} structEnumLib3MFCompositionSpace;

typedef union {
eLib3MFImplicitNodeType m_enum;
int m_code;
} structEnumLib3MFImplicitNodeType;

typedef union {
eLib3MFImplicitPortType m_enum;
int m_code;
} structEnumLib3MFImplicitPortType;

typedef union {
eLib3MFImplicitNodeConfiguration m_enum;
int m_code;
} structEnumLib3MFImplicitNodeConfiguration;

typedef union {
eLib3MFEncryptionAlgorithm m_enum;
int m_code;
Expand Down Expand Up @@ -523,6 +733,14 @@ typedef struct sLib3MFBall {
Lib3MF_double m_Radius;
} sLib3MFBall;

typedef struct sLib3MFVector {
Lib3MF_double m_Coordinates[3];
} sLib3MFVector;

typedef struct sLib3MFMatrix4x4 {
Lib3MF_double m_Field[4][4];
} sLib3MFMatrix4x4;

#pragma pack ()

/*************************************************************************************************************************
Expand Down
Loading
Loading