Skip to content
Merged

Dev #83

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
57850e4
Tessellator | Docker | Create required docker files
adrianarce-elemwave Apr 21, 2026
f92afef
Merge pull request #67 from OpenSEMBA/create-docker-files
adrianarce-elemwave Apr 21, 2026
1c7c6dc
changes citation to make zenodo compliant
Alberto-o Jul 8, 2026
19f52dc
fixes citation file
Alberto-o Jul 8, 2026
6baa800
Tessellator | Environment | #72 | Use testMate to run all tests withi…
carlosgonzalez-elemwave Jul 10, 2026
6cb14dc
Tessellator | Workflow | #72 | Update vpkg binary cache for GitHub ac…
carlosgonzalez-elemwave Jul 10, 2026
558b496
Tessellator | Build | #72 | Update vcpkg version
carlosgonzalez-elemwave Jul 13, 2026
2b56447
Tessellator | Build | Implement vcpkg overlay ports
carlosgonzalez-elemwave Jul 14, 2026
3e27811
Tessellator | Build | Upgrade
carlosgonzalez-elemwave Jul 14, 2026
b315d56
Merge pull request #73 from OpenSEMBA/72-run-tests-through-vscodes-te…
lmdiazangulo Jul 14, 2026
a72bccd
Adds MesherBase options to have stair and conf options derived from i…
Alberto-o Jun 9, 2026
e2f2d85
StaircaseMesher fills volume is body marked as volume. Some changes p…
Alberto-o Jun 9, 2026
8662a65
Enables CGAL
Alberto-o Jun 9, 2026
bbcf58d
Adds test to launcher
Alberto-o Jun 9, 2026
242b0de
Disable GHA vcpkg binary source in CI
Copilot Jun 9, 2026
aac1ac2
Adds missing json file
Alberto-o Jun 10, 2026
91c7ae7
Adds test to check that filled volume has more quads than surface
Alberto-o Jun 10, 2026
eee9be8
Tessellator | Build | #5 | Add docker compatibility with CGAL
carlosgonzalez-elemwave Jul 15, 2026
c2179c9
Merge pull request #71 from OpenSEMBA/feature/volume_mesh
carlosgonzalez-elemwave Jul 15, 2026
d2ec255
Add compressor functionality to the tessellator
lmdiazangulo May 8, 2026
cad1b5c
Fix compressor test crash and element removal
lmdiazangulo May 12, 2026
0013e88
Adds IDE configuration files
lmdiazangulo May 15, 2026
43c6e77
Compressor not working
lmdiazangulo May 15, 2026
0573325
Iterating
lmdiazangulo May 15, 2026
3bc4439
More tests and splitter
lmdiazangulo May 15, 2026
1538acd
tesrs pass
lmdiazangulo May 15, 2026
132d5d4
Surface compressor works!
lmdiazangulo May 15, 2026
12bc295
Adds compress lines
lmdiazangulo May 16, 2026
1129486
Adds comoressor abf exportGrid options
lmdiazangulo May 17, 2026
65d207a
ci: retry configure step on transient vcpkg download failures
Copilot May 17, 2026
0e459a4
Tessellator | Build | Fix VTK import checks to allow tests that don't…
carlosgonzalez-elemwave Jul 15, 2026
69a330c
Tessellator | Docker | Update linter and build for development contai…
carlosgonzalez-elemwave Jul 16, 2026
ca8a8f6
Tessellator | Core | Delete Splitter
carlosgonzalez-elemwave Jul 15, 2026
c45947b
Tessellator | Testing | Update and fix compressor tests
carlosgonzalez-elemwave Jul 15, 2026
f510332
Tessellator | Core | Refactor Compressor for better readability
carlosgonzalez-elemwave Jul 17, 2026
4a8a599
Tessellator | Testing | Update staircase mesher tests to include comp…
carlosgonzalez-elemwave Jul 17, 2026
8a68199
Tessellator | Testing | Tests for launcher with compression option
carlosgonzalez-elemwave Jul 17, 2026
fa3db5a
Tessellator | Core | Prevent polyline groups from being compressed
carlosgonzalez-elemwave Jul 20, 2026
083e0ff
Tessellator | Mesher | Add the compress boolean into the staircaser m…
carlosgonzalez-elemwave Jul 20, 2026
a0c0488
Changes arguments passed by value to reference
Alberto-o Jul 21, 2026
f2a45f4
Merge pull request #68 from OpenSEMBA/adds-compressor
lmdiazangulo Jul 21, 2026
f60edba
AI assisted implementation of multiobject meshing
lmdiazangulo May 17, 2026
4c607f1
Document multi-object support, mesher selection, and options in README
lmdiazangulo May 18, 2026
f09b12b
Fix Windows JSON path conversion in launcher
Copilot May 18, 2026
c0abc23
WIP | DRAFT | Fix tests after rebase
carlosgonzalez-elemwave Jul 21, 2026
386970a
Adds test to check manifolder behavior
Alberto-o Jul 22, 2026
e9a186c
Enabling tetrahedron reading and processing
Alberto-o Jul 22, 2026
896cf42
adds test before code implementation
Alberto-o Jul 23, 2026
3f436b7
Tessellator | Container | Debug in docker
carlosgonzalez-elemwave Jul 23, 2026
e9f5546
Tessellator | Testing | Fix tests after rebase
carlosgonzalez-elemwave Jul 21, 2026
9e2f363
Tessellator | App | Upgrade structured mesher options for multi-objec…
carlosgonzalez-elemwave Jul 22, 2026
d6f9303
Tessellator | App | Apply PR requested changes
carlosgonzalez-elemwave Jul 23, 2026
de51b27
Merge pull request #74 from OpenSEMBA/enhancement/change-value-to-ref…
Alberto-o Jul 24, 2026
c60c5a6
Commit before merging with dev
Alberto-o Jul 27, 2026
7a7f8ef
Merge remote-tracking branch 'origin/dev' into read-tetrahedron-volume
Alberto-o Jul 27, 2026
23240b4
Merge pull request #69 from OpenSEMBA/multi-object-launch
Alberto-o Jul 27, 2026
8ce66fe
Merge remote-tracking branch 'origin/dev' into read-tetrahedron-volume
Alberto-o Jul 27, 2026
eb955fb
Changes to propagate group names to vtk output. Property isVolume not…
Alberto-o Jul 28, 2026
2642125
Modifications to filler to selectively return grid-aligned exterior
Alberto-o Jul 28, 2026
1d5e5ef
Minor to avoid copying coordinates from unused mesh in mergeMesh. Add…
Alberto-o Jul 28, 2026
0572cb3
Minors answering PR comments
Alberto-o Jul 30, 2026
688f9f1
Fixes VTK export for Paraview compatibility.
lmdiazangulo Aug 6, 2026
cce5a55
Fix conformal smoothing failures
lmdiazangulo Aug 6, 2026
85b31e7
Merge pull request #78 from OpenSEMBA/vtk-export-fix
lmdiazangulo Aug 7, 2026
180ea1e
Smoother now works sequentially on cell edges, faces and interiors.
lmdiazangulo Aug 10, 2026
e25483e
Merge remote-tracking branch 'origin/dev' into read-tetrahedron-volume
lmdiazangulo Aug 10, 2026
e16bb46
Minor
lmdiazangulo Aug 10, 2026
3ce0c37
Merge pull request #82 from OpenSEMBA/fix/conformal-smoothing
lmdiazangulo Aug 10, 2026
0828f7b
Add VolumeFiller and VolumeShellExtractor classes for mesh processing
lmdiazangulo Aug 10, 2026
e9e9679
Adds tests for volume filling of alhambra and sphere cases
lmdiazangulo Aug 10, 2026
3de74f8
Removes commented out test
lmdiazangulo Aug 11, 2026
0bc900c
Minor
lmdiazangulo Aug 11, 2026
6628fbd
Merge pull request #75 from OpenSEMBA/read-tetrahedron-volume
lmdiazangulo Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .devcontainer/DOCKER_README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Dev Container Setup

