Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
d7b783d
bump tensorstore
toloudis Oct 2, 2025
ad917f4
bump libczi
toloudis Oct 2, 2025
1fd6e52
Qt 6.9.3
toloudis Oct 2, 2025
2290bf2
bump tensorstore version
toloudis Oct 7, 2025
f0ca1c2
try without explicit icu4c
toloudis Oct 9, 2025
1d62bfe
don't use vcpkg eigen3
toloudis Oct 10, 2025
125e9c3
remove windows eigen flag
toloudis Oct 10, 2025
0ab01dd
add nsis
toloudis Oct 10, 2025
4ca85bd
alternate install of nsis
toloudis Oct 10, 2025
2adeafd
try making a linux artifact while we're at it
toloudis Oct 10, 2025
85ce450
try install libczi special for linux
toloudis Oct 10, 2025
a4c97b6
wip on linux
toloudis Oct 10, 2025
5ec857a
use Release dir for linux
toloudis Oct 10, 2025
9ac9d54
try removing usr/local/include
toloudis Oct 11, 2025
caab30f
cleanup
toloudis Oct 11, 2025
049493a
cleanup to match build_and_test
toloudis Oct 11, 2025
6bb1d41
cleanup
toloudis Oct 11, 2025
d53676f
cleanup
toloudis Oct 11, 2025
5da7f77
put glm back in the homebrew for gh actions
toloudis Oct 12, 2025
efcca83
remove macos x86-64 build for now
toloudis Oct 16, 2025
16c682d
fix windows build due to eigen3
toloudis Oct 16, 2025
f679976
add a basic bounding box tool
toloudis Aug 17, 2025
5d6f508
use color
toloudis Aug 17, 2025
587895b
thick lines, wip still not working
toloudis Aug 18, 2025
73de8b6
fix problem when there are only line-strips
toloudis Aug 18, 2025
c189fbf
remove front-of-boundingbox drawing from renderglpt
toloudis Aug 19, 2025
753b903
add per-edge tickmark function
toloudis Aug 21, 2025
1ad4ca8
try drawing edge and tick marks per front-facing edge
toloudis Aug 22, 2025
b2e6df3
fix by using hardcoded known facenormals
toloudis Aug 22, 2025
3a8f1b4
a bit more efficient edge finding, and get tickmarks spaced correctly
toloudis Aug 22, 2025
51cf35b
make tickmarks match up front and back
toloudis Aug 22, 2025
341f02f
refactor, getting ready to DRY with code in graphics/gl/Util.cpp
toloudis Sep 15, 2025
16970b6
move tick mark vertex calculation into generic boundingbox code
toloudis Sep 15, 2025
9dbe710
use corners, starting to move stuff into CBoundingBox
toloudis Sep 15, 2025
e907b99
add vector include
toloudis Sep 16, 2025
4268ea1
refactoring
toloudis Sep 16, 2025
83bbb0c
finish refactor
toloudis Sep 17, 2025
ae8296b
cleanup
toloudis Sep 17, 2025
24fe4a0
whitespace
toloudis Sep 17, 2025
f3a5bfe
add an "underlay" render pass. not working yet
toloudis Oct 14, 2025
9f3bcf6
fix draw order so underlay is blended with main render
toloudis Oct 14, 2025
591a739
clearing main frame is now outside of scene renderers because it has …
toloudis Oct 14, 2025
97c21a2
attempt to DRY between underlay and overlay gesture lists
toloudis Oct 15, 2025
fa488fc
add bbox back into render mode and python rendering
toloudis Oct 15, 2025
58823b9
clean up old bbox code
toloudis Oct 15, 2025
22dcc6b
normalize thickness against devicepixelratio
toloudis Oct 15, 2025
9d22114
start making the tf editor editable for all modes
toloudis Oct 13, 2025
f94d654
fix the way absolute intensity minmax thresholding is handled
toloudis Oct 16, 2025
94f9b16
clean up
toloudis Oct 16, 2025
9253856
fix the way absolute intensity minmax thresholding is handled
toloudis Oct 16, 2025
76954ef
try using QCustomPlot
toloudis Oct 16, 2025
96bca62
handle x axis zoom/pan
toloudis Oct 16, 2025
2bca92b
selectable
toloudis Oct 17, 2025
b150c6f
tick labels a little smaller
toloudis Oct 17, 2025
92403e5
add mouse events
toloudis Oct 17, 2025
0f1271f
start to implement dragging of points
toloudis Oct 17, 2025
9654f32
allow font loading failure to be handled gracefully without crash
toloudis Oct 17, 2025
6468fbc
a touch thinner and a little less transparent
toloudis Oct 18, 2025
9484a03
select a particular fallback path for assets
toloudis Oct 18, 2025
88ee69b
start to work with the mode differences
toloudis Oct 19, 2025
8b3a3f2
start to get close to correct in Custom mode
toloudis Oct 22, 2025
96fc3ab
remove hoverpoints and set up background grid
toloudis Oct 22, 2025
22fcaa3
add right-click delete, and improve hit testing
toloudis Oct 22, 2025
6bbacfd
remove shadewidget
toloudis Oct 22, 2025
2a32ed8
add interactivity to minmax, window/level, and percentile modes
toloudis Oct 23, 2025
0da54e6
remove old code now that this seems to be working well
toloudis Oct 23, 2025
048d075
Merge pull request #285 from allen-cell-animated/feature/bbox_thick_l…
toloudis Oct 23, 2025
0bad81f
Merge pull request #290 from allen-cell-animated/fix/macos-tahoe
toloudis Oct 23, 2025
08ff515
Merge pull request #291 from allen-cell-animated/feature/bbox_thick_l…
toloudis Oct 23, 2025
ca30e1b
Merge pull request #293 from allen-cell-animated/fix/minmax
toloudis Oct 23, 2025
c5dcc0b
Merge pull request #295 from allen-cell-animated/fix/font_loading_crash
toloudis Oct 23, 2025
4fec54a
Bump on-headers and compression in /webclient
dependabot[bot] Oct 24, 2025
9093916
Merge branch 'main' into feature/tfeditor-improved
toloudis Oct 24, 2025
1955d73
double click will reset zoom in plot
toloudis Oct 24, 2025
ede3388
add some new docs
toloudis Oct 24, 2025
3aef1d9
try using a more correct glm path
toloudis Oct 25, 2025
a04d2e6
clean up
toloudis Oct 25, 2025
682bab0
fix link error on windows
toloudis Oct 25, 2025
d9500f5
clean up
toloudis Oct 27, 2025
462e8b0
add one include
toloudis Oct 28, 2025
a5c8f3c
Update main.tf
gmoynihan88 Oct 28, 2025
697d43e
Merge branch 'fix/glm-includes' into feature/1.9RC0
toloudis Oct 28, 2025
bac46e5
Merge pull request #299 from allen-cell-animated/feature/supported_am…
gmoynihan88 Oct 30, 2025
f647ece
review cleanup
toloudis Nov 1, 2025
7550c56
review cleanup
toloudis Nov 1, 2025
64850e4
let a nonzero histogram bin have at least 1% bar graph height to make…
toloudis Nov 2, 2025
ff8289b
let a nonzero histogram bin have at least 1% bar graph height to make…
toloudis Nov 2, 2025
abe8eea
Merge branch 'feature/tfeditor-improved' into feature/1.9RC0
toloudis Nov 2, 2025
79f2421
Merge pull request #297 from allen-cell-animated/feature/tfeditor-imp…
toloudis Nov 10, 2025
2027709
Merge pull request #298 from allen-cell-animated/fix/glm-includes
toloudis Nov 10, 2025
3f7dd3f
Merge pull request #278 from allen-cell-animated/dependabot/npm_and_y…
toloudis Nov 10, 2025
89e947c
Merge branch 'main' into feature/1.9RC0
toloudis Nov 11, 2025
741066a
fix some output warnings/errors due to trying to repaint the custom p…
toloudis Nov 16, 2025
033680b
use different logging types
toloudis Nov 17, 2025
59ddb0d
DRY
toloudis Nov 18, 2025
e831a24
Merge pull request #301 from allen-cell-animated/fix/qcustomplot-errors
toloudis Nov 18, 2025
4b53114
try reinstating macos intel
toloudis Nov 26, 2025
050225e
try openssl fix
toloudis Nov 26, 2025
9db5fd6
try to fix png compile issue on macos intel
toloudis Nov 26, 2025
8e336ca
fix cmake line
toloudis Nov 27, 2025
89d3f83
try different include strategy for macos
toloudis Nov 27, 2025
3651a56
one more try for zlib include fix
toloudis Nov 27, 2025
91a7b27
more explicit attempt
toloudis Nov 27, 2025
f83048f
try again
toloudis Nov 27, 2025
8116701
go back to just the ssl fix
toloudis Nov 27, 2025
6bb347b
try tensorstore system zlib on apple
toloudis Nov 28, 2025
21d6774
finish ci fixes
toloudis Nov 28, 2025
9ffde96
update license
toloudis Nov 28, 2025
90dda8b
add some light/dark mode and wip styling adjustments
toloudis Nov 27, 2025
d995b6e
dark/light mode styling
toloudis Dec 3, 2025
1c07fc3
antialias the subgrid
toloudis Dec 3, 2025
58851c5
cleanup
toloudis Dec 3, 2025
6e15a65
cleanup
toloudis Dec 3, 2025
9f4364b
PR review cleanup
toloudis Dec 4, 2025
d601c03
Merge pull request #304 from allen-cell-animated/feature/tfeditor-sty…
toloudis Dec 4, 2025
7372d42
start a property class
toloudis Feb 21, 2025
62d1813
start building out a better form builder for any object properties
toloudis Feb 24, 2025
d9abf2f
refactor, use new CameraDataObject for ui
toloudis Feb 25, 2025
34ecd33
move controls into subdir
toloudis Feb 25, 2025
c80ec9d
control factory
toloudis Feb 25, 2025
909c3e7
remove the QObject based camera data objects
toloudis Feb 25, 2025
2bbcb28
fix includes
toloudis Feb 25, 2025
3435325
unit tests for prtyProperty
toloudis Mar 8, 2025
9ec6484
use a trait for streamable property value types for debugging
toloudis Mar 9, 2025
b6d7345
just enforce streamability all the time
toloudis Mar 9, 2025
970ead1
separate out the main dock windows
toloudis Mar 9, 2025
685a566
bring ui description out of the qt area
toloudis Mar 9, 2025
4fa0f15
Update renderlib/core/prty/prtyProperty.h
toloudis Mar 14, 2025
6dd0226
assigning a value to property should trigger the observers to get not…
toloudis Mar 28, 2025
d8a50d1
implement addrow for int slider/spinner input
toloudis Mar 28, 2025
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
30 changes: 22 additions & 8 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Install deps
run: |
sudo apt-get update -y
sudo apt-get --allow-releaseinfo-change update -y
sudo apt-get --allow-releaseinfo-change update -y
sudo apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
sudo apt-get install -y python3-sphinx python3-sphinx-rtd-theme python3-pip
- name: Install Python dependencies
Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:
- name: Install deps
run: |
sudo apt-get update -y
sudo apt-get --allow-releaseinfo-change update -y
sudo apt-get --allow-releaseinfo-change update -y
sudo apt-get install -y latexmk texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended
sudo apt-get install -y python3-sphinx python3-sphinx-rtd-theme python3-pip
- name: Install Python dependencies
Expand Down Expand Up @@ -90,9 +90,9 @@ jobs:
- os: windows-latest
artifact: agave-win
# note macos-14 is arm64 and macos-13 is x86_64
- os: macos-14
- os: macos-15
artifact: agave-macos-arm64
- os: macos-13
- os: macos-15-intel
artifact: agave-macos-x86_64

