diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 96d45d261..43616724f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -5,7 +5,7 @@ env:
name: Build
jobs:
set-lib3mf-version:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
outputs:
lib3mf-version: ${{ steps.set-version.outputs.LIB3MF_VERSION }}
steps:
@@ -21,7 +21,7 @@ jobs:
run: echo "LIB3MF_VERSION=${{ steps.set-version.outputs.LIB3MF_VERSION }}"
build-linux-memtest:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-lib3mf-version]
steps:
- run: sudo apt update
@@ -34,7 +34,7 @@ jobs:
working-directory: ./build
build-linux-ubi8-gcc12:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-lib3mf-version]
env:
LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
@@ -110,7 +110,7 @@ jobs:
path: dist/${{ env.ARTIFACT_NAME_RPM }}
build-macos:
- runs-on: macos-latest
+ runs-on: macos-15
needs: [set-lib3mf-version]
env:
LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
@@ -131,19 +131,63 @@ jobs:
echo "ARTIFACT_NAME=$(basename ${ZIP_FILE})" >> $GITHUB_ENV
shell: bash
- run: ls -al build/
+ - name: Determine macOS dylib
+ id: find-mac-lib
+ run: |
+ set -euo pipefail
+ MAC_LIB=$(ls build/lib3mf*.dylib | head -n 1)
+ if [ -z "$MAC_LIB" ]; then
+ echo "No macOS dylib found in build/" >&2
+ exit 1
+ fi
+ echo "MAC_LIB=${MAC_LIB}" >> $GITHUB_ENV
- name: Archive Mac binary
uses: actions/upload-artifact@v4
with:
name: lib3mf.dylib
- path: build/lib3mf.${{ env.LIB3MF_VERSION }}.0.dylib
+ path: ${{ env.MAC_LIB }}
- name: Upload Artifact (CPacked Archive)
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
path: build/${{ env.ARTIFACT_NAME }}
+ build-wasm:
+ runs-on: ubuntu-24.04
+ needs: [set-lib3mf-version]
+ env:
+ LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: true
+ - name: Setup Emscripten
+ uses: mymindstorm/setup-emsdk@v14
+ with:
+ version: latest
+ - name: Build lib3mf_wasm
+ run: |
+ emcmake cmake -S . -B build/wasm -DLIB3MF_BUILD_WASM=ON -DCMAKE_BUILD_TYPE=Release
+ cmake --build build/wasm --target lib3mf_wasm -j"$(nproc)"
+ - name: Test indexed WASM slice vertices
+ run: node Tests/SliceVertex.mjs Tests/TestFiles/Slice/MultiSliceStack_TwoFiles.3mf
+ - name: Package WASM artifact
+ run: |
+ mkdir -p build/wasm-artifact
+ cp build/wasm/lib3mf.js build/wasm-artifact/
+ cp build/wasm/lib3mf.wasm build/wasm-artifact/
+ (
+ cd build
+ zip -r "lib3mf-wasm-${LIB3MF_VERSION}.zip" wasm-artifact
+ )
+ - name: Upload WASM Artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: lib3mf-wasm-${{ env.LIB3MF_VERSION }}.zip
+ path: build/lib3mf-wasm-${{ env.LIB3MF_VERSION }}.zip
+
build-macos-debug:
- runs-on: macos-latest
+ runs-on: macos-15
needs: [set-lib3mf-version]
steps:
- uses: actions/checkout@v4
@@ -161,7 +205,7 @@ jobs:
path: build/lib3mf.dylib
codecoverage-macos:
- runs-on: macos-latest
+ runs-on: macos-15
needs: [set-lib3mf-version]
steps:
- uses: actions/checkout@v4
@@ -189,7 +233,7 @@ jobs:
verbose: true # optional (default = false)
build-windows-release:
- runs-on: windows-2019
+ runs-on: windows-2022
needs: [set-lib3mf-version]
env:
LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
@@ -197,7 +241,7 @@ jobs:
- uses: actions/checkout@v4
with:
submodules: true
- - run: ./cmake/GenerateVS2019.bat
+ - run: ./cmake/GenerateVS2022.bat
- run: cmake --build . --config Release
working-directory: ./build
- run: ctest -V
@@ -226,13 +270,13 @@ jobs:
path: build/${{ env.ARTIFACT_NAME }}
build-windows-debug:
- runs-on: windows-2019
+ runs-on: windows-2022
needs: [set-lib3mf-version]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- - run: ./cmake/GenerateVS2019.bat
+ - run: ./cmake/GenerateVS2022.bat
- run: cmake --build . --config Debug
working-directory: ./build
- run: ctest -V
@@ -251,13 +295,13 @@ jobs:
name: lib3mf.debug.lib
path: build/Debug/lib3mf.lib
build-windows-32bit:
- runs-on: windows-2019
+ runs-on: windows-2022
needs: [set-lib3mf-version]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- - run: ./cmake/GenerateVS2019_32bit.bat
+ - run: ./cmake/GenerateVS2022_32bit.bat
- run: cmake --build . --config Release
working-directory: ./build_32bit
- run: ctest -V
@@ -273,7 +317,7 @@ jobs:
name: lib3mf_32bit.lib
path: build_32bit/Release/lib3mf.lib
build-mingw-w64:
- runs-on: windows-2019
+ runs-on: windows-2022
needs: [set-lib3mf-version]
steps:
- run: choco install mingw -y
@@ -288,7 +332,7 @@ jobs:
assemble-sdk:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-lib3mf-version, build-windows-release, build-macos, build-linux-ubi8-gcc12]
env:
LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
@@ -305,7 +349,7 @@ jobs:
- run: ls -Rlh ./build
- run: unzip bindings.zip/bindings.zip
working-directory: ./build
- - run: bash SDK/GenerateSDK_github.sh
+ - run: python3 SDK/GenerateSDK_github.py
- name: Archive SDK artifact (Comprehensive)
uses: actions/upload-artifact@v4
with:
@@ -314,7 +358,7 @@ jobs:
deploy-linux:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-lib3mf-version, assemble-sdk]
env:
LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
@@ -365,6 +409,12 @@ jobs:
cd SDK/CPackExamples/CppDynamic/build
cmake --build .
./Example_ExtractInfo ../../../Examples/Files/Helix.3mf
+ - name: Build CDynamic - CPack (Linux)
+ run: |
+ sh SDK/CPackExamples/CDynamic/GenerateMake.sh
+ cd SDK/CPackExamples/CDynamic/build
+ cmake --build .
+ ./Example_CDynamic
- name: Build Cpp - CPack (Linux)
run: |
sh SDK/CPackExamples/Cpp/GenerateMake.sh
@@ -391,6 +441,12 @@ jobs:
cd SDK/CPackExamples/CppDynamic/build
cmake --build .
./Example_ExtractInfo ../../../Examples/Files/Helix.3mf
+ - name: Build CDynamic - CPack (Debian)
+ run: |
+ sh SDK/CPackExamples/CDynamic/GenerateMake.sh
+ cd SDK/CPackExamples/CDynamic/build
+ cmake --build .
+ ./Example_CDynamic
- name: Build Cpp - CPack (Debian)
run: |
sh SDK/CPackExamples/Cpp/GenerateMake.sh
@@ -410,7 +466,7 @@ jobs:
./create_cube
deploy-windows:
- runs-on: windows-2019
+ runs-on: windows-2022
needs: [set-lib3mf-version, assemble-sdk]
env:
LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
@@ -425,13 +481,13 @@ jobs:
unzip lib3mf_sdk.zip/lib3mf_sdk.zip
- name: Build CppDynamic
run: |
- ./Examples/CppDynamic/GenerateVS2019.bat
+ ./Examples/CppDynamic/GenerateVS2022.bat
cd Examples/CppDynamic/build
cmake --build . --config Release
./Release/Example_ExtractInfo.exe ../../Files/Helix.3mf
- name: Build Cpp
run: |
- ./Examples/Cpp/GenerateVS2019.bat
+ ./Examples/Cpp/GenerateVS2022.bat
cd Examples/Cpp/build
cmake --build . --config Release
./Release/Example_ExtractInfo.exe ../../Files/Helix.3mf
@@ -452,13 +508,19 @@ jobs:
unzip lib3mf-${{ env.LIB3MF_VERSION }}-Windows.zip/lib3mf-${{ env.LIB3MF_VERSION }}-Windows.zip
- name: Build CppDynamic - CPack (Windows)
run: |
- ./SDK/CPackExamples/CppDynamic/GenerateVS2019.bat
+ ./SDK/CPackExamples/CppDynamic/GenerateVS2022.bat
cd SDK/CPackExamples/CppDynamic/build
cmake --build . --config Release
./Release/Example_ExtractInfo.exe ../../../Examples/Files/Helix.3mf
+ - name: Build CDynamic - CPack (Windows)
+ run: |
+ ./SDK/CPackExamples/CDynamic/GenerateVS2022.bat
+ cd SDK/CPackExamples/CDynamic/build
+ cmake --build . --config Release
+ ./Release/Example_CDynamic.exe
- name: Build Cpp - CPack (Windows)
run: |
- ./SDK/CPackExamples/Cpp/GenerateVS2019.bat
+ ./SDK/CPackExamples/Cpp/GenerateVS2022.bat
cd SDK/CPackExamples/Cpp/build
cmake --build . --config Release
./Release/Example_ExtractInfo.exe ../../../Examples/Files/Helix.3mf
@@ -524,6 +586,12 @@ jobs:
cd SDK/CPackExamples/CppDynamic/build
cmake --build .
./Example_ExtractInfo ../../../Examples/Files/Helix.3mf
+ - name: Build CDynamic - CPack (Darwin)
+ run: |
+ sh SDK/CPackExamples/CDynamic/GenerateMake.sh
+ cd SDK/CPackExamples/CDynamic/build
+ cmake --build .
+ ./Example_CDynamic
- name: Build Cpp - CPack (Darwin)
run: |
sh SDK/CPackExamples/Cpp/GenerateMake.sh
@@ -543,7 +611,7 @@ jobs:
./create_cube
deploy-source-code-with-submodules:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [ set-lib3mf-version, assemble-sdk ]
env:
LIB3MF_VERSION: ${{ needs.set-lib3mf-version.outputs.lib3mf-version }}
@@ -563,11 +631,16 @@ jobs:
set-integration-tests-status:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [ deploy-linux, deploy-windows, deploy-macos, deploy-source-code-with-submodules ]
outputs:
run_integration_tests: ${{ steps.set-status.outputs.run_integration_tests }}
steps:
+ - name: Install prerequisites
+ if: env.RUN_INTEGRATION_TESTS == 'on'
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y unzip wget
- name: Set status
id: set-status
run: |
@@ -576,10 +649,34 @@ jobs:
else
echo "run_integration_tests=false" >> $GITHUB_OUTPUT
fi
+
+ - name: Cache 3MF test suite
+ if: steps.set-status.outputs.run_integration_tests == 'true'
+ uses: actions/cache@v5
+ with:
+ path: ~/.cache/3mf-test-suite
+ key: 3mf-test-suite-v2.0.0
+
+ - name: Download integration test suite
+ if: steps.set-status.outputs.run_integration_tests == 'true'
+ run: |
+ USER="${{ secrets.THREEMF_TEST_SUITE_DOWNLOAD_USER }}"
+ PASS="${{ secrets.THREEMF_TEST_SUITE_DOWNLOAD_TOKEN }}"
+ CACHE_DIR="$HOME/.cache/3mf-test-suite"
+ SUITE_ZIP="3MF_Conformance_Test_Suites_v2.0.0.zip"
+ CACHE_ZIP="$CACHE_DIR/$SUITE_ZIP"
+
+ mkdir -p "$CACHE_DIR"
+ if [ ! -f "$CACHE_ZIP" ]; then
+ wget --user "$USER" \
+ --password "$PASS" \
+ "https://storage.3mf.dev/remote.php/dav/files/$USER/3MF_CONSORTIUM/GITHUB/$SUITE_ZIP" \
+ -O "$CACHE_ZIP"
+ fi
integration-tests-latest-release:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-integration-tests-status]
if: needs.set-integration-tests-status.outputs.run_integration_tests == 'true' # Single check before the job starts
steps:
@@ -619,10 +716,17 @@ jobs:
cmake --build .
./Example_ExtractInfo ../../Files/Helix.3mf
- - name: Download and unzip test suite
+ - name: Restore 3MF test suite cache
+ uses: actions/cache@v5
+ with:
+ path: ~/.cache/3mf-test-suite
+ key: 3mf-test-suite-v2.0.0
+
+ - name: Unzip integration test suite
run: |
- wget https://github.com/3MFConsortium/test_suites/releases/download/v2.0.0/3MF_Conformance_Test_Suites_v2.0.0.zip
- unzip 3MF_Conformance_Test_Suites_v2.0.0.zip -d test_suites
+ rm -rf test_suites
+ unzip -o "$HOME/.cache/3mf-test-suite/3MF_Conformance_Test_Suites_v2.0.0.zip" -d test_suites
+
- name: List files
run: |
@@ -636,6 +740,23 @@ jobs:
run: |
cd test_suites && /usr/bin/time -v python integration_test.py 2>&1 | tee latest_sdk_test.log
+ - name: List MUSTPASS failures and MUSTFAIL passes (latest release)
+ run: |
+ echo "MUSTPASS that failed (latest release):"
+ grep -E 'MUSTPASS file ".*" does not work' test_suites/latest_sdk_test.log | sed -n 's/.*MUSTPASS file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_mp_failed.txt || true
+ cat test_suites/latest_mp_failed.txt || true
+ echo "\nMUSTFAIL that passed (latest release):"
+ grep -E 'MUSTFAIL file ".*" works' test_suites/latest_sdk_test.log | sed -n 's/.*MUSTFAIL file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_mf_passed.txt || true
+ cat test_suites/latest_mf_passed.txt || true
+ {
+ echo "### Latest release detailed results";
+ echo "MUSTPASS failed: $(wc -l < test_suites/latest_mp_failed.txt 2>/dev/null || echo 0)";
+ sed 's/^/- /' test_suites/latest_mp_failed.txt 2>/dev/null || true;
+ echo;
+ echo "MUSTFAIL passed: $(wc -l < test_suites/latest_mf_passed.txt 2>/dev/null || echo 0)";
+ sed 's/^/- /' test_suites/latest_mf_passed.txt 2>/dev/null || true;
+ } >> "$GITHUB_STEP_SUMMARY"
+
- name: Print results (Checks the total python script execution time)
run: |
LATEST_TIME=$(grep "Elapsed (wall clock) time" test_suites/latest_sdk_test.log | awk '{print $8}')
@@ -653,7 +774,7 @@ jobs:
integration-tests-last-two-releases:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-integration-tests-status]
if: needs.set-integration-tests-status.outputs.run_integration_tests == 'true' # Single check before the job starts
steps:
@@ -701,10 +822,17 @@ jobs:
mv second_latest_lib3mf_sdk/lib3mf_sdk/* second_latest_lib3mf_sdk
rmdir second_latest_lib3mf_sdk/lib3mf_sdk
- - name: Download and unzip test suite
+ - name: Restore 3MF test suite cache
+ uses: actions/cache@v5
+ with:
+ path: ~/.cache/3mf-test-suite
+ key: 3mf-test-suite-v2.0.0
+
+ - name: Unzip integration test suite
run: |
- wget https://github.com/3MFConsortium/test_suites/releases/download/v2.0.0/3MF_Conformance_Test_Suites_v2.0.0.zip
- unzip 3MF_Conformance_Test_Suites_v2.0.0.zip -d test_suites
+ rm -rf test_suites
+ unzip -o "$HOME/.cache/3mf-test-suite/3MF_Conformance_Test_Suites_v2.0.0.zip" -d test_suites
+
- name: Copy integration test script
run: |
@@ -743,6 +871,36 @@ jobs:
- name: Compare results (Checks the total python script execution time and must pass/fail counts)
run: |
+ # Extract detailed lists from logs for diffing
+ grep -E 'MUSTPASS file ".*" does not work' test_suites/latest_sdk_test.log | sed -n 's/.*MUSTPASS file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_mp_failed.txt || true
+ grep -E 'MUSTFAIL file ".*" works' test_suites/latest_sdk_test.log | sed -n 's/.*MUSTFAIL file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_mf_passed.txt || true
+ grep -E 'MUSTPASS file ".*" does not work' test_suites/second_latest_sdk_test.log | sed -n 's/.*MUSTPASS file "\([^"]*\)".*/\1/p' | sort -u > test_suites/second_latest_mp_failed.txt || true
+ grep -E 'MUSTFAIL file ".*" works' test_suites/second_latest_sdk_test.log | sed -n 's/.*MUSTFAIL file "\([^"]*\)".*/\1/p' | sort -u > test_suites/second_latest_mf_passed.txt || true
+
+ echo "=== Latest MUSTPASS failed:"; cat test_suites/latest_mp_failed.txt || true
+ echo "=== Second Latest MUSTPASS failed:"; cat test_suites/second_latest_mp_failed.txt || true
+ echo "=== Latest MUSTFAIL passed:"; cat test_suites/latest_mf_passed.txt || true
+ echo "=== Second Latest MUSTFAIL passed:"; cat test_suites/second_latest_mf_passed.txt || true
+
+ # Compute regressions and improvements
+ comm -23 test_suites/latest_mp_failed.txt test_suites/second_latest_mp_failed.txt > test_suites/regressions_mp_now_failing.txt || true
+ comm -23 test_suites/latest_mf_passed.txt test_suites/second_latest_mf_passed.txt > test_suites/regressions_mf_now_passing.txt || true
+ comm -13 test_suites/latest_mp_failed.txt test_suites/second_latest_mp_failed.txt > test_suites/improvements_mp_fixed.txt || true
+ comm -13 test_suites/latest_mf_passed.txt test_suites/second_latest_mf_passed.txt > test_suites/improvements_mf_fixed.txt || true
+
+ echo "=== Regressions - MUSTPASS now failing:"; cat test_suites/regressions_mp_now_failing.txt || true
+ echo "=== Regressions - MUSTFAIL now passing:"; cat test_suites/regressions_mf_now_passing.txt || true
+ echo "=== Improvements - MUSTPASS fixed:"; cat test_suites/improvements_mp_fixed.txt || true
+ echo "=== Improvements - MUSTFAIL fixed:"; cat test_suites/improvements_mf_fixed.txt || true
+
+ {
+ echo "### Last two releases - detailed diffs";
+ echo "#### Regressions - MUSTPASS now failing"; sed 's/^/- /' test_suites/regressions_mp_now_failing.txt 2>/dev/null || true; echo;
+ echo "#### Regressions - MUSTFAIL now passing"; sed 's/^/- /' test_suites/regressions_mf_now_passing.txt 2>/dev/null || true; echo;
+ echo "#### Improvements - MUSTPASS fixed"; sed 's/^/- /' test_suites/improvements_mp_fixed.txt 2>/dev/null || true; echo;
+ echo "#### Improvements - MUSTFAIL fixed"; sed 's/^/- /' test_suites/improvements_mf_fixed.txt 2>/dev/null || true; echo;
+ } >> "$GITHUB_STEP_SUMMARY"
+
LATEST_TIME=$(grep "Elapsed (wall clock) time" test_suites/latest_sdk_test.log | awk '{print $8}')
SECOND_LATEST_TIME=$(grep "Elapsed (wall clock) time" test_suites/second_latest_sdk_test.log | awk '{print $8}')
LATEST_TOTAL_SECONDS=$(echo $LATEST_TIME | awk -F: '{ print ($1 * 60) + $2 }')
@@ -773,17 +931,19 @@ jobs:
fi
# Compare MUSTPASS and MUSTFAIL counts
- if [ "$LATEST_MUSTPASS" != "$SECOND_LATEST_MUSTPASS" ] || [ "$LATEST_MUSTFAIL" != "$SECOND_LATEST_MUSTFAIL" ]; then
- echo "MUSTPASS or MUSTFAIL counts have changed"
+ # Allow improvements: pass if latest >= second latest for both metrics; fail only on regression
+ if [ "$LATEST_MUSTPASS" -lt "$SECOND_LATEST_MUSTPASS" ] || [ "$LATEST_MUSTFAIL" -lt "$SECOND_LATEST_MUSTFAIL" ]; then
+ echo "MUSTPASS or MUSTFAIL counts have regressed"
+ echo "Regressions detected. See lists above and job summary for files."
exit 1
else
- echo "MUSTPASS and MUSTFAIL counts are consistent"
+ echo "MUSTPASS and MUSTFAIL counts have improved or stayed the same"
fi
integration-tests-latest-commit:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-integration-tests-status]
if: needs.set-integration-tests-status.outputs.run_integration_tests == 'true' # Single check before the job starts
steps:
@@ -818,10 +978,17 @@ jobs:
cmake --build .
./Example_ExtractInfo ../../Files/Helix.3mf
- - name: Download and unzip test suite
+ - name: Restore 3MF test suite cache
+ uses: actions/cache@v5
+ with:
+ path: ~/.cache/3mf-test-suite
+ key: 3mf-test-suite-v2.0.0
+
+ - name: Unzip integration test suite
run: |
- wget https://github.com/3MFConsortium/test_suites/releases/download/v2.0.0/3MF_Conformance_Test_Suites_v2.0.0.zip
- unzip 3MF_Conformance_Test_Suites_v2.0.0.zip -d test_suites
+ rm -rf test_suites
+ unzip -o "$HOME/.cache/3mf-test-suite/3MF_Conformance_Test_Suites_v2.0.0.zip" -d test_suites
+
- name: Copy integration test script
run: |
@@ -831,6 +998,23 @@ jobs:
run: |
cd test_suites && /usr/bin/time -v python integration_test.py 2>&1 | tee latest_sdk_test.log
+ - name: List MUSTPASS failures and MUSTFAIL passes (latest commit)
+ run: |
+ echo "MUSTPASS that failed (latest commit):"
+ grep -E 'MUSTPASS file ".*" does not work' test_suites/latest_sdk_test.log | sed -n 's/.*MUSTPASS file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_commit_mp_failed.txt || true
+ cat test_suites/latest_commit_mp_failed.txt || true
+ echo "\nMUSTFAIL that passed (latest commit):"
+ grep -E 'MUSTFAIL file ".*" works' test_suites/latest_sdk_test.log | sed -n 's/.*MUSTFAIL file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_commit_mf_passed.txt || true
+ cat test_suites/latest_commit_mf_passed.txt || true
+ {
+ echo "### Latest commit detailed results";
+ echo "MUSTPASS failed: $(wc -l < test_suites/latest_commit_mp_failed.txt 2>/dev/null || echo 0)";
+ sed 's/^/- /' test_suites/latest_commit_mp_failed.txt 2>/dev/null || true;
+ echo;
+ echo "MUSTFAIL passed: $(wc -l < test_suites/latest_commit_mf_passed.txt 2>/dev/null || echo 0)";
+ sed 's/^/- /' test_suites/latest_commit_mf_passed.txt 2>/dev/null || true;
+ } >> "$GITHUB_STEP_SUMMARY"
+
- name: Print results (Checks the total python script execution time)
run: |
LATEST_TIME=$(grep "Elapsed (wall clock) time" test_suites/latest_sdk_test.log | awk '{print $8}')
@@ -852,7 +1036,7 @@ jobs:
echo "LATEST_TOTAL_MUSTFAIL=${LATEST_TOTAL_MUSTFAIL}" >> $GITHUB_ENV
integration-test-last-commit-and-last-release:
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-24.04
needs: [set-integration-tests-status]
if: needs.set-integration-tests-status.outputs.run_integration_tests == 'true' # Single check before the job starts
steps:
@@ -888,10 +1072,17 @@ jobs:
cmake --build .
./Example_ExtractInfo ../../Files/Helix.3mf
- - name: Download and unzip test suite
+ - name: Restore 3MF test suite cache
+ uses: actions/cache@v5
+ with:
+ path: ~/.cache/3mf-test-suite
+ key: 3mf-test-suite-v2.0.0
+
+ - name: Unzip integration test suite
run: |
- wget https://github.com/3MFConsortium/test_suites/releases/download/v2.0.0/3MF_Conformance_Test_Suites_v2.0.0.zip
- unzip 3MF_Conformance_Test_Suites_v2.0.0.zip -d test_suites
+ rm -rf test_suites
+ unzip -o "$HOME/.cache/3mf-test-suite/3MF_Conformance_Test_Suites_v2.0.0.zip" -d test_suites
+
- name: Copy integration test script
run: |
@@ -944,6 +1135,17 @@ jobs:
- name: Compare results (Checks the total python script execution time)
id: compare_results
run: |
+ # Extract detailed lists from logs for diffing
+ grep -E 'MUSTPASS file ".*" does not work' test_suites/latest_commit_sdk_test.log | sed -n 's/.*MUSTPASS file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_commit_mp_failed.txt || true
+ grep -E 'MUSTFAIL file ".*" works' test_suites/latest_commit_sdk_test.log | sed -n 's/.*MUSTFAIL file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_commit_mf_passed.txt || true
+ grep -E 'MUSTPASS file ".*" does not work' test_suites/latest_release_sdk_test.log | sed -n 's/.*MUSTPASS file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_release_mp_failed.txt || true
+ grep -E 'MUSTFAIL file ".*" works' test_suites/latest_release_sdk_test.log | sed -n 's/.*MUSTFAIL file "\([^"]*\)".*/\1/p' | sort -u > test_suites/latest_release_mf_passed.txt || true
+
+ echo "=== Latest commit MUSTPASS failed:"; cat test_suites/latest_commit_mp_failed.txt || true
+ echo "=== Latest release MUSTPASS failed:"; cat test_suites/latest_release_mp_failed.txt || true
+ echo "=== Latest commit MUSTFAIL passed:"; cat test_suites/latest_commit_mf_passed.txt || true
+ echo "=== Latest release MUSTFAIL passed:"; cat test_suites/latest_release_mf_passed.txt || true
+
LATEST_COMMIT_TIME=$(grep "Elapsed (wall clock) time" test_suites/latest_commit_sdk_test.log | awk '{print $8}')
LATEST_RELEASE_TIME=$(grep "Elapsed (wall clock) time" test_suites/latest_release_sdk_test.log | awk '{print $8}')
LATEST_COMMIT_TOTAL_SECONDS=$(echo $LATEST_COMMIT_TIME | awk -F: '{ print ($1 * 60) + $2 }')
@@ -967,11 +1169,22 @@ jobs:
echo "Latest release MUSTFAIL: ${LATEST_RELEASE_MUSTFAIL} / ${LATEST_TOTAL_RELEASE_MUSTFAIL}"
# Compare MUSTPASS and MUSTFAIL counts
- if [ "$LATEST_COMMIT_MUSTPASS" != "$LATEST_RELEASE_MUSTPASS" ] || [ "$LATEST_COMMIT_MUSTFAIL" != "$LATEST_RELEASE_MUSTFAIL" ]; then
- echo "MUSTPASS or MUSTFAIL counts have changed"
+ # Allow improvements: pass if latest commit >= latest release for both metrics; fail only on regression
+ if [ "$LATEST_COMMIT_MUSTPASS" -lt "$LATEST_RELEASE_MUSTPASS" ] || [ "$LATEST_COMMIT_MUSTFAIL" -lt "$LATEST_RELEASE_MUSTFAIL" ]; then
+ echo "MUSTPASS or MUSTFAIL counts have regressed"
+ # Highlight exactly which files changed outcome
+ comm -23 test_suites/latest_commit_mp_failed.txt test_suites/latest_release_mp_failed.txt > test_suites/regressions_commit_mp_now_failing.txt || true
+ comm -23 test_suites/latest_commit_mf_passed.txt test_suites/latest_release_mf_passed.txt > test_suites/regressions_commit_mf_now_passing.txt || true
+ echo "=== Regressions (commit vs release) - MUSTPASS now failing:"; cat test_suites/regressions_commit_mp_now_failing.txt || true
+ echo "=== Regressions (commit vs release) - MUSTFAIL now passing:"; cat test_suites/regressions_commit_mf_now_passing.txt || true
+ {
+ echo "### Latest commit vs latest release - regressions";
+ echo "#### MUSTPASS now failing"; sed 's/^/- /' test_suites/regressions_commit_mp_now_failing.txt 2>/dev/null || true; echo;
+ echo "#### MUSTFAIL now passing"; sed 's/^/- /' test_suites/regressions_commit_mf_now_passing.txt 2>/dev/null || true; echo;
+ } >> "$GITHUB_STEP_SUMMARY"
exit 1
else
- echo "MUSTPASS and MUSTFAIL counts are consistent"
+ echo "MUSTPASS and MUSTFAIL counts have improved or stayed the same"
fi
# Compare the total seconds
@@ -992,4 +1205,4 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: integration-test-results
- path: results.txt
\ No newline at end of file
+ path: results.txt
diff --git a/.gitignore b/.gitignore
index 85501469d..be4a573f7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,4 +15,6 @@ SetupWriteRead5.3mf
v093reout.3mf
.vs
.idea
-cmake-build-*
\ No newline at end of file
+cmake-build-*
+TODO.md
+Testing
diff --git a/Autogenerated/Bindings/C/lib3mf.h b/Autogenerated/Bindings/C/lib3mf.h
index f75df4012..c6713a407 100644
--- a/Autogenerated/Bindings/C/lib3mf.h
+++ b/Autogenerated/Bindings/C/lib3mf.h
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated plain C Header file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -497,6 +497,19 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_meshobjectiterator_getcurrentmeshobject(Lib3
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_componentsobjectiterator_getcurrentcomponentsobject(Lib3MF_ComponentsObjectIterator pComponentsObjectIterator, Lib3MF_ComponentsObject * pResource);
+/*************************************************************************************************************************
+ Class definition for BooleanObjectIterator
+**************************************************************************************************************************/
+
+/**
+* Returns the BooleanObject the iterator points at.
+*
+* @param[in] pBooleanObjectIterator - BooleanObjectIterator instance.
+* @param[out] pResource - returns the BooleanObject instance.
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobjectiterator_getcurrentbooleanobject(Lib3MF_BooleanObjectIterator pBooleanObjectIterator, Lib3MF_BooleanObject * pResource);
+
/*************************************************************************************************************************
Class definition for Texture2DIterator
**************************************************************************************************************************/
@@ -1011,6 +1024,15 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_object_iscomponentsobject(Lib3MF_Object pObj
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_object_islevelsetobject(Lib3MF_Object pObject, bool * pIsLevelSetObject);
+/**
+* Retrieves, if an object is a boolean object
+*
+* @param[in] pObject - Object instance.
+* @param[out] pIsBooleanObject - returns, whether the object is a boolean object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_object_isbooleanobject(Lib3MF_Object pObject, bool * pIsBooleanObject);
+
/**
* Retrieves, if the object is valid according to the core spec. For mesh objects, we distinguish between the type attribute of the object:In case of object type other, this always means false.In case of object type model or solidsupport, this means, if the mesh suffices all requirements of the core spec chapter 4.1.In case of object type support or surface, this always means true.A component objects is valid if and only if it contains at least one component and all child components are valid objects.
*
@@ -1561,6 +1583,140 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_levelset_getvolumedata(Lib3MF_LevelSet pLeve
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_levelset_setvolumedata(Lib3MF_LevelSet pLevelSet, Lib3MF_VolumeData pTheVolumeData);
+/*************************************************************************************************************************
+ Class definition for BooleanObject
+**************************************************************************************************************************/
+
+/**
+* Sets the base object and transform for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pBaseObject - base object of the boolean shape
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setbaseobject(Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object pBaseObject, const sLib3MFTransform * pTransform);
+
+/**
+* Returns the base object of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pBaseObject - base object of the boolean shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getbaseobject(Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object * pBaseObject);
+
+/**
+* Sets the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setbasetransform(Lib3MF_BooleanObject pBooleanObject, const sLib3MFTransform * pTransform);
+
+/**
+* Returns the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getbasetransform(Lib3MF_BooleanObject pBooleanObject, sLib3MFTransform * pTransform);
+
+/**
+* Sets the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] eOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setoperation(Lib3MF_BooleanObject pBooleanObject, eLib3MFBooleanOperation eOperation);
+
+/**
+* Returns the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getoperation(Lib3MF_BooleanObject pBooleanObject, eLib3MFBooleanOperation * pOperation);
+
+/**
+* Enables or disables CSG field evaluation for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] bCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setcsgmodeenabled(Lib3MF_BooleanObject pBooleanObject, bool bCSGModeEnabled);
+
+/**
+* Returns whether CSG field evaluation is enabled for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getcsgmodeenabled(Lib3MF_BooleanObject pBooleanObject, bool * pCSGModeEnabled);
+
+/**
+* Sets the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setextractiongridresolution(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nGridResolution);
+
+/**
+* Returns the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getextractiongridresolution(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pGridResolution);
+
+/**
+* Returns the number of operands in the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCount - number of operands in the boolean sequence
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getoperandcount(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pCount);
+
+/**
+* Adds an operand object to the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pOperandObject - mesh object used as operand
+* @param[in] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_addoperand(Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject pOperandObject, const sLib3MFTransform * pTransform);
+
+/**
+* Returns one operand object and transform from the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nIndex - index of the operand in the boolean sequence
+* @param[out] pOperandObject - mesh object used as operand
+* @param[out] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getoperand(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nIndex, Lib3MF_MeshObject * pOperandObject, sLib3MFTransform * pTransform);
+
+/**
+* Materializes the boolean shape into a newly created mesh object.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pMeshObject - new mesh object containing the tessellated boolean shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_mergetomeshobject(Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject * pMeshObject);
+
/*************************************************************************************************************************
Class definition for BeamLattice
**************************************************************************************************************************/
@@ -1926,7 +2082,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_setbasematerialgroup(Lib
LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_getmaterialmappingcount(Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 * pCount);
/**
-* Returns MaterialMappting with given index
+* Returns MaterialMapping with given index
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] nIndex - Index of the MaterialMapping in question.
@@ -1936,7 +2092,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_getmaterialmappingcount(
LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_getmaterialmapping(Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 nIndex, Lib3MF_MaterialMapping * pTheMaterialMapping);
/**
-* Adds a the MaterialMapping
+* Adds a MaterialMapping
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] pTransform - new transformation matrix
@@ -2048,7 +2204,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedata_removecolor(Lib3MF_VolumeData pVo
* Returns the number of VolumeDataProperty
*
* @param[in] pVolumeData - VolumeData instance.
-* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumdeData
+* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumeData
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedata_getpropertycount(Lib3MF_VolumeData pVolumeData, Lib3MF_uint32 * pCount);
@@ -2873,7 +3029,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_setrelationshiptype(Lib3MF_Attach
LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_writetofile(Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pFileName - file to read from.
@@ -2882,7 +3038,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_writetofile(Lib3MF_Attachment pAt
LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_readfromfile(Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pTheReadCallback - Callback to call for reading a data chunk
@@ -2914,7 +3070,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_getstreamsize(Lib3MF_Attachment p
LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_writetobuffer(Lib3MF_Attachment pAttachment, const Lib3MF_uint64 nBufferBufferSize, Lib3MF_uint64* pBufferNeededCount, Lib3MF_uint8 * pBufferBuffer);
/**
-* Reads an attachment from a memory buffer. This buffer is immediatly read (in contrast to the ReadFromCallback and ReadFromFile-methods).
+* Reads an attachment from a memory buffer. This buffer is immediately read (in contrast to the ReadFromCallback and ReadFromFile-methods).
*
* @param[in] pAttachment - Attachment instance.
* @param[in] nBufferBufferSize - Number of elements in buffer
@@ -4026,6 +4182,233 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_unsignedmeshnode_getinputpos(Lib3MF_Unsigned
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_unsignedmeshnode_getoutputdistance(Lib3MF_UnsignedMeshNode pUnsignedMeshNode, Lib3MF_ImplicitPort * pDistance);
+/*************************************************************************************************************************
+ Class definition for BeamLatticeNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the model resource id of the beam lattice
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pBeamLattice - the input port for the model resource id of the beam lattice (mesh with beamlattice extension)
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getinputbeamlattice(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pBeamLattice);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getinputpos(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the output
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pDistance - the output port for the signed distance to the beam lattice
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getoutputdistance(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pDistance);
+
+/**
+* Sets the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[in] dAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_setaccuraterange(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double dAccurateRange);
+
+/**
+* Retrieves the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getaccuraterange(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double * pAccurateRange);
+
+/*************************************************************************************************************************
+ Class definition for FunctionGradientNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getinputfunctionid(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getinputpos(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getinputstep(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_setscalaroutputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getscalaroutputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_setvectorinputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getvectorinputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pNormalizedGradient - the output port for the normalized gradient
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getoutputnormalizedgradient(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pNormalizedGradient);
+
+/**
+* Retrieves the raw gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pGradient - the output port for the raw gradient
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getoutputgradient(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pGradient);
+
+/**
+* Retrieves the gradient magnitude output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pMagnitude - the output port for the gradient magnitude
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getoutputmagnitude(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pMagnitude);
+
+/*************************************************************************************************************************
+ Class definition for NormalizeDistanceNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getinputfunctionid(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pPos - the input port for the position (vector)
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getinputpos(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getinputstep(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_setscalaroutputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getscalaroutputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_setvectorinputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getvectorinputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized result output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pResult - the output port for the normalized distance
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getoutputresult(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pResult);
+
/*************************************************************************************************************************
Class definition for FunctionCallNode
**************************************************************************************************************************/
@@ -4801,6 +5184,42 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addmeshnode(Lib3MF_Implicit
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addunsignedmeshnode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_UnsignedMeshNode * pNode);
+/**
+* Add a BeamLatticeNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addbeamlatticenode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_BeamLatticeNode * pNode);
+
+/**
+* Add a FunctionGradientNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addfunctiongradientnode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_FunctionGradientNode * pNode);
+
+/**
+* Add a NormalizeDistanceNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addnormalizedistancenode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_NormalizeDistanceNode * pNode);
+
/**
* Add a FunctionCallNode
*
@@ -5915,6 +6334,16 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getmeshobjectbyid(Lib3MF_Model pModel,
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getcomponentsobjectbyid(Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* finds a boolean object by its UniqueResourceID
+*
+* @param[in] pModel - Model instance.
+* @param[in] nUniqueResourceID - UniqueResourceID
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getbooleanobjectbyid(Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* finds a model color group by its UniqueResourceID
*
@@ -6020,6 +6449,15 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getmeshobjects(Lib3MF_Model pModel, Li
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getcomponentsobjects(Lib3MF_Model pModel, Lib3MF_ComponentsObjectIterator * pResourceIterator);
+/**
+* creates a resource iterator instance with all boolean object resources.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pResourceIterator - returns the iterator instance.
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getbooleanobjects(Lib3MF_Model pModel, Lib3MF_BooleanObjectIterator * pResourceIterator);
+
/**
* creates a Texture2DIterator instance with all texture2d resources.
*
@@ -6128,6 +6566,15 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addmeshobject(Lib3MF_Model pModel, Lib
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addcomponentsobject(Lib3MF_Model pModel, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* adds an empty boolean object to the model.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addbooleanobject(Lib3MF_Model pModel, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* creates a new model slicestack by its id
*
diff --git a/Autogenerated/Bindings/C/lib3mf_types.h b/Autogenerated/Bindings/C/lib3mf_types.h
index 5df0da2fd..b9e4aec27 100644
--- a/Autogenerated/Bindings/C/lib3mf_types.h
+++ b/Autogenerated/Bindings/C/lib3mf_types.h
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
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.4.0
+Interface version: 2.6.0
*/
@@ -84,7 +84,7 @@ typedef void * Lib3MF_pvoid;
**************************************************************************************************************************/
#define LIB3MF_VERSION_MAJOR 2
-#define LIB3MF_VERSION_MINOR 4
+#define LIB3MF_VERSION_MINOR 6
#define LIB3MF_VERSION_MICRO 0
#define LIB3MF_VERSION_PRERELEASEINFO ""
#define LIB3MF_VERSION_BUILDINFO ""
@@ -220,6 +220,7 @@ typedef Lib3MFHandle Lib3MF_SliceStackIterator;
typedef Lib3MFHandle Lib3MF_ObjectIterator;
typedef Lib3MFHandle Lib3MF_MeshObjectIterator;
typedef Lib3MFHandle Lib3MF_ComponentsObjectIterator;
+typedef Lib3MFHandle Lib3MF_BooleanObjectIterator;
typedef Lib3MFHandle Lib3MF_Texture2DIterator;
typedef Lib3MFHandle Lib3MF_BaseMaterialGroupIterator;
typedef Lib3MFHandle Lib3MF_ColorGroupIterator;
@@ -235,6 +236,7 @@ typedef Lib3MFHandle Lib3MF_TriangleSet;
typedef Lib3MFHandle Lib3MF_Object;
typedef Lib3MFHandle Lib3MF_MeshObject;
typedef Lib3MFHandle Lib3MF_LevelSet;
+typedef Lib3MFHandle Lib3MF_BooleanObject;
typedef Lib3MFHandle Lib3MF_BeamLattice;
typedef Lib3MFHandle Lib3MF_FunctionReference;
typedef Lib3MFHandle Lib3MF_VolumeDataColor;
@@ -310,6 +312,9 @@ typedef Lib3MFHandle Lib3MF_ConstVecNode;
typedef Lib3MFHandle Lib3MF_ConstMatNode;
typedef Lib3MFHandle Lib3MF_MeshNode;
typedef Lib3MFHandle Lib3MF_UnsignedMeshNode;
+typedef Lib3MFHandle Lib3MF_BeamLatticeNode;
+typedef Lib3MFHandle Lib3MF_FunctionGradientNode;
+typedef Lib3MFHandle Lib3MF_NormalizeDistanceNode;
typedef Lib3MFHandle Lib3MF_FunctionCallNode;
typedef Lib3MFHandle Lib3MF_NodeIterator;
typedef Lib3MFHandle Lib3MF_Function;
@@ -358,9 +363,16 @@ typedef enum eLib3MFObjectType {
eObjectTypeOther = 0,
eObjectTypeModel = 1,
eObjectTypeSupport = 2,
- eObjectTypeSolidSupport = 3
+ eObjectTypeSolidSupport = 3,
+ eObjectTypeSurface = 4
} eLib3MFObjectType;
+typedef enum eLib3MFBooleanOperation {
+ eBooleanOperationUnion = 0,
+ eBooleanOperationDifference = 1,
+ eBooleanOperationIntersection = 2
+} eLib3MFBooleanOperation;
+
typedef enum eLib3MFTextureType {
eTextureTypeUnknown = 0,
eTextureTypePNG = 1,
@@ -472,11 +484,11 @@ typedef enum eLib3MFImplicitNodeType {
eImplicitNodeTypeMatVecMultiplication = 14, /** Multiplies a matrix with a vector */
eImplicitNodeTypeTranspose = 15, /** Transposes a matrix */
eImplicitNodeTypeInverse = 16, /** Computes the inverse of a matrix */
- eImplicitNodeTypeSinus = 17, /** Calculates the sinus */
- eImplicitNodeTypeCosinus = 18, /** Calculates the cosinus */
+ eImplicitNodeTypeSinus = 17, /** Calculates the sine */
+ eImplicitNodeTypeCosinus = 18, /** Calculates the cosine */
eImplicitNodeTypeTan = 19, /** Calculates the tangent */
- eImplicitNodeTypeArcSin = 20, /** Calculates the arcsinus */
- eImplicitNodeTypeArcCos = 21, /** Calculates the arccosinus */
+ eImplicitNodeTypeArcSin = 20, /** Calculates the arcsine */
+ eImplicitNodeTypeArcCos = 21, /** Calculates the arccosine */
eImplicitNodeTypeArcTan = 22, /** Calculates the arctangent */
eImplicitNodeTypeArcTan2 = 23, /** Calculates the arctangent */
eImplicitNodeTypeMin = 24, /** Calculates the minimum of two values */
@@ -486,9 +498,9 @@ typedef enum eLib3MFImplicitNodeType {
eImplicitNodeTypePow = 28, /** Calculates the power A^B */
eImplicitNodeTypeSqrt = 29, /** Calculates the square root */
eImplicitNodeTypeExp = 30, /** Exponential function */
- eImplicitNodeTypeLog = 31, /** Natural logarithmus */
- eImplicitNodeTypeLog2 = 32, /** Logarithmus to the base 2 */
- eImplicitNodeTypeLog10 = 33, /** Logarithmus to the base 10 */
+ eImplicitNodeTypeLog = 31, /** Natural logarithm */
+ eImplicitNodeTypeLog2 = 32, /** Logarithm to the base 2 */
+ eImplicitNodeTypeLog10 = 33, /** Logarithm to the base 10 */
eImplicitNodeTypeSelect = 34, /** If A is less than B returns C, else D */
eImplicitNodeTypeClamp = 35, /** Clamps the input value to min and max */
eImplicitNodeTypeSinh = 36, /** Calculates the hyperbolic sine */
@@ -503,9 +515,12 @@ typedef enum eLib3MFImplicitNodeType {
eImplicitNodeTypeMesh = 45, /** Calculates the signed distance to a mesh */
eImplicitNodeTypeLength = 46, /** Calculates the length of a vector */
eImplicitNodeTypeConstResourceID = 47, /** Selects a resource (function, mesh etc.) */
- eImplicitNodeTypeVectorFromScalar = 48, /** Creates a vector from one scalar values */
+ eImplicitNodeTypeVectorFromScalar = 48, /** Creates a vector from one scalar value */
eImplicitNodeTypeUnsignedMesh = 49, /** Calculates the unsigned distance to a mesh */
- eImplicitNodeTypeMod = 50 /** Calculates the modulo of two values (same behaviour as glsl mod) */
+ eImplicitNodeTypeMod = 50, /** Calculates the modulo of two values (same behaviour as glsl mod) */
+ eImplicitNodeTypeBeamLattice = 51, /** Calculates the signed distance to a beam lattice */
+ eImplicitNodeTypeFunctionGradient = 52, /** Calculates the gradient of a function */
+ eImplicitNodeTypeNormalizeDistance = 53 /** Normalizes a distance field */
} eLib3MFImplicitNodeType;
/**
@@ -578,6 +593,11 @@ typedef union {
int m_code;
} structEnumLib3MFObjectType;
+typedef union {
+ eLib3MFBooleanOperation m_enum;
+ int m_code;
+} structEnumLib3MFBooleanOperation;
+
typedef union {
eLib3MFTextureType m_enum;
int m_code;
diff --git a/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.cc b/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.cc
index c687178fc..550350f35 100644
--- a/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.cc
+++ b/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.cc
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated plain C Header file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -90,6 +90,7 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_ObjectIterator_GetCurrentObject = NULL;
pWrapperTable->m_MeshObjectIterator_GetCurrentMeshObject = NULL;
pWrapperTable->m_ComponentsObjectIterator_GetCurrentComponentsObject = NULL;
+ pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject = NULL;
pWrapperTable->m_Texture2DIterator_GetCurrentTexture2D = NULL;
pWrapperTable->m_BaseMaterialGroupIterator_GetCurrentBaseMaterialGroup = NULL;
pWrapperTable->m_ColorGroupIterator_GetCurrentColorGroup = NULL;
@@ -138,6 +139,7 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_Object_IsMeshObject = NULL;
pWrapperTable->m_Object_IsComponentsObject = NULL;
pWrapperTable->m_Object_IsLevelSetObject = NULL;
+ pWrapperTable->m_Object_IsBooleanObject = NULL;
pWrapperTable->m_Object_IsValid = NULL;
pWrapperTable->m_Object_SetAttachmentAsThumbnail = NULL;
pWrapperTable->m_Object_GetThumbnailAttachment = NULL;
@@ -195,6 +197,20 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_LevelSet_GetMesh = NULL;
pWrapperTable->m_LevelSet_GetVolumeData = NULL;
pWrapperTable->m_LevelSet_SetVolumeData = NULL;
+ pWrapperTable->m_BooleanObject_SetBaseObject = NULL;
+ pWrapperTable->m_BooleanObject_GetBaseObject = NULL;
+ pWrapperTable->m_BooleanObject_SetBaseTransform = NULL;
+ pWrapperTable->m_BooleanObject_GetBaseTransform = NULL;
+ pWrapperTable->m_BooleanObject_SetOperation = NULL;
+ pWrapperTable->m_BooleanObject_GetOperation = NULL;
+ pWrapperTable->m_BooleanObject_SetCSGModeEnabled = NULL;
+ pWrapperTable->m_BooleanObject_GetCSGModeEnabled = NULL;
+ pWrapperTable->m_BooleanObject_SetExtractionGridResolution = NULL;
+ pWrapperTable->m_BooleanObject_GetExtractionGridResolution = NULL;
+ pWrapperTable->m_BooleanObject_GetOperandCount = NULL;
+ pWrapperTable->m_BooleanObject_AddOperand = NULL;
+ pWrapperTable->m_BooleanObject_GetOperand = NULL;
+ pWrapperTable->m_BooleanObject_MergeToMeshObject = NULL;
pWrapperTable->m_BeamLattice_GetMinLength = NULL;
pWrapperTable->m_BeamLattice_SetMinLength = NULL;
pWrapperTable->m_BeamLattice_GetClipping = NULL;
@@ -422,6 +438,29 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_UnsignedMeshNode_GetInputMesh = NULL;
pWrapperTable->m_UnsignedMeshNode_GetInputPos = NULL;
pWrapperTable->m_UnsignedMeshNode_GetOutputDistance = NULL;
+ pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice = NULL;
+ pWrapperTable->m_BeamLatticeNode_GetInputPos = NULL;
+ pWrapperTable->m_BeamLatticeNode_GetOutputDistance = NULL;
+ pWrapperTable->m_BeamLatticeNode_SetAccurateRange = NULL;
+ pWrapperTable->m_BeamLatticeNode_GetAccurateRange = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetInputFunctionID = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetInputPos = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetInputStep = NULL;
+ pWrapperTable->m_FunctionGradientNode_SetScalarOutputName = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetScalarOutputName = NULL;
+ pWrapperTable->m_FunctionGradientNode_SetVectorInputName = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetVectorInputName = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetOutputGradient = NULL;
+ pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_GetInputPos = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_GetInputStep = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName = NULL;
+ pWrapperTable->m_NormalizeDistanceNode_GetOutputResult = NULL;
pWrapperTable->m_FunctionCallNode_GetInputFunctionID = NULL;
pWrapperTable->m_NodeIterator_GetCurrent = NULL;
pWrapperTable->m_Function_GetDisplayName = NULL;
@@ -485,6 +524,9 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_ImplicitFunction_AddConstMatNode = NULL;
pWrapperTable->m_ImplicitFunction_AddMeshNode = NULL;
pWrapperTable->m_ImplicitFunction_AddUnsignedMeshNode = NULL;
+ pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode = NULL;
+ pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode = NULL;
+ pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode = NULL;
pWrapperTable->m_ImplicitFunction_AddFunctionCallNode = NULL;
pWrapperTable->m_ImplicitFunction_GetNodes = NULL;
pWrapperTable->m_ImplicitFunction_RemoveNode = NULL;
@@ -594,6 +636,7 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_Model_GetMultiPropertyGroupByID = NULL;
pWrapperTable->m_Model_GetMeshObjectByID = NULL;
pWrapperTable->m_Model_GetComponentsObjectByID = NULL;
+ pWrapperTable->m_Model_GetBooleanObjectByID = NULL;
pWrapperTable->m_Model_GetColorGroupByID = NULL;
pWrapperTable->m_Model_GetSliceStackByID = NULL;
pWrapperTable->m_Model_GetLevelSetByID = NULL;
@@ -605,6 +648,7 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_Model_GetObjects = NULL;
pWrapperTable->m_Model_GetMeshObjects = NULL;
pWrapperTable->m_Model_GetComponentsObjects = NULL;
+ pWrapperTable->m_Model_GetBooleanObjects = NULL;
pWrapperTable->m_Model_GetTexture2Ds = NULL;
pWrapperTable->m_Model_GetBaseMaterialGroups = NULL;
pWrapperTable->m_Model_GetColorGroups = NULL;
@@ -617,6 +661,7 @@ Lib3MFResult InitLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable)
pWrapperTable->m_Model_MergeFromModel = NULL;
pWrapperTable->m_Model_AddMeshObject = NULL;
pWrapperTable->m_Model_AddComponentsObject = NULL;
+ pWrapperTable->m_Model_AddBooleanObject = NULL;
pWrapperTable->m_Model_AddSliceStack = NULL;
pWrapperTable->m_Model_AddTexture2DFromAttachment = NULL;
pWrapperTable->m_Model_AddBaseMaterialGroup = NULL;
@@ -1100,6 +1145,15 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_ComponentsObjectIterator_GetCurrentComponentsObject == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject = (PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobjectiterator_getcurrentbooleanobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject = (PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr) dlsym(hLibrary, "lib3mf_booleanobjectiterator_getcurrentbooleanobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Texture2DIterator_GetCurrentTexture2D = (PLib3MFTexture2DIterator_GetCurrentTexture2DPtr) GetProcAddress(hLibrary, "lib3mf_texture2diterator_getcurrenttexture2d");
#else // _WIN32
@@ -1532,6 +1586,15 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_Object_IsLevelSetObject == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Object_IsBooleanObject = (PLib3MFObject_IsBooleanObjectPtr) GetProcAddress(hLibrary, "lib3mf_object_isbooleanobject");
+ #else // _WIN32
+ pWrapperTable->m_Object_IsBooleanObject = (PLib3MFObject_IsBooleanObjectPtr) dlsym(hLibrary, "lib3mf_object_isbooleanobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Object_IsBooleanObject == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Object_IsValid = (PLib3MFObject_IsValidPtr) GetProcAddress(hLibrary, "lib3mf_object_isvalid");
#else // _WIN32
@@ -2045,6 +2108,132 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_LevelSet_SetVolumeData == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseObject = (PLib3MFBooleanObject_SetBaseObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setbaseobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseObject = (PLib3MFBooleanObject_SetBaseObjectPtr) dlsym(hLibrary, "lib3mf_booleanobject_setbaseobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetBaseObject == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseObject = (PLib3MFBooleanObject_GetBaseObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getbaseobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseObject = (PLib3MFBooleanObject_GetBaseObjectPtr) dlsym(hLibrary, "lib3mf_booleanobject_getbaseobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetBaseObject == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseTransform = (PLib3MFBooleanObject_SetBaseTransformPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setbasetransform");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseTransform = (PLib3MFBooleanObject_SetBaseTransformPtr) dlsym(hLibrary, "lib3mf_booleanobject_setbasetransform");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetBaseTransform == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseTransform = (PLib3MFBooleanObject_GetBaseTransformPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getbasetransform");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseTransform = (PLib3MFBooleanObject_GetBaseTransformPtr) dlsym(hLibrary, "lib3mf_booleanobject_getbasetransform");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetBaseTransform == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetOperation = (PLib3MFBooleanObject_SetOperationPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setoperation");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetOperation = (PLib3MFBooleanObject_SetOperationPtr) dlsym(hLibrary, "lib3mf_booleanobject_setoperation");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetOperation == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetOperation = (PLib3MFBooleanObject_GetOperationPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getoperation");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetOperation = (PLib3MFBooleanObject_GetOperationPtr) dlsym(hLibrary, "lib3mf_booleanobject_getoperation");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetOperation == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetCSGModeEnabled = (PLib3MFBooleanObject_SetCSGModeEnabledPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setcsgmodeenabled");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetCSGModeEnabled = (PLib3MFBooleanObject_SetCSGModeEnabledPtr) dlsym(hLibrary, "lib3mf_booleanobject_setcsgmodeenabled");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetCSGModeEnabled == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetCSGModeEnabled = (PLib3MFBooleanObject_GetCSGModeEnabledPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getcsgmodeenabled");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetCSGModeEnabled = (PLib3MFBooleanObject_GetCSGModeEnabledPtr) dlsym(hLibrary, "lib3mf_booleanobject_getcsgmodeenabled");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetCSGModeEnabled == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetExtractionGridResolution = (PLib3MFBooleanObject_SetExtractionGridResolutionPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setextractiongridresolution");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetExtractionGridResolution = (PLib3MFBooleanObject_SetExtractionGridResolutionPtr) dlsym(hLibrary, "lib3mf_booleanobject_setextractiongridresolution");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetExtractionGridResolution == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetExtractionGridResolution = (PLib3MFBooleanObject_GetExtractionGridResolutionPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getextractiongridresolution");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetExtractionGridResolution = (PLib3MFBooleanObject_GetExtractionGridResolutionPtr) dlsym(hLibrary, "lib3mf_booleanobject_getextractiongridresolution");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetExtractionGridResolution == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetOperandCount = (PLib3MFBooleanObject_GetOperandCountPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getoperandcount");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetOperandCount = (PLib3MFBooleanObject_GetOperandCountPtr) dlsym(hLibrary, "lib3mf_booleanobject_getoperandcount");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetOperandCount == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_AddOperand = (PLib3MFBooleanObject_AddOperandPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_addoperand");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_AddOperand = (PLib3MFBooleanObject_AddOperandPtr) dlsym(hLibrary, "lib3mf_booleanobject_addoperand");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_AddOperand == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetOperand = (PLib3MFBooleanObject_GetOperandPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getoperand");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetOperand = (PLib3MFBooleanObject_GetOperandPtr) dlsym(hLibrary, "lib3mf_booleanobject_getoperand");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetOperand == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_MergeToMeshObject = (PLib3MFBooleanObject_MergeToMeshObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_mergetomeshobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_MergeToMeshObject = (PLib3MFBooleanObject_MergeToMeshObjectPtr) dlsym(hLibrary, "lib3mf_booleanobject_mergetomeshobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_MergeToMeshObject == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_BeamLattice_GetMinLength = (PLib3MFBeamLattice_GetMinLengthPtr) GetProcAddress(hLibrary, "lib3mf_beamlattice_getminlength");
#else // _WIN32
@@ -4088,6 +4277,213 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_UnsignedMeshNode_GetOutputDistance == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice = (PLib3MFBeamLatticeNode_GetInputBeamLatticePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getinputbeamlattice");
+ #else // _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice = (PLib3MFBeamLatticeNode_GetInputBeamLatticePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getinputbeamlattice");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetInputPos = (PLib3MFBeamLatticeNode_GetInputPosPtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getinputpos");
+ #else // _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetInputPos = (PLib3MFBeamLatticeNode_GetInputPosPtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getinputpos");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BeamLatticeNode_GetInputPos == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetOutputDistance = (PLib3MFBeamLatticeNode_GetOutputDistancePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getoutputdistance");
+ #else // _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetOutputDistance = (PLib3MFBeamLatticeNode_GetOutputDistancePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getoutputdistance");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BeamLatticeNode_GetOutputDistance == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BeamLatticeNode_SetAccurateRange = (PLib3MFBeamLatticeNode_SetAccurateRangePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_setaccuraterange");
+ #else // _WIN32
+ pWrapperTable->m_BeamLatticeNode_SetAccurateRange = (PLib3MFBeamLatticeNode_SetAccurateRangePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_setaccuraterange");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BeamLatticeNode_SetAccurateRange == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetAccurateRange = (PLib3MFBeamLatticeNode_GetAccurateRangePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getaccuraterange");
+ #else // _WIN32
+ pWrapperTable->m_BeamLatticeNode_GetAccurateRange = (PLib3MFBeamLatticeNode_GetAccurateRangePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getaccuraterange");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BeamLatticeNode_GetAccurateRange == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetInputFunctionID = (PLib3MFFunctionGradientNode_GetInputFunctionIDPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getinputfunctionid");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetInputFunctionID = (PLib3MFFunctionGradientNode_GetInputFunctionIDPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getinputfunctionid");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetInputFunctionID == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetInputPos = (PLib3MFFunctionGradientNode_GetInputPosPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getinputpos");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetInputPos = (PLib3MFFunctionGradientNode_GetInputPosPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getinputpos");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetInputPos == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetInputStep = (PLib3MFFunctionGradientNode_GetInputStepPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getinputstep");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetInputStep = (PLib3MFFunctionGradientNode_GetInputStepPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getinputstep");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetInputStep == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_SetScalarOutputName = (PLib3MFFunctionGradientNode_SetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_setscalaroutputname");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_SetScalarOutputName = (PLib3MFFunctionGradientNode_SetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_setscalaroutputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_SetScalarOutputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetScalarOutputName = (PLib3MFFunctionGradientNode_GetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getscalaroutputname");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetScalarOutputName = (PLib3MFFunctionGradientNode_GetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getscalaroutputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetScalarOutputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_SetVectorInputName = (PLib3MFFunctionGradientNode_SetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_setvectorinputname");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_SetVectorInputName = (PLib3MFFunctionGradientNode_SetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_setvectorinputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_SetVectorInputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetVectorInputName = (PLib3MFFunctionGradientNode_GetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getvectorinputname");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetVectorInputName = (PLib3MFFunctionGradientNode_GetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getvectorinputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetVectorInputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient = (PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getoutputnormalizedgradient");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient = (PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getoutputnormalizedgradient");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetOutputGradient = (PLib3MFFunctionGradientNode_GetOutputGradientPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getoutputgradient");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetOutputGradient = (PLib3MFFunctionGradientNode_GetOutputGradientPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getoutputgradient");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetOutputGradient == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude = (PLib3MFFunctionGradientNode_GetOutputMagnitudePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getoutputmagnitude");
+ #else // _WIN32
+ pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude = (PLib3MFFunctionGradientNode_GetOutputMagnitudePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getoutputmagnitude");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID = (PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getinputfunctionid");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID = (PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getinputfunctionid");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetInputPos = (PLib3MFNormalizeDistanceNode_GetInputPosPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getinputpos");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetInputPos = (PLib3MFNormalizeDistanceNode_GetInputPosPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getinputpos");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_GetInputPos == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetInputStep = (PLib3MFNormalizeDistanceNode_GetInputStepPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getinputstep");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetInputStep = (PLib3MFNormalizeDistanceNode_GetInputStepPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getinputstep");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_GetInputStep == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName = (PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_setscalaroutputname");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName = (PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_setscalaroutputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName = (PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getscalaroutputname");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName = (PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getscalaroutputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName = (PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_setvectorinputname");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName = (PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_setvectorinputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName = (PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getvectorinputname");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName = (PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getvectorinputname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetOutputResult = (PLib3MFNormalizeDistanceNode_GetOutputResultPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getoutputresult");
+ #else // _WIN32
+ pWrapperTable->m_NormalizeDistanceNode_GetOutputResult = (PLib3MFNormalizeDistanceNode_GetOutputResultPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getoutputresult");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_NormalizeDistanceNode_GetOutputResult == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_FunctionCallNode_GetInputFunctionID = (PLib3MFFunctionCallNode_GetInputFunctionIDPtr) GetProcAddress(hLibrary, "lib3mf_functioncallnode_getinputfunctionid");
#else // _WIN32
@@ -4655,6 +5051,33 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_ImplicitFunction_AddUnsignedMeshNode == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode = (PLib3MFImplicitFunction_AddBeamLatticeNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addbeamlatticenode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode = (PLib3MFImplicitFunction_AddBeamLatticeNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addbeamlatticenode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode = (PLib3MFImplicitFunction_AddFunctionGradientNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addfunctiongradientnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode = (PLib3MFImplicitFunction_AddFunctionGradientNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addfunctiongradientnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode = (PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addnormalizedistancenode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode = (PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addnormalizedistancenode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_ImplicitFunction_AddFunctionCallNode = (PLib3MFImplicitFunction_AddFunctionCallNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addfunctioncallnode");
#else // _WIN32
@@ -5636,6 +6059,15 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_Model_GetComponentsObjectByID == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Model_GetBooleanObjectByID = (PLib3MFModel_GetBooleanObjectByIDPtr) GetProcAddress(hLibrary, "lib3mf_model_getbooleanobjectbyid");
+ #else // _WIN32
+ pWrapperTable->m_Model_GetBooleanObjectByID = (PLib3MFModel_GetBooleanObjectByIDPtr) dlsym(hLibrary, "lib3mf_model_getbooleanobjectbyid");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Model_GetBooleanObjectByID == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Model_GetColorGroupByID = (PLib3MFModel_GetColorGroupByIDPtr) GetProcAddress(hLibrary, "lib3mf_model_getcolorgroupbyid");
#else // _WIN32
@@ -5735,6 +6167,15 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_Model_GetComponentsObjects == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Model_GetBooleanObjects = (PLib3MFModel_GetBooleanObjectsPtr) GetProcAddress(hLibrary, "lib3mf_model_getbooleanobjects");
+ #else // _WIN32
+ pWrapperTable->m_Model_GetBooleanObjects = (PLib3MFModel_GetBooleanObjectsPtr) dlsym(hLibrary, "lib3mf_model_getbooleanobjects");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Model_GetBooleanObjects == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Model_GetTexture2Ds = (PLib3MFModel_GetTexture2DsPtr) GetProcAddress(hLibrary, "lib3mf_model_gettexture2ds");
#else // _WIN32
@@ -5843,6 +6284,15 @@ Lib3MFResult LoadLib3MFWrapperTable(sLib3MFDynamicWrapperTable * pWrapperTable,
if (pWrapperTable->m_Model_AddComponentsObject == NULL)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Model_AddBooleanObject = (PLib3MFModel_AddBooleanObjectPtr) GetProcAddress(hLibrary, "lib3mf_model_addbooleanobject");
+ #else // _WIN32
+ pWrapperTable->m_Model_AddBooleanObject = (PLib3MFModel_AddBooleanObjectPtr) dlsym(hLibrary, "lib3mf_model_addbooleanobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Model_AddBooleanObject == NULL)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Model_AddSliceStack = (PLib3MFModel_AddSliceStackPtr) GetProcAddress(hLibrary, "lib3mf_model_addslicestack");
#else // _WIN32
diff --git a/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h b/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h
index 76b6778df..d18f473b1 100644
--- a/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h
+++ b/Autogenerated/Bindings/CDynamic/lib3mf_dynamic.h
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated plain C Header file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -484,6 +484,19 @@ typedef Lib3MFResult (*PLib3MFMeshObjectIterator_GetCurrentMeshObjectPtr) (Lib3M
*/
typedef Lib3MFResult (*PLib3MFComponentsObjectIterator_GetCurrentComponentsObjectPtr) (Lib3MF_ComponentsObjectIterator pComponentsObjectIterator, Lib3MF_ComponentsObject * pResource);
+/*************************************************************************************************************************
+ Class definition for BooleanObjectIterator
+**************************************************************************************************************************/
+
+/**
+* Returns the BooleanObject the iterator points at.
+*
+* @param[in] pBooleanObjectIterator - BooleanObjectIterator instance.
+* @param[out] pResource - returns the BooleanObject instance.
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr) (Lib3MF_BooleanObjectIterator pBooleanObjectIterator, Lib3MF_BooleanObject * pResource);
+
/*************************************************************************************************************************
Class definition for Texture2DIterator
**************************************************************************************************************************/
@@ -998,6 +1011,15 @@ typedef Lib3MFResult (*PLib3MFObject_IsComponentsObjectPtr) (Lib3MF_Object pObje
*/
typedef Lib3MFResult (*PLib3MFObject_IsLevelSetObjectPtr) (Lib3MF_Object pObject, bool * pIsLevelSetObject);
+/**
+* Retrieves, if an object is a boolean object
+*
+* @param[in] pObject - Object instance.
+* @param[out] pIsBooleanObject - returns, whether the object is a boolean object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFObject_IsBooleanObjectPtr) (Lib3MF_Object pObject, bool * pIsBooleanObject);
+
/**
* Retrieves, if the object is valid according to the core spec. For mesh objects, we distinguish between the type attribute of the object:In case of object type other, this always means false.In case of object type model or solidsupport, this means, if the mesh suffices all requirements of the core spec chapter 4.1.In case of object type support or surface, this always means true.A component objects is valid if and only if it contains at least one component and all child components are valid objects.
*
@@ -1548,6 +1570,140 @@ typedef Lib3MFResult (*PLib3MFLevelSet_GetVolumeDataPtr) (Lib3MF_LevelSet pLevel
*/
typedef Lib3MFResult (*PLib3MFLevelSet_SetVolumeDataPtr) (Lib3MF_LevelSet pLevelSet, Lib3MF_VolumeData pTheVolumeData);
+/*************************************************************************************************************************
+ Class definition for BooleanObject
+**************************************************************************************************************************/
+
+/**
+* Sets the base object and transform for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pBaseObject - base object of the boolean shape
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetBaseObjectPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object pBaseObject, const sLib3MFTransform * pTransform);
+
+/**
+* Returns the base object of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pBaseObject - base object of the boolean shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetBaseObjectPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object * pBaseObject);
+
+/**
+* Sets the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetBaseTransformPtr) (Lib3MF_BooleanObject pBooleanObject, const sLib3MFTransform * pTransform);
+
+/**
+* Returns the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetBaseTransformPtr) (Lib3MF_BooleanObject pBooleanObject, sLib3MFTransform * pTransform);
+
+/**
+* Sets the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] eOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetOperationPtr) (Lib3MF_BooleanObject pBooleanObject, eLib3MFBooleanOperation eOperation);
+
+/**
+* Returns the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetOperationPtr) (Lib3MF_BooleanObject pBooleanObject, eLib3MFBooleanOperation * pOperation);
+
+/**
+* Enables or disables CSG field evaluation for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] bCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetCSGModeEnabledPtr) (Lib3MF_BooleanObject pBooleanObject, bool bCSGModeEnabled);
+
+/**
+* Returns whether CSG field evaluation is enabled for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetCSGModeEnabledPtr) (Lib3MF_BooleanObject pBooleanObject, bool * pCSGModeEnabled);
+
+/**
+* Sets the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetExtractionGridResolutionPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nGridResolution);
+
+/**
+* Returns the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetExtractionGridResolutionPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pGridResolution);
+
+/**
+* Returns the number of operands in the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCount - number of operands in the boolean sequence
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetOperandCountPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pCount);
+
+/**
+* Adds an operand object to the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pOperandObject - mesh object used as operand
+* @param[in] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_AddOperandPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject pOperandObject, const sLib3MFTransform * pTransform);
+
+/**
+* Returns one operand object and transform from the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nIndex - index of the operand in the boolean sequence
+* @param[out] pOperandObject - mesh object used as operand
+* @param[out] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetOperandPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nIndex, Lib3MF_MeshObject * pOperandObject, sLib3MFTransform * pTransform);
+
+/**
+* Materializes the boolean shape into a newly created mesh object.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pMeshObject - new mesh object containing the tessellated boolean shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_MergeToMeshObjectPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject * pMeshObject);
+
/*************************************************************************************************************************
Class definition for BeamLattice
**************************************************************************************************************************/
@@ -1913,7 +2069,7 @@ typedef Lib3MFResult (*PLib3MFVolumeDataComposite_SetBaseMaterialGroupPtr) (Lib3
typedef Lib3MFResult (*PLib3MFVolumeDataComposite_GetMaterialMappingCountPtr) (Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 * pCount);
/**
-* Returns MaterialMappting with given index
+* Returns MaterialMapping with given index
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] nIndex - Index of the MaterialMapping in question.
@@ -1923,7 +2079,7 @@ typedef Lib3MFResult (*PLib3MFVolumeDataComposite_GetMaterialMappingCountPtr) (L
typedef Lib3MFResult (*PLib3MFVolumeDataComposite_GetMaterialMappingPtr) (Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 nIndex, Lib3MF_MaterialMapping * pTheMaterialMapping);
/**
-* Adds a the MaterialMapping
+* Adds a MaterialMapping
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] pTransform - new transformation matrix
@@ -2035,7 +2191,7 @@ typedef Lib3MFResult (*PLib3MFVolumeData_RemoveColorPtr) (Lib3MF_VolumeData pVol
* Returns the number of VolumeDataProperty
*
* @param[in] pVolumeData - VolumeData instance.
-* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumdeData
+* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumeData
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFVolumeData_GetPropertyCountPtr) (Lib3MF_VolumeData pVolumeData, Lib3MF_uint32 * pCount);
@@ -2860,7 +3016,7 @@ typedef Lib3MFResult (*PLib3MFAttachment_SetRelationShipTypePtr) (Lib3MF_Attachm
typedef Lib3MFResult (*PLib3MFAttachment_WriteToFilePtr) (Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pFileName - file to read from.
@@ -2869,7 +3025,7 @@ typedef Lib3MFResult (*PLib3MFAttachment_WriteToFilePtr) (Lib3MF_Attachment pAtt
typedef Lib3MFResult (*PLib3MFAttachment_ReadFromFilePtr) (Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pTheReadCallback - Callback to call for reading a data chunk
@@ -2901,7 +3057,7 @@ typedef Lib3MFResult (*PLib3MFAttachment_GetStreamSizePtr) (Lib3MF_Attachment pA
typedef Lib3MFResult (*PLib3MFAttachment_WriteToBufferPtr) (Lib3MF_Attachment pAttachment, const Lib3MF_uint64 nBufferBufferSize, Lib3MF_uint64* pBufferNeededCount, Lib3MF_uint8 * pBufferBuffer);
/**
-* Reads an attachment from a memory buffer. This buffer is immediatly read (in contrast to the ReadFromCallback and ReadFromFile-methods).
+* Reads an attachment from a memory buffer. This buffer is immediately read (in contrast to the ReadFromCallback and ReadFromFile-methods).
*
* @param[in] pAttachment - Attachment instance.
* @param[in] nBufferBufferSize - Number of elements in buffer
@@ -4013,6 +4169,233 @@ typedef Lib3MFResult (*PLib3MFUnsignedMeshNode_GetInputPosPtr) (Lib3MF_UnsignedM
*/
typedef Lib3MFResult (*PLib3MFUnsignedMeshNode_GetOutputDistancePtr) (Lib3MF_UnsignedMeshNode pUnsignedMeshNode, Lib3MF_ImplicitPort * pDistance);
+/*************************************************************************************************************************
+ Class definition for BeamLatticeNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the model resource id of the beam lattice
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pBeamLattice - the input port for the model resource id of the beam lattice (mesh with beamlattice extension)
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetInputBeamLatticePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pBeamLattice);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetInputPosPtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the output
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pDistance - the output port for the signed distance to the beam lattice
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetOutputDistancePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pDistance);
+
+/**
+* Sets the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[in] dAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_SetAccurateRangePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double dAccurateRange);
+
+/**
+* Retrieves the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetAccurateRangePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double * pAccurateRange);
+
+/*************************************************************************************************************************
+ Class definition for FunctionGradientNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetInputFunctionIDPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetInputPosPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetInputStepPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_SetScalarOutputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetScalarOutputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_SetVectorInputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetVectorInputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pNormalizedGradient - the output port for the normalized gradient
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pNormalizedGradient);
+
+/**
+* Retrieves the raw gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pGradient - the output port for the raw gradient
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetOutputGradientPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pGradient);
+
+/**
+* Retrieves the gradient magnitude output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pMagnitude - the output port for the gradient magnitude
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetOutputMagnitudePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pMagnitude);
+
+/*************************************************************************************************************************
+ Class definition for NormalizeDistanceNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pPos - the input port for the position (vector)
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetInputPosPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetInputStepPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized result output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pResult - the output port for the normalized distance
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetOutputResultPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pResult);
+
/*************************************************************************************************************************
Class definition for FunctionCallNode
**************************************************************************************************************************/
@@ -4788,6 +5171,42 @@ typedef Lib3MFResult (*PLib3MFImplicitFunction_AddMeshNodePtr) (Lib3MF_ImplicitF
*/
typedef Lib3MFResult (*PLib3MFImplicitFunction_AddUnsignedMeshNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_UnsignedMeshNode * pNode);
+/**
+* Add a BeamLatticeNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFImplicitFunction_AddBeamLatticeNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_BeamLatticeNode * pNode);
+
+/**
+* Add a FunctionGradientNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFImplicitFunction_AddFunctionGradientNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_FunctionGradientNode * pNode);
+
+/**
+* Add a NormalizeDistanceNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_NormalizeDistanceNode * pNode);
+
/**
* Add a FunctionCallNode
*
@@ -5902,6 +6321,16 @@ typedef Lib3MFResult (*PLib3MFModel_GetMeshObjectByIDPtr) (Lib3MF_Model pModel,
*/
typedef Lib3MFResult (*PLib3MFModel_GetComponentsObjectByIDPtr) (Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* finds a boolean object by its UniqueResourceID
+*
+* @param[in] pModel - Model instance.
+* @param[in] nUniqueResourceID - UniqueResourceID
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFModel_GetBooleanObjectByIDPtr) (Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* finds a model color group by its UniqueResourceID
*
@@ -6007,6 +6436,15 @@ typedef Lib3MFResult (*PLib3MFModel_GetMeshObjectsPtr) (Lib3MF_Model pModel, Lib
*/
typedef Lib3MFResult (*PLib3MFModel_GetComponentsObjectsPtr) (Lib3MF_Model pModel, Lib3MF_ComponentsObjectIterator * pResourceIterator);
+/**
+* creates a resource iterator instance with all boolean object resources.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pResourceIterator - returns the iterator instance.
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFModel_GetBooleanObjectsPtr) (Lib3MF_Model pModel, Lib3MF_BooleanObjectIterator * pResourceIterator);
+
/**
* creates a Texture2DIterator instance with all texture2d resources.
*
@@ -6115,6 +6553,15 @@ typedef Lib3MFResult (*PLib3MFModel_AddMeshObjectPtr) (Lib3MF_Model pModel, Lib3
*/
typedef Lib3MFResult (*PLib3MFModel_AddComponentsObjectPtr) (Lib3MF_Model pModel, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* adds an empty boolean object to the model.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFModel_AddBooleanObjectPtr) (Lib3MF_Model pModel, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* creates a new model slicestack by its id
*
@@ -6665,6 +7112,7 @@ typedef struct {
PLib3MFObjectIterator_GetCurrentObjectPtr m_ObjectIterator_GetCurrentObject;
PLib3MFMeshObjectIterator_GetCurrentMeshObjectPtr m_MeshObjectIterator_GetCurrentMeshObject;
PLib3MFComponentsObjectIterator_GetCurrentComponentsObjectPtr m_ComponentsObjectIterator_GetCurrentComponentsObject;
+ PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr m_BooleanObjectIterator_GetCurrentBooleanObject;
PLib3MFTexture2DIterator_GetCurrentTexture2DPtr m_Texture2DIterator_GetCurrentTexture2D;
PLib3MFBaseMaterialGroupIterator_GetCurrentBaseMaterialGroupPtr m_BaseMaterialGroupIterator_GetCurrentBaseMaterialGroup;
PLib3MFColorGroupIterator_GetCurrentColorGroupPtr m_ColorGroupIterator_GetCurrentColorGroup;
@@ -6713,6 +7161,7 @@ typedef struct {
PLib3MFObject_IsMeshObjectPtr m_Object_IsMeshObject;
PLib3MFObject_IsComponentsObjectPtr m_Object_IsComponentsObject;
PLib3MFObject_IsLevelSetObjectPtr m_Object_IsLevelSetObject;
+ PLib3MFObject_IsBooleanObjectPtr m_Object_IsBooleanObject;
PLib3MFObject_IsValidPtr m_Object_IsValid;
PLib3MFObject_SetAttachmentAsThumbnailPtr m_Object_SetAttachmentAsThumbnail;
PLib3MFObject_GetThumbnailAttachmentPtr m_Object_GetThumbnailAttachment;
@@ -6770,6 +7219,20 @@ typedef struct {
PLib3MFLevelSet_GetMeshPtr m_LevelSet_GetMesh;
PLib3MFLevelSet_GetVolumeDataPtr m_LevelSet_GetVolumeData;
PLib3MFLevelSet_SetVolumeDataPtr m_LevelSet_SetVolumeData;
+ PLib3MFBooleanObject_SetBaseObjectPtr m_BooleanObject_SetBaseObject;
+ PLib3MFBooleanObject_GetBaseObjectPtr m_BooleanObject_GetBaseObject;
+ PLib3MFBooleanObject_SetBaseTransformPtr m_BooleanObject_SetBaseTransform;
+ PLib3MFBooleanObject_GetBaseTransformPtr m_BooleanObject_GetBaseTransform;
+ PLib3MFBooleanObject_SetOperationPtr m_BooleanObject_SetOperation;
+ PLib3MFBooleanObject_GetOperationPtr m_BooleanObject_GetOperation;
+ PLib3MFBooleanObject_SetCSGModeEnabledPtr m_BooleanObject_SetCSGModeEnabled;
+ PLib3MFBooleanObject_GetCSGModeEnabledPtr m_BooleanObject_GetCSGModeEnabled;
+ PLib3MFBooleanObject_SetExtractionGridResolutionPtr m_BooleanObject_SetExtractionGridResolution;
+ PLib3MFBooleanObject_GetExtractionGridResolutionPtr m_BooleanObject_GetExtractionGridResolution;
+ PLib3MFBooleanObject_GetOperandCountPtr m_BooleanObject_GetOperandCount;
+ PLib3MFBooleanObject_AddOperandPtr m_BooleanObject_AddOperand;
+ PLib3MFBooleanObject_GetOperandPtr m_BooleanObject_GetOperand;
+ PLib3MFBooleanObject_MergeToMeshObjectPtr m_BooleanObject_MergeToMeshObject;
PLib3MFBeamLattice_GetMinLengthPtr m_BeamLattice_GetMinLength;
PLib3MFBeamLattice_SetMinLengthPtr m_BeamLattice_SetMinLength;
PLib3MFBeamLattice_GetClippingPtr m_BeamLattice_GetClipping;
@@ -6997,6 +7460,29 @@ typedef struct {
PLib3MFUnsignedMeshNode_GetInputMeshPtr m_UnsignedMeshNode_GetInputMesh;
PLib3MFUnsignedMeshNode_GetInputPosPtr m_UnsignedMeshNode_GetInputPos;
PLib3MFUnsignedMeshNode_GetOutputDistancePtr m_UnsignedMeshNode_GetOutputDistance;
+ PLib3MFBeamLatticeNode_GetInputBeamLatticePtr m_BeamLatticeNode_GetInputBeamLattice;
+ PLib3MFBeamLatticeNode_GetInputPosPtr m_BeamLatticeNode_GetInputPos;
+ PLib3MFBeamLatticeNode_GetOutputDistancePtr m_BeamLatticeNode_GetOutputDistance;
+ PLib3MFBeamLatticeNode_SetAccurateRangePtr m_BeamLatticeNode_SetAccurateRange;
+ PLib3MFBeamLatticeNode_GetAccurateRangePtr m_BeamLatticeNode_GetAccurateRange;
+ PLib3MFFunctionGradientNode_GetInputFunctionIDPtr m_FunctionGradientNode_GetInputFunctionID;
+ PLib3MFFunctionGradientNode_GetInputPosPtr m_FunctionGradientNode_GetInputPos;
+ PLib3MFFunctionGradientNode_GetInputStepPtr m_FunctionGradientNode_GetInputStep;
+ PLib3MFFunctionGradientNode_SetScalarOutputNamePtr m_FunctionGradientNode_SetScalarOutputName;
+ PLib3MFFunctionGradientNode_GetScalarOutputNamePtr m_FunctionGradientNode_GetScalarOutputName;
+ PLib3MFFunctionGradientNode_SetVectorInputNamePtr m_FunctionGradientNode_SetVectorInputName;
+ PLib3MFFunctionGradientNode_GetVectorInputNamePtr m_FunctionGradientNode_GetVectorInputName;
+ PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr m_FunctionGradientNode_GetOutputNormalizedGradient;
+ PLib3MFFunctionGradientNode_GetOutputGradientPtr m_FunctionGradientNode_GetOutputGradient;
+ PLib3MFFunctionGradientNode_GetOutputMagnitudePtr m_FunctionGradientNode_GetOutputMagnitude;
+ PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr m_NormalizeDistanceNode_GetInputFunctionID;
+ PLib3MFNormalizeDistanceNode_GetInputPosPtr m_NormalizeDistanceNode_GetInputPos;
+ PLib3MFNormalizeDistanceNode_GetInputStepPtr m_NormalizeDistanceNode_GetInputStep;
+ PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr m_NormalizeDistanceNode_SetScalarOutputName;
+ PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr m_NormalizeDistanceNode_GetScalarOutputName;
+ PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr m_NormalizeDistanceNode_SetVectorInputName;
+ PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr m_NormalizeDistanceNode_GetVectorInputName;
+ PLib3MFNormalizeDistanceNode_GetOutputResultPtr m_NormalizeDistanceNode_GetOutputResult;
PLib3MFFunctionCallNode_GetInputFunctionIDPtr m_FunctionCallNode_GetInputFunctionID;
PLib3MFNodeIterator_GetCurrentPtr m_NodeIterator_GetCurrent;
PLib3MFFunction_GetDisplayNamePtr m_Function_GetDisplayName;
@@ -7060,6 +7546,9 @@ typedef struct {
PLib3MFImplicitFunction_AddConstMatNodePtr m_ImplicitFunction_AddConstMatNode;
PLib3MFImplicitFunction_AddMeshNodePtr m_ImplicitFunction_AddMeshNode;
PLib3MFImplicitFunction_AddUnsignedMeshNodePtr m_ImplicitFunction_AddUnsignedMeshNode;
+ PLib3MFImplicitFunction_AddBeamLatticeNodePtr m_ImplicitFunction_AddBeamLatticeNode;
+ PLib3MFImplicitFunction_AddFunctionGradientNodePtr m_ImplicitFunction_AddFunctionGradientNode;
+ PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr m_ImplicitFunction_AddNormalizeDistanceNode;
PLib3MFImplicitFunction_AddFunctionCallNodePtr m_ImplicitFunction_AddFunctionCallNode;
PLib3MFImplicitFunction_GetNodesPtr m_ImplicitFunction_GetNodes;
PLib3MFImplicitFunction_RemoveNodePtr m_ImplicitFunction_RemoveNode;
@@ -7169,6 +7658,7 @@ typedef struct {
PLib3MFModel_GetMultiPropertyGroupByIDPtr m_Model_GetMultiPropertyGroupByID;
PLib3MFModel_GetMeshObjectByIDPtr m_Model_GetMeshObjectByID;
PLib3MFModel_GetComponentsObjectByIDPtr m_Model_GetComponentsObjectByID;
+ PLib3MFModel_GetBooleanObjectByIDPtr m_Model_GetBooleanObjectByID;
PLib3MFModel_GetColorGroupByIDPtr m_Model_GetColorGroupByID;
PLib3MFModel_GetSliceStackByIDPtr m_Model_GetSliceStackByID;
PLib3MFModel_GetLevelSetByIDPtr m_Model_GetLevelSetByID;
@@ -7180,6 +7670,7 @@ typedef struct {
PLib3MFModel_GetObjectsPtr m_Model_GetObjects;
PLib3MFModel_GetMeshObjectsPtr m_Model_GetMeshObjects;
PLib3MFModel_GetComponentsObjectsPtr m_Model_GetComponentsObjects;
+ PLib3MFModel_GetBooleanObjectsPtr m_Model_GetBooleanObjects;
PLib3MFModel_GetTexture2DsPtr m_Model_GetTexture2Ds;
PLib3MFModel_GetBaseMaterialGroupsPtr m_Model_GetBaseMaterialGroups;
PLib3MFModel_GetColorGroupsPtr m_Model_GetColorGroups;
@@ -7192,6 +7683,7 @@ typedef struct {
PLib3MFModel_MergeFromModelPtr m_Model_MergeFromModel;
PLib3MFModel_AddMeshObjectPtr m_Model_AddMeshObject;
PLib3MFModel_AddComponentsObjectPtr m_Model_AddComponentsObject;
+ PLib3MFModel_AddBooleanObjectPtr m_Model_AddBooleanObject;
PLib3MFModel_AddSliceStackPtr m_Model_AddSliceStack;
PLib3MFModel_AddTexture2DFromAttachmentPtr m_Model_AddTexture2DFromAttachment;
PLib3MFModel_AddBaseMaterialGroupPtr m_Model_AddBaseMaterialGroup;
diff --git a/Autogenerated/Bindings/CDynamic/lib3mf_types.h b/Autogenerated/Bindings/CDynamic/lib3mf_types.h
index 5df0da2fd..b9e4aec27 100644
--- a/Autogenerated/Bindings/CDynamic/lib3mf_types.h
+++ b/Autogenerated/Bindings/CDynamic/lib3mf_types.h
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
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.4.0
+Interface version: 2.6.0
*/
@@ -84,7 +84,7 @@ typedef void * Lib3MF_pvoid;
**************************************************************************************************************************/
#define LIB3MF_VERSION_MAJOR 2
-#define LIB3MF_VERSION_MINOR 4
+#define LIB3MF_VERSION_MINOR 6
#define LIB3MF_VERSION_MICRO 0
#define LIB3MF_VERSION_PRERELEASEINFO ""
#define LIB3MF_VERSION_BUILDINFO ""
@@ -220,6 +220,7 @@ typedef Lib3MFHandle Lib3MF_SliceStackIterator;
typedef Lib3MFHandle Lib3MF_ObjectIterator;
typedef Lib3MFHandle Lib3MF_MeshObjectIterator;
typedef Lib3MFHandle Lib3MF_ComponentsObjectIterator;
+typedef Lib3MFHandle Lib3MF_BooleanObjectIterator;
typedef Lib3MFHandle Lib3MF_Texture2DIterator;
typedef Lib3MFHandle Lib3MF_BaseMaterialGroupIterator;
typedef Lib3MFHandle Lib3MF_ColorGroupIterator;
@@ -235,6 +236,7 @@ typedef Lib3MFHandle Lib3MF_TriangleSet;
typedef Lib3MFHandle Lib3MF_Object;
typedef Lib3MFHandle Lib3MF_MeshObject;
typedef Lib3MFHandle Lib3MF_LevelSet;
+typedef Lib3MFHandle Lib3MF_BooleanObject;
typedef Lib3MFHandle Lib3MF_BeamLattice;
typedef Lib3MFHandle Lib3MF_FunctionReference;
typedef Lib3MFHandle Lib3MF_VolumeDataColor;
@@ -310,6 +312,9 @@ typedef Lib3MFHandle Lib3MF_ConstVecNode;
typedef Lib3MFHandle Lib3MF_ConstMatNode;
typedef Lib3MFHandle Lib3MF_MeshNode;
typedef Lib3MFHandle Lib3MF_UnsignedMeshNode;
+typedef Lib3MFHandle Lib3MF_BeamLatticeNode;
+typedef Lib3MFHandle Lib3MF_FunctionGradientNode;
+typedef Lib3MFHandle Lib3MF_NormalizeDistanceNode;
typedef Lib3MFHandle Lib3MF_FunctionCallNode;
typedef Lib3MFHandle Lib3MF_NodeIterator;
typedef Lib3MFHandle Lib3MF_Function;
@@ -358,9 +363,16 @@ typedef enum eLib3MFObjectType {
eObjectTypeOther = 0,
eObjectTypeModel = 1,
eObjectTypeSupport = 2,
- eObjectTypeSolidSupport = 3
+ eObjectTypeSolidSupport = 3,
+ eObjectTypeSurface = 4
} eLib3MFObjectType;
+typedef enum eLib3MFBooleanOperation {
+ eBooleanOperationUnion = 0,
+ eBooleanOperationDifference = 1,
+ eBooleanOperationIntersection = 2
+} eLib3MFBooleanOperation;
+
typedef enum eLib3MFTextureType {
eTextureTypeUnknown = 0,
eTextureTypePNG = 1,
@@ -472,11 +484,11 @@ typedef enum eLib3MFImplicitNodeType {
eImplicitNodeTypeMatVecMultiplication = 14, /** Multiplies a matrix with a vector */
eImplicitNodeTypeTranspose = 15, /** Transposes a matrix */
eImplicitNodeTypeInverse = 16, /** Computes the inverse of a matrix */
- eImplicitNodeTypeSinus = 17, /** Calculates the sinus */
- eImplicitNodeTypeCosinus = 18, /** Calculates the cosinus */
+ eImplicitNodeTypeSinus = 17, /** Calculates the sine */
+ eImplicitNodeTypeCosinus = 18, /** Calculates the cosine */
eImplicitNodeTypeTan = 19, /** Calculates the tangent */
- eImplicitNodeTypeArcSin = 20, /** Calculates the arcsinus */
- eImplicitNodeTypeArcCos = 21, /** Calculates the arccosinus */
+ eImplicitNodeTypeArcSin = 20, /** Calculates the arcsine */
+ eImplicitNodeTypeArcCos = 21, /** Calculates the arccosine */
eImplicitNodeTypeArcTan = 22, /** Calculates the arctangent */
eImplicitNodeTypeArcTan2 = 23, /** Calculates the arctangent */
eImplicitNodeTypeMin = 24, /** Calculates the minimum of two values */
@@ -486,9 +498,9 @@ typedef enum eLib3MFImplicitNodeType {
eImplicitNodeTypePow = 28, /** Calculates the power A^B */
eImplicitNodeTypeSqrt = 29, /** Calculates the square root */
eImplicitNodeTypeExp = 30, /** Exponential function */
- eImplicitNodeTypeLog = 31, /** Natural logarithmus */
- eImplicitNodeTypeLog2 = 32, /** Logarithmus to the base 2 */
- eImplicitNodeTypeLog10 = 33, /** Logarithmus to the base 10 */
+ eImplicitNodeTypeLog = 31, /** Natural logarithm */
+ eImplicitNodeTypeLog2 = 32, /** Logarithm to the base 2 */
+ eImplicitNodeTypeLog10 = 33, /** Logarithm to the base 10 */
eImplicitNodeTypeSelect = 34, /** If A is less than B returns C, else D */
eImplicitNodeTypeClamp = 35, /** Clamps the input value to min and max */
eImplicitNodeTypeSinh = 36, /** Calculates the hyperbolic sine */
@@ -503,9 +515,12 @@ typedef enum eLib3MFImplicitNodeType {
eImplicitNodeTypeMesh = 45, /** Calculates the signed distance to a mesh */
eImplicitNodeTypeLength = 46, /** Calculates the length of a vector */
eImplicitNodeTypeConstResourceID = 47, /** Selects a resource (function, mesh etc.) */
- eImplicitNodeTypeVectorFromScalar = 48, /** Creates a vector from one scalar values */
+ eImplicitNodeTypeVectorFromScalar = 48, /** Creates a vector from one scalar value */
eImplicitNodeTypeUnsignedMesh = 49, /** Calculates the unsigned distance to a mesh */
- eImplicitNodeTypeMod = 50 /** Calculates the modulo of two values (same behaviour as glsl mod) */
+ eImplicitNodeTypeMod = 50, /** Calculates the modulo of two values (same behaviour as glsl mod) */
+ eImplicitNodeTypeBeamLattice = 51, /** Calculates the signed distance to a beam lattice */
+ eImplicitNodeTypeFunctionGradient = 52, /** Calculates the gradient of a function */
+ eImplicitNodeTypeNormalizeDistance = 53 /** Normalizes a distance field */
} eLib3MFImplicitNodeType;
/**
@@ -578,6 +593,11 @@ typedef union {
int m_code;
} structEnumLib3MFObjectType;
+typedef union {
+ eLib3MFBooleanOperation m_enum;
+ int m_code;
+} structEnumLib3MFBooleanOperation;
+
typedef union {
eLib3MFTextureType m_enum;
int m_code;
diff --git a/Autogenerated/Bindings/CSharp/Lib3MF.cs b/Autogenerated/Bindings/CSharp/Lib3MF.cs
index 668cedf38..cc9cf06cc 100644
--- a/Autogenerated/Bindings/CSharp/Lib3MF.cs
+++ b/Autogenerated/Bindings/CSharp/Lib3MF.cs
@@ -24,12 +24,12 @@ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated CSharp file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -39,6 +39,294 @@ use of the 3MF Library
namespace Lib3MF {
+ ///
+ /// Exception class for Lib3MF errors
+ ///
+ public class ELib3MFException : Exception
+ {
+ private readonly int _errorCode;
+ private readonly string _errorMessage;
+
+ ///
+ /// Initializes a new instance of the ELib3MFException class
+ ///
+ /// The error code
+ /// The error message
+ public ELib3MFException(int errorCode, string errorMessage = "") : base(FormatMessage(errorCode, errorMessage))
+ {
+ _errorCode = errorCode;
+ _errorMessage = errorMessage;
+ }
+
+ ///
+ /// Gets the error code
+ ///
+ public int ErrorCode => _errorCode;
+
+ ///
+ /// Gets the custom error message
+ ///
+ public string ErrorMessage => _errorMessage;
+
+ ///
+ /// Gets the error name (constant name)
+ ///
+ public string ErrorName
+ {
+ get
+ {
+ switch (_errorCode)
+ {
+ case 0: return "SUCCESS";
+ case 1: return "NOTIMPLEMENTED";
+ case 2: return "INVALIDPARAM";
+ case 3: return "INVALIDCAST";
+ case 4: return "BUFFERTOOSMALL";
+ case 5: return "GENERICEXCEPTION";
+ case 6: return "COULDNOTLOADLIBRARY";
+ case 7: return "COULDNOTFINDLIBRARYEXPORT";
+ case 8: return "INCOMPATIBLEBINARYVERSION";
+ case 10: return "CALCULATIONABORTED";
+ case 11: return "SHOULDNOTBECALLED";
+ case 100: return "READERCLASSUNKNOWN";
+ case 101: return "WRITERCLASSUNKNOWN";
+ case 102: return "ITERATORINVALIDINDEX";
+ case 103: return "INVALIDMODELRESOURCE";
+ case 104: return "RESOURCENOTFOUND";
+ case 105: return "INVALIDMODEL";
+ case 106: return "INVALIDOBJECT";
+ case 107: return "INVALIDMESHOBJECT";
+ case 108: return "INVALIDCOMPONENTSOBJECT";
+ case 109: return "INVALIDCOMPONENT";
+ case 110: return "INVALIDBUILDITEM";
+ case 111: return "INVALIDBASEMATERIALGROUP";
+ case 112: return "INVALIDSLICESTACKRESOURCE";
+ case 113: return "INVALIDTEXTURERESOURCE";
+ case 114: return "INVALIDCOLORGROUP";
+ case 115: return "INVALIDTEXTURE2DGROUP";
+ case 116: return "INVALIDCOMPOSITEMATERIALS";
+ case 117: return "INVALIDMULTIPROPERTYGROUP";
+ case 120: return "INVALIDRESOURCEINDEX";
+ case 121: return "ATTACHMENTNOTFOUND";
+ case 130: return "FORBIDDENCYCLICREFERENCE";
+ case 131: return "INVALIDATTACHMENTSTREAM";
+ case 132: return "INVALIDPROPERTYCOUNT";
+ case 140: return "UNKOWNPROGRESSIDENTIFIER";
+ case 141: return "ELEMENTCOUNTEXCEEDSLIMIT";
+ case 142: return "INVALIDRESOURCE";
+ case 143: return "INVALIDLEVELSET";
+ case 144: return "COULDNOTFINDTRIANGLESET";
+ case 145: return "INVALIDTRIANGLESETINDEX";
+ case 2000: return "BEAMLATTICE_INVALID_OBJECTTYPE";
+ case 3000: return "INVALIDKEYSTORE";
+ case 3001: return "INVALIDKEYSTORECONSUMER";
+ case 3002: return "KEYSTORECONSUMERNOTFOUND";
+ case 3003: return "KEYSTORERESOURCEDATANOTFOUND";
+ case 3004: return "SECURECONTEXTNOTREGISTERED";
+ case 3005: return "INVALIDKEYSIZE";
+ case 4000: return "INCOMPATIBLEPORTTYPES";
+ case 4001: return "GRAPHISCYCLIC";
+ case 4002: return "INPUTNOTSET";
+ case 4003: return "INVALIDNODECONFIGURATION";
+ default: return "UNKNOWN";
+ }
+ }
+ }
+
+ ///
+ /// Gets the error description (human-readable)
+ ///
+ public string ErrorDescription
+ {
+ get
+ {
+ switch (_errorCode)
+ {
+ case 0: return "success";
+ case 1: return "functionality not implemented";
+ case 2: return "an invalid parameter was passed";
+ case 3: return "a type cast failed";
+ case 4: return "a provided buffer is too small";
+ case 5: return "a generic exception occurred";
+ case 6: return "the library could not be loaded";
+ case 7: return "a required exported symbol could not be found in the library";
+ case 8: return "the version of the binary interface does not match the bindings interface";
+ case 10: return "a calculation has been aborted";
+ case 11: return "functionality should not be called";
+ case 100: return "the queried reader class is unknown";
+ case 101: return "the queried writer class is unknown";
+ case 102: return "the current index of an iterator is invalid";
+ case 103: return "no Model Resource has been given";
+ case 104: return "Resource not found";
+ case 105: return "A model is invalid";
+ case 106: return "An object is invalid";
+ case 107: return "A mesh object is invalid";
+ case 108: return "A components object is invalid";
+ case 109: return "A component is invalid";
+ case 110: return "A build item is invalid";
+ case 111: return "A basematerialgroup is invalid";
+ case 112: return "A slicestack resource is invalid";
+ case 113: return "A texture resource is invalid";
+ case 114: return "A color group resource is invalid";
+ case 115: return "A texture2d group resource is invalid";
+ case 116: return "A composite materials resource is invalid";
+ case 117: return "A MultiPropertyGroup resource is invalid";
+ case 120: return "A resource index is invalid";
+ case 121: return "Attachment not found";
+ case 130: return "A component references one of its ancestors";
+ case 131: return "An attachment stream is invalid";
+ case 132: return "Invalid property count.";
+ case 140: return "A progress identifier is unknown";
+ case 141: return "An element buffer exceeds its spec limit";
+ case 142: return "A resource is invalid";
+ case 143: return "A level set is invalid";
+ case 144: return "Could not find triangle set";
+ case 145: return "Invalid triangle set index";
+ case 2000: return "This object type is not valid for beamlattices";
+ case 3000: return "The keystore object is invalid";
+ case 3001: return "The consumer keystore object is invalid";
+ case 3002: return "A consumer has not been found";
+ case 3003: return "A resource data has not been found";
+ case 3004: return "A Key or Conentent encryption callback has not been registered";
+ case 3005: return "The key size is invalid";
+ case 4000: return "Link could not be added, the port types are incompatible";
+ case 4001: return "The functin graph is cyclic. Only dircected graphs are valid and can be topological sorted.";
+ case 4002: return "The input of a node is not set.";
+ case 4003: return "The selected node configuration is not supported";
+ default: return "unknown error";
+ }
+ }
+ }
+
+ private static string FormatMessage(int errorCode, string errorMessage)
+ {
+ string errorName = GetErrorName(errorCode);
+ string errorDesc = GetErrorDescription(errorCode);
+ if (!string.IsNullOrEmpty(errorMessage))
+ return $"ELib3MFException {errorName} ({errorCode}): {errorDesc} - {errorMessage}";
+ else
+ return $"ELib3MFException {errorName} ({errorCode}): {errorDesc}";
+ }
+
+ private static string GetErrorName(int errorCode)
+ {
+ switch (errorCode)
+ {
+ case 0: return "SUCCESS";
+ case 1: return "NOTIMPLEMENTED";
+ case 2: return "INVALIDPARAM";
+ case 3: return "INVALIDCAST";
+ case 4: return "BUFFERTOOSMALL";
+ case 5: return "GENERICEXCEPTION";
+ case 6: return "COULDNOTLOADLIBRARY";
+ case 7: return "COULDNOTFINDLIBRARYEXPORT";
+ case 8: return "INCOMPATIBLEBINARYVERSION";
+ case 10: return "CALCULATIONABORTED";
+ case 11: return "SHOULDNOTBECALLED";
+ case 100: return "READERCLASSUNKNOWN";
+ case 101: return "WRITERCLASSUNKNOWN";
+ case 102: return "ITERATORINVALIDINDEX";
+ case 103: return "INVALIDMODELRESOURCE";
+ case 104: return "RESOURCENOTFOUND";
+ case 105: return "INVALIDMODEL";
+ case 106: return "INVALIDOBJECT";
+ case 107: return "INVALIDMESHOBJECT";
+ case 108: return "INVALIDCOMPONENTSOBJECT";
+ case 109: return "INVALIDCOMPONENT";
+ case 110: return "INVALIDBUILDITEM";
+ case 111: return "INVALIDBASEMATERIALGROUP";
+ case 112: return "INVALIDSLICESTACKRESOURCE";
+ case 113: return "INVALIDTEXTURERESOURCE";
+ case 114: return "INVALIDCOLORGROUP";
+ case 115: return "INVALIDTEXTURE2DGROUP";
+ case 116: return "INVALIDCOMPOSITEMATERIALS";
+ case 117: return "INVALIDMULTIPROPERTYGROUP";
+ case 120: return "INVALIDRESOURCEINDEX";
+ case 121: return "ATTACHMENTNOTFOUND";
+ case 130: return "FORBIDDENCYCLICREFERENCE";
+ case 131: return "INVALIDATTACHMENTSTREAM";
+ case 132: return "INVALIDPROPERTYCOUNT";
+ case 140: return "UNKOWNPROGRESSIDENTIFIER";
+ case 141: return "ELEMENTCOUNTEXCEEDSLIMIT";
+ case 142: return "INVALIDRESOURCE";
+ case 143: return "INVALIDLEVELSET";
+ case 144: return "COULDNOTFINDTRIANGLESET";
+ case 145: return "INVALIDTRIANGLESETINDEX";
+ case 2000: return "BEAMLATTICE_INVALID_OBJECTTYPE";
+ case 3000: return "INVALIDKEYSTORE";
+ case 3001: return "INVALIDKEYSTORECONSUMER";
+ case 3002: return "KEYSTORECONSUMERNOTFOUND";
+ case 3003: return "KEYSTORERESOURCEDATANOTFOUND";
+ case 3004: return "SECURECONTEXTNOTREGISTERED";
+ case 3005: return "INVALIDKEYSIZE";
+ case 4000: return "INCOMPATIBLEPORTTYPES";
+ case 4001: return "GRAPHISCYCLIC";
+ case 4002: return "INPUTNOTSET";
+ case 4003: return "INVALIDNODECONFIGURATION";
+ default: return "UNKNOWN";
+ }
+ }
+
+ private static string GetErrorDescription(int errorCode)
+ {
+ switch (errorCode)
+ {
+ case 0: return "success";
+ case 1: return "functionality not implemented";
+ case 2: return "an invalid parameter was passed";
+ case 3: return "a type cast failed";
+ case 4: return "a provided buffer is too small";
+ case 5: return "a generic exception occurred";
+ case 6: return "the library could not be loaded";
+ case 7: return "a required exported symbol could not be found in the library";
+ case 8: return "the version of the binary interface does not match the bindings interface";
+ case 10: return "a calculation has been aborted";
+ case 11: return "functionality should not be called";
+ case 100: return "the queried reader class is unknown";
+ case 101: return "the queried writer class is unknown";
+ case 102: return "the current index of an iterator is invalid";
+ case 103: return "no Model Resource has been given";
+ case 104: return "Resource not found";
+ case 105: return "A model is invalid";
+ case 106: return "An object is invalid";
+ case 107: return "A mesh object is invalid";
+ case 108: return "A components object is invalid";
+ case 109: return "A component is invalid";
+ case 110: return "A build item is invalid";
+ case 111: return "A basematerialgroup is invalid";
+ case 112: return "A slicestack resource is invalid";
+ case 113: return "A texture resource is invalid";
+ case 114: return "A color group resource is invalid";
+ case 115: return "A texture2d group resource is invalid";
+ case 116: return "A composite materials resource is invalid";
+ case 117: return "A MultiPropertyGroup resource is invalid";
+ case 120: return "A resource index is invalid";
+ case 121: return "Attachment not found";
+ case 130: return "A component references one of its ancestors";
+ case 131: return "An attachment stream is invalid";
+ case 132: return "Invalid property count.";
+ case 140: return "A progress identifier is unknown";
+ case 141: return "An element buffer exceeds its spec limit";
+ case 142: return "A resource is invalid";
+ case 143: return "A level set is invalid";
+ case 144: return "Could not find triangle set";
+ case 145: return "Invalid triangle set index";
+ case 2000: return "This object type is not valid for beamlattices";
+ case 3000: return "The keystore object is invalid";
+ case 3001: return "The consumer keystore object is invalid";
+ case 3002: return "A consumer has not been found";
+ case 3003: return "A resource data has not been found";
+ case 3004: return "A Key or Conentent encryption callback has not been registered";
+ case 3005: return "The key size is invalid";
+ case 4000: return "Link could not be added, the port types are incompatible";
+ case 4001: return "The functin graph is cyclic. Only dircected graphs are valid and can be topological sorted.";
+ case 4002: return "The input of a node is not set.";
+ case 4003: return "The selected node configuration is not supported";
+ default: return "unknown error";
+ }
+ }
+ }
+
public enum ePropertyType {
NoPropertyType = 0,
BaseMaterial = 1,
@@ -66,7 +354,14 @@ public enum eObjectType {
Other = 0,
Model = 1,
Support = 2,
- SolidSupport = 3
+ SolidSupport = 3,
+ Surface = 4
+ };
+
+ public enum eBooleanOperation {
+ Union = 0,
+ Difference = 1,
+ Intersection = 2
};
public enum eTextureType {
@@ -210,7 +505,10 @@ public enum eImplicitNodeType {
ConstResourceID = 47,
VectorFromScalar = 48,
UnsignedMesh = 49,
- Mod = 50
+ Mod = 50,
+ BeamLattice = 51,
+ FunctionGradient = 52,
+ NormalizeDistance = 53
};
public enum eImplicitPortType {
@@ -561,6 +859,9 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_componentsobjectiterator_getcurrentcomponentsobject", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 ComponentsObjectIterator_GetCurrentComponentsObject (IntPtr Handle, out IntPtr AResource);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobjectiterator_getcurrentbooleanobject", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObjectIterator_GetCurrentBooleanObject (IntPtr Handle, out IntPtr AResource);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_texture2diterator_getcurrenttexture2d", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Texture2DIterator_GetCurrentTexture2D (IntPtr Handle, out IntPtr AResource);
@@ -705,6 +1006,9 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_object_islevelsetobject", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Object_IsLevelSetObject (IntPtr Handle, out Byte AIsLevelSetObject);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_object_isbooleanobject", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 Object_IsBooleanObject (IntPtr Handle, out Byte AIsBooleanObject);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_object_isvalid", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Object_IsValid (IntPtr Handle, out Byte AIsValid);
@@ -876,6 +1180,48 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_levelset_setvolumedata", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 LevelSet_SetVolumeData (IntPtr Handle, IntPtr ATheVolumeData);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_setbaseobject", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_SetBaseObject (IntPtr Handle, IntPtr ABaseObject, ref InternalTransform ATransform);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_getbaseobject", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_GetBaseObject (IntPtr Handle, out IntPtr ABaseObject);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_setbasetransform", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_SetBaseTransform (IntPtr Handle, ref InternalTransform ATransform);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_getbasetransform", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_GetBaseTransform (IntPtr Handle, out InternalTransform ATransform);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_setoperation", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_SetOperation (IntPtr Handle, Int32 AOperation);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_getoperation", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_GetOperation (IntPtr Handle, out Int32 AOperation);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_setcsgmodeenabled", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_SetCSGModeEnabled (IntPtr Handle, Byte ACSGModeEnabled);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_getcsgmodeenabled", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_GetCSGModeEnabled (IntPtr Handle, out Byte ACSGModeEnabled);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_setextractiongridresolution", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_SetExtractionGridResolution (IntPtr Handle, UInt32 AGridResolution);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_getextractiongridresolution", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_GetExtractionGridResolution (IntPtr Handle, out UInt32 AGridResolution);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_getoperandcount", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_GetOperandCount (IntPtr Handle, out UInt32 ACount);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_addoperand", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_AddOperand (IntPtr Handle, IntPtr AOperandObject, ref InternalTransform ATransform);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_getoperand", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_GetOperand (IntPtr Handle, UInt32 AIndex, out IntPtr AOperandObject, out InternalTransform ATransform);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_booleanobject_mergetomeshobject", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BooleanObject_MergeToMeshObject (IntPtr Handle, out IntPtr AMeshObject);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_beamlattice_getminlength", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 BeamLattice_GetMinLength (IntPtr Handle, out Double AMinLength);
@@ -1557,6 +1903,75 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_unsignedmeshnode_getoutputdistance", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 UnsignedMeshNode_GetOutputDistance (IntPtr Handle, out IntPtr ADistance);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_beamlatticenode_getinputbeamlattice", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BeamLatticeNode_GetInputBeamLattice (IntPtr Handle, out IntPtr ABeamLattice);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_beamlatticenode_getinputpos", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BeamLatticeNode_GetInputPos (IntPtr Handle, out IntPtr APos);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_beamlatticenode_getoutputdistance", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BeamLatticeNode_GetOutputDistance (IntPtr Handle, out IntPtr ADistance);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_beamlatticenode_setaccuraterange", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BeamLatticeNode_SetAccurateRange (IntPtr Handle, Double AAccurateRange);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_beamlatticenode_getaccuraterange", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 BeamLatticeNode_GetAccurateRange (IntPtr Handle, out Double AAccurateRange);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getinputfunctionid", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetInputFunctionID (IntPtr Handle, out IntPtr AFunction);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getinputpos", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetInputPos (IntPtr Handle, out IntPtr APos);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getinputstep", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetInputStep (IntPtr Handle, out IntPtr AStep);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_setscalaroutputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_SetScalarOutputName (IntPtr Handle, byte[] AScalarOutputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getscalaroutputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetScalarOutputName (IntPtr Handle, UInt32 sizeScalarOutputName, out UInt32 neededScalarOutputName, IntPtr dataScalarOutputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_setvectorinputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_SetVectorInputName (IntPtr Handle, byte[] AVectorInputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getvectorinputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetVectorInputName (IntPtr Handle, UInt32 sizeVectorInputName, out UInt32 neededVectorInputName, IntPtr dataVectorInputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getoutputnormalizedgradient", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetOutputNormalizedGradient (IntPtr Handle, out IntPtr ANormalizedGradient);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getoutputgradient", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetOutputGradient (IntPtr Handle, out IntPtr AGradient);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_functiongradientnode_getoutputmagnitude", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 FunctionGradientNode_GetOutputMagnitude (IntPtr Handle, out IntPtr AMagnitude);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_getinputfunctionid", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_GetInputFunctionID (IntPtr Handle, out IntPtr AFunction);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_getinputpos", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_GetInputPos (IntPtr Handle, out IntPtr APos);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_getinputstep", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_GetInputStep (IntPtr Handle, out IntPtr AStep);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_setscalaroutputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_SetScalarOutputName (IntPtr Handle, byte[] AScalarOutputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_getscalaroutputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_GetScalarOutputName (IntPtr Handle, UInt32 sizeScalarOutputName, out UInt32 neededScalarOutputName, IntPtr dataScalarOutputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_setvectorinputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_SetVectorInputName (IntPtr Handle, byte[] AVectorInputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_getvectorinputname", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_GetVectorInputName (IntPtr Handle, UInt32 sizeVectorInputName, out UInt32 neededVectorInputName, IntPtr dataVectorInputName);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_normalizedistancenode_getoutputresult", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 NormalizeDistanceNode_GetOutputResult (IntPtr Handle, out IntPtr AResult);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_functioncallnode_getinputfunctionid", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 FunctionCallNode_GetInputFunctionID (IntPtr Handle, out IntPtr AFunction);
@@ -1746,6 +2161,15 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_implicitfunction_addunsignedmeshnode", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 ImplicitFunction_AddUnsignedMeshNode (IntPtr Handle, byte[] AIdentifier, byte[] ADisplayName, byte[] ATag, out IntPtr ANode);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_implicitfunction_addbeamlatticenode", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 ImplicitFunction_AddBeamLatticeNode (IntPtr Handle, byte[] AIdentifier, byte[] ADisplayName, byte[] ATag, out IntPtr ANode);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_implicitfunction_addfunctiongradientnode", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 ImplicitFunction_AddFunctionGradientNode (IntPtr Handle, byte[] AIdentifier, byte[] ADisplayName, byte[] ATag, out IntPtr ANode);
+
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_implicitfunction_addnormalizedistancenode", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 ImplicitFunction_AddNormalizeDistanceNode (IntPtr Handle, byte[] AIdentifier, byte[] ADisplayName, byte[] ATag, out IntPtr ANode);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_implicitfunction_addfunctioncallnode", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 ImplicitFunction_AddFunctionCallNode (IntPtr Handle, byte[] AIdentifier, byte[] ADisplayName, byte[] ATag, out IntPtr ANode);
@@ -2073,6 +2497,9 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_getcomponentsobjectbyid", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_GetComponentsObjectByID (IntPtr Handle, UInt32 AUniqueResourceID, out IntPtr AComponentsObjectInstance);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_getbooleanobjectbyid", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 Model_GetBooleanObjectByID (IntPtr Handle, UInt32 AUniqueResourceID, out IntPtr ABooleanObjectInstance);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_getcolorgroupbyid", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_GetColorGroupByID (IntPtr Handle, UInt32 AUniqueResourceID, out IntPtr AColorGroupInstance);
@@ -2106,6 +2533,9 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_getcomponentsobjects", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_GetComponentsObjects (IntPtr Handle, out IntPtr AResourceIterator);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_getbooleanobjects", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 Model_GetBooleanObjects (IntPtr Handle, out IntPtr AResourceIterator);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_gettexture2ds", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_GetTexture2Ds (IntPtr Handle, out IntPtr AResourceIterator);
@@ -2142,6 +2572,9 @@ public class Lib3MFWrapper
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_addcomponentsobject", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_AddComponentsObject (IntPtr Handle, out IntPtr AComponentsObjectInstance);
+ [DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_addbooleanobject", CallingConvention=CallingConvention.Cdecl)]
+ public unsafe extern static Int32 Model_AddBooleanObject (IntPtr Handle, out IntPtr ABooleanObjectInstance);
+
[DllImport("lib3mf.dll", EntryPoint = "lib3mf_model_addslicestack", CallingConvention=CallingConvention.Cdecl)]
public unsafe extern static Int32 Model_AddSliceStack (IntPtr Handle, Double AZBottom, out IntPtr ASliceStackInstance);
@@ -2629,7 +3062,7 @@ public static void ThrowError(IntPtr Handle, Int32 errorCode)
}
}
- throw new Exception(sMessage + "(# " + errorCode + ")");
+ throw new ELib3MFException(errorCode, sMessage);
}
/**
@@ -2660,6 +3093,7 @@ public static T PolymorphicFactory(IntPtr Handle) where T : class
case 0xDE92510BD2112288: Object = new CObjectIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::ObjectIterator"
case 0xF4196034E2B9FDE6: Object = new CMeshObjectIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshObjectIterator"
case 0x564DE4217ED7614A: Object = new CComponentsObjectIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::ComponentsObjectIterator"
+ case 0xAFF01F512E1FF6AE: Object = new CBooleanObjectIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::BooleanObjectIterator"
case 0x4BD32B4870FFC03B: Object = new CTexture2DIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::Texture2DIterator"
case 0x65E6EDD9362C79CB: Object = new CBaseMaterialGroupIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::BaseMaterialGroupIterator"
case 0x10274A1757C729C0: Object = new CColorGroupIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::ColorGroupIterator"
@@ -2675,6 +3109,7 @@ public static T PolymorphicFactory(IntPtr Handle) where T : class
case 0x2DA2136F577A779C: Object = new CObject(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::Object"
case 0x3B3A6DC6EC610497: Object = new CMeshObject(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshObject"
case 0xE8A7D9C192EFD0E2: Object = new CLevelSet(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::LevelSet"
+ case 0x85FA0E8806B6C357: Object = new CBooleanObject(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::BooleanObject"
case 0x63B3B461B30B4BA5: Object = new CBeamLattice(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::BeamLattice"
case 0x4DF17E76926221C2: Object = new CFunctionReference(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionReference"
case 0xD85B5B6143E787E3: Object = new CVolumeDataColor(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::VolumeDataColor"
@@ -2750,6 +3185,9 @@ public static T PolymorphicFactory(IntPtr Handle) where T : class
case 0xF85C90EDCE6F90A4: Object = new CConstMatNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::ConstMatNode"
case 0x53601FD432E3DEF4: Object = new CMeshNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshNode"
case 0x29985A628251A9CD: Object = new CUnsignedMeshNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::UnsignedMeshNode"
+ case 0x0F3A4EE98F7FEC0C: Object = new CBeamLatticeNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::BeamLatticeNode"
+ case 0x0437E27AEF740121: Object = new CFunctionGradientNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionGradientNode"
+ case 0x817D2E566E73AA8F: Object = new CNormalizeDistanceNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::NormalizeDistanceNode"
case 0x0765C17C952F24E3: Object = new CFunctionCallNode(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionCallNode"
case 0xFC006BC888CAB4D0: Object = new CNodeIterator(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::NodeIterator"
case 0x9EFB2757CA1A5231: Object = new CFunction(Handle) as T; break; // First 64 bits of SHA1 of a string: "Lib3MF::Function"
@@ -3227,6 +3665,22 @@ public CComponentsObject GetCurrentComponentsObject ()
}
+ public class CBooleanObjectIterator : CResourceIterator
+ {
+ public CBooleanObjectIterator (IntPtr NewHandle) : base (NewHandle)
+ {
+ }
+
+ public CBooleanObject GetCurrentBooleanObject ()
+ {
+ IntPtr newResource = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObjectIterator_GetCurrentBooleanObject (Handle, out newResource));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newResource);
+ }
+
+ }
+
public class CTexture2DIterator : CResourceIterator
{
public CTexture2DIterator (IntPtr NewHandle) : base (NewHandle)
@@ -3760,6 +4214,14 @@ public bool IsLevelSetObject ()
return (resultIsLevelSetObject != 0);
}
+ public bool IsBooleanObject ()
+ {
+ Byte resultIsBooleanObject = 0;
+
+ CheckError(Internal.Lib3MFWrapper.Object_IsBooleanObject (Handle, out resultIsBooleanObject));
+ return (resultIsBooleanObject != 0);
+ }
+
public bool IsValid ()
{
Byte resultIsValid = 0;
@@ -4274,6 +4736,126 @@ public void SetVolumeData (CVolumeData ATheVolumeData)
}
+ public class CBooleanObject : CObject
+ {
+ public CBooleanObject (IntPtr NewHandle) : base (NewHandle)
+ {
+ }
+
+ public void SetBaseObject (CObject ABaseObject, sTransform ATransform)
+ {
+ IntPtr ABaseObjectHandle = IntPtr.Zero;
+ if (ABaseObject != null)
+ ABaseObjectHandle = ABaseObject.GetHandle();
+ Internal.InternalTransform intTransform = Internal.Lib3MFWrapper.convertStructToInternal_Transform (ATransform);
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_SetBaseObject (Handle, ABaseObjectHandle, ref intTransform));
+ }
+
+ public CObject GetBaseObject ()
+ {
+ IntPtr newBaseObject = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_GetBaseObject (Handle, out newBaseObject));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newBaseObject);
+ }
+
+ public void SetBaseTransform (sTransform ATransform)
+ {
+ Internal.InternalTransform intTransform = Internal.Lib3MFWrapper.convertStructToInternal_Transform (ATransform);
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_SetBaseTransform (Handle, ref intTransform));
+ }
+
+ public sTransform GetBaseTransform ()
+ {
+ Internal.InternalTransform intresultTransform;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_GetBaseTransform (Handle, out intresultTransform));
+ return Internal.Lib3MFWrapper.convertInternalToStruct_Transform (intresultTransform);
+ }
+
+ public void SetOperation (eBooleanOperation AOperation)
+ {
+ Int32 enumOperation = (Int32) AOperation;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_SetOperation (Handle, enumOperation));
+ }
+
+ public eBooleanOperation GetOperation ()
+ {
+ Int32 resultOperation = 0;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_GetOperation (Handle, out resultOperation));
+ return (eBooleanOperation) (resultOperation);
+ }
+
+ public void SetCSGModeEnabled (bool ACSGModeEnabled)
+ {
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_SetCSGModeEnabled (Handle, (Byte)( ACSGModeEnabled ? 1 : 0 )));
+ }
+
+ public bool GetCSGModeEnabled ()
+ {
+ Byte resultCSGModeEnabled = 0;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_GetCSGModeEnabled (Handle, out resultCSGModeEnabled));
+ return (resultCSGModeEnabled != 0);
+ }
+
+ public void SetExtractionGridResolution (UInt32 AGridResolution)
+ {
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_SetExtractionGridResolution (Handle, AGridResolution));
+ }
+
+ public UInt32 GetExtractionGridResolution ()
+ {
+ UInt32 resultGridResolution = 0;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_GetExtractionGridResolution (Handle, out resultGridResolution));
+ return resultGridResolution;
+ }
+
+ public UInt32 GetOperandCount ()
+ {
+ UInt32 resultCount = 0;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_GetOperandCount (Handle, out resultCount));
+ return resultCount;
+ }
+
+ public void AddOperand (CMeshObject AOperandObject, sTransform ATransform)
+ {
+ IntPtr AOperandObjectHandle = IntPtr.Zero;
+ if (AOperandObject != null)
+ AOperandObjectHandle = AOperandObject.GetHandle();
+ Internal.InternalTransform intTransform = Internal.Lib3MFWrapper.convertStructToInternal_Transform (ATransform);
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_AddOperand (Handle, AOperandObjectHandle, ref intTransform));
+ }
+
+ public sTransform GetOperand (UInt32 AIndex, out CMeshObject AOperandObject)
+ {
+ IntPtr newOperandObject = IntPtr.Zero;
+ Internal.InternalTransform intresultTransform;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_GetOperand (Handle, AIndex, out newOperandObject, out intresultTransform));
+ AOperandObject = Internal.Lib3MFWrapper.PolymorphicFactory(newOperandObject);
+ return Internal.Lib3MFWrapper.convertInternalToStruct_Transform (intresultTransform);
+ }
+
+ public CMeshObject MergeToMeshObject ()
+ {
+ IntPtr newMeshObject = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.BooleanObject_MergeToMeshObject (Handle, out newMeshObject));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newMeshObject);
+ }
+
+ }
+
public class CBeamLattice : CBase
{
public CBeamLattice (IntPtr NewHandle) : base (NewHandle)
@@ -6832,6 +7414,232 @@ public CImplicitPort GetOutputDistance ()
}
+ public class CBeamLatticeNode : CImplicitNode
+ {
+ public CBeamLatticeNode (IntPtr NewHandle) : base (NewHandle)
+ {
+ }
+
+ public CImplicitPort GetInputBeamLattice ()
+ {
+ IntPtr newBeamLattice = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.BeamLatticeNode_GetInputBeamLattice (Handle, out newBeamLattice));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newBeamLattice);
+ }
+
+ public CImplicitPort GetInputPos ()
+ {
+ IntPtr newPos = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.BeamLatticeNode_GetInputPos (Handle, out newPos));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newPos);
+ }
+
+ public CImplicitPort GetOutputDistance ()
+ {
+ IntPtr newDistance = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.BeamLatticeNode_GetOutputDistance (Handle, out newDistance));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newDistance);
+ }
+
+ public void SetAccurateRange (Double AAccurateRange)
+ {
+
+ CheckError(Internal.Lib3MFWrapper.BeamLatticeNode_SetAccurateRange (Handle, AAccurateRange));
+ }
+
+ public Double GetAccurateRange ()
+ {
+ Double resultAccurateRange = 0;
+
+ CheckError(Internal.Lib3MFWrapper.BeamLatticeNode_GetAccurateRange (Handle, out resultAccurateRange));
+ return resultAccurateRange;
+ }
+
+ }
+
+ public class CFunctionGradientNode : CImplicitNode
+ {
+ public CFunctionGradientNode (IntPtr NewHandle) : base (NewHandle)
+ {
+ }
+
+ public CImplicitPort GetInputFunctionID ()
+ {
+ IntPtr newFunction = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetInputFunctionID (Handle, out newFunction));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newFunction);
+ }
+
+ public CImplicitPort GetInputPos ()
+ {
+ IntPtr newPos = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetInputPos (Handle, out newPos));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newPos);
+ }
+
+ public CImplicitPort GetInputStep ()
+ {
+ IntPtr newStep = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetInputStep (Handle, out newStep));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newStep);
+ }
+
+ public void SetScalarOutputName (String AScalarOutputName)
+ {
+ byte[] byteScalarOutputName = Encoding.UTF8.GetBytes(AScalarOutputName + char.MinValue);
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_SetScalarOutputName (Handle, byteScalarOutputName));
+ }
+
+ public String GetScalarOutputName ()
+ {
+ UInt32 sizeScalarOutputName = 0;
+ UInt32 neededScalarOutputName = 0;
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetScalarOutputName (Handle, sizeScalarOutputName, out neededScalarOutputName, IntPtr.Zero));
+ sizeScalarOutputName = neededScalarOutputName;
+ byte[] bytesScalarOutputName = new byte[sizeScalarOutputName];
+ GCHandle dataScalarOutputName = GCHandle.Alloc(bytesScalarOutputName, GCHandleType.Pinned);
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetScalarOutputName (Handle, sizeScalarOutputName, out neededScalarOutputName, dataScalarOutputName.AddrOfPinnedObject()));
+ dataScalarOutputName.Free();
+ return Encoding.UTF8.GetString(bytesScalarOutputName).TrimEnd(char.MinValue);
+ }
+
+ public void SetVectorInputName (String AVectorInputName)
+ {
+ byte[] byteVectorInputName = Encoding.UTF8.GetBytes(AVectorInputName + char.MinValue);
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_SetVectorInputName (Handle, byteVectorInputName));
+ }
+
+ public String GetVectorInputName ()
+ {
+ UInt32 sizeVectorInputName = 0;
+ UInt32 neededVectorInputName = 0;
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetVectorInputName (Handle, sizeVectorInputName, out neededVectorInputName, IntPtr.Zero));
+ sizeVectorInputName = neededVectorInputName;
+ byte[] bytesVectorInputName = new byte[sizeVectorInputName];
+ GCHandle dataVectorInputName = GCHandle.Alloc(bytesVectorInputName, GCHandleType.Pinned);
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetVectorInputName (Handle, sizeVectorInputName, out neededVectorInputName, dataVectorInputName.AddrOfPinnedObject()));
+ dataVectorInputName.Free();
+ return Encoding.UTF8.GetString(bytesVectorInputName).TrimEnd(char.MinValue);
+ }
+
+ public CImplicitPort GetOutputNormalizedGradient ()
+ {
+ IntPtr newNormalizedGradient = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetOutputNormalizedGradient (Handle, out newNormalizedGradient));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newNormalizedGradient);
+ }
+
+ public CImplicitPort GetOutputGradient ()
+ {
+ IntPtr newGradient = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetOutputGradient (Handle, out newGradient));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newGradient);
+ }
+
+ public CImplicitPort GetOutputMagnitude ()
+ {
+ IntPtr newMagnitude = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.FunctionGradientNode_GetOutputMagnitude (Handle, out newMagnitude));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newMagnitude);
+ }
+
+ }
+
+ public class CNormalizeDistanceNode : CImplicitNode
+ {
+ public CNormalizeDistanceNode (IntPtr NewHandle) : base (NewHandle)
+ {
+ }
+
+ public CImplicitPort GetInputFunctionID ()
+ {
+ IntPtr newFunction = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetInputFunctionID (Handle, out newFunction));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newFunction);
+ }
+
+ public CImplicitPort GetInputPos ()
+ {
+ IntPtr newPos = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetInputPos (Handle, out newPos));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newPos);
+ }
+
+ public CImplicitPort GetInputStep ()
+ {
+ IntPtr newStep = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetInputStep (Handle, out newStep));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newStep);
+ }
+
+ public void SetScalarOutputName (String AScalarOutputName)
+ {
+ byte[] byteScalarOutputName = Encoding.UTF8.GetBytes(AScalarOutputName + char.MinValue);
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_SetScalarOutputName (Handle, byteScalarOutputName));
+ }
+
+ public String GetScalarOutputName ()
+ {
+ UInt32 sizeScalarOutputName = 0;
+ UInt32 neededScalarOutputName = 0;
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetScalarOutputName (Handle, sizeScalarOutputName, out neededScalarOutputName, IntPtr.Zero));
+ sizeScalarOutputName = neededScalarOutputName;
+ byte[] bytesScalarOutputName = new byte[sizeScalarOutputName];
+ GCHandle dataScalarOutputName = GCHandle.Alloc(bytesScalarOutputName, GCHandleType.Pinned);
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetScalarOutputName (Handle, sizeScalarOutputName, out neededScalarOutputName, dataScalarOutputName.AddrOfPinnedObject()));
+ dataScalarOutputName.Free();
+ return Encoding.UTF8.GetString(bytesScalarOutputName).TrimEnd(char.MinValue);
+ }
+
+ public void SetVectorInputName (String AVectorInputName)
+ {
+ byte[] byteVectorInputName = Encoding.UTF8.GetBytes(AVectorInputName + char.MinValue);
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_SetVectorInputName (Handle, byteVectorInputName));
+ }
+
+ public String GetVectorInputName ()
+ {
+ UInt32 sizeVectorInputName = 0;
+ UInt32 neededVectorInputName = 0;
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetVectorInputName (Handle, sizeVectorInputName, out neededVectorInputName, IntPtr.Zero));
+ sizeVectorInputName = neededVectorInputName;
+ byte[] bytesVectorInputName = new byte[sizeVectorInputName];
+ GCHandle dataVectorInputName = GCHandle.Alloc(bytesVectorInputName, GCHandleType.Pinned);
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetVectorInputName (Handle, sizeVectorInputName, out neededVectorInputName, dataVectorInputName.AddrOfPinnedObject()));
+ dataVectorInputName.Free();
+ return Encoding.UTF8.GetString(bytesVectorInputName).TrimEnd(char.MinValue);
+ }
+
+ public CImplicitPort GetOutputResult ()
+ {
+ IntPtr newResult = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.NormalizeDistanceNode_GetOutputResult (Handle, out newResult));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newResult);
+ }
+
+ }
+
public class CFunctionCallNode : CImplicitNode
{
public CFunctionCallNode (IntPtr NewHandle) : base (NewHandle)
@@ -7566,6 +8374,39 @@ public CUnsignedMeshNode AddUnsignedMeshNode (String AIdentifier, String ADispla
return Internal.Lib3MFWrapper.PolymorphicFactory(newNode);
}
+ public CBeamLatticeNode AddBeamLatticeNode (String AIdentifier, String ADisplayName, String ATag)
+ {
+ byte[] byteIdentifier = Encoding.UTF8.GetBytes(AIdentifier + char.MinValue);
+ byte[] byteDisplayName = Encoding.UTF8.GetBytes(ADisplayName + char.MinValue);
+ byte[] byteTag = Encoding.UTF8.GetBytes(ATag + char.MinValue);
+ IntPtr newNode = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.ImplicitFunction_AddBeamLatticeNode (Handle, byteIdentifier, byteDisplayName, byteTag, out newNode));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newNode);
+ }
+
+ public CFunctionGradientNode AddFunctionGradientNode (String AIdentifier, String ADisplayName, String ATag)
+ {
+ byte[] byteIdentifier = Encoding.UTF8.GetBytes(AIdentifier + char.MinValue);
+ byte[] byteDisplayName = Encoding.UTF8.GetBytes(ADisplayName + char.MinValue);
+ byte[] byteTag = Encoding.UTF8.GetBytes(ATag + char.MinValue);
+ IntPtr newNode = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.ImplicitFunction_AddFunctionGradientNode (Handle, byteIdentifier, byteDisplayName, byteTag, out newNode));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newNode);
+ }
+
+ public CNormalizeDistanceNode AddNormalizeDistanceNode (String AIdentifier, String ADisplayName, String ATag)
+ {
+ byte[] byteIdentifier = Encoding.UTF8.GetBytes(AIdentifier + char.MinValue);
+ byte[] byteDisplayName = Encoding.UTF8.GetBytes(ADisplayName + char.MinValue);
+ byte[] byteTag = Encoding.UTF8.GetBytes(ATag + char.MinValue);
+ IntPtr newNode = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.ImplicitFunction_AddNormalizeDistanceNode (Handle, byteIdentifier, byteDisplayName, byteTag, out newNode));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newNode);
+ }
+
public CFunctionCallNode AddFunctionCallNode (String AIdentifier, String ADisplayName, String ATag)
{
byte[] byteIdentifier = Encoding.UTF8.GetBytes(AIdentifier + char.MinValue);
@@ -8674,6 +9515,14 @@ public CComponentsObject GetComponentsObjectByID (UInt32 AUniqueResourceID)
return Internal.Lib3MFWrapper.PolymorphicFactory(newComponentsObjectInstance);
}
+ public CBooleanObject GetBooleanObjectByID (UInt32 AUniqueResourceID)
+ {
+ IntPtr newBooleanObjectInstance = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.Model_GetBooleanObjectByID (Handle, AUniqueResourceID, out newBooleanObjectInstance));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newBooleanObjectInstance);
+ }
+
public CColorGroup GetColorGroupByID (UInt32 AUniqueResourceID)
{
IntPtr newColorGroupInstance = IntPtr.Zero;
@@ -8769,6 +9618,14 @@ public CComponentsObjectIterator GetComponentsObjects ()
return Internal.Lib3MFWrapper.PolymorphicFactory(newResourceIterator);
}
+ public CBooleanObjectIterator GetBooleanObjects ()
+ {
+ IntPtr newResourceIterator = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.Model_GetBooleanObjects (Handle, out newResourceIterator));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newResourceIterator);
+ }
+
public CTexture2DIterator GetTexture2Ds ()
{
IntPtr newResourceIterator = IntPtr.Zero;
@@ -8866,6 +9723,14 @@ public CComponentsObject AddComponentsObject ()
return Internal.Lib3MFWrapper.PolymorphicFactory(newComponentsObjectInstance);
}
+ public CBooleanObject AddBooleanObject ()
+ {
+ IntPtr newBooleanObjectInstance = IntPtr.Zero;
+
+ CheckError(Internal.Lib3MFWrapper.Model_AddBooleanObject (Handle, out newBooleanObjectInstance));
+ return Internal.Lib3MFWrapper.PolymorphicFactory(newBooleanObjectInstance);
+ }
+
public CSliceStack AddSliceStack (Double AZBottom)
{
IntPtr newSliceStackInstance = IntPtr.Zero;
@@ -9141,7 +10006,7 @@ public void RemoveResource (CResource AResource)
}
- class Wrapper
+ public class Wrapper
{
private static void CheckError (Int32 errorCode)
{
diff --git a/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp b/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp
index b7f5c96da..b247b7351 100644
--- a/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp
+++ b/Autogenerated/Bindings/Cpp/lib3mf_abi.hpp
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated C++-Header file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -497,6 +497,19 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_meshobjectiterator_getcurrentmeshobject(Lib3
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_componentsobjectiterator_getcurrentcomponentsobject(Lib3MF_ComponentsObjectIterator pComponentsObjectIterator, Lib3MF_ComponentsObject * pResource);
+/*************************************************************************************************************************
+ Class definition for BooleanObjectIterator
+**************************************************************************************************************************/
+
+/**
+* Returns the BooleanObject the iterator points at.
+*
+* @param[in] pBooleanObjectIterator - BooleanObjectIterator instance.
+* @param[out] pResource - returns the BooleanObject instance.
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobjectiterator_getcurrentbooleanobject(Lib3MF_BooleanObjectIterator pBooleanObjectIterator, Lib3MF_BooleanObject * pResource);
+
/*************************************************************************************************************************
Class definition for Texture2DIterator
**************************************************************************************************************************/
@@ -1011,6 +1024,15 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_object_iscomponentsobject(Lib3MF_Object pObj
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_object_islevelsetobject(Lib3MF_Object pObject, bool * pIsLevelSetObject);
+/**
+* Retrieves, if an object is a boolean object
+*
+* @param[in] pObject - Object instance.
+* @param[out] pIsBooleanObject - returns, whether the object is a boolean object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_object_isbooleanobject(Lib3MF_Object pObject, bool * pIsBooleanObject);
+
/**
* Retrieves, if the object is valid according to the core spec. For mesh objects, we distinguish between the type attribute of the object:In case of object type other, this always means false.In case of object type model or solidsupport, this means, if the mesh suffices all requirements of the core spec chapter 4.1.In case of object type support or surface, this always means true.A component objects is valid if and only if it contains at least one component and all child components are valid objects.
*
@@ -1561,6 +1583,140 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_levelset_getvolumedata(Lib3MF_LevelSet pLeve
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_levelset_setvolumedata(Lib3MF_LevelSet pLevelSet, Lib3MF_VolumeData pTheVolumeData);
+/*************************************************************************************************************************
+ Class definition for BooleanObject
+**************************************************************************************************************************/
+
+/**
+* Sets the base object and transform for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pBaseObject - base object of the boolean shape
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setbaseobject(Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object pBaseObject, const Lib3MF::sTransform * pTransform);
+
+/**
+* Returns the base object of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pBaseObject - base object of the boolean shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getbaseobject(Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object * pBaseObject);
+
+/**
+* Sets the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setbasetransform(Lib3MF_BooleanObject pBooleanObject, const Lib3MF::sTransform * pTransform);
+
+/**
+* Returns the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getbasetransform(Lib3MF_BooleanObject pBooleanObject, Lib3MF::sTransform * pTransform);
+
+/**
+* Sets the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] eOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setoperation(Lib3MF_BooleanObject pBooleanObject, Lib3MF::eBooleanOperation eOperation);
+
+/**
+* Returns the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getoperation(Lib3MF_BooleanObject pBooleanObject, Lib3MF::eBooleanOperation * pOperation);
+
+/**
+* Enables or disables CSG field evaluation for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] bCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setcsgmodeenabled(Lib3MF_BooleanObject pBooleanObject, bool bCSGModeEnabled);
+
+/**
+* Returns whether CSG field evaluation is enabled for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getcsgmodeenabled(Lib3MF_BooleanObject pBooleanObject, bool * pCSGModeEnabled);
+
+/**
+* Sets the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_setextractiongridresolution(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nGridResolution);
+
+/**
+* Returns the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getextractiongridresolution(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pGridResolution);
+
+/**
+* Returns the number of operands in the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCount - number of operands in the boolean sequence
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getoperandcount(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pCount);
+
+/**
+* Adds an operand object to the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pOperandObject - mesh object used as operand
+* @param[in] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_addoperand(Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject pOperandObject, const Lib3MF::sTransform * pTransform);
+
+/**
+* Returns one operand object and transform from the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nIndex - index of the operand in the boolean sequence
+* @param[out] pOperandObject - mesh object used as operand
+* @param[out] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_getoperand(Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nIndex, Lib3MF_MeshObject * pOperandObject, Lib3MF::sTransform * pTransform);
+
+/**
+* Materializes the boolean shape into a newly created mesh object.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pMeshObject - new mesh object containing the tessellated boolean shape
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_booleanobject_mergetomeshobject(Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject * pMeshObject);
+
/*************************************************************************************************************************
Class definition for BeamLattice
**************************************************************************************************************************/
@@ -1926,7 +2082,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_setbasematerialgroup(Lib
LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_getmaterialmappingcount(Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 * pCount);
/**
-* Returns MaterialMappting with given index
+* Returns MaterialMapping with given index
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] nIndex - Index of the MaterialMapping in question.
@@ -1936,7 +2092,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_getmaterialmappingcount(
LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedatacomposite_getmaterialmapping(Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 nIndex, Lib3MF_MaterialMapping * pTheMaterialMapping);
/**
-* Adds a the MaterialMapping
+* Adds a MaterialMapping
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] pTransform - new transformation matrix
@@ -2048,7 +2204,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedata_removecolor(Lib3MF_VolumeData pVo
* Returns the number of VolumeDataProperty
*
* @param[in] pVolumeData - VolumeData instance.
-* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumdeData
+* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumeData
* @return error code or 0 (success)
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_volumedata_getpropertycount(Lib3MF_VolumeData pVolumeData, Lib3MF_uint32 * pCount);
@@ -2873,7 +3029,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_setrelationshiptype(Lib3MF_Attach
LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_writetofile(Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pFileName - file to read from.
@@ -2882,7 +3038,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_writetofile(Lib3MF_Attachment pAt
LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_readfromfile(Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pTheReadCallback - Callback to call for reading a data chunk
@@ -2914,7 +3070,7 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_getstreamsize(Lib3MF_Attachment p
LIB3MF_DECLSPEC Lib3MFResult lib3mf_attachment_writetobuffer(Lib3MF_Attachment pAttachment, const Lib3MF_uint64 nBufferBufferSize, Lib3MF_uint64* pBufferNeededCount, Lib3MF_uint8 * pBufferBuffer);
/**
-* Reads an attachment from a memory buffer. This buffer is immediatly read (in contrast to the ReadFromCallback and ReadFromFile-methods).
+* Reads an attachment from a memory buffer. This buffer is immediately read (in contrast to the ReadFromCallback and ReadFromFile-methods).
*
* @param[in] pAttachment - Attachment instance.
* @param[in] nBufferBufferSize - Number of elements in buffer
@@ -4026,6 +4182,233 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_unsignedmeshnode_getinputpos(Lib3MF_Unsigned
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_unsignedmeshnode_getoutputdistance(Lib3MF_UnsignedMeshNode pUnsignedMeshNode, Lib3MF_ImplicitPort * pDistance);
+/*************************************************************************************************************************
+ Class definition for BeamLatticeNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the model resource id of the beam lattice
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pBeamLattice - the input port for the model resource id of the beam lattice (mesh with beamlattice extension)
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getinputbeamlattice(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pBeamLattice);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getinputpos(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the output
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pDistance - the output port for the signed distance to the beam lattice
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getoutputdistance(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pDistance);
+
+/**
+* Sets the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[in] dAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_setaccuraterange(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double dAccurateRange);
+
+/**
+* Retrieves the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_beamlatticenode_getaccuraterange(Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double * pAccurateRange);
+
+/*************************************************************************************************************************
+ Class definition for FunctionGradientNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getinputfunctionid(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getinputpos(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getinputstep(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_setscalaroutputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getscalaroutputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_setvectorinputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getvectorinputname(Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pNormalizedGradient - the output port for the normalized gradient
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getoutputnormalizedgradient(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pNormalizedGradient);
+
+/**
+* Retrieves the raw gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pGradient - the output port for the raw gradient
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getoutputgradient(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pGradient);
+
+/**
+* Retrieves the gradient magnitude output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pMagnitude - the output port for the gradient magnitude
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_functiongradientnode_getoutputmagnitude(Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pMagnitude);
+
+/*************************************************************************************************************************
+ Class definition for NormalizeDistanceNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getinputfunctionid(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pPos - the input port for the position (vector)
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getinputpos(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getinputstep(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_setscalaroutputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getscalaroutputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_setvectorinputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getvectorinputname(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized result output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pResult - the output port for the normalized distance
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_normalizedistancenode_getoutputresult(Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pResult);
+
/*************************************************************************************************************************
Class definition for FunctionCallNode
**************************************************************************************************************************/
@@ -4801,6 +5184,42 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addmeshnode(Lib3MF_Implicit
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addunsignedmeshnode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_UnsignedMeshNode * pNode);
+/**
+* Add a BeamLatticeNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addbeamlatticenode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_BeamLatticeNode * pNode);
+
+/**
+* Add a FunctionGradientNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addfunctiongradientnode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_FunctionGradientNode * pNode);
+
+/**
+* Add a NormalizeDistanceNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_implicitfunction_addnormalizedistancenode(Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_NormalizeDistanceNode * pNode);
+
/**
* Add a FunctionCallNode
*
@@ -5915,6 +6334,16 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getmeshobjectbyid(Lib3MF_Model pModel,
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getcomponentsobjectbyid(Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* finds a boolean object by its UniqueResourceID
+*
+* @param[in] pModel - Model instance.
+* @param[in] nUniqueResourceID - UniqueResourceID
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getbooleanobjectbyid(Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* finds a model color group by its UniqueResourceID
*
@@ -6020,6 +6449,15 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getmeshobjects(Lib3MF_Model pModel, Li
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getcomponentsobjects(Lib3MF_Model pModel, Lib3MF_ComponentsObjectIterator * pResourceIterator);
+/**
+* creates a resource iterator instance with all boolean object resources.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pResourceIterator - returns the iterator instance.
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_getbooleanobjects(Lib3MF_Model pModel, Lib3MF_BooleanObjectIterator * pResourceIterator);
+
/**
* creates a Texture2DIterator instance with all texture2d resources.
*
@@ -6128,6 +6566,15 @@ LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addmeshobject(Lib3MF_Model pModel, Lib
*/
LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addcomponentsobject(Lib3MF_Model pModel, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* adds an empty boolean object to the model.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+LIB3MF_DECLSPEC Lib3MFResult lib3mf_model_addbooleanobject(Lib3MF_Model pModel, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* creates a new model slicestack by its id
*
diff --git a/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp b/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp
index 3eb2e2b82..c0a282adb 100644
--- a/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp
+++ b/Autogenerated/Bindings/Cpp/lib3mf_implicit.hpp
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated C++-Header file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -67,6 +67,7 @@ class CSliceStackIterator;
class CObjectIterator;
class CMeshObjectIterator;
class CComponentsObjectIterator;
+class CBooleanObjectIterator;
class CTexture2DIterator;
class CBaseMaterialGroupIterator;
class CColorGroupIterator;
@@ -82,6 +83,7 @@ class CTriangleSet;
class CObject;
class CMeshObject;
class CLevelSet;
+class CBooleanObject;
class CBeamLattice;
class CFunctionReference;
class CVolumeDataColor;
@@ -157,6 +159,9 @@ class CConstVecNode;
class CConstMatNode;
class CMeshNode;
class CUnsignedMeshNode;
+class CBeamLatticeNode;
+class CFunctionGradientNode;
+class CNormalizeDistanceNode;
class CFunctionCallNode;
class CNodeIterator;
class CFunction;
@@ -188,6 +193,7 @@ typedef CSliceStackIterator CLib3MFSliceStackIterator;
typedef CObjectIterator CLib3MFObjectIterator;
typedef CMeshObjectIterator CLib3MFMeshObjectIterator;
typedef CComponentsObjectIterator CLib3MFComponentsObjectIterator;
+typedef CBooleanObjectIterator CLib3MFBooleanObjectIterator;
typedef CTexture2DIterator CLib3MFTexture2DIterator;
typedef CBaseMaterialGroupIterator CLib3MFBaseMaterialGroupIterator;
typedef CColorGroupIterator CLib3MFColorGroupIterator;
@@ -203,6 +209,7 @@ typedef CTriangleSet CLib3MFTriangleSet;
typedef CObject CLib3MFObject;
typedef CMeshObject CLib3MFMeshObject;
typedef CLevelSet CLib3MFLevelSet;
+typedef CBooleanObject CLib3MFBooleanObject;
typedef CBeamLattice CLib3MFBeamLattice;
typedef CFunctionReference CLib3MFFunctionReference;
typedef CVolumeDataColor CLib3MFVolumeDataColor;
@@ -278,6 +285,9 @@ typedef CConstVecNode CLib3MFConstVecNode;
typedef CConstMatNode CLib3MFConstMatNode;
typedef CMeshNode CLib3MFMeshNode;
typedef CUnsignedMeshNode CLib3MFUnsignedMeshNode;
+typedef CBeamLatticeNode CLib3MFBeamLatticeNode;
+typedef CFunctionGradientNode CLib3MFFunctionGradientNode;
+typedef CNormalizeDistanceNode CLib3MFNormalizeDistanceNode;
typedef CFunctionCallNode CLib3MFFunctionCallNode;
typedef CNodeIterator CLib3MFNodeIterator;
typedef CFunction CLib3MFFunction;
@@ -309,6 +319,7 @@ typedef std::shared_ptr PSliceStackIterator;
typedef std::shared_ptr PObjectIterator;
typedef std::shared_ptr PMeshObjectIterator;
typedef std::shared_ptr PComponentsObjectIterator;
+typedef std::shared_ptr PBooleanObjectIterator;
typedef std::shared_ptr PTexture2DIterator;
typedef std::shared_ptr PBaseMaterialGroupIterator;
typedef std::shared_ptr PColorGroupIterator;
@@ -324,6 +335,7 @@ typedef std::shared_ptr PTriangleSet;
typedef std::shared_ptr PObject;
typedef std::shared_ptr PMeshObject;
typedef std::shared_ptr PLevelSet;
+typedef std::shared_ptr PBooleanObject;
typedef std::shared_ptr PBeamLattice;
typedef std::shared_ptr PFunctionReference;
typedef std::shared_ptr PVolumeDataColor;
@@ -399,6 +411,9 @@ typedef std::shared_ptr PConstVecNode;
typedef std::shared_ptr PConstMatNode;
typedef std::shared_ptr PMeshNode;
typedef std::shared_ptr PUnsignedMeshNode;
+typedef std::shared_ptr PBeamLatticeNode;
+typedef std::shared_ptr PFunctionGradientNode;
+typedef std::shared_ptr PNormalizeDistanceNode;
typedef std::shared_ptr PFunctionCallNode;
typedef std::shared_ptr PNodeIterator;
typedef std::shared_ptr PFunction;
@@ -430,6 +445,7 @@ typedef PSliceStackIterator PLib3MFSliceStackIterator;
typedef PObjectIterator PLib3MFObjectIterator;
typedef PMeshObjectIterator PLib3MFMeshObjectIterator;
typedef PComponentsObjectIterator PLib3MFComponentsObjectIterator;
+typedef PBooleanObjectIterator PLib3MFBooleanObjectIterator;
typedef PTexture2DIterator PLib3MFTexture2DIterator;
typedef PBaseMaterialGroupIterator PLib3MFBaseMaterialGroupIterator;
typedef PColorGroupIterator PLib3MFColorGroupIterator;
@@ -445,6 +461,7 @@ typedef PTriangleSet PLib3MFTriangleSet;
typedef PObject PLib3MFObject;
typedef PMeshObject PLib3MFMeshObject;
typedef PLevelSet PLib3MFLevelSet;
+typedef PBooleanObject PLib3MFBooleanObject;
typedef PBeamLattice PLib3MFBeamLattice;
typedef PFunctionReference PLib3MFFunctionReference;
typedef PVolumeDataColor PLib3MFVolumeDataColor;
@@ -520,6 +537,9 @@ typedef PConstVecNode PLib3MFConstVecNode;
typedef PConstMatNode PLib3MFConstMatNode;
typedef PMeshNode PLib3MFMeshNode;
typedef PUnsignedMeshNode PLib3MFUnsignedMeshNode;
+typedef PBeamLatticeNode PLib3MFBeamLatticeNode;
+typedef PFunctionGradientNode PLib3MFFunctionGradientNode;
+typedef PNormalizeDistanceNode PLib3MFNormalizeDistanceNode;
typedef PFunctionCallNode PLib3MFFunctionCallNode;
typedef PNodeIterator PLib3MFNodeIterator;
typedef PFunction PLib3MFFunction;
@@ -843,6 +863,7 @@ class CWrapper {
friend class CObjectIterator;
friend class CMeshObjectIterator;
friend class CComponentsObjectIterator;
+ friend class CBooleanObjectIterator;
friend class CTexture2DIterator;
friend class CBaseMaterialGroupIterator;
friend class CColorGroupIterator;
@@ -858,6 +879,7 @@ class CWrapper {
friend class CObject;
friend class CMeshObject;
friend class CLevelSet;
+ friend class CBooleanObject;
friend class CBeamLattice;
friend class CFunctionReference;
friend class CVolumeDataColor;
@@ -933,6 +955,9 @@ class CWrapper {
friend class CConstMatNode;
friend class CMeshNode;
friend class CUnsignedMeshNode;
+ friend class CBeamLatticeNode;
+ friend class CFunctionGradientNode;
+ friend class CNormalizeDistanceNode;
friend class CFunctionCallNode;
friend class CNodeIterator;
friend class CFunction;
@@ -1008,6 +1033,8 @@ class CBase {
friend class CWrapper;
inline Lib3MF_uint64 ClassTypeId();
+
+protected:
};
/*************************************************************************************************************************
@@ -1195,6 +1222,23 @@ class CComponentsObjectIterator : public CResourceIterator {
inline PComponentsObject GetCurrentComponentsObject();
};
+/*************************************************************************************************************************
+ Class CBooleanObjectIterator
+**************************************************************************************************************************/
+class CBooleanObjectIterator : public CResourceIterator {
+public:
+
+ /**
+ * CBooleanObjectIterator::CBooleanObjectIterator - Constructor for BooleanObjectIterator class.
+ */
+ CBooleanObjectIterator(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CResourceIterator(pWrapper, pHandle)
+ {
+ }
+
+ inline PBooleanObject GetCurrentBooleanObject();
+};
+
/*************************************************************************************************************************
Class CTexture2DIterator
**************************************************************************************************************************/
@@ -1449,6 +1493,7 @@ class CObject : public CResource {
inline bool IsMeshObject();
inline bool IsComponentsObject();
inline bool IsLevelSetObject();
+ inline bool IsBooleanObject();
inline bool IsValid();
inline void SetAttachmentAsThumbnail(classParam pAttachment);
inline PAttachment GetThumbnailAttachment();
@@ -1540,6 +1585,36 @@ class CLevelSet : public CObject {
inline void SetVolumeData(classParam pTheVolumeData);
};
+/*************************************************************************************************************************
+ Class CBooleanObject
+**************************************************************************************************************************/
+class CBooleanObject : public CObject {
+public:
+
+ /**
+ * CBooleanObject::CBooleanObject - Constructor for BooleanObject class.
+ */
+ CBooleanObject(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CObject(pWrapper, pHandle)
+ {
+ }
+
+ inline void SetBaseObject(classParam pBaseObject, const sTransform & Transform);
+ inline PObject GetBaseObject();
+ inline void SetBaseTransform(const sTransform & Transform);
+ inline sTransform GetBaseTransform();
+ inline void SetOperation(const eBooleanOperation eOperation);
+ inline eBooleanOperation GetOperation();
+ inline void SetCSGModeEnabled(const bool bCSGModeEnabled);
+ inline bool GetCSGModeEnabled();
+ inline void SetExtractionGridResolution(const Lib3MF_uint32 nGridResolution);
+ inline Lib3MF_uint32 GetExtractionGridResolution();
+ inline Lib3MF_uint32 GetOperandCount();
+ inline void AddOperand(classParam pOperandObject, const sTransform & Transform);
+ inline sTransform GetOperand(const Lib3MF_uint32 nIndex, PMeshObject & pOperandObject);
+ inline PMeshObject MergeToMeshObject();
+};
+
/*************************************************************************************************************************
Class CBeamLattice
**************************************************************************************************************************/
@@ -2967,6 +3042,77 @@ class CUnsignedMeshNode : public CImplicitNode {
inline PImplicitPort GetOutputDistance();
};
+/*************************************************************************************************************************
+ Class CBeamLatticeNode
+**************************************************************************************************************************/
+class CBeamLatticeNode : public CImplicitNode {
+public:
+
+ /**
+ * CBeamLatticeNode::CBeamLatticeNode - Constructor for BeamLatticeNode class.
+ */
+ CBeamLatticeNode(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CImplicitNode(pWrapper, pHandle)
+ {
+ }
+
+ inline PImplicitPort GetInputBeamLattice();
+ inline PImplicitPort GetInputPos();
+ inline PImplicitPort GetOutputDistance();
+ inline void SetAccurateRange(const Lib3MF_double dAccurateRange);
+ inline Lib3MF_double GetAccurateRange();
+};
+
+/*************************************************************************************************************************
+ Class CFunctionGradientNode
+**************************************************************************************************************************/
+class CFunctionGradientNode : public CImplicitNode {
+public:
+
+ /**
+ * CFunctionGradientNode::CFunctionGradientNode - Constructor for FunctionGradientNode class.
+ */
+ CFunctionGradientNode(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CImplicitNode(pWrapper, pHandle)
+ {
+ }
+
+ inline PImplicitPort GetInputFunctionID();
+ inline PImplicitPort GetInputPos();
+ inline PImplicitPort GetInputStep();
+ inline void SetScalarOutputName(const std::string & sScalarOutputName);
+ inline std::string GetScalarOutputName();
+ inline void SetVectorInputName(const std::string & sVectorInputName);
+ inline std::string GetVectorInputName();
+ inline PImplicitPort GetOutputNormalizedGradient();
+ inline PImplicitPort GetOutputGradient();
+ inline PImplicitPort GetOutputMagnitude();
+};
+
+/*************************************************************************************************************************
+ Class CNormalizeDistanceNode
+**************************************************************************************************************************/
+class CNormalizeDistanceNode : public CImplicitNode {
+public:
+
+ /**
+ * CNormalizeDistanceNode::CNormalizeDistanceNode - Constructor for NormalizeDistanceNode class.
+ */
+ CNormalizeDistanceNode(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CImplicitNode(pWrapper, pHandle)
+ {
+ }
+
+ inline PImplicitPort GetInputFunctionID();
+ inline PImplicitPort GetInputPos();
+ inline PImplicitPort GetInputStep();
+ inline void SetScalarOutputName(const std::string & sScalarOutputName);
+ inline std::string GetScalarOutputName();
+ inline void SetVectorInputName(const std::string & sVectorInputName);
+ inline std::string GetVectorInputName();
+ inline PImplicitPort GetOutputResult();
+};
+
/*************************************************************************************************************************
Class CFunctionCallNode
**************************************************************************************************************************/
@@ -3092,6 +3238,9 @@ class CImplicitFunction : public CFunction {
inline PConstMatNode AddConstMatNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PMeshNode AddMeshNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PUnsignedMeshNode AddUnsignedMeshNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
+ inline PBeamLatticeNode AddBeamLatticeNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
+ inline PFunctionGradientNode AddFunctionGradientNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
+ inline PNormalizeDistanceNode AddNormalizeDistanceNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PFunctionCallNode AddFunctionCallNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PNodeIterator GetNodes();
inline void RemoveNode(classParam pNode);
@@ -3393,6 +3542,7 @@ class CModel : public CBase {
inline PMultiPropertyGroup GetMultiPropertyGroupByID(const Lib3MF_uint32 nUniqueResourceID);
inline PMeshObject GetMeshObjectByID(const Lib3MF_uint32 nUniqueResourceID);
inline PComponentsObject GetComponentsObjectByID(const Lib3MF_uint32 nUniqueResourceID);
+ inline PBooleanObject GetBooleanObjectByID(const Lib3MF_uint32 nUniqueResourceID);
inline PColorGroup GetColorGroupByID(const Lib3MF_uint32 nUniqueResourceID);
inline PSliceStack GetSliceStackByID(const Lib3MF_uint32 nUniqueResourceID);
inline PLevelSet GetLevelSetByID(const Lib3MF_uint32 nUniqueResourceID);
@@ -3404,6 +3554,7 @@ class CModel : public CBase {
inline PObjectIterator GetObjects();
inline PMeshObjectIterator GetMeshObjects();
inline PComponentsObjectIterator GetComponentsObjects();
+ inline PBooleanObjectIterator GetBooleanObjects();
inline PTexture2DIterator GetTexture2Ds();
inline PBaseMaterialGroupIterator GetBaseMaterialGroups();
inline PColorGroupIterator GetColorGroups();
@@ -3416,6 +3567,7 @@ class CModel : public CBase {
inline void MergeFromModel(classParam pModelInstance);
inline PMeshObject AddMeshObject();
inline PComponentsObject AddComponentsObject();
+ inline PBooleanObject AddBooleanObject();
inline PSliceStack AddSliceStack(const Lib3MF_double dZBottom);
inline PTexture2D AddTexture2DFromAttachment(classParam pTextureAttachment);
inline PBaseMaterialGroup AddBaseMaterialGroup();
@@ -3476,6 +3628,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
case 0xDE92510BD2112288UL: return new CObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ObjectIterator"
case 0xF4196034E2B9FDE6UL: return new CMeshObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshObjectIterator"
case 0x564DE4217ED7614AUL: return new CComponentsObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ComponentsObjectIterator"
+ case 0xAFF01F512E1FF6AEUL: return new CBooleanObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BooleanObjectIterator"
case 0x4BD32B4870FFC03BUL: return new CTexture2DIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::Texture2DIterator"
case 0x65E6EDD9362C79CBUL: return new CBaseMaterialGroupIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BaseMaterialGroupIterator"
case 0x10274A1757C729C0UL: return new CColorGroupIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ColorGroupIterator"
@@ -3491,6 +3644,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
case 0x2DA2136F577A779CUL: return new CObject(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::Object"
case 0x3B3A6DC6EC610497UL: return new CMeshObject(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshObject"
case 0xE8A7D9C192EFD0E2UL: return new CLevelSet(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::LevelSet"
+ case 0x85FA0E8806B6C357UL: return new CBooleanObject(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BooleanObject"
case 0x63B3B461B30B4BA5UL: return new CBeamLattice(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BeamLattice"
case 0x4DF17E76926221C2UL: return new CFunctionReference(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionReference"
case 0xD85B5B6143E787E3UL: return new CVolumeDataColor(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::VolumeDataColor"
@@ -3566,6 +3720,9 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
case 0xF85C90EDCE6F90A4UL: return new CConstMatNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ConstMatNode"
case 0x53601FD432E3DEF4UL: return new CMeshNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshNode"
case 0x29985A628251A9CDUL: return new CUnsignedMeshNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::UnsignedMeshNode"
+ case 0x0F3A4EE98F7FEC0CUL: return new CBeamLatticeNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BeamLatticeNode"
+ case 0x0437E27AEF740121UL: return new CFunctionGradientNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionGradientNode"
+ case 0x817D2E566E73AA8FUL: return new CNormalizeDistanceNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::NormalizeDistanceNode"
case 0x0765C17C952F24E3UL: return new CFunctionCallNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionCallNode"
case 0xFC006BC888CAB4D0UL: return new CNodeIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::NodeIterator"
case 0x9EFB2757CA1A5231UL: return new CFunction(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::Function"
@@ -4403,6 +4560,25 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResource)));
}
+ /**
+ * Method definitions for class CBooleanObjectIterator
+ */
+
+ /**
+ * CBooleanObjectIterator::GetCurrentBooleanObject - Returns the BooleanObject the iterator points at.
+ * @return returns the BooleanObject instance.
+ */
+ PBooleanObject CBooleanObjectIterator::GetCurrentBooleanObject()
+ {
+ Lib3MFHandle hResource = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_booleanobjectiterator_getcurrentbooleanobject(m_pHandle, &hResource));
+
+ if (!hResource) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResource)));
+ }
+
/**
* Method definitions for class CTexture2DIterator
*/
@@ -5053,6 +5229,18 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return resultIsLevelSetObject;
}
+ /**
+ * CObject::IsBooleanObject - Retrieves, if an object is a boolean object
+ * @return returns, whether the object is a boolean object
+ */
+ bool CObject::IsBooleanObject()
+ {
+ bool resultIsBooleanObject = 0;
+ CheckError(lib3mf_object_isbooleanobject(m_pHandle, &resultIsBooleanObject));
+
+ return resultIsBooleanObject;
+ }
+
/**
* CObject::IsValid - Retrieves, if the object is valid according to the core spec. For mesh objects, we distinguish between the type attribute of the object:In case of object type other, this always means false.In case of object type model or solidsupport, this means, if the mesh suffices all requirements of the core spec chapter 4.1.In case of object type support or surface, this always means true.A component objects is valid if and only if it contains at least one component and all child components are valid objects.
* @return returns whether the object is a valid object description
@@ -5748,6 +5936,178 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
CheckError(lib3mf_levelset_setvolumedata(m_pHandle, hTheVolumeData));
}
+ /**
+ * Method definitions for class CBooleanObject
+ */
+
+ /**
+ * CBooleanObject::SetBaseObject - Sets the base object and transform for the boolean shape.
+ * @param[in] pBaseObject - base object of the boolean shape
+ * @param[in] Transform - transform applied to the base object
+ */
+ void CBooleanObject::SetBaseObject(classParam pBaseObject, const sTransform & Transform)
+ {
+ Lib3MFHandle hBaseObject = pBaseObject.GetHandle();
+ CheckError(lib3mf_booleanobject_setbaseobject(m_pHandle, hBaseObject, &Transform));
+ }
+
+ /**
+ * CBooleanObject::GetBaseObject - Returns the base object of the boolean shape.
+ * @return base object of the boolean shape
+ */
+ PObject CBooleanObject::GetBaseObject()
+ {
+ Lib3MFHandle hBaseObject = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_booleanobject_getbaseobject(m_pHandle, &hBaseObject));
+
+ if (!hBaseObject) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hBaseObject)));
+ }
+
+ /**
+ * CBooleanObject::SetBaseTransform - Sets the base transform of the boolean shape.
+ * @param[in] Transform - transform applied to the base object
+ */
+ void CBooleanObject::SetBaseTransform(const sTransform & Transform)
+ {
+ CheckError(lib3mf_booleanobject_setbasetransform(m_pHandle, &Transform));
+ }
+
+ /**
+ * CBooleanObject::GetBaseTransform - Returns the base transform of the boolean shape.
+ * @return transform applied to the base object
+ */
+ sTransform CBooleanObject::GetBaseTransform()
+ {
+ sTransform resultTransform;
+ CheckError(lib3mf_booleanobject_getbasetransform(m_pHandle, &resultTransform));
+
+ return resultTransform;
+ }
+
+ /**
+ * CBooleanObject::SetOperation - Sets the boolean operation used for the boolean shape.
+ * @param[in] eOperation - boolean operation used for the shape
+ */
+ void CBooleanObject::SetOperation(const eBooleanOperation eOperation)
+ {
+ CheckError(lib3mf_booleanobject_setoperation(m_pHandle, eOperation));
+ }
+
+ /**
+ * CBooleanObject::GetOperation - Returns the boolean operation used for the boolean shape.
+ * @return boolean operation used for the shape
+ */
+ eBooleanOperation CBooleanObject::GetOperation()
+ {
+ eBooleanOperation resultOperation = (eBooleanOperation) 0;
+ CheckError(lib3mf_booleanobject_getoperation(m_pHandle, &resultOperation));
+
+ return resultOperation;
+ }
+
+ /**
+ * CBooleanObject::SetCSGModeEnabled - Enables or disables CSG field evaluation for boolean-to-mesh materialization.
+ * @param[in] bCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+ */
+ void CBooleanObject::SetCSGModeEnabled(const bool bCSGModeEnabled)
+ {
+ CheckError(lib3mf_booleanobject_setcsgmodeenabled(m_pHandle, bCSGModeEnabled));
+ }
+
+ /**
+ * CBooleanObject::GetCSGModeEnabled - Returns whether CSG field evaluation is enabled for boolean-to-mesh materialization.
+ * @return if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+ */
+ bool CBooleanObject::GetCSGModeEnabled()
+ {
+ bool resultCSGModeEnabled = 0;
+ CheckError(lib3mf_booleanobject_getcsgmodeenabled(m_pHandle, &resultCSGModeEnabled));
+
+ return resultCSGModeEnabled;
+ }
+
+ /**
+ * CBooleanObject::SetExtractionGridResolution - Sets the extraction grid resolution used for boolean-to-mesh materialization.
+ * @param[in] nGridResolution - extraction grid resolution for boolean surface extraction
+ */
+ void CBooleanObject::SetExtractionGridResolution(const Lib3MF_uint32 nGridResolution)
+ {
+ CheckError(lib3mf_booleanobject_setextractiongridresolution(m_pHandle, nGridResolution));
+ }
+
+ /**
+ * CBooleanObject::GetExtractionGridResolution - Returns the extraction grid resolution used for boolean-to-mesh materialization.
+ * @return extraction grid resolution for boolean surface extraction
+ */
+ Lib3MF_uint32 CBooleanObject::GetExtractionGridResolution()
+ {
+ Lib3MF_uint32 resultGridResolution = 0;
+ CheckError(lib3mf_booleanobject_getextractiongridresolution(m_pHandle, &resultGridResolution));
+
+ return resultGridResolution;
+ }
+
+ /**
+ * CBooleanObject::GetOperandCount - Returns the number of operands in the boolean sequence.
+ * @return number of operands in the boolean sequence
+ */
+ Lib3MF_uint32 CBooleanObject::GetOperandCount()
+ {
+ Lib3MF_uint32 resultCount = 0;
+ CheckError(lib3mf_booleanobject_getoperandcount(m_pHandle, &resultCount));
+
+ return resultCount;
+ }
+
+ /**
+ * CBooleanObject::AddOperand - Adds an operand object to the boolean sequence.
+ * @param[in] pOperandObject - mesh object used as operand
+ * @param[in] Transform - transform applied to the operand object
+ */
+ void CBooleanObject::AddOperand(classParam pOperandObject, const sTransform & Transform)
+ {
+ Lib3MFHandle hOperandObject = pOperandObject.GetHandle();
+ CheckError(lib3mf_booleanobject_addoperand(m_pHandle, hOperandObject, &Transform));
+ }
+
+ /**
+ * CBooleanObject::GetOperand - Returns one operand object and transform from the boolean sequence.
+ * @param[in] nIndex - index of the operand in the boolean sequence
+ * @param[out] pOperandObject - mesh object used as operand
+ * @return transform applied to the operand object
+ */
+ sTransform CBooleanObject::GetOperand(const Lib3MF_uint32 nIndex, PMeshObject & pOperandObject)
+ {
+ Lib3MFHandle hOperandObject = (Lib3MFHandle)nullptr;
+ sTransform resultTransform;
+ CheckError(lib3mf_booleanobject_getoperand(m_pHandle, nIndex, &hOperandObject, &resultTransform));
+ if (!hOperandObject) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ } else {
+ pOperandObject = std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hOperandObject)));
+ }
+
+ return resultTransform;
+ }
+
+ /**
+ * CBooleanObject::MergeToMeshObject - Materializes the boolean shape into a newly created mesh object.
+ * @return new mesh object containing the tessellated boolean shape
+ */
+ PMeshObject CBooleanObject::MergeToMeshObject()
+ {
+ Lib3MFHandle hMeshObject = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_booleanobject_mergetomeshobject(m_pHandle, &hMeshObject));
+
+ if (!hMeshObject) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMeshObject)));
+ }
+
/**
* Method definitions for class CBeamLattice
*/
@@ -6182,7 +6542,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CVolumeDataComposite::GetMaterialMapping - Returns MaterialMappting with given index
+ * CVolumeDataComposite::GetMaterialMapping - Returns MaterialMapping with given index
* @param[in] nIndex - Index of the MaterialMapping in question.
* @return MaterialMapping used in this element
*/
@@ -6198,7 +6558,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CVolumeDataComposite::AddMaterialMapping - Adds a the MaterialMapping
+ * CVolumeDataComposite::AddMaterialMapping - Adds a MaterialMapping
* @param[in] Transform - new transformation matrix
* @return The new MaterialMapping
*/
@@ -6348,7 +6708,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
/**
* CVolumeData::GetPropertyCount - Returns the number of VolumeDataProperty
- * @return the number of VolumeDataProperty-elements within this VolumdeData
+ * @return the number of VolumeDataProperty-elements within this VolumeData
*/
Lib3MF_uint32 CVolumeData::GetPropertyCount()
{
@@ -7377,7 +7737,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CAttachment::ReadFromFile - Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+ * CAttachment::ReadFromFile - Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
* @param[in] sFileName - file to read from.
*/
void CAttachment::ReadFromFile(const std::string & sFileName)
@@ -7386,7 +7746,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CAttachment::ReadFromCallback - Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+ * CAttachment::ReadFromCallback - Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
* @param[in] pTheReadCallback - Callback to call for reading a data chunk
* @param[in] nStreamSize - number of bytes the callback returns
* @param[in] pTheSeekCallback - Callback to call for seeking in the stream.
@@ -7423,7 +7783,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CAttachment::ReadFromBuffer - Reads an attachment from a memory buffer. This buffer is immediatly read (in contrast to the ReadFromCallback and ReadFromFile-methods).
+ * CAttachment::ReadFromBuffer - Reads an attachment from a memory buffer. This buffer is immediately read (in contrast to the ReadFromCallback and ReadFromFile-methods).
* @param[in] BufferBuffer - Buffer to read from
*/
void CAttachment::ReadFromBuffer(const CInputVector & BufferBuffer)
@@ -8968,6 +9328,330 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hDistance)));
}
+ /**
+ * Method definitions for class CBeamLatticeNode
+ */
+
+ /**
+ * CBeamLatticeNode::GetInputBeamLattice - Retrieves the input for the model resource id of the beam lattice
+ * @return the input port for the model resource id of the beam lattice (mesh with beamlattice extension)
+ */
+ PImplicitPort CBeamLatticeNode::GetInputBeamLattice()
+ {
+ Lib3MFHandle hBeamLattice = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_beamlatticenode_getinputbeamlattice(m_pHandle, &hBeamLattice));
+
+ if (!hBeamLattice) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hBeamLattice)));
+ }
+
+ /**
+ * CBeamLatticeNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position
+ */
+ PImplicitPort CBeamLatticeNode::GetInputPos()
+ {
+ Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_beamlatticenode_getinputpos(m_pHandle, &hPos));
+
+ if (!hPos) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
+ }
+
+ /**
+ * CBeamLatticeNode::GetOutputDistance - Retrieves the output
+ * @return the output port for the signed distance to the beam lattice
+ */
+ PImplicitPort CBeamLatticeNode::GetOutputDistance()
+ {
+ Lib3MFHandle hDistance = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_beamlatticenode_getoutputdistance(m_pHandle, &hDistance));
+
+ if (!hDistance) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hDistance)));
+ }
+
+ /**
+ * CBeamLatticeNode::SetAccurateRange - Sets the accurate range for distance computation
+ * @param[in] dAccurateRange - the accurate range in model units
+ */
+ void CBeamLatticeNode::SetAccurateRange(const Lib3MF_double dAccurateRange)
+ {
+ CheckError(lib3mf_beamlatticenode_setaccuraterange(m_pHandle, dAccurateRange));
+ }
+
+ /**
+ * CBeamLatticeNode::GetAccurateRange - Retrieves the accurate range for distance computation
+ * @return the accurate range in model units
+ */
+ Lib3MF_double CBeamLatticeNode::GetAccurateRange()
+ {
+ Lib3MF_double resultAccurateRange = 0;
+ CheckError(lib3mf_beamlatticenode_getaccuraterange(m_pHandle, &resultAccurateRange));
+
+ return resultAccurateRange;
+ }
+
+ /**
+ * Method definitions for class CFunctionGradientNode
+ */
+
+ /**
+ * CFunctionGradientNode::GetInputFunctionID - Retrieves the input for the function id
+ * @return the input port for the function
+ */
+ PImplicitPort CFunctionGradientNode::GetInputFunctionID()
+ {
+ Lib3MFHandle hFunction = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_functiongradientnode_getinputfunctionid(m_pHandle, &hFunction));
+
+ if (!hFunction) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hFunction)));
+ }
+
+ /**
+ * CFunctionGradientNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position
+ */
+ PImplicitPort CFunctionGradientNode::GetInputPos()
+ {
+ Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_functiongradientnode_getinputpos(m_pHandle, &hPos));
+
+ if (!hPos) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
+ }
+
+ /**
+ * CFunctionGradientNode::GetInputStep - Retrieves the input for the finite difference step
+ * @return the input port for the finite difference step
+ */
+ PImplicitPort CFunctionGradientNode::GetInputStep()
+ {
+ Lib3MFHandle hStep = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_functiongradientnode_getinputstep(m_pHandle, &hStep));
+
+ if (!hStep) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hStep)));
+ }
+
+ /**
+ * CFunctionGradientNode::SetScalarOutputName - Sets the name of the referenced scalar output
+ * @param[in] sScalarOutputName - the name of the scalar output of the referenced function
+ */
+ void CFunctionGradientNode::SetScalarOutputName(const std::string & sScalarOutputName)
+ {
+ CheckError(lib3mf_functiongradientnode_setscalaroutputname(m_pHandle, sScalarOutputName.c_str()));
+ }
+
+ /**
+ * CFunctionGradientNode::GetScalarOutputName - Retrieves the name of the referenced scalar output
+ * @return the name of the scalar output of the referenced function
+ */
+ std::string CFunctionGradientNode::GetScalarOutputName()
+ {
+ Lib3MF_uint32 bytesNeededScalarOutputName = 0;
+ Lib3MF_uint32 bytesWrittenScalarOutputName = 0;
+ CheckError(lib3mf_functiongradientnode_getscalaroutputname(m_pHandle, 0, &bytesNeededScalarOutputName, nullptr));
+ std::vector bufferScalarOutputName(bytesNeededScalarOutputName);
+ CheckError(lib3mf_functiongradientnode_getscalaroutputname(m_pHandle, bytesNeededScalarOutputName, &bytesWrittenScalarOutputName, &bufferScalarOutputName[0]));
+
+ return std::string(&bufferScalarOutputName[0]);
+ }
+
+ /**
+ * CFunctionGradientNode::SetVectorInputName - Sets the name of the referenced vector input
+ * @param[in] sVectorInputName - the name of the vector input (float3) of the referenced function
+ */
+ void CFunctionGradientNode::SetVectorInputName(const std::string & sVectorInputName)
+ {
+ CheckError(lib3mf_functiongradientnode_setvectorinputname(m_pHandle, sVectorInputName.c_str()));
+ }
+
+ /**
+ * CFunctionGradientNode::GetVectorInputName - Retrieves the name of the referenced vector input
+ * @return the name of the vector input (float3) of the referenced function
+ */
+ std::string CFunctionGradientNode::GetVectorInputName()
+ {
+ Lib3MF_uint32 bytesNeededVectorInputName = 0;
+ Lib3MF_uint32 bytesWrittenVectorInputName = 0;
+ CheckError(lib3mf_functiongradientnode_getvectorinputname(m_pHandle, 0, &bytesNeededVectorInputName, nullptr));
+ std::vector bufferVectorInputName(bytesNeededVectorInputName);
+ CheckError(lib3mf_functiongradientnode_getvectorinputname(m_pHandle, bytesNeededVectorInputName, &bytesWrittenVectorInputName, &bufferVectorInputName[0]));
+
+ return std::string(&bufferVectorInputName[0]);
+ }
+
+ /**
+ * CFunctionGradientNode::GetOutputNormalizedGradient - Retrieves the normalized gradient output
+ * @return the output port for the normalized gradient
+ */
+ PImplicitPort CFunctionGradientNode::GetOutputNormalizedGradient()
+ {
+ Lib3MFHandle hNormalizedGradient = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_functiongradientnode_getoutputnormalizedgradient(m_pHandle, &hNormalizedGradient));
+
+ if (!hNormalizedGradient) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hNormalizedGradient)));
+ }
+
+ /**
+ * CFunctionGradientNode::GetOutputGradient - Retrieves the raw gradient output
+ * @return the output port for the raw gradient
+ */
+ PImplicitPort CFunctionGradientNode::GetOutputGradient()
+ {
+ Lib3MFHandle hGradient = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_functiongradientnode_getoutputgradient(m_pHandle, &hGradient));
+
+ if (!hGradient) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hGradient)));
+ }
+
+ /**
+ * CFunctionGradientNode::GetOutputMagnitude - Retrieves the gradient magnitude output
+ * @return the output port for the gradient magnitude
+ */
+ PImplicitPort CFunctionGradientNode::GetOutputMagnitude()
+ {
+ Lib3MFHandle hMagnitude = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_functiongradientnode_getoutputmagnitude(m_pHandle, &hMagnitude));
+
+ if (!hMagnitude) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMagnitude)));
+ }
+
+ /**
+ * Method definitions for class CNormalizeDistanceNode
+ */
+
+ /**
+ * CNormalizeDistanceNode::GetInputFunctionID - Retrieves the input for the function id
+ * @return the input port for the function
+ */
+ PImplicitPort CNormalizeDistanceNode::GetInputFunctionID()
+ {
+ Lib3MFHandle hFunction = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_normalizedistancenode_getinputfunctionid(m_pHandle, &hFunction));
+
+ if (!hFunction) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hFunction)));
+ }
+
+ /**
+ * CNormalizeDistanceNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position (vector)
+ */
+ PImplicitPort CNormalizeDistanceNode::GetInputPos()
+ {
+ Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_normalizedistancenode_getinputpos(m_pHandle, &hPos));
+
+ if (!hPos) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
+ }
+
+ /**
+ * CNormalizeDistanceNode::GetInputStep - Retrieves the input for the finite difference step
+ * @return the input port for the finite difference step
+ */
+ PImplicitPort CNormalizeDistanceNode::GetInputStep()
+ {
+ Lib3MFHandle hStep = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_normalizedistancenode_getinputstep(m_pHandle, &hStep));
+
+ if (!hStep) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hStep)));
+ }
+
+ /**
+ * CNormalizeDistanceNode::SetScalarOutputName - Sets the name of the referenced scalar output
+ * @param[in] sScalarOutputName - the name of the scalar output of the referenced function
+ */
+ void CNormalizeDistanceNode::SetScalarOutputName(const std::string & sScalarOutputName)
+ {
+ CheckError(lib3mf_normalizedistancenode_setscalaroutputname(m_pHandle, sScalarOutputName.c_str()));
+ }
+
+ /**
+ * CNormalizeDistanceNode::GetScalarOutputName - Retrieves the name of the referenced scalar output
+ * @return the name of the scalar output of the referenced function
+ */
+ std::string CNormalizeDistanceNode::GetScalarOutputName()
+ {
+ Lib3MF_uint32 bytesNeededScalarOutputName = 0;
+ Lib3MF_uint32 bytesWrittenScalarOutputName = 0;
+ CheckError(lib3mf_normalizedistancenode_getscalaroutputname(m_pHandle, 0, &bytesNeededScalarOutputName, nullptr));
+ std::vector bufferScalarOutputName(bytesNeededScalarOutputName);
+ CheckError(lib3mf_normalizedistancenode_getscalaroutputname(m_pHandle, bytesNeededScalarOutputName, &bytesWrittenScalarOutputName, &bufferScalarOutputName[0]));
+
+ return std::string(&bufferScalarOutputName[0]);
+ }
+
+ /**
+ * CNormalizeDistanceNode::SetVectorInputName - Sets the name of the referenced vector input
+ * @param[in] sVectorInputName - the name of the vector input (float3) of the referenced function
+ */
+ void CNormalizeDistanceNode::SetVectorInputName(const std::string & sVectorInputName)
+ {
+ CheckError(lib3mf_normalizedistancenode_setvectorinputname(m_pHandle, sVectorInputName.c_str()));
+ }
+
+ /**
+ * CNormalizeDistanceNode::GetVectorInputName - Retrieves the name of the referenced vector input
+ * @return the name of the vector input (float3) of the referenced function
+ */
+ std::string CNormalizeDistanceNode::GetVectorInputName()
+ {
+ Lib3MF_uint32 bytesNeededVectorInputName = 0;
+ Lib3MF_uint32 bytesWrittenVectorInputName = 0;
+ CheckError(lib3mf_normalizedistancenode_getvectorinputname(m_pHandle, 0, &bytesNeededVectorInputName, nullptr));
+ std::vector bufferVectorInputName(bytesNeededVectorInputName);
+ CheckError(lib3mf_normalizedistancenode_getvectorinputname(m_pHandle, bytesNeededVectorInputName, &bytesWrittenVectorInputName, &bufferVectorInputName[0]));
+
+ return std::string(&bufferVectorInputName[0]);
+ }
+
+ /**
+ * CNormalizeDistanceNode::GetOutputResult - Retrieves the normalized result output
+ * @return the output port for the normalized distance
+ */
+ PImplicitPort CNormalizeDistanceNode::GetOutputResult()
+ {
+ Lib3MFHandle hResult = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_normalizedistancenode_getoutputresult(m_pHandle, &hResult));
+
+ if (!hResult) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResult)));
+ }
+
/**
* Method definitions for class CFunctionCallNode
*/
@@ -10095,6 +10779,60 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hNode)));
}
+ /**
+ * CImplicitFunction::AddBeamLatticeNode - Add a BeamLatticeNode
+ * @param[in] sIdentifier - the identifier of the node
+ * @param[in] sDisplayName - the display name of the node
+ * @param[in] sTag - the tag of the node
+ * @return the added node
+ */
+ PBeamLatticeNode CImplicitFunction::AddBeamLatticeNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag)
+ {
+ Lib3MFHandle hNode = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_implicitfunction_addbeamlatticenode(m_pHandle, sIdentifier.c_str(), sDisplayName.c_str(), sTag.c_str(), &hNode));
+
+ if (!hNode) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hNode)));
+ }
+
+ /**
+ * CImplicitFunction::AddFunctionGradientNode - Add a FunctionGradientNode
+ * @param[in] sIdentifier - the identifier of the node
+ * @param[in] sDisplayName - the display name of the node
+ * @param[in] sTag - the tag of the node
+ * @return the added node
+ */
+ PFunctionGradientNode CImplicitFunction::AddFunctionGradientNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag)
+ {
+ Lib3MFHandle hNode = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_implicitfunction_addfunctiongradientnode(m_pHandle, sIdentifier.c_str(), sDisplayName.c_str(), sTag.c_str(), &hNode));
+
+ if (!hNode) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hNode)));
+ }
+
+ /**
+ * CImplicitFunction::AddNormalizeDistanceNode - Add a NormalizeDistanceNode
+ * @param[in] sIdentifier - the identifier of the node
+ * @param[in] sDisplayName - the display name of the node
+ * @param[in] sTag - the tag of the node
+ * @return the added node
+ */
+ PNormalizeDistanceNode CImplicitFunction::AddNormalizeDistanceNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag)
+ {
+ Lib3MFHandle hNode = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_implicitfunction_addnormalizedistancenode(m_pHandle, sIdentifier.c_str(), sDisplayName.c_str(), sTag.c_str(), &hNode));
+
+ if (!hNode) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hNode)));
+ }
+
/**
* CImplicitFunction::AddFunctionCallNode - Add a FunctionCallNode
* @param[in] sIdentifier - the identifier of the node
@@ -11582,6 +12320,22 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hComponentsObjectInstance)));
}
+ /**
+ * CModel::GetBooleanObjectByID - finds a boolean object by its UniqueResourceID
+ * @param[in] nUniqueResourceID - UniqueResourceID
+ * @return returns the boolean object instance
+ */
+ PBooleanObject CModel::GetBooleanObjectByID(const Lib3MF_uint32 nUniqueResourceID)
+ {
+ Lib3MFHandle hBooleanObjectInstance = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_model_getbooleanobjectbyid(m_pHandle, nUniqueResourceID, &hBooleanObjectInstance));
+
+ if (!hBooleanObjectInstance) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hBooleanObjectInstance)));
+ }
+
/**
* CModel::GetColorGroupByID - finds a model color group by its UniqueResourceID
* @param[in] nUniqueResourceID - UniqueResourceID
@@ -11742,6 +12496,21 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResourceIterator)));
}
+ /**
+ * CModel::GetBooleanObjects - creates a resource iterator instance with all boolean object resources.
+ * @return returns the iterator instance.
+ */
+ PBooleanObjectIterator CModel::GetBooleanObjects()
+ {
+ Lib3MFHandle hResourceIterator = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_model_getbooleanobjects(m_pHandle, &hResourceIterator));
+
+ if (!hResourceIterator) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResourceIterator)));
+ }
+
/**
* CModel::GetTexture2Ds - creates a Texture2DIterator instance with all texture2d resources.
* @return returns the iterator instance.
@@ -11917,6 +12686,21 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hComponentsObjectInstance)));
}
+ /**
+ * CModel::AddBooleanObject - adds an empty boolean object to the model.
+ * @return returns the boolean object instance
+ */
+ PBooleanObject CModel::AddBooleanObject()
+ {
+ Lib3MFHandle hBooleanObjectInstance = (Lib3MFHandle)nullptr;
+ CheckError(lib3mf_model_addbooleanobject(m_pHandle, &hBooleanObjectInstance));
+
+ if (!hBooleanObjectInstance) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hBooleanObjectInstance)));
+ }
+
/**
* CModel::AddSliceStack - creates a new model slicestack by its id
* @param[in] dZBottom - Bottom Z value of the slicestack
diff --git a/Autogenerated/Bindings/Cpp/lib3mf_types.hpp b/Autogenerated/Bindings/Cpp/lib3mf_types.hpp
index 6a9ff486d..09f6a3441 100644
--- a/Autogenerated/Bindings/Cpp/lib3mf_types.hpp
+++ b/Autogenerated/Bindings/Cpp/lib3mf_types.hpp
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated C++-Header file with basic types in
order to allow an easy use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -83,7 +83,7 @@ typedef void * Lib3MF_pvoid;
**************************************************************************************************************************/
#define LIB3MF_VERSION_MAJOR 2
-#define LIB3MF_VERSION_MINOR 4
+#define LIB3MF_VERSION_MINOR 6
#define LIB3MF_VERSION_MICRO 0
#define LIB3MF_VERSION_PRERELEASEINFO ""
#define LIB3MF_VERSION_BUILDINFO ""
@@ -219,6 +219,7 @@ typedef Lib3MFHandle Lib3MF_SliceStackIterator;
typedef Lib3MFHandle Lib3MF_ObjectIterator;
typedef Lib3MFHandle Lib3MF_MeshObjectIterator;
typedef Lib3MFHandle Lib3MF_ComponentsObjectIterator;
+typedef Lib3MFHandle Lib3MF_BooleanObjectIterator;
typedef Lib3MFHandle Lib3MF_Texture2DIterator;
typedef Lib3MFHandle Lib3MF_BaseMaterialGroupIterator;
typedef Lib3MFHandle Lib3MF_ColorGroupIterator;
@@ -234,6 +235,7 @@ typedef Lib3MFHandle Lib3MF_TriangleSet;
typedef Lib3MFHandle Lib3MF_Object;
typedef Lib3MFHandle Lib3MF_MeshObject;
typedef Lib3MFHandle Lib3MF_LevelSet;
+typedef Lib3MFHandle Lib3MF_BooleanObject;
typedef Lib3MFHandle Lib3MF_BeamLattice;
typedef Lib3MFHandle Lib3MF_FunctionReference;
typedef Lib3MFHandle Lib3MF_VolumeDataColor;
@@ -309,6 +311,9 @@ typedef Lib3MFHandle Lib3MF_ConstVecNode;
typedef Lib3MFHandle Lib3MF_ConstMatNode;
typedef Lib3MFHandle Lib3MF_MeshNode;
typedef Lib3MFHandle Lib3MF_UnsignedMeshNode;
+typedef Lib3MFHandle Lib3MF_BeamLatticeNode;
+typedef Lib3MFHandle Lib3MF_FunctionGradientNode;
+typedef Lib3MFHandle Lib3MF_NormalizeDistanceNode;
typedef Lib3MFHandle Lib3MF_FunctionCallNode;
typedef Lib3MFHandle Lib3MF_NodeIterator;
typedef Lib3MFHandle Lib3MF_Function;
@@ -359,7 +364,14 @@ namespace Lib3MF {
Other = 0,
Model = 1,
Support = 2,
- SolidSupport = 3
+ SolidSupport = 3,
+ Surface = 4
+ };
+
+ enum class eBooleanOperation : Lib3MF_int32 {
+ Union = 0,
+ Difference = 1,
+ Intersection = 2
};
enum class eTextureType : Lib3MF_int32 {
@@ -473,11 +485,11 @@ namespace Lib3MF {
MatVecMultiplication = 14, /** Multiplies a matrix with a vector */
Transpose = 15, /** Transposes a matrix */
Inverse = 16, /** Computes the inverse of a matrix */
- Sinus = 17, /** Calculates the sinus */
- Cosinus = 18, /** Calculates the cosinus */
+ Sinus = 17, /** Calculates the sine */
+ Cosinus = 18, /** Calculates the cosine */
Tan = 19, /** Calculates the tangent */
- ArcSin = 20, /** Calculates the arcsinus */
- ArcCos = 21, /** Calculates the arccosinus */
+ ArcSin = 20, /** Calculates the arcsine */
+ ArcCos = 21, /** Calculates the arccosine */
ArcTan = 22, /** Calculates the arctangent */
ArcTan2 = 23, /** Calculates the arctangent */
Min = 24, /** Calculates the minimum of two values */
@@ -487,9 +499,9 @@ namespace Lib3MF {
Pow = 28, /** Calculates the power A^B */
Sqrt = 29, /** Calculates the square root */
Exp = 30, /** Exponential function */
- Log = 31, /** Natural logarithmus */
- Log2 = 32, /** Logarithmus to the base 2 */
- Log10 = 33, /** Logarithmus to the base 10 */
+ Log = 31, /** Natural logarithm */
+ Log2 = 32, /** Logarithm to the base 2 */
+ Log10 = 33, /** Logarithm to the base 10 */
Select = 34, /** If A is less than B returns C, else D */
Clamp = 35, /** Clamps the input value to min and max */
Sinh = 36, /** Calculates the hyperbolic sine */
@@ -504,9 +516,12 @@ namespace Lib3MF {
Mesh = 45, /** Calculates the signed distance to a mesh */
Length = 46, /** Calculates the length of a vector */
ConstResourceID = 47, /** Selects a resource (function, mesh etc.) */
- VectorFromScalar = 48, /** Creates a vector from one scalar values */
+ VectorFromScalar = 48, /** Creates a vector from one scalar value */
UnsignedMesh = 49, /** Calculates the unsigned distance to a mesh */
- Mod = 50 /** Calculates the modulo of two values (same behaviour as glsl mod) */
+ Mod = 50, /** Calculates the modulo of two values (same behaviour as glsl mod) */
+ BeamLattice = 51, /** Calculates the signed distance to a beam lattice */
+ FunctionGradient = 52, /** Calculates the gradient of a function */
+ NormalizeDistance = 53 /** Normalizes a distance field */
};
/**
@@ -715,6 +730,7 @@ typedef Lib3MF::ePropertyType eLib3MFPropertyType;
typedef Lib3MF::eSlicesMeshResolution eLib3MFSlicesMeshResolution;
typedef Lib3MF::eModelUnit eLib3MFModelUnit;
typedef Lib3MF::eObjectType eLib3MFObjectType;
+typedef Lib3MF::eBooleanOperation eLib3MFBooleanOperation;
typedef Lib3MF::eTextureType eLib3MFTextureType;
typedef Lib3MF::eTextureTileStyle eLib3MFTextureTileStyle;
typedef Lib3MF::eTextureFilter eLib3MFTextureFilter;
diff --git a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h
index 8e83e673b..b645518d0 100644
--- a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h
+++ b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.h
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated C++-Header file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -484,6 +484,19 @@ typedef Lib3MFResult (*PLib3MFMeshObjectIterator_GetCurrentMeshObjectPtr) (Lib3M
*/
typedef Lib3MFResult (*PLib3MFComponentsObjectIterator_GetCurrentComponentsObjectPtr) (Lib3MF_ComponentsObjectIterator pComponentsObjectIterator, Lib3MF_ComponentsObject * pResource);
+/*************************************************************************************************************************
+ Class definition for BooleanObjectIterator
+**************************************************************************************************************************/
+
+/**
+* Returns the BooleanObject the iterator points at.
+*
+* @param[in] pBooleanObjectIterator - BooleanObjectIterator instance.
+* @param[out] pResource - returns the BooleanObject instance.
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr) (Lib3MF_BooleanObjectIterator pBooleanObjectIterator, Lib3MF_BooleanObject * pResource);
+
/*************************************************************************************************************************
Class definition for Texture2DIterator
**************************************************************************************************************************/
@@ -998,6 +1011,15 @@ typedef Lib3MFResult (*PLib3MFObject_IsComponentsObjectPtr) (Lib3MF_Object pObje
*/
typedef Lib3MFResult (*PLib3MFObject_IsLevelSetObjectPtr) (Lib3MF_Object pObject, bool * pIsLevelSetObject);
+/**
+* Retrieves, if an object is a boolean object
+*
+* @param[in] pObject - Object instance.
+* @param[out] pIsBooleanObject - returns, whether the object is a boolean object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFObject_IsBooleanObjectPtr) (Lib3MF_Object pObject, bool * pIsBooleanObject);
+
/**
* Retrieves, if the object is valid according to the core spec. For mesh objects, we distinguish between the type attribute of the object:In case of object type other, this always means false.In case of object type model or solidsupport, this means, if the mesh suffices all requirements of the core spec chapter 4.1.In case of object type support or surface, this always means true.A component objects is valid if and only if it contains at least one component and all child components are valid objects.
*
@@ -1548,6 +1570,140 @@ typedef Lib3MFResult (*PLib3MFLevelSet_GetVolumeDataPtr) (Lib3MF_LevelSet pLevel
*/
typedef Lib3MFResult (*PLib3MFLevelSet_SetVolumeDataPtr) (Lib3MF_LevelSet pLevelSet, Lib3MF_VolumeData pTheVolumeData);
+/*************************************************************************************************************************
+ Class definition for BooleanObject
+**************************************************************************************************************************/
+
+/**
+* Sets the base object and transform for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pBaseObject - base object of the boolean shape
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetBaseObjectPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object pBaseObject, const Lib3MF::sTransform * pTransform);
+
+/**
+* Returns the base object of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pBaseObject - base object of the boolean shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetBaseObjectPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_Object * pBaseObject);
+
+/**
+* Sets the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetBaseTransformPtr) (Lib3MF_BooleanObject pBooleanObject, const Lib3MF::sTransform * pTransform);
+
+/**
+* Returns the base transform of the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pTransform - transform applied to the base object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetBaseTransformPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF::sTransform * pTransform);
+
+/**
+* Sets the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] eOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetOperationPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF::eBooleanOperation eOperation);
+
+/**
+* Returns the boolean operation used for the boolean shape.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pOperation - boolean operation used for the shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetOperationPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF::eBooleanOperation * pOperation);
+
+/**
+* Enables or disables CSG field evaluation for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] bCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetCSGModeEnabledPtr) (Lib3MF_BooleanObject pBooleanObject, bool bCSGModeEnabled);
+
+/**
+* Returns whether CSG field evaluation is enabled for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetCSGModeEnabledPtr) (Lib3MF_BooleanObject pBooleanObject, bool * pCSGModeEnabled);
+
+/**
+* Sets the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_SetExtractionGridResolutionPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nGridResolution);
+
+/**
+* Returns the extraction grid resolution used for boolean-to-mesh materialization.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pGridResolution - extraction grid resolution for boolean surface extraction
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetExtractionGridResolutionPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pGridResolution);
+
+/**
+* Returns the number of operands in the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pCount - number of operands in the boolean sequence
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetOperandCountPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 * pCount);
+
+/**
+* Adds an operand object to the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] pOperandObject - mesh object used as operand
+* @param[in] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_AddOperandPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject pOperandObject, const Lib3MF::sTransform * pTransform);
+
+/**
+* Returns one operand object and transform from the boolean sequence.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[in] nIndex - index of the operand in the boolean sequence
+* @param[out] pOperandObject - mesh object used as operand
+* @param[out] pTransform - transform applied to the operand object
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_GetOperandPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_uint32 nIndex, Lib3MF_MeshObject * pOperandObject, Lib3MF::sTransform * pTransform);
+
+/**
+* Materializes the boolean shape into a newly created mesh object.
+*
+* @param[in] pBooleanObject - BooleanObject instance.
+* @param[out] pMeshObject - new mesh object containing the tessellated boolean shape
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBooleanObject_MergeToMeshObjectPtr) (Lib3MF_BooleanObject pBooleanObject, Lib3MF_MeshObject * pMeshObject);
+
/*************************************************************************************************************************
Class definition for BeamLattice
**************************************************************************************************************************/
@@ -1913,7 +2069,7 @@ typedef Lib3MFResult (*PLib3MFVolumeDataComposite_SetBaseMaterialGroupPtr) (Lib3
typedef Lib3MFResult (*PLib3MFVolumeDataComposite_GetMaterialMappingCountPtr) (Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 * pCount);
/**
-* Returns MaterialMappting with given index
+* Returns MaterialMapping with given index
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] nIndex - Index of the MaterialMapping in question.
@@ -1923,7 +2079,7 @@ typedef Lib3MFResult (*PLib3MFVolumeDataComposite_GetMaterialMappingCountPtr) (L
typedef Lib3MFResult (*PLib3MFVolumeDataComposite_GetMaterialMappingPtr) (Lib3MF_VolumeDataComposite pVolumeDataComposite, Lib3MF_uint32 nIndex, Lib3MF_MaterialMapping * pTheMaterialMapping);
/**
-* Adds a the MaterialMapping
+* Adds a MaterialMapping
*
* @param[in] pVolumeDataComposite - VolumeDataComposite instance.
* @param[in] pTransform - new transformation matrix
@@ -2035,7 +2191,7 @@ typedef Lib3MFResult (*PLib3MFVolumeData_RemoveColorPtr) (Lib3MF_VolumeData pVol
* Returns the number of VolumeDataProperty
*
* @param[in] pVolumeData - VolumeData instance.
-* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumdeData
+* @param[out] pCount - the number of VolumeDataProperty-elements within this VolumeData
* @return error code or 0 (success)
*/
typedef Lib3MFResult (*PLib3MFVolumeData_GetPropertyCountPtr) (Lib3MF_VolumeData pVolumeData, Lib3MF_uint32 * pCount);
@@ -2860,7 +3016,7 @@ typedef Lib3MFResult (*PLib3MFAttachment_SetRelationShipTypePtr) (Lib3MF_Attachm
typedef Lib3MFResult (*PLib3MFAttachment_WriteToFilePtr) (Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pFileName - file to read from.
@@ -2869,7 +3025,7 @@ typedef Lib3MFResult (*PLib3MFAttachment_WriteToFilePtr) (Lib3MF_Attachment pAtt
typedef Lib3MFResult (*PLib3MFAttachment_ReadFromFilePtr) (Lib3MF_Attachment pAttachment, const char * pFileName);
/**
-* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+* Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
*
* @param[in] pAttachment - Attachment instance.
* @param[in] pTheReadCallback - Callback to call for reading a data chunk
@@ -2901,7 +3057,7 @@ typedef Lib3MFResult (*PLib3MFAttachment_GetStreamSizePtr) (Lib3MF_Attachment pA
typedef Lib3MFResult (*PLib3MFAttachment_WriteToBufferPtr) (Lib3MF_Attachment pAttachment, const Lib3MF_uint64 nBufferBufferSize, Lib3MF_uint64* pBufferNeededCount, Lib3MF_uint8 * pBufferBuffer);
/**
-* Reads an attachment from a memory buffer. This buffer is immediatly read (in contrast to the ReadFromCallback and ReadFromFile-methods).
+* Reads an attachment from a memory buffer. This buffer is immediately read (in contrast to the ReadFromCallback and ReadFromFile-methods).
*
* @param[in] pAttachment - Attachment instance.
* @param[in] nBufferBufferSize - Number of elements in buffer
@@ -4013,6 +4169,233 @@ typedef Lib3MFResult (*PLib3MFUnsignedMeshNode_GetInputPosPtr) (Lib3MF_UnsignedM
*/
typedef Lib3MFResult (*PLib3MFUnsignedMeshNode_GetOutputDistancePtr) (Lib3MF_UnsignedMeshNode pUnsignedMeshNode, Lib3MF_ImplicitPort * pDistance);
+/*************************************************************************************************************************
+ Class definition for BeamLatticeNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the model resource id of the beam lattice
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pBeamLattice - the input port for the model resource id of the beam lattice (mesh with beamlattice extension)
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetInputBeamLatticePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pBeamLattice);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetInputPosPtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the output
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pDistance - the output port for the signed distance to the beam lattice
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetOutputDistancePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_ImplicitPort * pDistance);
+
+/**
+* Sets the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[in] dAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_SetAccurateRangePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double dAccurateRange);
+
+/**
+* Retrieves the accurate range for distance computation
+*
+* @param[in] pBeamLatticeNode - BeamLatticeNode instance.
+* @param[out] pAccurateRange - the accurate range in model units
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFBeamLatticeNode_GetAccurateRangePtr) (Lib3MF_BeamLatticeNode pBeamLatticeNode, Lib3MF_double * pAccurateRange);
+
+/*************************************************************************************************************************
+ Class definition for FunctionGradientNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetInputFunctionIDPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pPos - the input port for the position
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetInputPosPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetInputStepPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_SetScalarOutputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetScalarOutputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_SetVectorInputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetVectorInputNamePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pNormalizedGradient - the output port for the normalized gradient
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pNormalizedGradient);
+
+/**
+* Retrieves the raw gradient output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pGradient - the output port for the raw gradient
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetOutputGradientPtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pGradient);
+
+/**
+* Retrieves the gradient magnitude output
+*
+* @param[in] pFunctionGradientNode - FunctionGradientNode instance.
+* @param[out] pMagnitude - the output port for the gradient magnitude
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFFunctionGradientNode_GetOutputMagnitudePtr) (Lib3MF_FunctionGradientNode pFunctionGradientNode, Lib3MF_ImplicitPort * pMagnitude);
+
+/*************************************************************************************************************************
+ Class definition for NormalizeDistanceNode
+**************************************************************************************************************************/
+
+/**
+* Retrieves the input for the function id
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pFunction - the input port for the function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pFunction);
+
+/**
+* Retrieves the input for the position
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pPos - the input port for the position (vector)
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetInputPosPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pPos);
+
+/**
+* Retrieves the input for the finite difference step
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pStep - the input port for the finite difference step
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetInputStepPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pStep);
+
+/**
+* Sets the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pScalarOutputName - the name of the scalar output of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pScalarOutputName);
+
+/**
+* Retrieves the name of the referenced scalar output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nScalarOutputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pScalarOutputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pScalarOutputNameBuffer - buffer of the name of the scalar output of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nScalarOutputNameBufferSize, Lib3MF_uint32* pScalarOutputNameNeededChars, char * pScalarOutputNameBuffer);
+
+/**
+* Sets the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] pVectorInputName - the name of the vector input (float3) of the referenced function
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const char * pVectorInputName);
+
+/**
+* Retrieves the name of the referenced vector input
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[in] nVectorInputNameBufferSize - size of the buffer (including trailing 0)
+* @param[out] pVectorInputNameNeededChars - will be filled with the count of the written bytes, or needed buffer size.
+* @param[out] pVectorInputNameBuffer - buffer of the name of the vector input (float3) of the referenced function, may be NULL
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, const Lib3MF_uint32 nVectorInputNameBufferSize, Lib3MF_uint32* pVectorInputNameNeededChars, char * pVectorInputNameBuffer);
+
+/**
+* Retrieves the normalized result output
+*
+* @param[in] pNormalizeDistanceNode - NormalizeDistanceNode instance.
+* @param[out] pResult - the output port for the normalized distance
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFNormalizeDistanceNode_GetOutputResultPtr) (Lib3MF_NormalizeDistanceNode pNormalizeDistanceNode, Lib3MF_ImplicitPort * pResult);
+
/*************************************************************************************************************************
Class definition for FunctionCallNode
**************************************************************************************************************************/
@@ -4788,6 +5171,42 @@ typedef Lib3MFResult (*PLib3MFImplicitFunction_AddMeshNodePtr) (Lib3MF_ImplicitF
*/
typedef Lib3MFResult (*PLib3MFImplicitFunction_AddUnsignedMeshNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_UnsignedMeshNode * pNode);
+/**
+* Add a BeamLatticeNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFImplicitFunction_AddBeamLatticeNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_BeamLatticeNode * pNode);
+
+/**
+* Add a FunctionGradientNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFImplicitFunction_AddFunctionGradientNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_FunctionGradientNode * pNode);
+
+/**
+* Add a NormalizeDistanceNode
+*
+* @param[in] pImplicitFunction - ImplicitFunction instance.
+* @param[in] pIdentifier - the identifier of the node
+* @param[in] pDisplayName - the display name of the node
+* @param[in] pTag - the tag of the node
+* @param[out] pNode - the added node
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr) (Lib3MF_ImplicitFunction pImplicitFunction, const char * pIdentifier, const char * pDisplayName, const char * pTag, Lib3MF_NormalizeDistanceNode * pNode);
+
/**
* Add a FunctionCallNode
*
@@ -5902,6 +6321,16 @@ typedef Lib3MFResult (*PLib3MFModel_GetMeshObjectByIDPtr) (Lib3MF_Model pModel,
*/
typedef Lib3MFResult (*PLib3MFModel_GetComponentsObjectByIDPtr) (Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* finds a boolean object by its UniqueResourceID
+*
+* @param[in] pModel - Model instance.
+* @param[in] nUniqueResourceID - UniqueResourceID
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFModel_GetBooleanObjectByIDPtr) (Lib3MF_Model pModel, Lib3MF_uint32 nUniqueResourceID, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* finds a model color group by its UniqueResourceID
*
@@ -6007,6 +6436,15 @@ typedef Lib3MFResult (*PLib3MFModel_GetMeshObjectsPtr) (Lib3MF_Model pModel, Lib
*/
typedef Lib3MFResult (*PLib3MFModel_GetComponentsObjectsPtr) (Lib3MF_Model pModel, Lib3MF_ComponentsObjectIterator * pResourceIterator);
+/**
+* creates a resource iterator instance with all boolean object resources.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pResourceIterator - returns the iterator instance.
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFModel_GetBooleanObjectsPtr) (Lib3MF_Model pModel, Lib3MF_BooleanObjectIterator * pResourceIterator);
+
/**
* creates a Texture2DIterator instance with all texture2d resources.
*
@@ -6115,6 +6553,15 @@ typedef Lib3MFResult (*PLib3MFModel_AddMeshObjectPtr) (Lib3MF_Model pModel, Lib3
*/
typedef Lib3MFResult (*PLib3MFModel_AddComponentsObjectPtr) (Lib3MF_Model pModel, Lib3MF_ComponentsObject * pComponentsObjectInstance);
+/**
+* adds an empty boolean object to the model.
+*
+* @param[in] pModel - Model instance.
+* @param[out] pBooleanObjectInstance - returns the boolean object instance
+* @return error code or 0 (success)
+*/
+typedef Lib3MFResult (*PLib3MFModel_AddBooleanObjectPtr) (Lib3MF_Model pModel, Lib3MF_BooleanObject * pBooleanObjectInstance);
+
/**
* creates a new model slicestack by its id
*
@@ -6665,6 +7112,7 @@ typedef struct {
PLib3MFObjectIterator_GetCurrentObjectPtr m_ObjectIterator_GetCurrentObject;
PLib3MFMeshObjectIterator_GetCurrentMeshObjectPtr m_MeshObjectIterator_GetCurrentMeshObject;
PLib3MFComponentsObjectIterator_GetCurrentComponentsObjectPtr m_ComponentsObjectIterator_GetCurrentComponentsObject;
+ PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr m_BooleanObjectIterator_GetCurrentBooleanObject;
PLib3MFTexture2DIterator_GetCurrentTexture2DPtr m_Texture2DIterator_GetCurrentTexture2D;
PLib3MFBaseMaterialGroupIterator_GetCurrentBaseMaterialGroupPtr m_BaseMaterialGroupIterator_GetCurrentBaseMaterialGroup;
PLib3MFColorGroupIterator_GetCurrentColorGroupPtr m_ColorGroupIterator_GetCurrentColorGroup;
@@ -6713,6 +7161,7 @@ typedef struct {
PLib3MFObject_IsMeshObjectPtr m_Object_IsMeshObject;
PLib3MFObject_IsComponentsObjectPtr m_Object_IsComponentsObject;
PLib3MFObject_IsLevelSetObjectPtr m_Object_IsLevelSetObject;
+ PLib3MFObject_IsBooleanObjectPtr m_Object_IsBooleanObject;
PLib3MFObject_IsValidPtr m_Object_IsValid;
PLib3MFObject_SetAttachmentAsThumbnailPtr m_Object_SetAttachmentAsThumbnail;
PLib3MFObject_GetThumbnailAttachmentPtr m_Object_GetThumbnailAttachment;
@@ -6770,6 +7219,20 @@ typedef struct {
PLib3MFLevelSet_GetMeshPtr m_LevelSet_GetMesh;
PLib3MFLevelSet_GetVolumeDataPtr m_LevelSet_GetVolumeData;
PLib3MFLevelSet_SetVolumeDataPtr m_LevelSet_SetVolumeData;
+ PLib3MFBooleanObject_SetBaseObjectPtr m_BooleanObject_SetBaseObject;
+ PLib3MFBooleanObject_GetBaseObjectPtr m_BooleanObject_GetBaseObject;
+ PLib3MFBooleanObject_SetBaseTransformPtr m_BooleanObject_SetBaseTransform;
+ PLib3MFBooleanObject_GetBaseTransformPtr m_BooleanObject_GetBaseTransform;
+ PLib3MFBooleanObject_SetOperationPtr m_BooleanObject_SetOperation;
+ PLib3MFBooleanObject_GetOperationPtr m_BooleanObject_GetOperation;
+ PLib3MFBooleanObject_SetCSGModeEnabledPtr m_BooleanObject_SetCSGModeEnabled;
+ PLib3MFBooleanObject_GetCSGModeEnabledPtr m_BooleanObject_GetCSGModeEnabled;
+ PLib3MFBooleanObject_SetExtractionGridResolutionPtr m_BooleanObject_SetExtractionGridResolution;
+ PLib3MFBooleanObject_GetExtractionGridResolutionPtr m_BooleanObject_GetExtractionGridResolution;
+ PLib3MFBooleanObject_GetOperandCountPtr m_BooleanObject_GetOperandCount;
+ PLib3MFBooleanObject_AddOperandPtr m_BooleanObject_AddOperand;
+ PLib3MFBooleanObject_GetOperandPtr m_BooleanObject_GetOperand;
+ PLib3MFBooleanObject_MergeToMeshObjectPtr m_BooleanObject_MergeToMeshObject;
PLib3MFBeamLattice_GetMinLengthPtr m_BeamLattice_GetMinLength;
PLib3MFBeamLattice_SetMinLengthPtr m_BeamLattice_SetMinLength;
PLib3MFBeamLattice_GetClippingPtr m_BeamLattice_GetClipping;
@@ -6997,6 +7460,29 @@ typedef struct {
PLib3MFUnsignedMeshNode_GetInputMeshPtr m_UnsignedMeshNode_GetInputMesh;
PLib3MFUnsignedMeshNode_GetInputPosPtr m_UnsignedMeshNode_GetInputPos;
PLib3MFUnsignedMeshNode_GetOutputDistancePtr m_UnsignedMeshNode_GetOutputDistance;
+ PLib3MFBeamLatticeNode_GetInputBeamLatticePtr m_BeamLatticeNode_GetInputBeamLattice;
+ PLib3MFBeamLatticeNode_GetInputPosPtr m_BeamLatticeNode_GetInputPos;
+ PLib3MFBeamLatticeNode_GetOutputDistancePtr m_BeamLatticeNode_GetOutputDistance;
+ PLib3MFBeamLatticeNode_SetAccurateRangePtr m_BeamLatticeNode_SetAccurateRange;
+ PLib3MFBeamLatticeNode_GetAccurateRangePtr m_BeamLatticeNode_GetAccurateRange;
+ PLib3MFFunctionGradientNode_GetInputFunctionIDPtr m_FunctionGradientNode_GetInputFunctionID;
+ PLib3MFFunctionGradientNode_GetInputPosPtr m_FunctionGradientNode_GetInputPos;
+ PLib3MFFunctionGradientNode_GetInputStepPtr m_FunctionGradientNode_GetInputStep;
+ PLib3MFFunctionGradientNode_SetScalarOutputNamePtr m_FunctionGradientNode_SetScalarOutputName;
+ PLib3MFFunctionGradientNode_GetScalarOutputNamePtr m_FunctionGradientNode_GetScalarOutputName;
+ PLib3MFFunctionGradientNode_SetVectorInputNamePtr m_FunctionGradientNode_SetVectorInputName;
+ PLib3MFFunctionGradientNode_GetVectorInputNamePtr m_FunctionGradientNode_GetVectorInputName;
+ PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr m_FunctionGradientNode_GetOutputNormalizedGradient;
+ PLib3MFFunctionGradientNode_GetOutputGradientPtr m_FunctionGradientNode_GetOutputGradient;
+ PLib3MFFunctionGradientNode_GetOutputMagnitudePtr m_FunctionGradientNode_GetOutputMagnitude;
+ PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr m_NormalizeDistanceNode_GetInputFunctionID;
+ PLib3MFNormalizeDistanceNode_GetInputPosPtr m_NormalizeDistanceNode_GetInputPos;
+ PLib3MFNormalizeDistanceNode_GetInputStepPtr m_NormalizeDistanceNode_GetInputStep;
+ PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr m_NormalizeDistanceNode_SetScalarOutputName;
+ PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr m_NormalizeDistanceNode_GetScalarOutputName;
+ PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr m_NormalizeDistanceNode_SetVectorInputName;
+ PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr m_NormalizeDistanceNode_GetVectorInputName;
+ PLib3MFNormalizeDistanceNode_GetOutputResultPtr m_NormalizeDistanceNode_GetOutputResult;
PLib3MFFunctionCallNode_GetInputFunctionIDPtr m_FunctionCallNode_GetInputFunctionID;
PLib3MFNodeIterator_GetCurrentPtr m_NodeIterator_GetCurrent;
PLib3MFFunction_GetDisplayNamePtr m_Function_GetDisplayName;
@@ -7060,6 +7546,9 @@ typedef struct {
PLib3MFImplicitFunction_AddConstMatNodePtr m_ImplicitFunction_AddConstMatNode;
PLib3MFImplicitFunction_AddMeshNodePtr m_ImplicitFunction_AddMeshNode;
PLib3MFImplicitFunction_AddUnsignedMeshNodePtr m_ImplicitFunction_AddUnsignedMeshNode;
+ PLib3MFImplicitFunction_AddBeamLatticeNodePtr m_ImplicitFunction_AddBeamLatticeNode;
+ PLib3MFImplicitFunction_AddFunctionGradientNodePtr m_ImplicitFunction_AddFunctionGradientNode;
+ PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr m_ImplicitFunction_AddNormalizeDistanceNode;
PLib3MFImplicitFunction_AddFunctionCallNodePtr m_ImplicitFunction_AddFunctionCallNode;
PLib3MFImplicitFunction_GetNodesPtr m_ImplicitFunction_GetNodes;
PLib3MFImplicitFunction_RemoveNodePtr m_ImplicitFunction_RemoveNode;
@@ -7169,6 +7658,7 @@ typedef struct {
PLib3MFModel_GetMultiPropertyGroupByIDPtr m_Model_GetMultiPropertyGroupByID;
PLib3MFModel_GetMeshObjectByIDPtr m_Model_GetMeshObjectByID;
PLib3MFModel_GetComponentsObjectByIDPtr m_Model_GetComponentsObjectByID;
+ PLib3MFModel_GetBooleanObjectByIDPtr m_Model_GetBooleanObjectByID;
PLib3MFModel_GetColorGroupByIDPtr m_Model_GetColorGroupByID;
PLib3MFModel_GetSliceStackByIDPtr m_Model_GetSliceStackByID;
PLib3MFModel_GetLevelSetByIDPtr m_Model_GetLevelSetByID;
@@ -7180,6 +7670,7 @@ typedef struct {
PLib3MFModel_GetObjectsPtr m_Model_GetObjects;
PLib3MFModel_GetMeshObjectsPtr m_Model_GetMeshObjects;
PLib3MFModel_GetComponentsObjectsPtr m_Model_GetComponentsObjects;
+ PLib3MFModel_GetBooleanObjectsPtr m_Model_GetBooleanObjects;
PLib3MFModel_GetTexture2DsPtr m_Model_GetTexture2Ds;
PLib3MFModel_GetBaseMaterialGroupsPtr m_Model_GetBaseMaterialGroups;
PLib3MFModel_GetColorGroupsPtr m_Model_GetColorGroups;
@@ -7192,6 +7683,7 @@ typedef struct {
PLib3MFModel_MergeFromModelPtr m_Model_MergeFromModel;
PLib3MFModel_AddMeshObjectPtr m_Model_AddMeshObject;
PLib3MFModel_AddComponentsObjectPtr m_Model_AddComponentsObject;
+ PLib3MFModel_AddBooleanObjectPtr m_Model_AddBooleanObject;
PLib3MFModel_AddSliceStackPtr m_Model_AddSliceStack;
PLib3MFModel_AddTexture2DFromAttachmentPtr m_Model_AddTexture2DFromAttachment;
PLib3MFModel_AddBaseMaterialGroupPtr m_Model_AddBaseMaterialGroup;
diff --git a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp
index 827d262ab..63da359c9 100644
--- a/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp
+++ b/Autogenerated/Bindings/CppDynamic/lib3mf_dynamic.hpp
@@ -24,12 +24,12 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.0-alpha.
+This file has been generated by the Automatic Component Toolkit (ACT) version 1.8.1-develop.
Abstract: This is an autogenerated C++-Header file in order to allow an easy
use of the 3MF Library
-Interface version: 2.4.0
+Interface version: 2.6.0
*/
@@ -67,6 +67,7 @@ class CSliceStackIterator;
class CObjectIterator;
class CMeshObjectIterator;
class CComponentsObjectIterator;
+class CBooleanObjectIterator;
class CTexture2DIterator;
class CBaseMaterialGroupIterator;
class CColorGroupIterator;
@@ -82,6 +83,7 @@ class CTriangleSet;
class CObject;
class CMeshObject;
class CLevelSet;
+class CBooleanObject;
class CBeamLattice;
class CFunctionReference;
class CVolumeDataColor;
@@ -157,6 +159,9 @@ class CConstVecNode;
class CConstMatNode;
class CMeshNode;
class CUnsignedMeshNode;
+class CBeamLatticeNode;
+class CFunctionGradientNode;
+class CNormalizeDistanceNode;
class CFunctionCallNode;
class CNodeIterator;
class CFunction;
@@ -188,6 +193,7 @@ typedef CSliceStackIterator CLib3MFSliceStackIterator;
typedef CObjectIterator CLib3MFObjectIterator;
typedef CMeshObjectIterator CLib3MFMeshObjectIterator;
typedef CComponentsObjectIterator CLib3MFComponentsObjectIterator;
+typedef CBooleanObjectIterator CLib3MFBooleanObjectIterator;
typedef CTexture2DIterator CLib3MFTexture2DIterator;
typedef CBaseMaterialGroupIterator CLib3MFBaseMaterialGroupIterator;
typedef CColorGroupIterator CLib3MFColorGroupIterator;
@@ -203,6 +209,7 @@ typedef CTriangleSet CLib3MFTriangleSet;
typedef CObject CLib3MFObject;
typedef CMeshObject CLib3MFMeshObject;
typedef CLevelSet CLib3MFLevelSet;
+typedef CBooleanObject CLib3MFBooleanObject;
typedef CBeamLattice CLib3MFBeamLattice;
typedef CFunctionReference CLib3MFFunctionReference;
typedef CVolumeDataColor CLib3MFVolumeDataColor;
@@ -278,6 +285,9 @@ typedef CConstVecNode CLib3MFConstVecNode;
typedef CConstMatNode CLib3MFConstMatNode;
typedef CMeshNode CLib3MFMeshNode;
typedef CUnsignedMeshNode CLib3MFUnsignedMeshNode;
+typedef CBeamLatticeNode CLib3MFBeamLatticeNode;
+typedef CFunctionGradientNode CLib3MFFunctionGradientNode;
+typedef CNormalizeDistanceNode CLib3MFNormalizeDistanceNode;
typedef CFunctionCallNode CLib3MFFunctionCallNode;
typedef CNodeIterator CLib3MFNodeIterator;
typedef CFunction CLib3MFFunction;
@@ -309,6 +319,7 @@ typedef std::shared_ptr PSliceStackIterator;
typedef std::shared_ptr PObjectIterator;
typedef std::shared_ptr PMeshObjectIterator;
typedef std::shared_ptr PComponentsObjectIterator;
+typedef std::shared_ptr PBooleanObjectIterator;
typedef std::shared_ptr PTexture2DIterator;
typedef std::shared_ptr PBaseMaterialGroupIterator;
typedef std::shared_ptr PColorGroupIterator;
@@ -324,6 +335,7 @@ typedef std::shared_ptr PTriangleSet;
typedef std::shared_ptr PObject;
typedef std::shared_ptr PMeshObject;
typedef std::shared_ptr PLevelSet;
+typedef std::shared_ptr PBooleanObject;
typedef std::shared_ptr PBeamLattice;
typedef std::shared_ptr PFunctionReference;
typedef std::shared_ptr PVolumeDataColor;
@@ -399,6 +411,9 @@ typedef std::shared_ptr PConstVecNode;
typedef std::shared_ptr PConstMatNode;
typedef std::shared_ptr PMeshNode;
typedef std::shared_ptr PUnsignedMeshNode;
+typedef std::shared_ptr PBeamLatticeNode;
+typedef std::shared_ptr PFunctionGradientNode;
+typedef std::shared_ptr PNormalizeDistanceNode;
typedef std::shared_ptr PFunctionCallNode;
typedef std::shared_ptr PNodeIterator;
typedef std::shared_ptr PFunction;
@@ -430,6 +445,7 @@ typedef PSliceStackIterator PLib3MFSliceStackIterator;
typedef PObjectIterator PLib3MFObjectIterator;
typedef PMeshObjectIterator PLib3MFMeshObjectIterator;
typedef PComponentsObjectIterator PLib3MFComponentsObjectIterator;
+typedef PBooleanObjectIterator PLib3MFBooleanObjectIterator;
typedef PTexture2DIterator PLib3MFTexture2DIterator;
typedef PBaseMaterialGroupIterator PLib3MFBaseMaterialGroupIterator;
typedef PColorGroupIterator PLib3MFColorGroupIterator;
@@ -445,6 +461,7 @@ typedef PTriangleSet PLib3MFTriangleSet;
typedef PObject PLib3MFObject;
typedef PMeshObject PLib3MFMeshObject;
typedef PLevelSet PLib3MFLevelSet;
+typedef PBooleanObject PLib3MFBooleanObject;
typedef PBeamLattice PLib3MFBeamLattice;
typedef PFunctionReference PLib3MFFunctionReference;
typedef PVolumeDataColor PLib3MFVolumeDataColor;
@@ -520,6 +537,9 @@ typedef PConstVecNode PLib3MFConstVecNode;
typedef PConstMatNode PLib3MFConstMatNode;
typedef PMeshNode PLib3MFMeshNode;
typedef PUnsignedMeshNode PLib3MFUnsignedMeshNode;
+typedef PBeamLatticeNode PLib3MFBeamLatticeNode;
+typedef PFunctionGradientNode PLib3MFFunctionGradientNode;
+typedef PNormalizeDistanceNode PLib3MFNormalizeDistanceNode;
typedef PFunctionCallNode PLib3MFFunctionCallNode;
typedef PNodeIterator PLib3MFNodeIterator;
typedef PFunction PLib3MFFunction;
@@ -867,6 +887,7 @@ class CWrapper {
friend class CObjectIterator;
friend class CMeshObjectIterator;
friend class CComponentsObjectIterator;
+ friend class CBooleanObjectIterator;
friend class CTexture2DIterator;
friend class CBaseMaterialGroupIterator;
friend class CColorGroupIterator;
@@ -882,6 +903,7 @@ class CWrapper {
friend class CObject;
friend class CMeshObject;
friend class CLevelSet;
+ friend class CBooleanObject;
friend class CBeamLattice;
friend class CFunctionReference;
friend class CVolumeDataColor;
@@ -957,6 +979,9 @@ class CWrapper {
friend class CConstMatNode;
friend class CMeshNode;
friend class CUnsignedMeshNode;
+ friend class CBeamLatticeNode;
+ friend class CFunctionGradientNode;
+ friend class CNormalizeDistanceNode;
friend class CFunctionCallNode;
friend class CNodeIterator;
friend class CFunction;
@@ -1032,6 +1057,8 @@ class CBase {
friend class CWrapper;
inline Lib3MF_uint64 ClassTypeId();
+
+protected:
};
/*************************************************************************************************************************
@@ -1219,6 +1246,23 @@ class CComponentsObjectIterator : public CResourceIterator {
inline PComponentsObject GetCurrentComponentsObject();
};
+/*************************************************************************************************************************
+ Class CBooleanObjectIterator
+**************************************************************************************************************************/
+class CBooleanObjectIterator : public CResourceIterator {
+public:
+
+ /**
+ * CBooleanObjectIterator::CBooleanObjectIterator - Constructor for BooleanObjectIterator class.
+ */
+ CBooleanObjectIterator(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CResourceIterator(pWrapper, pHandle)
+ {
+ }
+
+ inline PBooleanObject GetCurrentBooleanObject();
+};
+
/*************************************************************************************************************************
Class CTexture2DIterator
**************************************************************************************************************************/
@@ -1473,6 +1517,7 @@ class CObject : public CResource {
inline bool IsMeshObject();
inline bool IsComponentsObject();
inline bool IsLevelSetObject();
+ inline bool IsBooleanObject();
inline bool IsValid();
inline void SetAttachmentAsThumbnail(classParam pAttachment);
inline PAttachment GetThumbnailAttachment();
@@ -1564,6 +1609,36 @@ class CLevelSet : public CObject {
inline void SetVolumeData(classParam pTheVolumeData);
};
+/*************************************************************************************************************************
+ Class CBooleanObject
+**************************************************************************************************************************/
+class CBooleanObject : public CObject {
+public:
+
+ /**
+ * CBooleanObject::CBooleanObject - Constructor for BooleanObject class.
+ */
+ CBooleanObject(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CObject(pWrapper, pHandle)
+ {
+ }
+
+ inline void SetBaseObject(classParam pBaseObject, const sTransform & Transform);
+ inline PObject GetBaseObject();
+ inline void SetBaseTransform(const sTransform & Transform);
+ inline sTransform GetBaseTransform();
+ inline void SetOperation(const eBooleanOperation eOperation);
+ inline eBooleanOperation GetOperation();
+ inline void SetCSGModeEnabled(const bool bCSGModeEnabled);
+ inline bool GetCSGModeEnabled();
+ inline void SetExtractionGridResolution(const Lib3MF_uint32 nGridResolution);
+ inline Lib3MF_uint32 GetExtractionGridResolution();
+ inline Lib3MF_uint32 GetOperandCount();
+ inline void AddOperand(classParam pOperandObject, const sTransform & Transform);
+ inline sTransform GetOperand(const Lib3MF_uint32 nIndex, PMeshObject & pOperandObject);
+ inline PMeshObject MergeToMeshObject();
+};
+
/*************************************************************************************************************************
Class CBeamLattice
**************************************************************************************************************************/
@@ -2991,6 +3066,77 @@ class CUnsignedMeshNode : public CImplicitNode {
inline PImplicitPort GetOutputDistance();
};
+/*************************************************************************************************************************
+ Class CBeamLatticeNode
+**************************************************************************************************************************/
+class CBeamLatticeNode : public CImplicitNode {
+public:
+
+ /**
+ * CBeamLatticeNode::CBeamLatticeNode - Constructor for BeamLatticeNode class.
+ */
+ CBeamLatticeNode(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CImplicitNode(pWrapper, pHandle)
+ {
+ }
+
+ inline PImplicitPort GetInputBeamLattice();
+ inline PImplicitPort GetInputPos();
+ inline PImplicitPort GetOutputDistance();
+ inline void SetAccurateRange(const Lib3MF_double dAccurateRange);
+ inline Lib3MF_double GetAccurateRange();
+};
+
+/*************************************************************************************************************************
+ Class CFunctionGradientNode
+**************************************************************************************************************************/
+class CFunctionGradientNode : public CImplicitNode {
+public:
+
+ /**
+ * CFunctionGradientNode::CFunctionGradientNode - Constructor for FunctionGradientNode class.
+ */
+ CFunctionGradientNode(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CImplicitNode(pWrapper, pHandle)
+ {
+ }
+
+ inline PImplicitPort GetInputFunctionID();
+ inline PImplicitPort GetInputPos();
+ inline PImplicitPort GetInputStep();
+ inline void SetScalarOutputName(const std::string & sScalarOutputName);
+ inline std::string GetScalarOutputName();
+ inline void SetVectorInputName(const std::string & sVectorInputName);
+ inline std::string GetVectorInputName();
+ inline PImplicitPort GetOutputNormalizedGradient();
+ inline PImplicitPort GetOutputGradient();
+ inline PImplicitPort GetOutputMagnitude();
+};
+
+/*************************************************************************************************************************
+ Class CNormalizeDistanceNode
+**************************************************************************************************************************/
+class CNormalizeDistanceNode : public CImplicitNode {
+public:
+
+ /**
+ * CNormalizeDistanceNode::CNormalizeDistanceNode - Constructor for NormalizeDistanceNode class.
+ */
+ CNormalizeDistanceNode(CWrapper* pWrapper, Lib3MFHandle pHandle)
+ : CImplicitNode(pWrapper, pHandle)
+ {
+ }
+
+ inline PImplicitPort GetInputFunctionID();
+ inline PImplicitPort GetInputPos();
+ inline PImplicitPort GetInputStep();
+ inline void SetScalarOutputName(const std::string & sScalarOutputName);
+ inline std::string GetScalarOutputName();
+ inline void SetVectorInputName(const std::string & sVectorInputName);
+ inline std::string GetVectorInputName();
+ inline PImplicitPort GetOutputResult();
+};
+
/*************************************************************************************************************************
Class CFunctionCallNode
**************************************************************************************************************************/
@@ -3116,6 +3262,9 @@ class CImplicitFunction : public CFunction {
inline PConstMatNode AddConstMatNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PMeshNode AddMeshNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PUnsignedMeshNode AddUnsignedMeshNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
+ inline PBeamLatticeNode AddBeamLatticeNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
+ inline PFunctionGradientNode AddFunctionGradientNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
+ inline PNormalizeDistanceNode AddNormalizeDistanceNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PFunctionCallNode AddFunctionCallNode(const std::string & sIdentifier, const std::string & sDisplayName, const std::string & sTag);
inline PNodeIterator GetNodes();
inline void RemoveNode(classParam pNode);
@@ -3417,6 +3566,7 @@ class CModel : public CBase {
inline PMultiPropertyGroup GetMultiPropertyGroupByID(const Lib3MF_uint32 nUniqueResourceID);
inline PMeshObject GetMeshObjectByID(const Lib3MF_uint32 nUniqueResourceID);
inline PComponentsObject GetComponentsObjectByID(const Lib3MF_uint32 nUniqueResourceID);
+ inline PBooleanObject GetBooleanObjectByID(const Lib3MF_uint32 nUniqueResourceID);
inline PColorGroup GetColorGroupByID(const Lib3MF_uint32 nUniqueResourceID);
inline PSliceStack GetSliceStackByID(const Lib3MF_uint32 nUniqueResourceID);
inline PLevelSet GetLevelSetByID(const Lib3MF_uint32 nUniqueResourceID);
@@ -3428,6 +3578,7 @@ class CModel : public CBase {
inline PObjectIterator GetObjects();
inline PMeshObjectIterator GetMeshObjects();
inline PComponentsObjectIterator GetComponentsObjects();
+ inline PBooleanObjectIterator GetBooleanObjects();
inline PTexture2DIterator GetTexture2Ds();
inline PBaseMaterialGroupIterator GetBaseMaterialGroups();
inline PColorGroupIterator GetColorGroups();
@@ -3440,6 +3591,7 @@ class CModel : public CBase {
inline void MergeFromModel(classParam pModelInstance);
inline PMeshObject AddMeshObject();
inline PComponentsObject AddComponentsObject();
+ inline PBooleanObject AddBooleanObject();
inline PSliceStack AddSliceStack(const Lib3MF_double dZBottom);
inline PTexture2D AddTexture2DFromAttachment(classParam pTextureAttachment);
inline PBaseMaterialGroup AddBaseMaterialGroup();
@@ -3500,6 +3652,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
case 0xDE92510BD2112288UL: return new CObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ObjectIterator"
case 0xF4196034E2B9FDE6UL: return new CMeshObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshObjectIterator"
case 0x564DE4217ED7614AUL: return new CComponentsObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ComponentsObjectIterator"
+ case 0xAFF01F512E1FF6AEUL: return new CBooleanObjectIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BooleanObjectIterator"
case 0x4BD32B4870FFC03BUL: return new CTexture2DIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::Texture2DIterator"
case 0x65E6EDD9362C79CBUL: return new CBaseMaterialGroupIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BaseMaterialGroupIterator"
case 0x10274A1757C729C0UL: return new CColorGroupIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ColorGroupIterator"
@@ -3515,6 +3668,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
case 0x2DA2136F577A779CUL: return new CObject(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::Object"
case 0x3B3A6DC6EC610497UL: return new CMeshObject(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshObject"
case 0xE8A7D9C192EFD0E2UL: return new CLevelSet(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::LevelSet"
+ case 0x85FA0E8806B6C357UL: return new CBooleanObject(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BooleanObject"
case 0x63B3B461B30B4BA5UL: return new CBeamLattice(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BeamLattice"
case 0x4DF17E76926221C2UL: return new CFunctionReference(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionReference"
case 0xD85B5B6143E787E3UL: return new CVolumeDataColor(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::VolumeDataColor"
@@ -3590,6 +3744,9 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
case 0xF85C90EDCE6F90A4UL: return new CConstMatNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::ConstMatNode"
case 0x53601FD432E3DEF4UL: return new CMeshNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::MeshNode"
case 0x29985A628251A9CDUL: return new CUnsignedMeshNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::UnsignedMeshNode"
+ case 0x0F3A4EE98F7FEC0CUL: return new CBeamLatticeNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::BeamLatticeNode"
+ case 0x0437E27AEF740121UL: return new CFunctionGradientNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionGradientNode"
+ case 0x817D2E566E73AA8FUL: return new CNormalizeDistanceNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::NormalizeDistanceNode"
case 0x0765C17C952F24E3UL: return new CFunctionCallNode(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::FunctionCallNode"
case 0xFC006BC888CAB4D0UL: return new CNodeIterator(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::NodeIterator"
case 0x9EFB2757CA1A5231UL: return new CFunction(this, pHandle); break; // First 64 bits of SHA1 of a string: "Lib3MF::Function"
@@ -3934,6 +4091,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_ObjectIterator_GetCurrentObject = nullptr;
pWrapperTable->m_MeshObjectIterator_GetCurrentMeshObject = nullptr;
pWrapperTable->m_ComponentsObjectIterator_GetCurrentComponentsObject = nullptr;
+ pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject = nullptr;
pWrapperTable->m_Texture2DIterator_GetCurrentTexture2D = nullptr;
pWrapperTable->m_BaseMaterialGroupIterator_GetCurrentBaseMaterialGroup = nullptr;
pWrapperTable->m_ColorGroupIterator_GetCurrentColorGroup = nullptr;
@@ -3982,6 +4140,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_Object_IsMeshObject = nullptr;
pWrapperTable->m_Object_IsComponentsObject = nullptr;
pWrapperTable->m_Object_IsLevelSetObject = nullptr;
+ pWrapperTable->m_Object_IsBooleanObject = nullptr;
pWrapperTable->m_Object_IsValid = nullptr;
pWrapperTable->m_Object_SetAttachmentAsThumbnail = nullptr;
pWrapperTable->m_Object_GetThumbnailAttachment = nullptr;
@@ -4039,6 +4198,20 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_LevelSet_GetMesh = nullptr;
pWrapperTable->m_LevelSet_GetVolumeData = nullptr;
pWrapperTable->m_LevelSet_SetVolumeData = nullptr;
+ pWrapperTable->m_BooleanObject_SetBaseObject = nullptr;
+ pWrapperTable->m_BooleanObject_GetBaseObject = nullptr;
+ pWrapperTable->m_BooleanObject_SetBaseTransform = nullptr;
+ pWrapperTable->m_BooleanObject_GetBaseTransform = nullptr;
+ pWrapperTable->m_BooleanObject_SetOperation = nullptr;
+ pWrapperTable->m_BooleanObject_GetOperation = nullptr;
+ pWrapperTable->m_BooleanObject_SetCSGModeEnabled = nullptr;
+ pWrapperTable->m_BooleanObject_GetCSGModeEnabled = nullptr;
+ pWrapperTable->m_BooleanObject_SetExtractionGridResolution = nullptr;
+ pWrapperTable->m_BooleanObject_GetExtractionGridResolution = nullptr;
+ pWrapperTable->m_BooleanObject_GetOperandCount = nullptr;
+ pWrapperTable->m_BooleanObject_AddOperand = nullptr;
+ pWrapperTable->m_BooleanObject_GetOperand = nullptr;
+ pWrapperTable->m_BooleanObject_MergeToMeshObject = nullptr;
pWrapperTable->m_BeamLattice_GetMinLength = nullptr;
pWrapperTable->m_BeamLattice_SetMinLength = nullptr;
pWrapperTable->m_BeamLattice_GetClipping = nullptr;
@@ -4266,6 +4439,29 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_UnsignedMeshNode_GetInputMesh = nullptr;
pWrapperTable->m_UnsignedMeshNode_GetInputPos = nullptr;
pWrapperTable->m_UnsignedMeshNode_GetOutputDistance = nullptr;
+ pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice = nullptr;
+ pWrapperTable->m_BeamLatticeNode_GetInputPos = nullptr;
+ pWrapperTable->m_BeamLatticeNode_GetOutputDistance = nullptr;
+ pWrapperTable->m_BeamLatticeNode_SetAccurateRange = nullptr;
+ pWrapperTable->m_BeamLatticeNode_GetAccurateRange = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetInputFunctionID = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetInputPos = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetInputStep = nullptr;
+ pWrapperTable->m_FunctionGradientNode_SetScalarOutputName = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetScalarOutputName = nullptr;
+ pWrapperTable->m_FunctionGradientNode_SetVectorInputName = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetVectorInputName = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetOutputGradient = nullptr;
+ pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_GetInputPos = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_GetInputStep = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName = nullptr;
+ pWrapperTable->m_NormalizeDistanceNode_GetOutputResult = nullptr;
pWrapperTable->m_FunctionCallNode_GetInputFunctionID = nullptr;
pWrapperTable->m_NodeIterator_GetCurrent = nullptr;
pWrapperTable->m_Function_GetDisplayName = nullptr;
@@ -4329,6 +4525,9 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_ImplicitFunction_AddConstMatNode = nullptr;
pWrapperTable->m_ImplicitFunction_AddMeshNode = nullptr;
pWrapperTable->m_ImplicitFunction_AddUnsignedMeshNode = nullptr;
+ pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode = nullptr;
+ pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode = nullptr;
+ pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode = nullptr;
pWrapperTable->m_ImplicitFunction_AddFunctionCallNode = nullptr;
pWrapperTable->m_ImplicitFunction_GetNodes = nullptr;
pWrapperTable->m_ImplicitFunction_RemoveNode = nullptr;
@@ -4438,6 +4637,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_Model_GetMultiPropertyGroupByID = nullptr;
pWrapperTable->m_Model_GetMeshObjectByID = nullptr;
pWrapperTable->m_Model_GetComponentsObjectByID = nullptr;
+ pWrapperTable->m_Model_GetBooleanObjectByID = nullptr;
pWrapperTable->m_Model_GetColorGroupByID = nullptr;
pWrapperTable->m_Model_GetSliceStackByID = nullptr;
pWrapperTable->m_Model_GetLevelSetByID = nullptr;
@@ -4449,6 +4649,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_Model_GetObjects = nullptr;
pWrapperTable->m_Model_GetMeshObjects = nullptr;
pWrapperTable->m_Model_GetComponentsObjects = nullptr;
+ pWrapperTable->m_Model_GetBooleanObjects = nullptr;
pWrapperTable->m_Model_GetTexture2Ds = nullptr;
pWrapperTable->m_Model_GetBaseMaterialGroups = nullptr;
pWrapperTable->m_Model_GetColorGroups = nullptr;
@@ -4461,6 +4662,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
pWrapperTable->m_Model_MergeFromModel = nullptr;
pWrapperTable->m_Model_AddMeshObject = nullptr;
pWrapperTable->m_Model_AddComponentsObject = nullptr;
+ pWrapperTable->m_Model_AddBooleanObject = nullptr;
pWrapperTable->m_Model_AddSliceStack = nullptr;
pWrapperTable->m_Model_AddTexture2DFromAttachment = nullptr;
pWrapperTable->m_Model_AddBaseMaterialGroup = nullptr;
@@ -4940,6 +5142,15 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if (pWrapperTable->m_ComponentsObjectIterator_GetCurrentComponentsObject == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject = (PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobjectiterator_getcurrentbooleanobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject = (PLib3MFBooleanObjectIterator_GetCurrentBooleanObjectPtr) dlsym(hLibrary, "lib3mf_booleanobjectiterator_getcurrentbooleanobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Texture2DIterator_GetCurrentTexture2D = (PLib3MFTexture2DIterator_GetCurrentTexture2DPtr) GetProcAddress(hLibrary, "lib3mf_texture2diterator_getcurrenttexture2d");
#else // _WIN32
@@ -5372,6 +5583,15 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if (pWrapperTable->m_Object_IsLevelSetObject == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Object_IsBooleanObject = (PLib3MFObject_IsBooleanObjectPtr) GetProcAddress(hLibrary, "lib3mf_object_isbooleanobject");
+ #else // _WIN32
+ pWrapperTable->m_Object_IsBooleanObject = (PLib3MFObject_IsBooleanObjectPtr) dlsym(hLibrary, "lib3mf_object_isbooleanobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Object_IsBooleanObject == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Object_IsValid = (PLib3MFObject_IsValidPtr) GetProcAddress(hLibrary, "lib3mf_object_isvalid");
#else // _WIN32
@@ -5885,6 +6105,132 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if (pWrapperTable->m_LevelSet_SetVolumeData == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseObject = (PLib3MFBooleanObject_SetBaseObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setbaseobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseObject = (PLib3MFBooleanObject_SetBaseObjectPtr) dlsym(hLibrary, "lib3mf_booleanobject_setbaseobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetBaseObject == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseObject = (PLib3MFBooleanObject_GetBaseObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getbaseobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseObject = (PLib3MFBooleanObject_GetBaseObjectPtr) dlsym(hLibrary, "lib3mf_booleanobject_getbaseobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetBaseObject == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseTransform = (PLib3MFBooleanObject_SetBaseTransformPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setbasetransform");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetBaseTransform = (PLib3MFBooleanObject_SetBaseTransformPtr) dlsym(hLibrary, "lib3mf_booleanobject_setbasetransform");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetBaseTransform == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseTransform = (PLib3MFBooleanObject_GetBaseTransformPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getbasetransform");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetBaseTransform = (PLib3MFBooleanObject_GetBaseTransformPtr) dlsym(hLibrary, "lib3mf_booleanobject_getbasetransform");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetBaseTransform == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetOperation = (PLib3MFBooleanObject_SetOperationPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setoperation");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetOperation = (PLib3MFBooleanObject_SetOperationPtr) dlsym(hLibrary, "lib3mf_booleanobject_setoperation");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetOperation == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetOperation = (PLib3MFBooleanObject_GetOperationPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getoperation");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetOperation = (PLib3MFBooleanObject_GetOperationPtr) dlsym(hLibrary, "lib3mf_booleanobject_getoperation");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetOperation == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetCSGModeEnabled = (PLib3MFBooleanObject_SetCSGModeEnabledPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setcsgmodeenabled");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetCSGModeEnabled = (PLib3MFBooleanObject_SetCSGModeEnabledPtr) dlsym(hLibrary, "lib3mf_booleanobject_setcsgmodeenabled");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetCSGModeEnabled == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetCSGModeEnabled = (PLib3MFBooleanObject_GetCSGModeEnabledPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getcsgmodeenabled");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetCSGModeEnabled = (PLib3MFBooleanObject_GetCSGModeEnabledPtr) dlsym(hLibrary, "lib3mf_booleanobject_getcsgmodeenabled");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetCSGModeEnabled == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_SetExtractionGridResolution = (PLib3MFBooleanObject_SetExtractionGridResolutionPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_setextractiongridresolution");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_SetExtractionGridResolution = (PLib3MFBooleanObject_SetExtractionGridResolutionPtr) dlsym(hLibrary, "lib3mf_booleanobject_setextractiongridresolution");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_SetExtractionGridResolution == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetExtractionGridResolution = (PLib3MFBooleanObject_GetExtractionGridResolutionPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getextractiongridresolution");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetExtractionGridResolution = (PLib3MFBooleanObject_GetExtractionGridResolutionPtr) dlsym(hLibrary, "lib3mf_booleanobject_getextractiongridresolution");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetExtractionGridResolution == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetOperandCount = (PLib3MFBooleanObject_GetOperandCountPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getoperandcount");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetOperandCount = (PLib3MFBooleanObject_GetOperandCountPtr) dlsym(hLibrary, "lib3mf_booleanobject_getoperandcount");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetOperandCount == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_AddOperand = (PLib3MFBooleanObject_AddOperandPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_addoperand");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_AddOperand = (PLib3MFBooleanObject_AddOperandPtr) dlsym(hLibrary, "lib3mf_booleanobject_addoperand");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_AddOperand == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_GetOperand = (PLib3MFBooleanObject_GetOperandPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_getoperand");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_GetOperand = (PLib3MFBooleanObject_GetOperandPtr) dlsym(hLibrary, "lib3mf_booleanobject_getoperand");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_GetOperand == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_BooleanObject_MergeToMeshObject = (PLib3MFBooleanObject_MergeToMeshObjectPtr) GetProcAddress(hLibrary, "lib3mf_booleanobject_mergetomeshobject");
+ #else // _WIN32
+ pWrapperTable->m_BooleanObject_MergeToMeshObject = (PLib3MFBooleanObject_MergeToMeshObjectPtr) dlsym(hLibrary, "lib3mf_booleanobject_mergetomeshobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_BooleanObject_MergeToMeshObject == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_BeamLattice_GetMinLength = (PLib3MFBeamLattice_GetMinLengthPtr) GetProcAddress(hLibrary, "lib3mf_beamlattice_getminlength");
#else // _WIN32
@@ -7929,243 +8275,450 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_FunctionCallNode_GetInputFunctionID = (PLib3MFFunctionCallNode_GetInputFunctionIDPtr) GetProcAddress(hLibrary, "lib3mf_functioncallnode_getinputfunctionid");
+ pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice = (PLib3MFBeamLatticeNode_GetInputBeamLatticePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getinputbeamlattice");
#else // _WIN32
- pWrapperTable->m_FunctionCallNode_GetInputFunctionID = (PLib3MFFunctionCallNode_GetInputFunctionIDPtr) dlsym(hLibrary, "lib3mf_functioncallnode_getinputfunctionid");
+ pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice = (PLib3MFBeamLatticeNode_GetInputBeamLatticePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getinputbeamlattice");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_FunctionCallNode_GetInputFunctionID == nullptr)
+ if (pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_NodeIterator_GetCurrent = (PLib3MFNodeIterator_GetCurrentPtr) GetProcAddress(hLibrary, "lib3mf_nodeiterator_getcurrent");
+ pWrapperTable->m_BeamLatticeNode_GetInputPos = (PLib3MFBeamLatticeNode_GetInputPosPtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getinputpos");
#else // _WIN32
- pWrapperTable->m_NodeIterator_GetCurrent = (PLib3MFNodeIterator_GetCurrentPtr) dlsym(hLibrary, "lib3mf_nodeiterator_getcurrent");
+ pWrapperTable->m_BeamLatticeNode_GetInputPos = (PLib3MFBeamLatticeNode_GetInputPosPtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getinputpos");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_NodeIterator_GetCurrent == nullptr)
+ if (pWrapperTable->m_BeamLatticeNode_GetInputPos == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_GetDisplayName = (PLib3MFFunction_GetDisplayNamePtr) GetProcAddress(hLibrary, "lib3mf_function_getdisplayname");
+ pWrapperTable->m_BeamLatticeNode_GetOutputDistance = (PLib3MFBeamLatticeNode_GetOutputDistancePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getoutputdistance");
#else // _WIN32
- pWrapperTable->m_Function_GetDisplayName = (PLib3MFFunction_GetDisplayNamePtr) dlsym(hLibrary, "lib3mf_function_getdisplayname");
+ pWrapperTable->m_BeamLatticeNode_GetOutputDistance = (PLib3MFBeamLatticeNode_GetOutputDistancePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getoutputdistance");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_GetDisplayName == nullptr)
+ if (pWrapperTable->m_BeamLatticeNode_GetOutputDistance == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_SetDisplayName = (PLib3MFFunction_SetDisplayNamePtr) GetProcAddress(hLibrary, "lib3mf_function_setdisplayname");
+ pWrapperTable->m_BeamLatticeNode_SetAccurateRange = (PLib3MFBeamLatticeNode_SetAccurateRangePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_setaccuraterange");
#else // _WIN32
- pWrapperTable->m_Function_SetDisplayName = (PLib3MFFunction_SetDisplayNamePtr) dlsym(hLibrary, "lib3mf_function_setdisplayname");
+ pWrapperTable->m_BeamLatticeNode_SetAccurateRange = (PLib3MFBeamLatticeNode_SetAccurateRangePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_setaccuraterange");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_SetDisplayName == nullptr)
+ if (pWrapperTable->m_BeamLatticeNode_SetAccurateRange == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_AddInput = (PLib3MFFunction_AddInputPtr) GetProcAddress(hLibrary, "lib3mf_function_addinput");
+ pWrapperTable->m_BeamLatticeNode_GetAccurateRange = (PLib3MFBeamLatticeNode_GetAccurateRangePtr) GetProcAddress(hLibrary, "lib3mf_beamlatticenode_getaccuraterange");
#else // _WIN32
- pWrapperTable->m_Function_AddInput = (PLib3MFFunction_AddInputPtr) dlsym(hLibrary, "lib3mf_function_addinput");
+ pWrapperTable->m_BeamLatticeNode_GetAccurateRange = (PLib3MFBeamLatticeNode_GetAccurateRangePtr) dlsym(hLibrary, "lib3mf_beamlatticenode_getaccuraterange");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_AddInput == nullptr)
+ if (pWrapperTable->m_BeamLatticeNode_GetAccurateRange == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_GetInputs = (PLib3MFFunction_GetInputsPtr) GetProcAddress(hLibrary, "lib3mf_function_getinputs");
+ pWrapperTable->m_FunctionGradientNode_GetInputFunctionID = (PLib3MFFunctionGradientNode_GetInputFunctionIDPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getinputfunctionid");
#else // _WIN32
- pWrapperTable->m_Function_GetInputs = (PLib3MFFunction_GetInputsPtr) dlsym(hLibrary, "lib3mf_function_getinputs");
+ pWrapperTable->m_FunctionGradientNode_GetInputFunctionID = (PLib3MFFunctionGradientNode_GetInputFunctionIDPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getinputfunctionid");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_GetInputs == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetInputFunctionID == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_RemoveInput = (PLib3MFFunction_RemoveInputPtr) GetProcAddress(hLibrary, "lib3mf_function_removeinput");
+ pWrapperTable->m_FunctionGradientNode_GetInputPos = (PLib3MFFunctionGradientNode_GetInputPosPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getinputpos");
#else // _WIN32
- pWrapperTable->m_Function_RemoveInput = (PLib3MFFunction_RemoveInputPtr) dlsym(hLibrary, "lib3mf_function_removeinput");
+ pWrapperTable->m_FunctionGradientNode_GetInputPos = (PLib3MFFunctionGradientNode_GetInputPosPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getinputpos");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_RemoveInput == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetInputPos == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_AddOutput = (PLib3MFFunction_AddOutputPtr) GetProcAddress(hLibrary, "lib3mf_function_addoutput");
+ pWrapperTable->m_FunctionGradientNode_GetInputStep = (PLib3MFFunctionGradientNode_GetInputStepPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getinputstep");
#else // _WIN32
- pWrapperTable->m_Function_AddOutput = (PLib3MFFunction_AddOutputPtr) dlsym(hLibrary, "lib3mf_function_addoutput");
+ pWrapperTable->m_FunctionGradientNode_GetInputStep = (PLib3MFFunctionGradientNode_GetInputStepPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getinputstep");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_AddOutput == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetInputStep == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_GetOutputs = (PLib3MFFunction_GetOutputsPtr) GetProcAddress(hLibrary, "lib3mf_function_getoutputs");
+ pWrapperTable->m_FunctionGradientNode_SetScalarOutputName = (PLib3MFFunctionGradientNode_SetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_setscalaroutputname");
#else // _WIN32
- pWrapperTable->m_Function_GetOutputs = (PLib3MFFunction_GetOutputsPtr) dlsym(hLibrary, "lib3mf_function_getoutputs");
+ pWrapperTable->m_FunctionGradientNode_SetScalarOutputName = (PLib3MFFunctionGradientNode_SetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_setscalaroutputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_GetOutputs == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_SetScalarOutputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_RemoveOutput = (PLib3MFFunction_RemoveOutputPtr) GetProcAddress(hLibrary, "lib3mf_function_removeoutput");
+ pWrapperTable->m_FunctionGradientNode_GetScalarOutputName = (PLib3MFFunctionGradientNode_GetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getscalaroutputname");
#else // _WIN32
- pWrapperTable->m_Function_RemoveOutput = (PLib3MFFunction_RemoveOutputPtr) dlsym(hLibrary, "lib3mf_function_removeoutput");
+ pWrapperTable->m_FunctionGradientNode_GetScalarOutputName = (PLib3MFFunctionGradientNode_GetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getscalaroutputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_RemoveOutput == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetScalarOutputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_FindInput = (PLib3MFFunction_FindInputPtr) GetProcAddress(hLibrary, "lib3mf_function_findinput");
+ pWrapperTable->m_FunctionGradientNode_SetVectorInputName = (PLib3MFFunctionGradientNode_SetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_setvectorinputname");
#else // _WIN32
- pWrapperTable->m_Function_FindInput = (PLib3MFFunction_FindInputPtr) dlsym(hLibrary, "lib3mf_function_findinput");
+ pWrapperTable->m_FunctionGradientNode_SetVectorInputName = (PLib3MFFunctionGradientNode_SetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_setvectorinputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_FindInput == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_SetVectorInputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_Function_FindOutput = (PLib3MFFunction_FindOutputPtr) GetProcAddress(hLibrary, "lib3mf_function_findoutput");
+ pWrapperTable->m_FunctionGradientNode_GetVectorInputName = (PLib3MFFunctionGradientNode_GetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getvectorinputname");
#else // _WIN32
- pWrapperTable->m_Function_FindOutput = (PLib3MFFunction_FindOutputPtr) dlsym(hLibrary, "lib3mf_function_findoutput");
+ pWrapperTable->m_FunctionGradientNode_GetVectorInputName = (PLib3MFFunctionGradientNode_GetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getvectorinputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_Function_FindOutput == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetVectorInputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_GetIdentifier = (PLib3MFImplicitFunction_GetIdentifierPtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_getidentifier");
+ pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient = (PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getoutputnormalizedgradient");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_GetIdentifier = (PLib3MFImplicitFunction_GetIdentifierPtr) dlsym(hLibrary, "lib3mf_implicitfunction_getidentifier");
+ pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient = (PLib3MFFunctionGradientNode_GetOutputNormalizedGradientPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getoutputnormalizedgradient");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_GetIdentifier == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_SetIdentifier = (PLib3MFImplicitFunction_SetIdentifierPtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_setidentifier");
+ pWrapperTable->m_FunctionGradientNode_GetOutputGradient = (PLib3MFFunctionGradientNode_GetOutputGradientPtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getoutputgradient");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_SetIdentifier = (PLib3MFImplicitFunction_SetIdentifierPtr) dlsym(hLibrary, "lib3mf_implicitfunction_setidentifier");
+ pWrapperTable->m_FunctionGradientNode_GetOutputGradient = (PLib3MFFunctionGradientNode_GetOutputGradientPtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getoutputgradient");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_SetIdentifier == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetOutputGradient == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddNode = (PLib3MFImplicitFunction_AddNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addnode");
+ pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude = (PLib3MFFunctionGradientNode_GetOutputMagnitudePtr) GetProcAddress(hLibrary, "lib3mf_functiongradientnode_getoutputmagnitude");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddNode = (PLib3MFImplicitFunction_AddNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addnode");
+ pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude = (PLib3MFFunctionGradientNode_GetOutputMagnitudePtr) dlsym(hLibrary, "lib3mf_functiongradientnode_getoutputmagnitude");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddNode == nullptr)
+ if (pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddSinNode = (PLib3MFImplicitFunction_AddSinNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addsinnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID = (PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getinputfunctionid");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddSinNode = (PLib3MFImplicitFunction_AddSinNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addsinnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID = (PLib3MFNormalizeDistanceNode_GetInputFunctionIDPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getinputfunctionid");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddSinNode == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddCosNode = (PLib3MFImplicitFunction_AddCosNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addcosnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetInputPos = (PLib3MFNormalizeDistanceNode_GetInputPosPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getinputpos");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddCosNode = (PLib3MFImplicitFunction_AddCosNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addcosnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetInputPos = (PLib3MFNormalizeDistanceNode_GetInputPosPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getinputpos");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddCosNode == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_GetInputPos == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddTanNode = (PLib3MFImplicitFunction_AddTanNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addtannode");
+ pWrapperTable->m_NormalizeDistanceNode_GetInputStep = (PLib3MFNormalizeDistanceNode_GetInputStepPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getinputstep");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddTanNode = (PLib3MFImplicitFunction_AddTanNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addtannode");
+ pWrapperTable->m_NormalizeDistanceNode_GetInputStep = (PLib3MFNormalizeDistanceNode_GetInputStepPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getinputstep");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddTanNode == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_GetInputStep == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddArcSinNode = (PLib3MFImplicitFunction_AddArcSinNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addarcsinnode");
+ pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName = (PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_setscalaroutputname");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddArcSinNode = (PLib3MFImplicitFunction_AddArcSinNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addarcsinnode");
+ pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName = (PLib3MFNormalizeDistanceNode_SetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_setscalaroutputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddArcSinNode == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddArcCosNode = (PLib3MFImplicitFunction_AddArcCosNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addarccosnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName = (PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getscalaroutputname");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddArcCosNode = (PLib3MFImplicitFunction_AddArcCosNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addarccosnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName = (PLib3MFNormalizeDistanceNode_GetScalarOutputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getscalaroutputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddArcCosNode == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddArcTan2Node = (PLib3MFImplicitFunction_AddArcTan2NodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addarctan2node");
+ pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName = (PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_setvectorinputname");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddArcTan2Node = (PLib3MFImplicitFunction_AddArcTan2NodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addarctan2node");
+ pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName = (PLib3MFNormalizeDistanceNode_SetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_setvectorinputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddArcTan2Node == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddSinhNode = (PLib3MFImplicitFunction_AddSinhNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addsinhnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName = (PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getvectorinputname");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddSinhNode = (PLib3MFImplicitFunction_AddSinhNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addsinhnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName = (PLib3MFNormalizeDistanceNode_GetVectorInputNamePtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getvectorinputname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddSinhNode == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddCoshNode = (PLib3MFImplicitFunction_AddCoshNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addcoshnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetOutputResult = (PLib3MFNormalizeDistanceNode_GetOutputResultPtr) GetProcAddress(hLibrary, "lib3mf_normalizedistancenode_getoutputresult");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddCoshNode = (PLib3MFImplicitFunction_AddCoshNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addcoshnode");
+ pWrapperTable->m_NormalizeDistanceNode_GetOutputResult = (PLib3MFNormalizeDistanceNode_GetOutputResultPtr) dlsym(hLibrary, "lib3mf_normalizedistancenode_getoutputresult");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddCoshNode == nullptr)
+ if (pWrapperTable->m_NormalizeDistanceNode_GetOutputResult == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddTanhNode = (PLib3MFImplicitFunction_AddTanhNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addtanhnode");
+ pWrapperTable->m_FunctionCallNode_GetInputFunctionID = (PLib3MFFunctionCallNode_GetInputFunctionIDPtr) GetProcAddress(hLibrary, "lib3mf_functioncallnode_getinputfunctionid");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddTanhNode = (PLib3MFImplicitFunction_AddTanhNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addtanhnode");
+ pWrapperTable->m_FunctionCallNode_GetInputFunctionID = (PLib3MFFunctionCallNode_GetInputFunctionIDPtr) dlsym(hLibrary, "lib3mf_functioncallnode_getinputfunctionid");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddTanhNode == nullptr)
+ if (pWrapperTable->m_FunctionCallNode_GetInputFunctionID == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddRoundNode = (PLib3MFImplicitFunction_AddRoundNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addroundnode");
+ pWrapperTable->m_NodeIterator_GetCurrent = (PLib3MFNodeIterator_GetCurrentPtr) GetProcAddress(hLibrary, "lib3mf_nodeiterator_getcurrent");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddRoundNode = (PLib3MFImplicitFunction_AddRoundNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addroundnode");
+ pWrapperTable->m_NodeIterator_GetCurrent = (PLib3MFNodeIterator_GetCurrentPtr) dlsym(hLibrary, "lib3mf_nodeiterator_getcurrent");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddRoundNode == nullptr)
+ if (pWrapperTable->m_NodeIterator_GetCurrent == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddCeilNode = (PLib3MFImplicitFunction_AddCeilNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addceilnode");
+ pWrapperTable->m_Function_GetDisplayName = (PLib3MFFunction_GetDisplayNamePtr) GetProcAddress(hLibrary, "lib3mf_function_getdisplayname");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddCeilNode = (PLib3MFImplicitFunction_AddCeilNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addceilnode");
+ pWrapperTable->m_Function_GetDisplayName = (PLib3MFFunction_GetDisplayNamePtr) dlsym(hLibrary, "lib3mf_function_getdisplayname");
dlerror();
#endif // _WIN32
- if (pWrapperTable->m_ImplicitFunction_AddCeilNode == nullptr)
+ if (pWrapperTable->m_Function_GetDisplayName == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
#ifdef _WIN32
- pWrapperTable->m_ImplicitFunction_AddFloorNode = (PLib3MFImplicitFunction_AddFloorNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addfloornode");
+ pWrapperTable->m_Function_SetDisplayName = (PLib3MFFunction_SetDisplayNamePtr) GetProcAddress(hLibrary, "lib3mf_function_setdisplayname");
#else // _WIN32
- pWrapperTable->m_ImplicitFunction_AddFloorNode = (PLib3MFImplicitFunction_AddFloorNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addfloornode");
+ pWrapperTable->m_Function_SetDisplayName = (PLib3MFFunction_SetDisplayNamePtr) dlsym(hLibrary, "lib3mf_function_setdisplayname");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_SetDisplayName == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_AddInput = (PLib3MFFunction_AddInputPtr) GetProcAddress(hLibrary, "lib3mf_function_addinput");
+ #else // _WIN32
+ pWrapperTable->m_Function_AddInput = (PLib3MFFunction_AddInputPtr) dlsym(hLibrary, "lib3mf_function_addinput");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_AddInput == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_GetInputs = (PLib3MFFunction_GetInputsPtr) GetProcAddress(hLibrary, "lib3mf_function_getinputs");
+ #else // _WIN32
+ pWrapperTable->m_Function_GetInputs = (PLib3MFFunction_GetInputsPtr) dlsym(hLibrary, "lib3mf_function_getinputs");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_GetInputs == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_RemoveInput = (PLib3MFFunction_RemoveInputPtr) GetProcAddress(hLibrary, "lib3mf_function_removeinput");
+ #else // _WIN32
+ pWrapperTable->m_Function_RemoveInput = (PLib3MFFunction_RemoveInputPtr) dlsym(hLibrary, "lib3mf_function_removeinput");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_RemoveInput == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_AddOutput = (PLib3MFFunction_AddOutputPtr) GetProcAddress(hLibrary, "lib3mf_function_addoutput");
+ #else // _WIN32
+ pWrapperTable->m_Function_AddOutput = (PLib3MFFunction_AddOutputPtr) dlsym(hLibrary, "lib3mf_function_addoutput");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_AddOutput == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_GetOutputs = (PLib3MFFunction_GetOutputsPtr) GetProcAddress(hLibrary, "lib3mf_function_getoutputs");
+ #else // _WIN32
+ pWrapperTable->m_Function_GetOutputs = (PLib3MFFunction_GetOutputsPtr) dlsym(hLibrary, "lib3mf_function_getoutputs");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_GetOutputs == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_RemoveOutput = (PLib3MFFunction_RemoveOutputPtr) GetProcAddress(hLibrary, "lib3mf_function_removeoutput");
+ #else // _WIN32
+ pWrapperTable->m_Function_RemoveOutput = (PLib3MFFunction_RemoveOutputPtr) dlsym(hLibrary, "lib3mf_function_removeoutput");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_RemoveOutput == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_FindInput = (PLib3MFFunction_FindInputPtr) GetProcAddress(hLibrary, "lib3mf_function_findinput");
+ #else // _WIN32
+ pWrapperTable->m_Function_FindInput = (PLib3MFFunction_FindInputPtr) dlsym(hLibrary, "lib3mf_function_findinput");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_FindInput == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_Function_FindOutput = (PLib3MFFunction_FindOutputPtr) GetProcAddress(hLibrary, "lib3mf_function_findoutput");
+ #else // _WIN32
+ pWrapperTable->m_Function_FindOutput = (PLib3MFFunction_FindOutputPtr) dlsym(hLibrary, "lib3mf_function_findoutput");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Function_FindOutput == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_GetIdentifier = (PLib3MFImplicitFunction_GetIdentifierPtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_getidentifier");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_GetIdentifier = (PLib3MFImplicitFunction_GetIdentifierPtr) dlsym(hLibrary, "lib3mf_implicitfunction_getidentifier");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_GetIdentifier == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_SetIdentifier = (PLib3MFImplicitFunction_SetIdentifierPtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_setidentifier");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_SetIdentifier = (PLib3MFImplicitFunction_SetIdentifierPtr) dlsym(hLibrary, "lib3mf_implicitfunction_setidentifier");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_SetIdentifier == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddNode = (PLib3MFImplicitFunction_AddNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddNode = (PLib3MFImplicitFunction_AddNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddSinNode = (PLib3MFImplicitFunction_AddSinNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addsinnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddSinNode = (PLib3MFImplicitFunction_AddSinNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addsinnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddSinNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddCosNode = (PLib3MFImplicitFunction_AddCosNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addcosnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddCosNode = (PLib3MFImplicitFunction_AddCosNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addcosnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddCosNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddTanNode = (PLib3MFImplicitFunction_AddTanNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addtannode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddTanNode = (PLib3MFImplicitFunction_AddTanNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addtannode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddTanNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddArcSinNode = (PLib3MFImplicitFunction_AddArcSinNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addarcsinnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddArcSinNode = (PLib3MFImplicitFunction_AddArcSinNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addarcsinnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddArcSinNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddArcCosNode = (PLib3MFImplicitFunction_AddArcCosNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addarccosnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddArcCosNode = (PLib3MFImplicitFunction_AddArcCosNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addarccosnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddArcCosNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddArcTan2Node = (PLib3MFImplicitFunction_AddArcTan2NodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addarctan2node");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddArcTan2Node = (PLib3MFImplicitFunction_AddArcTan2NodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addarctan2node");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddArcTan2Node == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddSinhNode = (PLib3MFImplicitFunction_AddSinhNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addsinhnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddSinhNode = (PLib3MFImplicitFunction_AddSinhNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addsinhnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddSinhNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddCoshNode = (PLib3MFImplicitFunction_AddCoshNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addcoshnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddCoshNode = (PLib3MFImplicitFunction_AddCoshNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addcoshnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddCoshNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddTanhNode = (PLib3MFImplicitFunction_AddTanhNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addtanhnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddTanhNode = (PLib3MFImplicitFunction_AddTanhNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addtanhnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddTanhNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddRoundNode = (PLib3MFImplicitFunction_AddRoundNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addroundnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddRoundNode = (PLib3MFImplicitFunction_AddRoundNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addroundnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddRoundNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddCeilNode = (PLib3MFImplicitFunction_AddCeilNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addceilnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddCeilNode = (PLib3MFImplicitFunction_AddCeilNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addceilnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddCeilNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddFloorNode = (PLib3MFImplicitFunction_AddFloorNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addfloornode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddFloorNode = (PLib3MFImplicitFunction_AddFloorNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addfloornode");
dlerror();
#endif // _WIN32
if (pWrapperTable->m_ImplicitFunction_AddFloorNode == nullptr)
@@ -8495,6 +9048,33 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if (pWrapperTable->m_ImplicitFunction_AddUnsignedMeshNode == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode = (PLib3MFImplicitFunction_AddBeamLatticeNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addbeamlatticenode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode = (PLib3MFImplicitFunction_AddBeamLatticeNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addbeamlatticenode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode = (PLib3MFImplicitFunction_AddFunctionGradientNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addfunctiongradientnode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode = (PLib3MFImplicitFunction_AddFunctionGradientNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addfunctiongradientnode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ #ifdef _WIN32
+ pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode = (PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addnormalizedistancenode");
+ #else // _WIN32
+ pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode = (PLib3MFImplicitFunction_AddNormalizeDistanceNodePtr) dlsym(hLibrary, "lib3mf_implicitfunction_addnormalizedistancenode");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_ImplicitFunction_AddFunctionCallNode = (PLib3MFImplicitFunction_AddFunctionCallNodePtr) GetProcAddress(hLibrary, "lib3mf_implicitfunction_addfunctioncallnode");
#else // _WIN32
@@ -9476,6 +10056,15 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if (pWrapperTable->m_Model_GetComponentsObjectByID == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Model_GetBooleanObjectByID = (PLib3MFModel_GetBooleanObjectByIDPtr) GetProcAddress(hLibrary, "lib3mf_model_getbooleanobjectbyid");
+ #else // _WIN32
+ pWrapperTable->m_Model_GetBooleanObjectByID = (PLib3MFModel_GetBooleanObjectByIDPtr) dlsym(hLibrary, "lib3mf_model_getbooleanobjectbyid");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Model_GetBooleanObjectByID == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Model_GetColorGroupByID = (PLib3MFModel_GetColorGroupByIDPtr) GetProcAddress(hLibrary, "lib3mf_model_getcolorgroupbyid");
#else // _WIN32
@@ -9575,6 +10164,15 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if (pWrapperTable->m_Model_GetComponentsObjects == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Model_GetBooleanObjects = (PLib3MFModel_GetBooleanObjectsPtr) GetProcAddress(hLibrary, "lib3mf_model_getbooleanobjects");
+ #else // _WIN32
+ pWrapperTable->m_Model_GetBooleanObjects = (PLib3MFModel_GetBooleanObjectsPtr) dlsym(hLibrary, "lib3mf_model_getbooleanobjects");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Model_GetBooleanObjects == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Model_GetTexture2Ds = (PLib3MFModel_GetTexture2DsPtr) GetProcAddress(hLibrary, "lib3mf_model_gettexture2ds");
#else // _WIN32
@@ -9683,6 +10281,15 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if (pWrapperTable->m_Model_AddComponentsObject == nullptr)
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ #ifdef _WIN32
+ pWrapperTable->m_Model_AddBooleanObject = (PLib3MFModel_AddBooleanObjectPtr) GetProcAddress(hLibrary, "lib3mf_model_addbooleanobject");
+ #else // _WIN32
+ pWrapperTable->m_Model_AddBooleanObject = (PLib3MFModel_AddBooleanObjectPtr) dlsym(hLibrary, "lib3mf_model_addbooleanobject");
+ dlerror();
+ #endif // _WIN32
+ if (pWrapperTable->m_Model_AddBooleanObject == nullptr)
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
#ifdef _WIN32
pWrapperTable->m_Model_AddSliceStack = (PLib3MFModel_AddSliceStackPtr) GetProcAddress(hLibrary, "lib3mf_model_addslicestack");
#else // _WIN32
@@ -10326,6 +10933,10 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_ComponentsObjectIterator_GetCurrentComponentsObject == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("lib3mf_booleanobjectiterator_getcurrentbooleanobject", (void**)&(pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObjectIterator_GetCurrentBooleanObject == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("lib3mf_texture2diterator_getcurrenttexture2d", (void**)&(pWrapperTable->m_Texture2DIterator_GetCurrentTexture2D));
if ( (eLookupError != 0) || (pWrapperTable->m_Texture2DIterator_GetCurrentTexture2D == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -10518,6 +11129,10 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_Object_IsLevelSetObject == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("lib3mf_object_isbooleanobject", (void**)&(pWrapperTable->m_Object_IsBooleanObject));
+ if ( (eLookupError != 0) || (pWrapperTable->m_Object_IsBooleanObject == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("lib3mf_object_isvalid", (void**)&(pWrapperTable->m_Object_IsValid));
if ( (eLookupError != 0) || (pWrapperTable->m_Object_IsValid == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -10746,23 +11361,79 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_LevelSet_SetVolumeData == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
- eLookupError = (*pLookup)("lib3mf_beamlattice_getminlength", (void**)&(pWrapperTable->m_BeamLattice_GetMinLength));
- if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_GetMinLength == nullptr) )
+ eLookupError = (*pLookup)("lib3mf_booleanobject_setbaseobject", (void**)&(pWrapperTable->m_BooleanObject_SetBaseObject));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_SetBaseObject == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
- eLookupError = (*pLookup)("lib3mf_beamlattice_setminlength", (void**)&(pWrapperTable->m_BeamLattice_SetMinLength));
- if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_SetMinLength == nullptr) )
+ eLookupError = (*pLookup)("lib3mf_booleanobject_getbaseobject", (void**)&(pWrapperTable->m_BooleanObject_GetBaseObject));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_GetBaseObject == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
- eLookupError = (*pLookup)("lib3mf_beamlattice_getclipping", (void**)&(pWrapperTable->m_BeamLattice_GetClipping));
- if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_GetClipping == nullptr) )
+ eLookupError = (*pLookup)("lib3mf_booleanobject_setbasetransform", (void**)&(pWrapperTable->m_BooleanObject_SetBaseTransform));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_SetBaseTransform == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
- eLookupError = (*pLookup)("lib3mf_beamlattice_setclipping", (void**)&(pWrapperTable->m_BeamLattice_SetClipping));
- if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_SetClipping == nullptr) )
+ eLookupError = (*pLookup)("lib3mf_booleanobject_getbasetransform", (void**)&(pWrapperTable->m_BooleanObject_GetBaseTransform));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_GetBaseTransform == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
- eLookupError = (*pLookup)("lib3mf_beamlattice_getrepresentation", (void**)&(pWrapperTable->m_BeamLattice_GetRepresentation));
+ eLookupError = (*pLookup)("lib3mf_booleanobject_setoperation", (void**)&(pWrapperTable->m_BooleanObject_SetOperation));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_SetOperation == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_getoperation", (void**)&(pWrapperTable->m_BooleanObject_GetOperation));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_GetOperation == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_setcsgmodeenabled", (void**)&(pWrapperTable->m_BooleanObject_SetCSGModeEnabled));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_SetCSGModeEnabled == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_getcsgmodeenabled", (void**)&(pWrapperTable->m_BooleanObject_GetCSGModeEnabled));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_GetCSGModeEnabled == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_setextractiongridresolution", (void**)&(pWrapperTable->m_BooleanObject_SetExtractionGridResolution));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_SetExtractionGridResolution == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_getextractiongridresolution", (void**)&(pWrapperTable->m_BooleanObject_GetExtractionGridResolution));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_GetExtractionGridResolution == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_getoperandcount", (void**)&(pWrapperTable->m_BooleanObject_GetOperandCount));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_GetOperandCount == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_addoperand", (void**)&(pWrapperTable->m_BooleanObject_AddOperand));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_AddOperand == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_getoperand", (void**)&(pWrapperTable->m_BooleanObject_GetOperand));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_GetOperand == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_booleanobject_mergetomeshobject", (void**)&(pWrapperTable->m_BooleanObject_MergeToMeshObject));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BooleanObject_MergeToMeshObject == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlattice_getminlength", (void**)&(pWrapperTable->m_BeamLattice_GetMinLength));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_GetMinLength == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlattice_setminlength", (void**)&(pWrapperTable->m_BeamLattice_SetMinLength));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_SetMinLength == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlattice_getclipping", (void**)&(pWrapperTable->m_BeamLattice_GetClipping));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_GetClipping == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlattice_setclipping", (void**)&(pWrapperTable->m_BeamLattice_SetClipping));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_SetClipping == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlattice_getrepresentation", (void**)&(pWrapperTable->m_BeamLattice_GetRepresentation));
if ( (eLookupError != 0) || (pWrapperTable->m_BeamLattice_GetRepresentation == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -11654,6 +12325,98 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_UnsignedMeshNode_GetOutputDistance == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("lib3mf_beamlatticenode_getinputbeamlattice", (void**)&(pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLatticeNode_GetInputBeamLattice == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlatticenode_getinputpos", (void**)&(pWrapperTable->m_BeamLatticeNode_GetInputPos));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLatticeNode_GetInputPos == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlatticenode_getoutputdistance", (void**)&(pWrapperTable->m_BeamLatticeNode_GetOutputDistance));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLatticeNode_GetOutputDistance == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlatticenode_setaccuraterange", (void**)&(pWrapperTable->m_BeamLatticeNode_SetAccurateRange));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLatticeNode_SetAccurateRange == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_beamlatticenode_getaccuraterange", (void**)&(pWrapperTable->m_BeamLatticeNode_GetAccurateRange));
+ if ( (eLookupError != 0) || (pWrapperTable->m_BeamLatticeNode_GetAccurateRange == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getinputfunctionid", (void**)&(pWrapperTable->m_FunctionGradientNode_GetInputFunctionID));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetInputFunctionID == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getinputpos", (void**)&(pWrapperTable->m_FunctionGradientNode_GetInputPos));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetInputPos == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getinputstep", (void**)&(pWrapperTable->m_FunctionGradientNode_GetInputStep));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetInputStep == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_setscalaroutputname", (void**)&(pWrapperTable->m_FunctionGradientNode_SetScalarOutputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_SetScalarOutputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getscalaroutputname", (void**)&(pWrapperTable->m_FunctionGradientNode_GetScalarOutputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetScalarOutputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_setvectorinputname", (void**)&(pWrapperTable->m_FunctionGradientNode_SetVectorInputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_SetVectorInputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getvectorinputname", (void**)&(pWrapperTable->m_FunctionGradientNode_GetVectorInputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetVectorInputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getoutputnormalizedgradient", (void**)&(pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetOutputNormalizedGradient == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getoutputgradient", (void**)&(pWrapperTable->m_FunctionGradientNode_GetOutputGradient));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetOutputGradient == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_functiongradientnode_getoutputmagnitude", (void**)&(pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude));
+ if ( (eLookupError != 0) || (pWrapperTable->m_FunctionGradientNode_GetOutputMagnitude == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_getinputfunctionid", (void**)&(pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_GetInputFunctionID == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_getinputpos", (void**)&(pWrapperTable->m_NormalizeDistanceNode_GetInputPos));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_GetInputPos == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_getinputstep", (void**)&(pWrapperTable->m_NormalizeDistanceNode_GetInputStep));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_GetInputStep == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_setscalaroutputname", (void**)&(pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_SetScalarOutputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_getscalaroutputname", (void**)&(pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_GetScalarOutputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_setvectorinputname", (void**)&(pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_SetVectorInputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_getvectorinputname", (void**)&(pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_GetVectorInputName == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_normalizedistancenode_getoutputresult", (void**)&(pWrapperTable->m_NormalizeDistanceNode_GetOutputResult));
+ if ( (eLookupError != 0) || (pWrapperTable->m_NormalizeDistanceNode_GetOutputResult == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("lib3mf_functioncallnode_getinputfunctionid", (void**)&(pWrapperTable->m_FunctionCallNode_GetInputFunctionID));
if ( (eLookupError != 0) || (pWrapperTable->m_FunctionCallNode_GetInputFunctionID == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -11906,6 +12669,18 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_ImplicitFunction_AddUnsignedMeshNode == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("lib3mf_implicitfunction_addbeamlatticenode", (void**)&(pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode));
+ if ( (eLookupError != 0) || (pWrapperTable->m_ImplicitFunction_AddBeamLatticeNode == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_implicitfunction_addfunctiongradientnode", (void**)&(pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode));
+ if ( (eLookupError != 0) || (pWrapperTable->m_ImplicitFunction_AddFunctionGradientNode == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
+ eLookupError = (*pLookup)("lib3mf_implicitfunction_addnormalizedistancenode", (void**)&(pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode));
+ if ( (eLookupError != 0) || (pWrapperTable->m_ImplicitFunction_AddNormalizeDistanceNode == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("lib3mf_implicitfunction_addfunctioncallnode", (void**)&(pWrapperTable->m_ImplicitFunction_AddFunctionCallNode));
if ( (eLookupError != 0) || (pWrapperTable->m_ImplicitFunction_AddFunctionCallNode == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -12342,6 +13117,10 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_Model_GetComponentsObjectByID == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("lib3mf_model_getbooleanobjectbyid", (void**)&(pWrapperTable->m_Model_GetBooleanObjectByID));
+ if ( (eLookupError != 0) || (pWrapperTable->m_Model_GetBooleanObjectByID == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("lib3mf_model_getcolorgroupbyid", (void**)&(pWrapperTable->m_Model_GetColorGroupByID));
if ( (eLookupError != 0) || (pWrapperTable->m_Model_GetColorGroupByID == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -12386,6 +13165,10 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_Model_GetComponentsObjects == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("lib3mf_model_getbooleanobjects", (void**)&(pWrapperTable->m_Model_GetBooleanObjects));
+ if ( (eLookupError != 0) || (pWrapperTable->m_Model_GetBooleanObjects == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("lib3mf_model_gettexture2ds", (void**)&(pWrapperTable->m_Model_GetTexture2Ds));
if ( (eLookupError != 0) || (pWrapperTable->m_Model_GetTexture2Ds == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -12434,6 +13217,10 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
if ( (eLookupError != 0) || (pWrapperTable->m_Model_AddComponentsObject == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+ eLookupError = (*pLookup)("lib3mf_model_addbooleanobject", (void**)&(pWrapperTable->m_Model_AddBooleanObject));
+ if ( (eLookupError != 0) || (pWrapperTable->m_Model_AddBooleanObject == nullptr) )
+ return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
+
eLookupError = (*pLookup)("lib3mf_model_addslicestack", (void**)&(pWrapperTable->m_Model_AddSliceStack));
if ( (eLookupError != 0) || (pWrapperTable->m_Model_AddSliceStack == nullptr) )
return LIB3MF_ERROR_COULDNOTFINDLIBRARYEXPORT;
@@ -13182,6 +13969,25 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResource)));
}
+ /**
+ * Method definitions for class CBooleanObjectIterator
+ */
+
+ /**
+ * CBooleanObjectIterator::GetCurrentBooleanObject - Returns the BooleanObject the iterator points at.
+ * @return returns the BooleanObject instance.
+ */
+ PBooleanObject CBooleanObjectIterator::GetCurrentBooleanObject()
+ {
+ Lib3MFHandle hResource = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObjectIterator_GetCurrentBooleanObject(m_pHandle, &hResource));
+
+ if (!hResource) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResource)));
+ }
+
/**
* Method definitions for class CTexture2DIterator
*/
@@ -13832,6 +14638,18 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
return resultIsLevelSetObject;
}
+ /**
+ * CObject::IsBooleanObject - Retrieves, if an object is a boolean object
+ * @return returns, whether the object is a boolean object
+ */
+ bool CObject::IsBooleanObject()
+ {
+ bool resultIsBooleanObject = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_Object_IsBooleanObject(m_pHandle, &resultIsBooleanObject));
+
+ return resultIsBooleanObject;
+ }
+
/**
* CObject::IsValid - Retrieves, if the object is valid according to the core spec. For mesh objects, we distinguish between the type attribute of the object:In case of object type other, this always means false.In case of object type model or solidsupport, this means, if the mesh suffices all requirements of the core spec chapter 4.1.In case of object type support or surface, this always means true.A component objects is valid if and only if it contains at least one component and all child components are valid objects.
* @return returns whether the object is a valid object description
@@ -14527,6 +15345,178 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
CheckError(m_pWrapper->m_WrapperTable.m_LevelSet_SetVolumeData(m_pHandle, hTheVolumeData));
}
+ /**
+ * Method definitions for class CBooleanObject
+ */
+
+ /**
+ * CBooleanObject::SetBaseObject - Sets the base object and transform for the boolean shape.
+ * @param[in] pBaseObject - base object of the boolean shape
+ * @param[in] Transform - transform applied to the base object
+ */
+ void CBooleanObject::SetBaseObject(classParam pBaseObject, const sTransform & Transform)
+ {
+ Lib3MFHandle hBaseObject = pBaseObject.GetHandle();
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_SetBaseObject(m_pHandle, hBaseObject, &Transform));
+ }
+
+ /**
+ * CBooleanObject::GetBaseObject - Returns the base object of the boolean shape.
+ * @return base object of the boolean shape
+ */
+ PObject CBooleanObject::GetBaseObject()
+ {
+ Lib3MFHandle hBaseObject = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_GetBaseObject(m_pHandle, &hBaseObject));
+
+ if (!hBaseObject) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hBaseObject)));
+ }
+
+ /**
+ * CBooleanObject::SetBaseTransform - Sets the base transform of the boolean shape.
+ * @param[in] Transform - transform applied to the base object
+ */
+ void CBooleanObject::SetBaseTransform(const sTransform & Transform)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_SetBaseTransform(m_pHandle, &Transform));
+ }
+
+ /**
+ * CBooleanObject::GetBaseTransform - Returns the base transform of the boolean shape.
+ * @return transform applied to the base object
+ */
+ sTransform CBooleanObject::GetBaseTransform()
+ {
+ sTransform resultTransform;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_GetBaseTransform(m_pHandle, &resultTransform));
+
+ return resultTransform;
+ }
+
+ /**
+ * CBooleanObject::SetOperation - Sets the boolean operation used for the boolean shape.
+ * @param[in] eOperation - boolean operation used for the shape
+ */
+ void CBooleanObject::SetOperation(const eBooleanOperation eOperation)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_SetOperation(m_pHandle, eOperation));
+ }
+
+ /**
+ * CBooleanObject::GetOperation - Returns the boolean operation used for the boolean shape.
+ * @return boolean operation used for the shape
+ */
+ eBooleanOperation CBooleanObject::GetOperation()
+ {
+ eBooleanOperation resultOperation = (eBooleanOperation) 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_GetOperation(m_pHandle, &resultOperation));
+
+ return resultOperation;
+ }
+
+ /**
+ * CBooleanObject::SetCSGModeEnabled - Enables or disables CSG field evaluation for boolean-to-mesh materialization.
+ * @param[in] bCSGModeEnabled - if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+ */
+ void CBooleanObject::SetCSGModeEnabled(const bool bCSGModeEnabled)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_SetCSGModeEnabled(m_pHandle, bCSGModeEnabled));
+ }
+
+ /**
+ * CBooleanObject::GetCSGModeEnabled - Returns whether CSG field evaluation is enabled for boolean-to-mesh materialization.
+ * @return if true, boolean materialization uses CSG field evaluation; otherwise, uses flattening fallback
+ */
+ bool CBooleanObject::GetCSGModeEnabled()
+ {
+ bool resultCSGModeEnabled = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_GetCSGModeEnabled(m_pHandle, &resultCSGModeEnabled));
+
+ return resultCSGModeEnabled;
+ }
+
+ /**
+ * CBooleanObject::SetExtractionGridResolution - Sets the extraction grid resolution used for boolean-to-mesh materialization.
+ * @param[in] nGridResolution - extraction grid resolution for boolean surface extraction
+ */
+ void CBooleanObject::SetExtractionGridResolution(const Lib3MF_uint32 nGridResolution)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_SetExtractionGridResolution(m_pHandle, nGridResolution));
+ }
+
+ /**
+ * CBooleanObject::GetExtractionGridResolution - Returns the extraction grid resolution used for boolean-to-mesh materialization.
+ * @return extraction grid resolution for boolean surface extraction
+ */
+ Lib3MF_uint32 CBooleanObject::GetExtractionGridResolution()
+ {
+ Lib3MF_uint32 resultGridResolution = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_GetExtractionGridResolution(m_pHandle, &resultGridResolution));
+
+ return resultGridResolution;
+ }
+
+ /**
+ * CBooleanObject::GetOperandCount - Returns the number of operands in the boolean sequence.
+ * @return number of operands in the boolean sequence
+ */
+ Lib3MF_uint32 CBooleanObject::GetOperandCount()
+ {
+ Lib3MF_uint32 resultCount = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_GetOperandCount(m_pHandle, &resultCount));
+
+ return resultCount;
+ }
+
+ /**
+ * CBooleanObject::AddOperand - Adds an operand object to the boolean sequence.
+ * @param[in] pOperandObject - mesh object used as operand
+ * @param[in] Transform - transform applied to the operand object
+ */
+ void CBooleanObject::AddOperand(classParam pOperandObject, const sTransform & Transform)
+ {
+ Lib3MFHandle hOperandObject = pOperandObject.GetHandle();
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_AddOperand(m_pHandle, hOperandObject, &Transform));
+ }
+
+ /**
+ * CBooleanObject::GetOperand - Returns one operand object and transform from the boolean sequence.
+ * @param[in] nIndex - index of the operand in the boolean sequence
+ * @param[out] pOperandObject - mesh object used as operand
+ * @return transform applied to the operand object
+ */
+ sTransform CBooleanObject::GetOperand(const Lib3MF_uint32 nIndex, PMeshObject & pOperandObject)
+ {
+ Lib3MFHandle hOperandObject = (Lib3MFHandle)nullptr;
+ sTransform resultTransform;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_GetOperand(m_pHandle, nIndex, &hOperandObject, &resultTransform));
+ if (!hOperandObject) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ } else {
+ pOperandObject = std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hOperandObject)));
+ }
+
+ return resultTransform;
+ }
+
+ /**
+ * CBooleanObject::MergeToMeshObject - Materializes the boolean shape into a newly created mesh object.
+ * @return new mesh object containing the tessellated boolean shape
+ */
+ PMeshObject CBooleanObject::MergeToMeshObject()
+ {
+ Lib3MFHandle hMeshObject = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_BooleanObject_MergeToMeshObject(m_pHandle, &hMeshObject));
+
+ if (!hMeshObject) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMeshObject)));
+ }
+
/**
* Method definitions for class CBeamLattice
*/
@@ -14961,7 +15951,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CVolumeDataComposite::GetMaterialMapping - Returns MaterialMappting with given index
+ * CVolumeDataComposite::GetMaterialMapping - Returns MaterialMapping with given index
* @param[in] nIndex - Index of the MaterialMapping in question.
* @return MaterialMapping used in this element
*/
@@ -14977,7 +15967,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CVolumeDataComposite::AddMaterialMapping - Adds a the MaterialMapping
+ * CVolumeDataComposite::AddMaterialMapping - Adds a MaterialMapping
* @param[in] Transform - new transformation matrix
* @return The new MaterialMapping
*/
@@ -15127,7 +16117,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
/**
* CVolumeData::GetPropertyCount - Returns the number of VolumeDataProperty
- * @return the number of VolumeDataProperty-elements within this VolumdeData
+ * @return the number of VolumeDataProperty-elements within this VolumeData
*/
Lib3MF_uint32 CVolumeData::GetPropertyCount()
{
@@ -16156,7 +17146,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CAttachment::ReadFromFile - Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+ * CAttachment::ReadFromFile - Reads an attachment from a file. The path of this file is only read when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
* @param[in] sFileName - file to read from.
*/
void CAttachment::ReadFromFile(const std::string & sFileName)
@@ -16165,7 +17155,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CAttachment::ReadFromCallback - Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer-methods.
+ * CAttachment::ReadFromCallback - Reads an attachment from the data provided by a callback function. This callback function is only invoked when this attachment is being written as part of the 3MF package, or via the WriteToFile or WriteToBuffer methods.
* @param[in] pTheReadCallback - Callback to call for reading a data chunk
* @param[in] nStreamSize - number of bytes the callback returns
* @param[in] pTheSeekCallback - Callback to call for seeking in the stream.
@@ -16202,7 +17192,7 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CAttachment::ReadFromBuffer - Reads an attachment from a memory buffer. This buffer is immediatly read (in contrast to the ReadFromCallback and ReadFromFile-methods).
+ * CAttachment::ReadFromBuffer - Reads an attachment from a memory buffer. This buffer is immediately read (in contrast to the ReadFromCallback and ReadFromFile-methods).
* @param[in] BufferBuffer - Buffer to read from
*/
void CAttachment::ReadFromBuffer(const CInputVector & BufferBuffer)
@@ -17463,219 +18453,529 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
Lib3MFHandle hColumn0 = (Lib3MFHandle)nullptr;
CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetInputA(m_pHandle, &hColumn0));
- if (!hColumn0) {
+ if (!hColumn0) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn0)));
+ }
+
+ /**
+ * CMatrixFromColumnsNode::GetInputB - Retrieves the input for the second column
+ * @return the input for the second column
+ */
+ PImplicitPort CMatrixFromColumnsNode::GetInputB()
+ {
+ Lib3MFHandle hColumn1 = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetInputB(m_pHandle, &hColumn1));
+
+ if (!hColumn1) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn1)));
+ }
+
+ /**
+ * CMatrixFromColumnsNode::GetInputC - Retrieves the input for the third column
+ * @return the input for the third column
+ */
+ PImplicitPort CMatrixFromColumnsNode::GetInputC()
+ {
+ Lib3MFHandle hColumn2 = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetInputC(m_pHandle, &hColumn2));
+
+ if (!hColumn2) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn2)));
+ }
+
+ /**
+ * CMatrixFromColumnsNode::GetInputD - Retrieves the input for the fourth column
+ * @return the input for the fourth column
+ */
+ PImplicitPort CMatrixFromColumnsNode::GetInputD()
+ {
+ Lib3MFHandle hColumn3 = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetInputD(m_pHandle, &hColumn3));
+
+ if (!hColumn3) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn3)));
+ }
+
+ /**
+ * CMatrixFromColumnsNode::GetOutputResult - Retrieves the output
+ * @return the output
+ */
+ PImplicitPort CMatrixFromColumnsNode::GetOutputResult()
+ {
+ Lib3MFHandle hResult = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetOutputResult(m_pHandle, &hResult));
+
+ if (!hResult) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResult)));
+ }
+
+ /**
+ * Method definitions for class CConstantNode
+ */
+
+ /**
+ * CConstantNode::SetConstant - Sets the constant value of the node
+ * @param[in] dValue - the value
+ */
+ void CConstantNode::SetConstant(const Lib3MF_double dValue)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstantNode_SetConstant(m_pHandle, dValue));
+ }
+
+ /**
+ * CConstantNode::GetConstant - Retrieves the constant value of the node
+ * @return the value
+ */
+ Lib3MF_double CConstantNode::GetConstant()
+ {
+ Lib3MF_double resultValue = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstantNode_GetConstant(m_pHandle, &resultValue));
+
+ return resultValue;
+ }
+
+ /**
+ * CConstantNode::GetOutputValue - Retrieves the output
+ * @return the output
+ */
+ PImplicitPort CConstantNode::GetOutputValue()
+ {
+ Lib3MFHandle hValue = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstantNode_GetOutputValue(m_pHandle, &hValue));
+
+ if (!hValue) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hValue)));
+ }
+
+ /**
+ * Method definitions for class CConstVecNode
+ */
+
+ /**
+ * CConstVecNode::SetVector - Sets the vector value of the node
+ * @param[in] Value - the value
+ */
+ void CConstVecNode::SetVector(const sVector & Value)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstVecNode_SetVector(m_pHandle, &Value));
+ }
+
+ /**
+ * CConstVecNode::GetVector - Retrieves the vector value of the node
+ * @return the value
+ */
+ sVector CConstVecNode::GetVector()
+ {
+ sVector resultValue;
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstVecNode_GetVector(m_pHandle, &resultValue));
+
+ return resultValue;
+ }
+
+ /**
+ * CConstVecNode::GetOutputVector - Retrieves the output
+ * @return the output
+ */
+ PImplicitPort CConstVecNode::GetOutputVector()
+ {
+ Lib3MFHandle hVector = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstVecNode_GetOutputVector(m_pHandle, &hVector));
+
+ if (!hVector) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hVector)));
+ }
+
+ /**
+ * Method definitions for class CConstMatNode
+ */
+
+ /**
+ * CConstMatNode::SetMatrix - Sets the matrix value of the node
+ * @param[in] Value - the value
+ */
+ void CConstMatNode::SetMatrix(const sMatrix4x4 & Value)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstMatNode_SetMatrix(m_pHandle, &Value));
+ }
+
+ /**
+ * CConstMatNode::GetMatrix - Retrieves the matrix value of the node
+ * @return the matrix
+ */
+ sMatrix4x4 CConstMatNode::GetMatrix()
+ {
+ sMatrix4x4 resultValue;
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstMatNode_GetMatrix(m_pHandle, &resultValue));
+
+ return resultValue;
+ }
+
+ /**
+ * CConstMatNode::GetOutputMatrix - Retrieves the output
+ * @return the output
+ */
+ PImplicitPort CConstMatNode::GetOutputMatrix()
+ {
+ Lib3MFHandle hMatrix = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_ConstMatNode_GetOutputMatrix(m_pHandle, &hMatrix));
+
+ if (!hMatrix) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMatrix)));
+ }
+
+ /**
+ * Method definitions for class CMeshNode
+ */
+
+ /**
+ * CMeshNode::GetInputMesh - Retrieves the input for the model resource id of the mesh
+ * @return the input port for the model resource id of the mesh
+ */
+ PImplicitPort CMeshNode::GetInputMesh()
+ {
+ Lib3MFHandle hMesh = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_MeshNode_GetInputMesh(m_pHandle, &hMesh));
+
+ if (!hMesh) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMesh)));
+ }
+
+ /**
+ * CMeshNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position
+ */
+ PImplicitPort CMeshNode::GetInputPos()
+ {
+ Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_MeshNode_GetInputPos(m_pHandle, &hPos));
+
+ if (!hPos) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
+ }
+
+ /**
+ * CMeshNode::GetOutputDistance - Retrieves the output
+ * @return the output port for the signed distance to the mesh
+ */
+ PImplicitPort CMeshNode::GetOutputDistance()
+ {
+ Lib3MFHandle hDistance = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_MeshNode_GetOutputDistance(m_pHandle, &hDistance));
+
+ if (!hDistance) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hDistance)));
+ }
+
+ /**
+ * Method definitions for class CUnsignedMeshNode
+ */
+
+ /**
+ * CUnsignedMeshNode::GetInputMesh - Retrieves the input for the model resource id of the mesh
+ * @return the input port for the model resource id of the mesh
+ */
+ PImplicitPort CUnsignedMeshNode::GetInputMesh()
+ {
+ Lib3MFHandle hMesh = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_UnsignedMeshNode_GetInputMesh(m_pHandle, &hMesh));
+
+ if (!hMesh) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMesh)));
+ }
+
+ /**
+ * CUnsignedMeshNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position
+ */
+ PImplicitPort CUnsignedMeshNode::GetInputPos()
+ {
+ Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_UnsignedMeshNode_GetInputPos(m_pHandle, &hPos));
+
+ if (!hPos) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
+ }
+
+ /**
+ * CUnsignedMeshNode::GetOutputDistance - Retrieves the output
+ * @return the output port for the unsigned distance to the mesh
+ */
+ PImplicitPort CUnsignedMeshNode::GetOutputDistance()
+ {
+ Lib3MFHandle hDistance = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_UnsignedMeshNode_GetOutputDistance(m_pHandle, &hDistance));
+
+ if (!hDistance) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hDistance)));
+ }
+
+ /**
+ * Method definitions for class CBeamLatticeNode
+ */
+
+ /**
+ * CBeamLatticeNode::GetInputBeamLattice - Retrieves the input for the model resource id of the beam lattice
+ * @return the input port for the model resource id of the beam lattice (mesh with beamlattice extension)
+ */
+ PImplicitPort CBeamLatticeNode::GetInputBeamLattice()
+ {
+ Lib3MFHandle hBeamLattice = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_BeamLatticeNode_GetInputBeamLattice(m_pHandle, &hBeamLattice));
+
+ if (!hBeamLattice) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn0)));
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hBeamLattice)));
}
/**
- * CMatrixFromColumnsNode::GetInputB - Retrieves the input for the second column
- * @return the input for the second column
+ * CBeamLatticeNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position
*/
- PImplicitPort CMatrixFromColumnsNode::GetInputB()
+ PImplicitPort CBeamLatticeNode::GetInputPos()
{
- Lib3MFHandle hColumn1 = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetInputB(m_pHandle, &hColumn1));
+ Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_BeamLatticeNode_GetInputPos(m_pHandle, &hPos));
- if (!hColumn1) {
+ if (!hPos) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn1)));
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
}
/**
- * CMatrixFromColumnsNode::GetInputC - Retrieves the input for the third column
- * @return the input for the third column
+ * CBeamLatticeNode::GetOutputDistance - Retrieves the output
+ * @return the output port for the signed distance to the beam lattice
*/
- PImplicitPort CMatrixFromColumnsNode::GetInputC()
+ PImplicitPort CBeamLatticeNode::GetOutputDistance()
{
- Lib3MFHandle hColumn2 = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetInputC(m_pHandle, &hColumn2));
+ Lib3MFHandle hDistance = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_BeamLatticeNode_GetOutputDistance(m_pHandle, &hDistance));
- if (!hColumn2) {
+ if (!hDistance) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn2)));
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hDistance)));
}
/**
- * CMatrixFromColumnsNode::GetInputD - Retrieves the input for the fourth column
- * @return the input for the fourth column
+ * CBeamLatticeNode::SetAccurateRange - Sets the accurate range for distance computation
+ * @param[in] dAccurateRange - the accurate range in model units
*/
- PImplicitPort CMatrixFromColumnsNode::GetInputD()
+ void CBeamLatticeNode::SetAccurateRange(const Lib3MF_double dAccurateRange)
{
- Lib3MFHandle hColumn3 = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetInputD(m_pHandle, &hColumn3));
-
- if (!hColumn3) {
- CheckError(LIB3MF_ERROR_INVALIDPARAM);
- }
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hColumn3)));
+ CheckError(m_pWrapper->m_WrapperTable.m_BeamLatticeNode_SetAccurateRange(m_pHandle, dAccurateRange));
}
/**
- * CMatrixFromColumnsNode::GetOutputResult - Retrieves the output
- * @return the output
+ * CBeamLatticeNode::GetAccurateRange - Retrieves the accurate range for distance computation
+ * @return the accurate range in model units
*/
- PImplicitPort CMatrixFromColumnsNode::GetOutputResult()
+ Lib3MF_double CBeamLatticeNode::GetAccurateRange()
{
- Lib3MFHandle hResult = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_MatrixFromColumnsNode_GetOutputResult(m_pHandle, &hResult));
+ Lib3MF_double resultAccurateRange = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_BeamLatticeNode_GetAccurateRange(m_pHandle, &resultAccurateRange));
- if (!hResult) {
- CheckError(LIB3MF_ERROR_INVALIDPARAM);
- }
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hResult)));
+ return resultAccurateRange;
}
/**
- * Method definitions for class CConstantNode
+ * Method definitions for class CFunctionGradientNode
*/
/**
- * CConstantNode::SetConstant - Sets the constant value of the node
- * @param[in] dValue - the value
+ * CFunctionGradientNode::GetInputFunctionID - Retrieves the input for the function id
+ * @return the input port for the function
*/
- void CConstantNode::SetConstant(const Lib3MF_double dValue)
+ PImplicitPort CFunctionGradientNode::GetInputFunctionID()
{
- CheckError(m_pWrapper->m_WrapperTable.m_ConstantNode_SetConstant(m_pHandle, dValue));
+ Lib3MFHandle hFunction = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetInputFunctionID(m_pHandle, &hFunction));
+
+ if (!hFunction) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hFunction)));
}
/**
- * CConstantNode::GetConstant - Retrieves the constant value of the node
- * @return the value
+ * CFunctionGradientNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position
*/
- Lib3MF_double CConstantNode::GetConstant()
+ PImplicitPort CFunctionGradientNode::GetInputPos()
{
- Lib3MF_double resultValue = 0;
- CheckError(m_pWrapper->m_WrapperTable.m_ConstantNode_GetConstant(m_pHandle, &resultValue));
+ Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetInputPos(m_pHandle, &hPos));
- return resultValue;
+ if (!hPos) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
}
/**
- * CConstantNode::GetOutputValue - Retrieves the output
- * @return the output
+ * CFunctionGradientNode::GetInputStep - Retrieves the input for the finite difference step
+ * @return the input port for the finite difference step
*/
- PImplicitPort CConstantNode::GetOutputValue()
+ PImplicitPort CFunctionGradientNode::GetInputStep()
{
- Lib3MFHandle hValue = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_ConstantNode_GetOutputValue(m_pHandle, &hValue));
+ Lib3MFHandle hStep = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetInputStep(m_pHandle, &hStep));
- if (!hValue) {
+ if (!hStep) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hValue)));
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hStep)));
}
/**
- * Method definitions for class CConstVecNode
- */
-
- /**
- * CConstVecNode::SetVector - Sets the vector value of the node
- * @param[in] Value - the value
+ * CFunctionGradientNode::SetScalarOutputName - Sets the name of the referenced scalar output
+ * @param[in] sScalarOutputName - the name of the scalar output of the referenced function
*/
- void CConstVecNode::SetVector(const sVector & Value)
+ void CFunctionGradientNode::SetScalarOutputName(const std::string & sScalarOutputName)
{
- CheckError(m_pWrapper->m_WrapperTable.m_ConstVecNode_SetVector(m_pHandle, &Value));
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_SetScalarOutputName(m_pHandle, sScalarOutputName.c_str()));
}
/**
- * CConstVecNode::GetVector - Retrieves the vector value of the node
- * @return the value
+ * CFunctionGradientNode::GetScalarOutputName - Retrieves the name of the referenced scalar output
+ * @return the name of the scalar output of the referenced function
*/
- sVector CConstVecNode::GetVector()
+ std::string CFunctionGradientNode::GetScalarOutputName()
{
- sVector resultValue;
- CheckError(m_pWrapper->m_WrapperTable.m_ConstVecNode_GetVector(m_pHandle, &resultValue));
+ Lib3MF_uint32 bytesNeededScalarOutputName = 0;
+ Lib3MF_uint32 bytesWrittenScalarOutputName = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetScalarOutputName(m_pHandle, 0, &bytesNeededScalarOutputName, nullptr));
+ std::vector bufferScalarOutputName(bytesNeededScalarOutputName);
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetScalarOutputName(m_pHandle, bytesNeededScalarOutputName, &bytesWrittenScalarOutputName, &bufferScalarOutputName[0]));
- return resultValue;
+ return std::string(&bufferScalarOutputName[0]);
}
/**
- * CConstVecNode::GetOutputVector - Retrieves the output
- * @return the output
+ * CFunctionGradientNode::SetVectorInputName - Sets the name of the referenced vector input
+ * @param[in] sVectorInputName - the name of the vector input (float3) of the referenced function
*/
- PImplicitPort CConstVecNode::GetOutputVector()
+ void CFunctionGradientNode::SetVectorInputName(const std::string & sVectorInputName)
{
- Lib3MFHandle hVector = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_ConstVecNode_GetOutputVector(m_pHandle, &hVector));
-
- if (!hVector) {
- CheckError(LIB3MF_ERROR_INVALIDPARAM);
- }
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hVector)));
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_SetVectorInputName(m_pHandle, sVectorInputName.c_str()));
}
/**
- * Method definitions for class CConstMatNode
- */
+ * CFunctionGradientNode::GetVectorInputName - Retrieves the name of the referenced vector input
+ * @return the name of the vector input (float3) of the referenced function
+ */
+ std::string CFunctionGradientNode::GetVectorInputName()
+ {
+ Lib3MF_uint32 bytesNeededVectorInputName = 0;
+ Lib3MF_uint32 bytesWrittenVectorInputName = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetVectorInputName(m_pHandle, 0, &bytesNeededVectorInputName, nullptr));
+ std::vector bufferVectorInputName(bytesNeededVectorInputName);
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetVectorInputName(m_pHandle, bytesNeededVectorInputName, &bytesWrittenVectorInputName, &bufferVectorInputName[0]));
+
+ return std::string(&bufferVectorInputName[0]);
+ }
/**
- * CConstMatNode::SetMatrix - Sets the matrix value of the node
- * @param[in] Value - the value
+ * CFunctionGradientNode::GetOutputNormalizedGradient - Retrieves the normalized gradient output
+ * @return the output port for the normalized gradient
*/
- void CConstMatNode::SetMatrix(const sMatrix4x4 & Value)
+ PImplicitPort CFunctionGradientNode::GetOutputNormalizedGradient()
{
- CheckError(m_pWrapper->m_WrapperTable.m_ConstMatNode_SetMatrix(m_pHandle, &Value));
+ Lib3MFHandle hNormalizedGradient = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetOutputNormalizedGradient(m_pHandle, &hNormalizedGradient));
+
+ if (!hNormalizedGradient) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hNormalizedGradient)));
}
/**
- * CConstMatNode::GetMatrix - Retrieves the matrix value of the node
- * @return the matrix
+ * CFunctionGradientNode::GetOutputGradient - Retrieves the raw gradient output
+ * @return the output port for the raw gradient
*/
- sMatrix4x4 CConstMatNode::GetMatrix()
+ PImplicitPort CFunctionGradientNode::GetOutputGradient()
{
- sMatrix4x4 resultValue;
- CheckError(m_pWrapper->m_WrapperTable.m_ConstMatNode_GetMatrix(m_pHandle, &resultValue));
+ Lib3MFHandle hGradient = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetOutputGradient(m_pHandle, &hGradient));
- return resultValue;
+ if (!hGradient) {
+ CheckError(LIB3MF_ERROR_INVALIDPARAM);
+ }
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hGradient)));
}
/**
- * CConstMatNode::GetOutputMatrix - Retrieves the output
- * @return the output
+ * CFunctionGradientNode::GetOutputMagnitude - Retrieves the gradient magnitude output
+ * @return the output port for the gradient magnitude
*/
- PImplicitPort CConstMatNode::GetOutputMatrix()
+ PImplicitPort CFunctionGradientNode::GetOutputMagnitude()
{
- Lib3MFHandle hMatrix = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_ConstMatNode_GetOutputMatrix(m_pHandle, &hMatrix));
+ Lib3MFHandle hMagnitude = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_FunctionGradientNode_GetOutputMagnitude(m_pHandle, &hMagnitude));
- if (!hMatrix) {
+ if (!hMagnitude) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMatrix)));
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMagnitude)));
}
/**
- * Method definitions for class CMeshNode
+ * Method definitions for class CNormalizeDistanceNode
*/
/**
- * CMeshNode::GetInputMesh - Retrieves the input for the model resource id of the mesh
- * @return the input port for the model resource id of the mesh
+ * CNormalizeDistanceNode::GetInputFunctionID - Retrieves the input for the function id
+ * @return the input port for the function
*/
- PImplicitPort CMeshNode::GetInputMesh()
+ PImplicitPort CNormalizeDistanceNode::GetInputFunctionID()
{
- Lib3MFHandle hMesh = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_MeshNode_GetInputMesh(m_pHandle, &hMesh));
+ Lib3MFHandle hFunction = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetInputFunctionID(m_pHandle, &hFunction));
- if (!hMesh) {
+ if (!hFunction) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMesh)));
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hFunction)));
}
/**
- * CMeshNode::GetInputPos - Retrieves the input for the position
- * @return the input port for the position
+ * CNormalizeDistanceNode::GetInputPos - Retrieves the input for the position
+ * @return the input port for the position (vector)
*/
- PImplicitPort CMeshNode::GetInputPos()
+ PImplicitPort CNormalizeDistanceNode::GetInputPos()
{
Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_MeshNode_GetInputPos(m_pHandle, &hPos));
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetInputPos(m_pHandle, &hPos));
if (!hPos) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
@@ -17684,67 +18984,81 @@ inline CBase* CWrapper::polymorphicFactory(Lib3MFHandle pHandle)
}
/**
- * CMeshNode::GetOutputDistance - Retrieves the output
- * @return the output port for the signed distance to the mesh
+ * CNormalizeDistanceNode::GetInputStep - Retrieves the input for the finite difference step
+ * @return the input port for the finite difference step
*/
- PImplicitPort CMeshNode::GetOutputDistance()
+ PImplicitPort CNormalizeDistanceNode::GetInputStep()
{
- Lib3MFHandle hDistance = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_MeshNode_GetOutputDistance(m_pHandle, &hDistance));
+ Lib3MFHandle hStep = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetInputStep(m_pHandle, &hStep));
- if (!hDistance) {
+ if (!hStep) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hDistance)));
+ return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hStep)));
}
/**
- * Method definitions for class CUnsignedMeshNode
- */
+ * CNormalizeDistanceNode::SetScalarOutputName - Sets the name of the referenced scalar output
+ * @param[in] sScalarOutputName - the name of the scalar output of the referenced function
+ */
+ void CNormalizeDistanceNode::SetScalarOutputName(const std::string & sScalarOutputName)
+ {
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_SetScalarOutputName(m_pHandle, sScalarOutputName.c_str()));
+ }
/**
- * CUnsignedMeshNode::GetInputMesh - Retrieves the input for the model resource id of the mesh
- * @return the input port for the model resource id of the mesh
+ * CNormalizeDistanceNode::GetScalarOutputName - Retrieves the name of the referenced scalar output
+ * @return the name of the scalar output of the referenced function
*/
- PImplicitPort CUnsignedMeshNode::GetInputMesh()
+ std::string CNormalizeDistanceNode::GetScalarOutputName()
{
- Lib3MFHandle hMesh = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_UnsignedMeshNode_GetInputMesh(m_pHandle, &hMesh));
+ Lib3MF_uint32 bytesNeededScalarOutputName = 0;
+ Lib3MF_uint32 bytesWrittenScalarOutputName = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetScalarOutputName(m_pHandle, 0, &bytesNeededScalarOutputName, nullptr));
+ std::vector bufferScalarOutputName(bytesNeededScalarOutputName);
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetScalarOutputName(m_pHandle, bytesNeededScalarOutputName, &bytesWrittenScalarOutputName, &bufferScalarOutputName[0]));
- if (!hMesh) {
- CheckError(LIB3MF_ERROR_INVALIDPARAM);
- }
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hMesh)));
+ return std::string(&bufferScalarOutputName[0]);
}
/**
- * CUnsignedMeshNode::GetInputPos - Retrieves the input for the position
- * @return the input port for the position
+ * CNormalizeDistanceNode::SetVectorInputName - Sets the name of the referenced vector input
+ * @param[in] sVectorInputName - the name of the vector input (float3) of the referenced function
*/
- PImplicitPort CUnsignedMeshNode::GetInputPos()
+ void CNormalizeDistanceNode::SetVectorInputName(const std::string & sVectorInputName)
{
- Lib3MFHandle hPos = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_UnsignedMeshNode_GetInputPos(m_pHandle, &hPos));
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_SetVectorInputName(m_pHandle, sVectorInputName.c_str()));
+ }
+
+ /**
+ * CNormalizeDistanceNode::GetVectorInputName - Retrieves the name of the referenced vector input
+ * @return the name of the vector input (float3) of the referenced function
+ */
+ std::string CNormalizeDistanceNode::GetVectorInputName()
+ {
+ Lib3MF_uint32 bytesNeededVectorInputName = 0;
+ Lib3MF_uint32 bytesWrittenVectorInputName = 0;
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetVectorInputName(m_pHandle, 0, &bytesNeededVectorInputName, nullptr));
+ std::vector bufferVectorInputName(bytesNeededVectorInputName);
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetVectorInputName(m_pHandle, bytesNeededVectorInputName, &bytesWrittenVectorInputName, &bufferVectorInputName[0]));
- if (!hPos) {
- CheckError(LIB3MF_ERROR_INVALIDPARAM);
- }
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hPos)));
+ return std::string(&bufferVectorInputName[0]);
}
/**
- * CUnsignedMeshNode::GetOutputDistance - Retrieves the output
- * @return the output port for the unsigned distance to the mesh
+ * CNormalizeDistanceNode::GetOutputResult - Retrieves the normalized result output
+ * @return the output port for the normalized distance
*/
- PImplicitPort CUnsignedMeshNode::GetOutputDistance()
+ PImplicitPort CNormalizeDistanceNode::GetOutputResult()
{
- Lib3MFHandle hDistance = (Lib3MFHandle)nullptr;
- CheckError(m_pWrapper->m_WrapperTable.m_UnsignedMeshNode_GetOutputDistance(m_pHandle, &hDistance));
+ Lib3MFHandle hResult = (Lib3MFHandle)nullptr;
+ CheckError(m_pWrapper->m_WrapperTable.m_NormalizeDistanceNode_GetOutputResult(m_pHandle, &hResult));
- if (!hDistance) {
+ if (!hResult) {
CheckError(LIB3MF_ERROR_INVALIDPARAM);
}
- return std::shared_ptr(dynamic_cast(m_pWrapper->polymorphicFactory(hDistance)));
+ return std::shared_ptr