This directory contains the configuration for a Docker-based development environment for Tessellator.

## Quick Start

### Prerequisites
- Docker installed and running
- VS Code with the "Dev Containers" extension

### Opening the Project in Dev Container

1. Open this repository in VS Code
2. Click the green icon in the bottom-left corner and select **"Reopen in Container"**
3. VS Code will build the Docker image and start the container automatically

The entire workspace will be mounted at `/workspace` inside the container.

## What's Included

The dev container provides:
- Pre-configured C++ development environment
- CMake and Ninja build tools
- All project dependencies (VTK, Boost, CGAL via vcpkg)
- VS Code extensions:
- **C/C++ Tools** – Code navigation, IntelliSense, debugging
- **CMake Tools** – CMake project management
- **LLDB** – Debugger for C++

## Building and Testing

Once inside the container:

```bash
# Configure the project
cmake --preset docker -S . -B build

# Build
cmake --build build -j

# Run tests
build/bin/tessellator_tests

# Run the application
build/bin/tessellator -i <input.tessellator.json>
```

## Notes

- The container runs as root user
- CMake is pre-configured to skip auto-configure on file open for better performance
- Debugging with LLDB is enabled with appropriate capabilities
34 changes: 34 additions & 0 deletions .devcontainer/Dockerfile.base
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
FROM ubuntu:26.04

