Skip to content

Commit c213840

Browse files
authored
Merge pull request #3 from kostrykin/develop
Towards 3.3.3
2 parents 7ce3967 + 5c86073 commit c213840

File tree

2,940 files changed

+107500
-44510
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,940 files changed

+107500
-44510
lines changed

.gitattributes

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
include/Carna/base/GL/* linguist-vendored
2+
test/* linguist-vendored
3+
docs/* linguist-generated

.github/workflows/build.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Build
2+
3+
on:
4+
push:
5+
branches: [ 'master', 'develop' ]
6+
paths-ignore:
7+
- 'docs/**'
8+
- '.git*'
9+
- 'LICENSE'
10+
- 'LICENSE-*'
11+
- 'README.md'
12+
13+
pull_request:
14+
branches-ignore: [ 'master' ]
15+
16+
jobs:
17+
linux_build:
18+
if: |
19+
${{
20+
(
21+
github.event_name == 'push' && github.ref == 'refs/heads/master'
22+
) || (
23+
github.event_name == 'pull_request'
24+
)
25+
}}
26+
runs-on: ubuntu-latest
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
variant: ['default', 'egl']
31+
build: ['debug', 'release']
32+
33+
steps:
34+
- uses: actions/checkout@v4
35+
36+
- name: Install dependencies for Carna build
37+
run: sudo apt-get install libeigen3-dev libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev libglew-dev
38+
39+
- name: Install dependencies for demo and tests
40+
if: ${{ matrix.variant == 'default' }}
41+
run: sudo apt-get install qtbase5-dev libboost-iostreams-dev xvfb
42+
43+
- name: Setup to use xvfb
44+
if: ${{ matrix.variant == 'default' }}
45+
id: setup
46+
run: echo "prefix=xvfb-run" >> $GITHUB_OUTPUT
47+
48+
- run: ${{ steps.setup.outputs.prefix }} ./linux_build-${{ matrix.variant }}.bash
49+
env:
50+
BUILD: only_${{ matrix.build }}
51+
52+
- uses: actions/upload-artifact@v4
53+
if: failure()
54+
with:
55+
name: ${{ matrix.variant }}-${{ matrix.build }}-test_output
56+
path: build/make_${{ matrix.build }}/test/test_output/
57+
58+
- name: Test FindCarna.cmake
59+
if: ${{ matrix.variant == 'egl' }}
60+
run: ./test.sh ${{ matrix.build }}
61+
working-directory: test_cmake
62+
63+
build_docs:
64+
if: |
65+
${{
66+
(
67+
github.event_name == 'push' && github.ref == 'refs/heads/develop'
68+
) || (
69+
github.event_name == 'pull_request'
70+
)
71+
}}
72+
runs-on: ubuntu-latest
73+
74+
steps:
75+
- uses: actions/checkout@v4
76+
77+
- name: Install dependencies
78+
run: sudo apt-get install libeigen3-dev libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev libglew-dev doxygen
79+
80+
- run: rm -rf docs
81+
82+
- run: ./linux_build-egl.bash
83+
env:
84+
BUILD: only_release
85+
86+
- uses: peter-evans/create-pull-request@v7
87+
if: ${{ github.event_name == 'push' }}
88+
with:
89+
branch: __build_docs
90+
branch-suffix: random
91+
commit-message: Update documentation
92+
title: Update documentation
93+
labels: documentation
94+
body: |
95+
Auto-update the documentation.
96+
97+
Triggered by: ${{ github.sha }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
/build
2+
/test_cmake/build
23
/include/Carna/Version.h
34
/src/doc/Doxyfile
45
*~

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ project(Carna)
33

44
set(MAJOR_VERSION 3)
55
set(MINOR_VERSION 3)
6-
set(PATCH_VERSION 2)
6+
set(PATCH_VERSION 3)
77

88
############################################
99

README.md

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Carna
2-
========
2+
=====
33

44
Carna provides classes for simple and fast visualization of CT data.
55
It is named after the greek god of organs (yup, they really did have even one for organs).
@@ -18,45 +18,31 @@ Go to: [Library Documentation](https://kostrykin.github.io/Carna/html)
1818
---
1919
## 1. Dependencies
2020

21-
* [Eigen](http://eigen.tuxfamily.org/) ≥ 3.0.5
22-
* OpenGL 3.3
23-
* GLEW ≥ 1.7
21+
* **OpenGL ≥ 3.3** (tested with up to 4.6)
22+
* **GLEW ≥ 1.7**
23+
* **Eigen** ≥ 3.0.5
24+
25+
In addition, building the demo or the test suite also requires the following libraries:
26+
27+
* **libboost-iostreams** (tested with 1.83.0, older versions might work too)
28+
* **Qt ≥ 4** (tested with up to Qt 5.15.13)
2429

2530
Compilation process has been tested with following tool chains:
2631

27-
* **GCC 7.5:** is known to be fully supported.
32+
* **GCC 7.5** (tested 2021)
33+
* **GCC 13.3 + CMake 3.28.3** (tested 2025)
2834

2935
---
3036
## 2. Build instructions
3137

32-
On Linux you can run the `linux_build.sh` script.
38+
On Linux you can run either of the two build scripts:
39+
- `linux_build-default.sh`: Runs the default build, which includes the demo and the test suite. Also runs the tests. Carna is built without EGL support for offscreen rendering.
40+
- `linux_build-egl.sh`: Builds Carna with EGL support, but skips the demo and the test suite. This is becaue the demo and the test suite are built with Qt, which cannot be initialized when Carna is built with EGL support.
3341

3442
---
3543
## 3. Including in your project
3644

37-
Add a `find_package` directive to your project's `CMakeLists.txt` file, e.g.:
38-
39-
```CMake
40-
find_package( Carna REQUIRED )
41-
include_directories( ${CARNA_INCLUDE_DIR} )
42-
```
43-
44-
If you need to put a constraint on the version, use `find_package(Carna 3.1.0 REQUIRED)`
45-
to pick a package with a version *compatible* to 3.1.0,
46-
or use `find_package(Carna 3.1.0 EXACT REQUIRED)` to pick a package by the exact version.
47-
48-
You also need to add the headers (usually *only* the headers) from Eigen:
49-
50-
```CMake
51-
find_package( Eigen3 REQUIRED )
52-
include_directories( ${EIGEN3_INCLUDE_DIR} )
53-
```
54-
55-
Finally add Carna to the linking stage:
56-
57-
```CMake
58-
target_link_libraries( ${TARGET_NAME} ${SOME_OTHER_LIBRARIES} ${CARNA_LIBRARIES} )
59-
```
45+
See *test_cmake/CMakeLists.txt* as a starting point.
6046

6147
---
6248
## 4. See also

docs/.nojekyll

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/html/Aggregation_8h.html

Lines changed: 35 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2-
<html xmlns="http://www.w3.org/1999/xhtml">
1+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
33
<head>
44
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5-
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6-
<meta name="generator" content="Doxygen 1.8.13"/>
5+
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
6+
<meta name="generator" content="Doxygen 1.9.8"/>
77
<meta name="viewport" content="width=device-width, initial-scale=1"/>
88
<title>Carna: include/Carna/base/Aggregation.h File Reference</title>
99
<link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -13,11 +13,12 @@
1313
<script type="text/javascript" src="search/searchdata.js"></script>
1414
<script type="text/javascript" src="search/search.js"></script>
1515
<script type="text/x-mathjax-config">
16-
MathJax.Hub.Config({
17-
extensions: ["tex2jax.js"],
18-
jax: ["input/TeX","output/HTML-CSS"],
16+
MathJax.Hub.Config({
17+
extensions: ["tex2jax.js"],
18+
jax: ["input/TeX","output/HTML-CSS"],
1919
});
20-
</script><script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
20+
</script>
21+
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
2122
<link href="doxygen.css" rel="stylesheet" type="text/css" />
2223
<link href="doc_extra.css" rel="stylesheet" type="text/css"/>
2324
</head>
@@ -26,28 +27,32 @@
2627
<div id="titlearea">
2728
<table cellspacing="0" cellpadding="0">
2829
<tbody>
29-
<tr style="height: 56px;">
30-
<td id="projectalign" style="padding-left: 0.5em;">
31-
<div id="projectname">Carna
32-
&#160;<span id="projectnumber">Version 3.3.2</span>
30+
<tr id="projectrow">
31+
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
32+
<td id="projectalign">
33+
<div id="projectname">Carna<span id="projectnumber">&#160;Version 3.3.3</span>
3334
</div>
3435
</td>
3536
</tr>
3637
</tbody>
3738
</table>
3839
</div>
3940
<!-- end header part -->
40-
<!-- Generated by Doxygen 1.8.13 -->
41+
<!-- Generated by Doxygen 1.9.8 -->
4142
<script type="text/javascript">
42-
var searchBox = new SearchBox("searchBox", "search",false,'Search');
43+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
44+
var searchBox = new SearchBox("searchBox", "search/",'.html');
45+
/* @license-end */
4346
</script>
4447
<script type="text/javascript" src="menudata.js"></script>
4548
<script type="text/javascript" src="menu.js"></script>
4649
<script type="text/javascript">
50+
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
4751
$(function() {
4852
initMenu('',true,false,'search.php','Search');
4953
$(document).ready(function() { init_search(); });
5054
});
55+
/* @license-end */
5156
</script>
5257
<div id="main-nav"></div>
5358
<!-- window showing the filter options -->
@@ -59,9 +64,16 @@
5964