runs-on: ${{ matrix.os }}
Expand All @@ -104,7 +104,7 @@ jobs:
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: 6.8.3
version: 6.9.3
modules: qtwebsockets qtimageformats
- name: macos install deps
if: contains(matrix.os, 'macos')
Expand All @@ -113,15 +113,18 @@ jobs:
CXX: clang++
run: |
export MACOSX_DEPLOYMENT_TARGET=10.15
brew install spdlog glm nasm
brew install spdlog nasm
if [ -d /usr/local/include/openssl ]; then
mv /usr/local/include/openssl /usr/local/include/openssl.bak
fi
- name: macos build and test
if: contains(matrix.os, 'macos')
env:
CC: clang
CXX: clang++
run: |
export MACOSX_DEPLOYMENT_TARGET=10.15
export Qt6_DIR=${{ runner.workspace }}/Qt/6.8.3/macos
export Qt6_DIR=${{ runner.workspace }}/Qt/6.9.3/macos
mkdir ./build
cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
Expand Down Expand Up @@ -154,19 +157,30 @@ jobs:
cmake --build . --target agave_test --config Release
cmake --build . --target install --config Release
shell: bash
- name: linux upload artifact
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
path: ./build/install/Release/agave-install
- name: windows install ninja and nasm
if: matrix.os == 'windows-latest'
run: |
choco install ninja
choco install nasm
- name: windows install nsis
if: matrix.os == 'windows-latest'
uses: repolevedavaj/[email protected]
with:
nsis-version: "3.10"
- name: windows install deps
if: matrix.os == 'windows-latest'
shell: cmd
env:
vc_arch: "x64"
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 10.0.26100.0
vcpkg install --triplet x64-windows tiff glm zlib libjpeg-turbo liblzma spdlog zstd eigen3
vcpkg install --triplet x64-windows tiff glm zlib libjpeg-turbo liblzma spdlog zstd
- name: Remove bad Strawberry Perl patch binary in search path
# https://github.com/actions/runner-images/issues/5459#issuecomment-1532856844
if: matrix.os == 'windows-latest'
Expand Down
26 changes: 20 additions & 6 deletions .github/workflows/tagged_master_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ jobs:
- os: windows-latest
artifact: agave-win
# note macos-14 is arm64 and macos-13 is x86_64
- os: macos-14
- os: macos-15
artifact: agave-macos-arm64
- os: macos-13
- os: macos-15-intel
artifact: agave-macos-x86_64