RUN apt-get update && apt-get install -y \
build-essential \
cmake \
ninja-build \
git \
pkg-config \
curl \
wget \
zip \
unzip

RUN apt-get install -y \
libboost-graph-dev \
libboost-program-options-dev \
libvtk9-dev \
nlohmann-json3-dev \
libgtest-dev \
libgmock-dev \
libgmp-dev \
libmpfr-dev

RUN apt-get install -y \
libeigen3-dev \
libcgal-dev

RUN apt-get install -y \
clangd

RUN chown -R ubuntu:ubuntu /home/ubuntu

USER ubuntu
WORKDIR /home/ubuntu/dev
28 changes: 28 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "Tessellator",
"dockerFile": "Dockerfile.base",
"context": "..",
"remoteUser": "ubuntu",
"workspaceFolder": "/home/ubuntu/dev",
"mounts": [
"source=${localWorkspaceFolder},target=/home/ubuntu/dev,type=bind"
],
"customizations": {
"vscode": {
"extensions": [
"ms-vscode.cpptools",
"ms-vscode.cmake-tools",
"vadimcn.vscode-lldb",
"matepek.vscode-catch2-test-adapter",
"llvm-vs-code-extensions.vscode-clangd"
],
"settings": {
"cmake.configureOnOpen": false,
"cmake.configureOnEdit": false,
"cmake.autoSelectActiveFolder": false,
"cmake.generator": "Ninja"
}
}
},
"runArgs": ["--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"]
}
14 changes: 12 additions & 2 deletions .github/workflows/build-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ on:
branches:
- main

env:
env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
WINDOWS_FILENAME: opensemba-tessellator-windows-x64.tar.gz
LINUX_FILENAME: opensemba-tessellator-linux.tar.gz

Expand All @@ -27,7 +28,7 @@ jobs:
strategy:
matrix:
preset: [
{"os": windows-latest, "name": "msbuild", "filename": "windows-x64"},
{"os": windows-2022, "name": "msbuild", "filename": "windows-x64"},
{"os": ubuntu-latest, "name": "gnu", "filename": "linux"}
]
build-type: ["Release"]
Expand Down Expand Up @@ -59,8 +60,17 @@ jobs:
sudo apt-get update
sudo apt-get install -y libvtk9-dev

- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: eed289f6e06a5e7a5c9e6a729671b0a56af7dd69

- name: Windows configure and build
if: matrix.preset.name=='msbuild'
Expand Down
54 changes: 43 additions & 11 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,31 @@ on:
branches:
- main
- dev

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"

jobs:
builds-and-tests:
strategy:
matrix:
preset: [
{"os": windows-latest, "name": "msbuild"},
{"os": ubuntu-latest, "name": "gnu"}
{"os": windows-2022, "name": "msbuild"},
{"os": ubuntu-latest, "name": "gnu"},
{"os": ubuntu-latest, "name": "gnu-cgal"}
]
build-type: ["Debug", "Release"]
build-type: ["Release"]

fail-fast: false

name: ${{ matrix.preset.os }} / ${{matrix.preset.name}} / ${{matrix.build-type}}
runs-on: ${{ matrix.preset.os }}
env:
VCPKG_BINARY_SOURCES: clear

