README.md 3.82 KB
Newer Older
kulvait's avatar
CTIOL  
kulvait committed
1 2 3 4
# CT Input Output Library

Input output routines for asynchronous thread safe reading/writing CT data.
Currently, mainly the DEN format read/write is implemented.
kulvait's avatar
kulvait committed
5
This repository actually contains one basic library and separate library that depends on ITK and header files.
kulvait's avatar
CTIOL  
kulvait committed
6 7

## Cloning repository:
Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
8

Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
9
Clone over ssh, for those with ssh keys ready in gitlab
kulvait's avatar
CTIOL  
kulvait committed
10
```
Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
11
git clone ssh://git@gitlab.stimulate.ovgu.de:2200/vojtech.kulvait/CTIOL.git
kulvait's avatar
CTIOL  
kulvait committed
12
```
Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
13
Basic clone can be performed over https
kulvait's avatar
CTIOL  
kulvait committed
14
```
Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
15
git clone https://gitlab.stimulate.ovgu.de/vojtech.kulvait/CTIOL.git
kulvait's avatar
CTIOL  
kulvait committed
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
```
However to populate submodules directories it is then needed to issue
```
git submodule init
git submodule update
```

## How to build:
For build process, make and cmake utilities are required. Install them using
```
apt-get install make cmake
```


Please create separate directory and build there
```
mkdir build
cd build
cmake ..
make
```

kulvait's avatar
kulvait committed
38 39 40 41 42 43 44 45 46 47 48 49 50 51
## Submodules

Submodules lives in the submodules directory. To clone project including submodules one have to use the following commands

```
git submodule init
git submodule update
```
or use the following command when cloning repository

```
git clone --recurse-submodules
```

Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
52 53
We use relative [url](https://www.gniibe.org/memo/software/git/using-submodule.html) to improve experience for http protocol users.

kulvait's avatar
kulvait committed
54 55 56 57 58 59 60 61
### [Plog](https://github.com/SergiusTheBest/plog) logger

Logger Plog is used for logging. It is licensed under the Mozilla Public License Version 2.0.

### [Catch2](https://github.com/catchorg/Catch2)

Testing framework. Licensed under Boost Software License 1.0.

Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
62
### [CTMAL](https://gitlab.stimulate.ovgu.de/vojtech.kulvait/CTMAL)
kulvait's avatar
kulvait committed
63

Vojtěch Kulvait's avatar
Vojtěch Kulvait committed
64
Mathematic/Algebraic algorithms for supporting CT data manipulation.
kulvait's avatar
kulvait committed
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87


## Documentation

Documentation is generated using doxygen and lives in doc directory.
First the config file for doxygen was prepared runing doxygen -g.
Doc files and this file can be written using [Markdown syntax](https://daringfireball.net/projects/markdown/syntax), JAVADOC_AUTOBRIEF is set to yes to treat first line of the doc comment as a brief description, comments are of the format 
```
/**Brief description.
*
*Long description
*thay might span multiple lines.
*/
```
.


## Dependencies

The library ctiol\_denitk uses [ITK library](https://itk.org/Doxygen410/html/index.html). It is required to have this library in the system installed and headers reachable. On Debian it is sufficient to run
```
apt-get install libinsighttoolkit4-dev
```
kulvait's avatar
CTIOL  
kulvait committed
88 89 90

## Using IDEs

kulvait's avatar
kulvait committed
91
### Eclipse
kulvait's avatar
CTIOL  
kulvait committed
92 93 94 95 96 97 98 99
For eclipse to work, create out of source project that is not child or ancesor of the parent directory.
Run the following to generate eclipse project
```
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug path_to_project
```
After each change in CMakeLists.txt remove eclipse project and regenerate it.
See more at https://gitlab.kitware.com/cmake/community/wikis/doc/editors/Eclipse-CDT4-Generator

kulvait's avatar
kulvait committed
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
## Licensing

When there is no other licensing and/or copyright information in the source files of this project, the following apply for the source files in the directories include and src and for CMakeLists.txt file:

Copyright (C) 2018-2020 Vojtěch Kulvait

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, version 3 of the License.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.


This licensing applies to the direct source files in the directories include and src of this project and not for submodules.