runs-on: ${{ matrix.os }}
Expand All @@ -28,7 +28,7 @@ jobs:
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: 6.8.3
version: 6.9.3
modules: qtwebsockets qtimageformats
- name: macos install deps
if: contains(matrix.os, 'macos')
Expand All @@ -37,15 +37,18 @@ jobs:
CXX: clang++
run: |
export MACOSX_DEPLOYMENT_TARGET=10.15
brew install spdlog glm nasm
brew install spdlog nasm
if [ -d /usr/local/include/openssl ]; then
mv /usr/local/include/openssl /usr/local/include/openssl.bak
fi
- name: macos build and test
if: contains(matrix.os, 'macos')
env:
CC: clang
CXX: clang++
run: |
export MACOSX_DEPLOYMENT_TARGET=10.15
export Qt6_DIR=${{ runner.workspace }}/Qt/6.8.3/macos
export Qt6_DIR=${{ runner.workspace }}/Qt/6.9.3/macos
mkdir ./build
cd build
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
Expand Down Expand Up @@ -79,11 +82,22 @@ jobs:
cmake --build . --target agave_test --config Release
cmake --build . --target install --config Release
shell: bash
- name: linux upload artifact
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
path: ./build/install/Release/agave-install
- name: windows install ninja
if: matrix.os == 'windows-latest'
run: |
choco install ninja
choco install nasm
- name: windows install nsis
if: matrix.os == 'windows-latest'
uses: repolevedavaj/[email protected]
with:
nsis-version: "3.10"
- name: windows install deps
if: matrix.os == 'windows-latest'
shell: cmd
Expand All @@ -92,7 +106,7 @@ jobs:
# use older sdk to work around https://github.com/grpc/grpc/issues/37210
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 10.0.26100.0
vcpkg install --triplet x64-windows tiff glm zlib libjpeg-turbo liblzma spdlog zstd eigen3
vcpkg install --triplet x64-windows tiff glm zlib libjpeg-turbo liblzma spdlog zstd
- name: Remove bad Strawberry Perl patch binary in search path
# https://github.com/actions/runner-images/issues/5459#issuecomment-1532856844
if: matrix.os == 'windows-latest'
Expand Down
35 changes: 12 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ if(DEFINED ENV{Qt6_DIR})
list(INSERT CMAKE_PREFIX_PATH 0 $ENV{Qt6_DIR})
endif()