6065
<!-- iframe showing the search results (closed by default) -->
6166
<div id="MSearchResultsWindow">
62-
<iframe src="javascript:void(0)" frameborder="0"
63-
name="MSearchResults" id="MSearchResults">
64-
</iframe>
67+
<div id="MSearchResults">
68+
<div class="SRPage">
69+
<div id="SRIndex">
70+
<div id="SRResults"></div>
71+
<div class="SRStatus" id="Loading">Loading...</div>
72+
<div class="SRStatus" id="Searching">Searching...</div>
73+
<div class="SRStatus" id="NoMatches">No Matches</div>
74+
</div>
75+
</div>
76+
</div>
6577
</div>
6678

6779
<div id="nav-path" class="navpath">
@@ -73,8 +85,7 @@
7385
<div class="summary">
7486
<a href="#nested-classes">Classes</a> &#124;
7587
<a href="#namespaces">Namespaces</a> </div>
76-
<div class="headertitle">
77-
<div class="title">Aggregation.h File Reference</div> </div>
88+
<div class="headertitle"><div class="title">Aggregation.h File Reference</div></div>
7889
</div><!--header-->
7990
<div class="contents">
8091

@@ -86,52 +97,27 @@
8697
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
8798
</div>
8899
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
89-
<div class="center"><img src="Aggregation_8h__incl.png" border="0" usemap="#include_2Carna_2base_2Aggregation_8h" alt=""/></div>
90-
<map name="include_2Carna_2base_2Aggregation_8h" id="include_2Carna_2base_2Aggregation_8h">
91-
<area shape="rect" id="node2" href="Association_8h.html" title="Defines Carna::base::Association. " alt="" coords="73,95,245,121"/>
92-
<area shape="rect" id="node3" href="Carna_8h_source.html" title="Carna/Carna.h" alt="" coords="23,169,129,196"/>
93-
<area shape="rect" id="node6" href="noncopyable_8h.html" title="Carna/base/noncopyable.h" alt="" coords="154,169,331,196"/>
94-
</map>
100+
<div class="center"><img src="Aggregation_8h__incl.png" border="0" usemap="#ainclude_2Carna_2base_2Aggregation_8h" alt=""/></div>
95101
</div>
96102
</div><div class="textblock"><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
97103
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> This graph shows which files directly or indirectly include this file:</div>
98104
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
99105
</div>
100106
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
101-
<div class="center"><img src="Aggregation_8h__dep__incl.png" border="0" usemap="#include_2Carna_2base_2Aggregation_8hdep" alt=""/></div>
102-
<map name="include_2Carna_2base_2Aggregation_8hdep" id="include_2Carna_2base_2Aggregation_8hdep">
103-
<area shape="rect" id="node2" href="FrameRenderer_8h.html" title="Defines Carna::base::FrameRenderer. " alt="" coords="1017,184,1151,225"/>
104-
<area shape="rect" id="node13" href="MeshColorCodingStage_8h.html" title="Defines Carna::presets::MeshColorCodingStage. " alt="" coords="1066,363,1241,404"/>
105-
<area shape="rect" id="node19" href="RenderStageSequence_8h.html" title="Defines Carna::base::RenderStageSequence. " alt="" coords="1121,95,1292,136"/>
106-
<area shape="rect" id="node3" href="GeometryStage_8h.html" title="Defines Carna::base::GeometryStage. " alt="" coords="893,273,1027,315"/>
107-
<area shape="rect" id="node4" href="MeshRenderingStage_8h.html" title="Defines Carna::base::MeshRenderingStage. " alt="" coords="879,363,1041,404"/>
108-
<area shape="rect" id="node12" href="CuttingPlanesStage_8h.html" title="Defines Carna::presets::CuttingPlanesStage. " alt="" coords="701,363,854,404"/>
109-
<area shape="rect" id="node14" href="VolumeRenderingStage_8h.html" title="Defines Carna::presets::VolumeRenderingStage. " alt="" coords="339,363,514,404"/>
110-
<area shape="rect" id="node5" href="FrameRendererHelper_8h.html" title="Defines Carna::helpers::FrameRendererHelper. " alt="" coords="1135,452,1300,493"/>
111-
<area shape="rect" id="node6" href="OpaqueRenderingStage_8h.html" title="Defines Carna::presets::OpaqueRenderingStage. " alt="" coords="935,452,1110,493"/>
112-
<area shape="rect" id="node10" href="TransparentRenderingStage_8h.html" title="Defines Carna::presets::TransparentRenderingStage. " alt="" coords="713,452,911,493"/>
113-
<area shape="rect" id="node7" href="MeshColorCodingStageTest_8h_source.html" title="test/ModuleTests/MeshColor\lCodingStageTest.h" alt="" coords="1037,541,1227,583"/>
114-
<area shape="rect" id="node8" href="OpaqueRenderingStageTest_8h_source.html" title="test/ModuleTests/OpaqueRendering\lStageTest.h" alt="" coords="1251,541,1482,583"/>
115-
<area shape="rect" id="node9" href="PointMarkerHelperTest_8h_source.html" title="test/ModuleTests/PointMarker\lHelperTest.h" alt="" coords="815,541,1012,583"/>
116-
<area shape="rect" id="node11" href="TransparentRenderingStageTest_8h_source.html" title="test/ModuleTests/Transparent\lRenderingStageTest.h" alt="" coords="594,541,790,583"/>
117-
<area shape="rect" id="node15" href="DRRStage_8h.html" title="Defines Carna::presets::DRRStage. " alt="" coords="179,452,328,493"/>
118-
<area shape="rect" id="node16" href="DVRStage_8h.html" title="Defines Carna::presets::DVRStage. " alt="" coords="352,452,501,493"/>
119-
<area shape="rect" id="node17" href="MaskRenderingStage_8h.html" title="Defines Carna::presets::MaskRenderingStage. " alt="" coords="525,452,688,493"/>
120-
<area shape="rect" id="node18" href="MIPStage_8h.html" title="Defines Carna::presets::MIPStage. " alt="" coords="5,452,155,493"/>
121-
</map>
107+
<div class="center"><img src="Aggregation_8h__dep__incl.png" border="0" usemap="#ainclude_2Carna_2base_2Aggregation_8hdep" alt=""/></div>
122108
</div>
123109
</div>
124110
<p><a href="Aggregation_8h_source.html">Go to the source code of this file.</a></p>
125111
<table class="memberdecls">
126-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
112+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
127113
Classes</h2></td></tr>
128114
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCarna_1_1base_1_1Aggregation.html">Carna::base::Aggregation&lt; AssociatedObjectType &gt;</a></td></tr>
129115
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents an aggregation, i.e. a weak reference. <a href="classCarna_1_1base_1_1Aggregation.html#details">More...</a><br /></td></tr>
130116
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
131117
</table><table class="memberdecls">
132-
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
118+
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
133119
Namespaces</h2></td></tr>
134-
<tr class="memitem:namespaceCarna_1_1base"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCarna_1_1base.html">Carna::base</a></td></tr>
120+
<tr class="memitem:namespaceCarna_1_1base" id="r_namespaceCarna_1_1base"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceCarna_1_1base.html">Carna::base</a></td></tr>
135121
<tr class="memdesc:namespaceCarna_1_1base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Contains the core framework components. <br /></td></tr>
136122
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
137123
</table>

0 commit comments

Comments
 (0)