steps:
- name: checkout repository
Expand All @@ -45,28 +51,54 @@ jobs:
sudo apt-get update
sudo apt-get install -y libvtk9-dev

- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

- name: Setup vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: eed289f6e06a5e7a5c9e6a729671b0a56af7dd69

- name: Windows configure and build
if: matrix.preset.name=='msbuild'
run: |
cmake --preset ${{matrix.preset.name}} -S . -B build
$configured = $false
for ($attempt = 1; $attempt -le 3; $attempt++) {
cmake --preset ${{matrix.preset.name}} -S . -B build
if ($LASTEXITCODE -eq 0) {
$configured = $true
break
}
if ($attempt -lt 3) {
Write-Host "Configure failed (attempt $attempt/3). Retrying in 20 seconds..."
Start-Sleep -Seconds 20
}
}
if (-not $configured) { exit 1 }
cmake --build build --config ${{matrix.build-type}} -j

- name: Windows Run tests
if: matrix.preset.name=='msbuild'
run: build/bin/${{matrix.build-type}}/tessellator_tests.exe

- name: Ubuntu configure and build
if: matrix.preset.name=='gnu'
if: matrix.preset.os=='ubuntu-latest'
run: |
cmake --preset ${{matrix.preset.name}} -S . -B build
configured=0
for attempt in 1 2 3; do
cmake --preset ${{matrix.preset.name}} -S . -B build && configured=1 && break
if [ "$attempt" -lt 3 ]; then
echo "Configure failed (attempt $attempt/3). Retrying in 20 seconds..."
sleep 20
fi
done
[ "$configured" -eq 1 ] || exit 1
cmake --build build -j

- name: Ubuntu Run tests
if: matrix.preset.name=='gnu'
if: matrix.preset.os=='ubuntu-latest'
run: build/bin/tessellator_tests



9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,15 @@ build/
.settings
.project
.cproject
.cache

src/*.json

.vs/
.vscode/
.vscode/settings.json
.vscode/settings.dev.json
.vscode/launch.json
.vscode/tasks.json

testData/*_out.stl
*_out.stl
Expand All @@ -25,4 +29,5 @@ CMakeUserPresets.json
sliced.vtk
contour.vtk

testData/
testData/
build
105 changes: 105 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Tessellator (Docker)",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/build-dbg/bin/tessellator",
"args": ["-i", "${workspaceFolder}/testData/cases/cone/cone.tessellator.json"],
"stopOnEntry": false,
"cwd": "${workspaceFolder}",
"env": {}
},
{
"name": "Debug Tests (Docker)",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/build-dbg/bin/tessellator_tests",
"args": ["--gtest_filter=*"],
"stopOnEntry": false,
"cwd": "${workspaceFolder}",
"env": {},
"sourceMap": {}
},
{
"name": "Debug Tests (Docker) - Specific Suite",
"type": "lldb",
"request": "launch",
"program": "${workspaceFolder}/build-dbg/bin/tessellator_tests",
"args": ["--gtest_filter=${input:testSuite}"],
"stopOnEntry": false,
"cwd": "${workspaceFolder}",
"env": {},
"sourceMap": {},
},
{
"name": "tessellator (gdb)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build-dbg/bin/tessellator",
"args": ["-i", "testData/cases/alhambra/alhambra.tessellator.json"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"visualizerFile": [
"${workspaceFolder}/resources/Eigen.natvis",
"${workspaceFolder}/resources/nlohmann_json.natvis"
],
"additionalSOLibSearchPath": "",
"showDisplayString": true,
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
},
{
"name": "tessellator_tests (gdb)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build-dbg/bin/tessellator_tests",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"visualizerFile": [
"${workspaceFolder}/resources/Eigen.natvis",
"${workspaceFolder}/resources/nlohmann_json.natvis"
],
"additionalSOLibSearchPath": "",
"showDisplayString": true,
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
],
"inputs": [
{
"id": "testSuite",
"type": "promptString",
"description": "Enter test filter (e.g., StaircaseMesherTest.* or StaircaseMesherTest.TestName)",
"default": "*"
}
]
}
Loading
Loading