set(AGAVE_QT_VERSION 6.8.3)
set(AGAVE_QT_VERSION 6.9.3)

if(WIN32)
set(GUESS_Qt6_DIR C:/Qt/${AGAVE_QT_VERSION}/msvc2022_64 CACHE STRING "Qt6 directory")
Expand All @@ -58,20 +58,11 @@ elseif(APPLE)
else()
set(GUESS_Qt6_DIR ~/Qt/${AGAVE_QT_VERSION}/gcc_64)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH "\$ORIGIN")
endif(WIN32)

list(INSERT CMAKE_PREFIX_PATH 0 ${GUESS_Qt6_DIR})

if(APPLE)
# homebrew
list(APPEND CMAKE_LIBRARY_PATH /usr/local/lib /usr/local/opt/icu4c/lib)
list(APPEND CMAKE_INCLUDE_PATH /usr/local/include)

# set(CMAKE_MACOSX_RPATH TRUE)
add_compile_options("-I/usr/local/opt/icu4c/include")
add_link_options("-L/usr/local/opt/icu4c/lib")
endif(APPLE)

find_package(Qt6 REQUIRED COMPONENTS Widgets Core Gui OpenGL OpenGLWidgets Network WebSockets Xml Svg REQUIRED)

find_package(spdlog REQUIRED)
Expand All @@ -91,14 +82,6 @@ FetchContent_Declare(
GIT_TAG 1.0.1
)
FetchContent_MakeAvailable(glm)
# set(glm_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/glm)
# if(APPLE)
# # On MacOS, newer homebrew glm is broken with respect to cmake.
# # Revisit in a future version to try to remove this conditional.
# find_path(GLM_PATH glm/glm.hpp)
# else()
# find_package(glm REQUIRED)
# endif(APPLE)

find_package(TIFF)

Expand Down Expand Up @@ -146,7 +129,7 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/CMake/conf.py.cmake ${CMAKE_SOURCE_DIR}/docs/
# #####################
# CPack
# #####################
find_package(Qt6QTiffPlugin 6.8.3 REQUIRED PATHS ${Qt6Gui_DIR})
find_package(Qt6QTiffPlugin 6.9.3 REQUIRED PATHS ${Qt6Gui_DIR})

set(CPACK_PACKAGE_VENDOR "Allen Institute for Cell Science")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "AGAVE is a viewer for 4D multichannel microscopy images, using physically based lighting and rendering.")
Expand Down Expand Up @@ -242,8 +225,8 @@ if(WIN32)

# ###############
elseif(APPLE)
find_package(Qt6QCocoaIntegrationPlugin 6.8.3 REQUIRED PATHS ${Qt6Gui_DIR})
find_package(Qt6QMacStylePlugin 6.8.3 REQUIRED PATHS ${Qt6Widgets_DIR})
find_package(Qt6QCocoaIntegrationPlugin 6.9.3 REQUIRED PATHS ${Qt6Gui_DIR})
find_package(Qt6QMacStylePlugin 6.9.3 REQUIRED PATHS ${Qt6Widgets_DIR})

# ###############
set(PACKAGE_OSX_TARGET ${CMAKE_OSX_DEPLOYMENT_TARGET})
Expand Down Expand Up @@ -347,7 +330,7 @@ elseif(APPLE)
include(CPack)

else() # Linux
find_package(Qt6QXcbIntegrationPlugin 6.8.3 REQUIRED PATHS ${Qt6Gui_DIR})
find_package(Qt6QXcbIntegrationPlugin 6.9.3 REQUIRED PATHS ${Qt6Gui_DIR})

install(FILES
${PROJECT_SOURCE_DIR}/LICENSE.txt
Expand All @@ -364,6 +347,7 @@ else() # Linux
$<TARGET_FILE:TIFF::TIFF>
DESTINATION ${INSTALLDIR}
)
install(TARGETS libCZI LIBRARY DESTINATION ${INSTALLDIR})
install(FILES
$<TARGET_FILE:Qt6::QXcbIntegrationPlugin>
DESTINATION ${INSTALLDIR}/platforms/
Expand All @@ -385,4 +369,9 @@ else() # Linux
${PROJECT_SOURCE_DIR}/renderlib/assets/fonts/Courier_New.ttf
DESTINATION ${INSTALLDIR}/assets/fonts/
)
set(CPACK_GENERATOR "DEB")
set(CPACK_DEBIAN_PACKAGE_NAME "agave")
set(CPACK_PACKAGE_CONTACT "Allen Institute for Cell Science")

include(CPack)
endif(WIN32)
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ RUN apt-get update && apt-get install -y cmake
RUN apt-get install -y python3-pip python3-venv

# get Qt installed
ENV QT_VERSION=6.8.3
ENV QT_VERSION=6.9.3
RUN pip install aqtinstall --break-system-packages
RUN aqt install-qt --outputdir /qt linux desktop ${QT_VERSION} -m qtwebsockets qtimageformats
# required for qt offscreen platform plugin
Expand Down
Loading