CamiTK Community Edition issueshttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues2024-02-07T12:35:39+01:00https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/177Save All fails if a Component does not have a filename (e.g. newly reconstruc...2024-02-07T12:35:39+01:00Manik BhattacharjeeSave All fails if a Component does not have a filename (e.g. newly reconstructed mesh)## About you
CamiTK developer
## Overview
SaveAll implementation is wrong and fails in multiple ways when components to save do not have a filename. This can lead to data loss (thinking a file was saved even it was not) and segfault (w...## About you
CamiTK developer
## Overview
SaveAll implementation is wrong and fails in multiple ways when components to save do not have a filename. This can lead to data loss (thinking a file was saved even it was not) and segfault (when no component is selected).
## Steps to Reproduce
Open two masks (e.g. skull-binary.stl and head-binary from testdata).
Using action Reconstruction to create a mesh from each mask.
- Scenario 1
- Select both meshes
- Click on "Save All" from the File menu
- In the first Save As window, save as Mesh1.obj
- In the second window, save as Mesh2.obj
- Scenario 2
- Deselect all components
- Click on "Save All" from the File menu
## Actual VS Expected Result
- Scenario 1
- Expected: both meshes are saved in their own file, each now has a filename set to the one that was used to save them
- Actual: only one of the meshes was saved in both files. This mesh now has a filename set to the latest file saved. The other mesh is ignored and not saved
- Scenario 2
- Expected: both meshes are saved in their own file
- Actual result: CamiTK crashes, all work is lost
## Interpretation & Possible fixes
- `SaveAllAction::apply` calls `Application::save` on all top-level components.
- `Application::save` checks if the filename is empty. If it is, it calls
- `getAction("Save As")->apply()`.
The problem here is that the `SaveAsAction::apply` function does not know which component it must save, as this is not a parameter of `apply`.
It will try to save the last selected component, which is probably not the one we are trying to save.
`Component* comp = Application::getSelectedComponents().last();`
If there is no selected component (Scenario 2), this tries to get a Component from an empty list and crashes (qt_assert in debug mode).
If there is at least a selected component, SaveAll will save the last selected component over and over again.
**To fix this**
Modify action "Save As" so we can set a componentToSave parameter, apply it, then reset ComponentToSave to null_ptr. Apply would then check for this parameter, revert to the current behaviour if it is empty, and check if there are selectedComponents before getting the last element.
## CamiTK Version
CamiTK 5.2.0.158-camitk-file-format-metadata-scenes-processing-scenarios.c46342cd
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/176Triggering the Arbitrary Slice action crashes with 2D images2023-12-22T23:07:35+01:00Emmanuel PromayonTriggering the Arbitrary Slice action crashes with 2D images## About you
CamiTK developer
## Overview
When triggering the "Arbitrary Slice" on an image component that contains a 2D image, the application crashes.
## Steps to Reproduce
Save [this image](/uploads/43c877105d9b1b7d3fd67d85088016...## About you
CamiTK developer
## Overview
When triggering the "Arbitrary Slice" on an image component that contains a 2D image, the application crashes.
## Steps to Reproduce
Save [this image](/uploads/43c877105d9b1b7d3fd67d85088016b0/debian-logo.png) and open it with `camitk-imp`
Select the component, and select the `View` → `Arbitrary Slice`
→ `camitk-imp` crashes
## Actual VS Expected Result
No crash !
The arbitrary slice action should abort cleanly and a warning message should be displayed to explain why the action aborted.
## Interpretation & Possible fixes
The arbitrary slice's `SingleImageComponent` is only created if the image component has 3 dimensions (see ImageComponent.cpp:562 and line 571. When the arbitrary slice action is triggered it does not take into account the fact that an `ImageComponent` can have no arbitrary slice subcomponent.
Check the pointer value before accessing it (see AnglesAndTranslationAction::getWidget(), line 106).
## CamiTK Version
CamiTK 5.2.0.develop. 54c95fce
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/173In Action viewer's search panel, the Family combo box does not filter actions2023-11-29T14:58:33+01:00Manik BhattacharjeeIn Action viewer's search panel, the Family combo box does not filter actions## About you
CamiTK developer
## Overview
In the action viewer, the "Family" combo box does nothing.
## Steps to Reproduce
- from a newly built CamiTK, run camitk-imp
- open testdata/sinus-displaced.mha
- In the menu click on View/To...## About you
CamiTK developer
## Overview
In the action viewer, the "Family" combo box does nothing.
## Steps to Reproduce
- from a newly built CamiTK, run camitk-imp
- open testdata/sinus-displaced.mha
- In the menu click on View/Toggle Docked Viewers/Action Viewer to show the Action viewer panel
- Select the component
- Click on the Action combobox in the actions panel and see the list of available actions
- Select a Family e.g. Frame
- Click on the Action combobox, all actions are still there
## Actual VS Expected Result
All actions are visible, nor only the actions from the selected family.
## Interpretation & Possible fixes
This bug was introduced by commit 1bdd9a84 with a change to ImpMainWindow.cpp around line 111.
The line
`actionViewer->setSearchPanelVisible(true);`
was removed.
We could either restore this line (and the necessary dynamic_cast to ActionViewer) or call it from the ActionViewer constructor.
I am not certain why setSearchPanelVisible should disconnect the link from the combobox'signals to the relevant methods.
## CamiTK Version
CamiTK 5.2.0.157-reference-frames-and-transformations-management.a9f78af5
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/172On Windows, CamiTK applications may block or wait indefinitely2023-11-27T15:47:09+01:00Manik BhattacharjeeOn Windows, CamiTK applications may block or wait indefinitely## About you
CamiTK developer, reported by two windows users
## Overview
After a crash, and even after reinstalling CamiTK, camitk-imp does not open or takes a very long time (several minutes) before opening. camitk-config can display ...## About you
CamiTK developer, reported by two windows users
## Overview
After a crash, and even after reinstalling CamiTK, camitk-imp does not open or takes a very long time (several minutes) before opening. camitk-config can display paths, but will not return for a very long time, or display a locking timeout in a command window.
## Steps to Reproduce
Not obvious. It seems to involve .lock or .rmlock files in %username%/AppData/Roaming/CamiTK directory.
Removing the entire directory seems to fix it.
## Actual VS Expected Result
Expected: camitk-imp starts in a few seconds (not minutes), and camitk-config returns less than a second after displaying the info (not minutes).
## Relevant logs and/or screenshots
A Qt message is sometimes displayed in a loop in a terminal while camitk-config is waiting to exit (data already displayed, but the software is not exiting): "Got unexpected locking error 123"
## Interpretation & Possible fixes
Not obvious. It seems that in some circumstances, in the %username%/AppData/Roaming/CamiTK directory, some lock files are present and Qt tries to lock settings files but fails to do so. It might also come from a conflict between camitk-config and camitk-imp trying to access the file at the same time.
This stems from the Application class creating a QSettings object in Application.cpp (global static object):
`QSettings Application::settings(QSettings::IniFormat, QSettings::UserScope, "CamiTK", QString(Core::version).remove(QChar(' ')));`
From [Qt documentation](https://doc.qt.io/qt-6/qsettings.html#accessing-settings-from-multiple-threads-or-processes-simultaneously) IniFormat should work and manage locking correctly, but it seems that sometimes it fails to do so.
Turning the locking safety off might solve this problem as stated [in the documentation](https://doc.qt.io/qt-6/qsettings.html#setAtomicSyncRequired) but it might create other issues (if multiple camitk applications are running and overwrite each other's settings).
## CamiTK Version
Stable 5.0 windows version
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/171Crash when printing debug information (F2 key)2023-11-24T16:35:20+01:00Manik BhattacharjeeCrash when printing debug information (F2 key)## About you
CamiTK developer
## Overview
When a component is displayed in InteractiveViewer, pressing the F2 key should display debug information in the log.
Instead, CamiTK crashes (segfault).
## Steps to Reproduce
- Run camitk-imp...## About you
CamiTK developer
## Overview
When a component is displayed in InteractiveViewer, pressing the F2 key should display debug information in the log.
Instead, CamiTK crashes (segfault).
## Steps to Reproduce
- Run camitk-imp
- Open a mesh (.obj) or an image (.nii)
- Push F2 key
## Actual VS Expected Result
IMP crashes and does not display debug information
## Interpretation & Possible fixes
Crash happens in InteractiveViewer.cpp when creating a list of all props from a component:
`std::list<vtkSmartPointer <vtkProp> > allActors(actorMap.values(c).begin(), actorMap.values(c).end());`
## CamiTK Version
Current develop branch of camitk-5.2
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/151Picking a point changes selected object and makes current Action disappear2024-03-25T17:54:17+01:00Manik BhattacharjeePicking a point changes selected object and makes current Action disappear## About you
CamiTK developper
## Overview
While creating a CEP, an action that uses multiple components was written and needs to get point coordinates from a click in a viewer.
When clicking on the point, if the image in the viewer is...## About you
CamiTK developper
## Overview
While creating a CEP, an action that uses multiple components was written and needs to get point coordinates from a click in a viewer.
When clicking on the point, if the image in the viewer is not the selected imageComponent, the picking action changes the selection. The action is then hidden because the selection changed.
## Steps to Reproduce
This is visible when using Meniscare CamiTK CEP and the ManualRegistration3D action.
Load two volumes (e.g. brain.mha and sinus-displaced.mha).
In the action, select one of the images, and Ctrl+Click on the image in a slice viewer.
Click on the "pick" button in the action to get the coordinates.
## Actual VS Expected Result
If the image shown in the viewer (the one "selected" in the Action widget) is not the selected component of CamiTK Application, the image is selected, and the action disappears because the component selection changed.
## Interpretation & Possible fixes
This is due to the [selectionChanged(comp)](https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/blob/develop/sdk/libraries/core/viewer/InteractiveViewer.cpp#L2165) in InteractiveViewer. The same applies to other picking modes in the same InteractiveViewer::picked() function.
I think this is done to show in the PropertyExplorer the coordinates of the picked point when it is clicked (which needs the ImageComponent to be selected), and hiding the action is a side effect of that.
I see two ways to fix this problem:
- do not change the selected component when a point is picked, but that might break the behavior of displaying the picked coordinates in the "selection" tab of the PropertyExplorer
- A large change in CamiTK: separate completely the notion of selected components in the Application with the currently running Action. I mean that when an action is open on selected components, the fact that the selection changes in the application should not hide the action. The action should only be closed if the component disappears (closed) or the action is closed by the user. This means rethinking what an action can be, e.g. an action can be instantiated multiple times, and there should be an ActionExplorer that lists currently opened actions. In this way, we could run the same action twice with different parameters at the same time.
## CamiTK Version
CamiTK 5.1.dev.develop.f3f104d8
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/137Unix file separator "/" is used explicitely in some file handling code of the...2023-05-31T12:15:49+02:00Manik BhattacharjeeUnix file separator "/" is used explicitely in some file handling code of the SDK instead of a portable value such as QDir::separator()## About you
CamiTK developper
## Overview
While reading code in libraries/core/viewer/RendererWidget.cpp I found a line of code which assumes that file path are using the unix separator '/'.
```c++
QString filePrefix = QFileInfo(filen...## About you
CamiTK developper
## Overview
While reading code in libraries/core/viewer/RendererWidget.cpp I found a line of code which assumes that file path are using the unix separator '/'.
```c++
QString filePrefix = QFileInfo(filename).absolutePath() + "/" + QFileInfo(filename).baseName();
```
The same type of separator use is found at multiple places in the SDK:
```bash
$ grep -n --include "*.cpp" --include "*.h" '"/"' * -R
```
```c++
actions/application/file/SaveAsAction.cpp:178: QFileDialog saveFileDialog(nullptr, tr("Save File As..."), QFileInfo(compfileName).dir().canonicalPath() + "/" + suggestedName, test);
actions/application/file/SaveAsAction.cpp:183: QString filename = QFileDialog::getSaveFileName(nullptr, tr("Save File As..."), QFileInfo(compfileName).dir().canonicalPath() + "/" + suggestedName, test);
applications/actionstatemachine/SaveActionState.cpp:107: (*outIt)->setFileName(saveDirName + "/" + compName + ".mha");
applications/actionstatemachine/SaveActionState.cpp:109: (*compIt)->setFileName(compDir + "/" + compName + compExt);
applications/actionstatemachine/SaveActionState.cpp:114: (*logStream) << compDir + "/" + compName + compExt << "' type='" << compType << "'/>" << Qt::endl;
applications/testcomponents/main.cpp:190: comp->setFileName(outputDirectory + "/" + inputComponent.fileName());
applications/wizard/GeneratingCEPState.cpp:105: QString outputFileName = dir.absolutePath() + "/" + cepDirName + "/libraries/" + libraryName + "/" + shortFileName;
components/vtkimage/VtkImageComponentExtension.cpp:251: QString filePattern = fileInfo.absoluteDir().absolutePath() + "/" + fileInfo.baseName();
components/off/OffExtension.cpp:71: QString baseFilename = QFileInfo(component->getFileName()).absolutePath() + "/" + QFileInfo(component->getFileName()).completeBaseName();
components/obj/ObjExtension.cpp:68: QString baseFilename = QFileInfo(component->getFileName()).absolutePath() + "/" + QFileInfo(component->getFileName()).completeBaseName();
libraries/core/viewer/RendererWidget.cpp:572: QString filePrefix = QFileInfo(filename).absolutePath() + "/" + QFileInfo(filename).baseName();
libraries/core/utils/CamiTKLogger.cpp:158: QFile::rename(fileToMove.absoluteFilePath(), logFileDirectory.path() + "/" + logFileName);
libraries/core/utils/CamiTKLogger.cpp:162: logFile = new QFile(logFileDirectory.path() + "/" + logFileName);
libraries/core/ExtensionManager.cpp:322: QString privateLibToLoad = Core::getGlobalInstallDir() + "/" + QString(Core::libDir) + "/" + QString(Core::shortVersion) + "/" + libname.cap(1);
libraries/core/ExtensionManager.cpp:328: privateLibToLoad = Core::getGlobalInstallDir() + "/" + QString(Core::libDir) + "/" + QString(Core::shortVersion) + "/" + libname.cap(1);
libraries/core/ExtensionManager.cpp:367: // add one cdUp() for each "/" inside Core::libDir (to take into account any multiarch configuration that
libraries/core/ExtensionManager.cpp:576: appFilePath.replace("/", "\\");
libraries/core/ExtensionManager.cpp:717: if (potentialPath.cd(potentialLibDir + "/" + QString(Core::shortVersion))) {
libraries/core/Core.cpp:314: QStringList installDirectories = getInstallDirectories(QString(Core::libDir) + "/" + QString(Core::shortVersion) + "/" + extensionType);
libraries/core/Core.cpp:318: QStringList libInstallDirectories = getInstallDirectories("lib/" + QString(Core::shortVersion) + "/" + extensionType, false);
libraries/cepgenerator/CepGenerator.cpp:95: devDirectoryName = devDirectoryName + "/";
libraries/cepgenerator/ComponentExtensionGenerator.cpp:309: QString testFileName = currentDirectory.absolutePath() + "/" + "empty." + suffix;
```
Same with '/':
```cpp
libraries/core/ExtensionManager.cpp:369: for (int i = 0; i < QString(Core::libDir).count(QLatin1Char('/')); i++) {
components/vtkmesh/VtkMeshUtil.cpp:230: size_t nbegin = vtkFileName.find_last_of('/');
```
Outside the SDK, tutorials and modeling also contain instances of the same problem:
```cpp
modeling/libraries/mml/monitoring/MonitoringManager.cpp:565: if (mmlIn->simulatorFile().get()[0] != '/') {
modeling/libraries/mml/monitoring/AnsysSimulator.cpp:48: if (workingDir[workingDir.length() - 1] != '/') {
modeling/libraries/mml/monitoring/ArtiSynthSimulator.cpp:44: if (workingDir[workingDir.length() - 1] != '/') {
modeling/applications/pmltools/obj2pml/obj2pml.cpp:111: unsigned int slash = buff.find('/');
modeling/actions/mml/GenerateModel.cpp:86: QString baseFilename = QFileInfo(originalFilename).absolutePath() + "/" + QFileInfo(originalFilename).completeBaseName();
modeling/libraries/mml/monitoring/MonitoringManager.cpp:53: size_t slashPlace = mmlPath.find_last_of("/");
modeling/libraries/mml/monitoring/MonitoringManager.cpp:97: QString guessPMLFilename = QFileInfo(fi).absolutePath() + "/" + QFileInfo(fi).baseName() + ".pml";
modeling/libraries/mml/monitoring/SofaSimulator.cpp:80: QString scnFileName = mmlFileInfo.absolutePath() + "/" + mmlFileInfo.baseName() + ".scn";
modeling/libraries/mml/monitoring/SofaSimulator.cpp:88: scnFileName = QDir::tempPath() + "/" + mmlFileInfo.baseName() + ".scn";
modeling/libraries/mml/monitoring/SofaSimulator.cpp:92: QString mshFileName = QDir::tempPath() + "/" + QFileInfo(monitoringManager->getPmlFileName().c_str()).baseName() + ".msh";
modeling/libraries/mml/monitoring/SofaWidget.cpp:87: size_t slashPlace = scnFileTemp.find_last_of("/");
modeling/libraries/mml/monitoring/AnsysSimulator.cpp:49: workingDir = workingDir + "/";
modeling/libraries/mml/monitoring/ArtiSynthSimulator.cpp:45: workingDir = workingDir + "/";
modeling/libraries/mml/monitoring/Reference.cpp:82: size_t slashPlace = refpath.find_last_of("/");
modeling/components/mmlcomponent/MMLComponent.cpp:61: file = QDir::tempPath() + "/" + QFileInfo(fi).baseName() + ".mml";
modeling/applications/pmltools/extractCells/extractCells.cpp:147: extracted = new StructuralComponent(pm, c1 + "/" + c2 + " extracted");
modeling/applications/pmltools/extractCells/extractCells.cpp:172: cout << '\r' << (i + 1) << "/" << ok;
modeling/applications/pmltools/extractCells/extractCells.cpp:192: pm->setName(pm->getName() + " " + c1 + "/" + c2 + " Extracted");
```
```cpp
tutorials/components/mixed/MixedComponent.cpp:41: QString mhaFile = QFileInfo(file).absolutePath() + "/" + filename.c_str();
tutorials/components/mixed/MixedComponent.cpp:43: QString vtkFile = QFileInfo(file).absolutePath() + "/" + filename.c_str();
tutorials/applications/fancy/FancyMainWindow.cpp:221: ui.slideValue->setText(QString("%1").arg((currentSliceId + 1), 3) + "/" + QString("%1").arg(maxSliceId, 3));
tutorials/applications/nogui/main.cpp:85: QString outputFileName = QDir::currentPath() + "/" + QFileInfo(image->getFileName()).completeBaseName() + "-output." + QFileInfo(image->getFileName()).suffix(
```
## Actual VS Expected Result
As CamiTK is multiplaform, the code should not assume that the path separator is the '/' char.
Using Qt Resources might be an exception to this, so each line of code should be checked manually before replacing '/' by QDir::separator().
## Interpretation & Possible fixes
Replacing '/' char with QDir::separator() when building file paths.
## CamiTK Version
CamiTK 5.1.dev.develop.f3f104d8
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/135Cancel color picking displays warning2023-04-28T14:50:23+02:00Manik BhattacharjeeCancel color picking displays warning## About you
CamiTK developer
## Overview
When selecting a Mesh component and trying to set its color, if the user cancels the color picking, a CamiTK warning is displayed.
## Actual VS Expected Result
No message should be displayed i...## About you
CamiTK developer
## Overview
When selecting a Mesh component and trying to set its color, if the user cancels the color picking, a CamiTK warning is displayed.
## Actual VS Expected Result
No message should be displayed if the user cancels.
## Interpretation & Possible fixes
actions/mesh/basicmesh/ChangeColor.cpp contains a CAMITK_WARNING in the cancel case. Just removing this line should be enough.
## CamiTK Version
CamiTK 5.1.dev
---
**please do not remove anything below this line**Manik BhattacharjeeManik Bhattacharjeehttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/123camitk-imp SegFault after installation2021-03-15T16:52:25+01:00Theophile Tiffetcamitk-imp SegFault after installation## About you
PhD student at GMCAO
## Overview
camitk-imp works well after building. However, after install it segfault.
## Interpretation & Possible fixes
It seems linked to the fact that on some distribution (and possibly mac ?) the...## About you
PhD student at GMCAO
## Overview
camitk-imp works well after building. However, after install it segfault.
## Interpretation & Possible fixes
It seems linked to the fact that on some distribution (and possibly mac ?) the /usr/lib folder is reserved for 32bits libraries (64bits libraries in lib64) instead of being a symlink to lib64, with a lib32 folder for 32bits libraries.
These cases are handled in CMake by using CMAKE_INSTALL_LIBDIR. However in CamiTK this variable is set but ignored, replaced by hard coded "/lib".
It is the same problem as for a previous error. I implemented a fix for it and I'll provide a pull request soon.
## CamiTK Version
Latest dev build
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/122Missing Files2023-04-23T11:03:52+02:00Theophile TiffetMissing Files## About you
PhD student
## Overview
- Missing Atom.hxx (included in modeling/libraries/pml/Atom.cpp:31)
- Missing Loads.hxx (modeling/libraries/lml/Loads.cpp:38)
## Steps to Reproduce
Compile CamiTK with pml/lml support
## CamiTK V...## About you
PhD student
## Overview
- Missing Atom.hxx (included in modeling/libraries/pml/Atom.cpp:31)
- Missing Loads.hxx (modeling/libraries/lml/Loads.cpp:38)
## Steps to Reproduce
Compile CamiTK with pml/lml support
## CamiTK Version
Latest dev version
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/117Update upstream-ci/master in order to fix package build2024-02-23T11:13:30+01:00Emmanuel PromayonUpdate upstream-ci/master in order to fix package build## About you
CamiTK dev & maintainer
## Overview
## Steps to Reproduce
See error for instance in Job [#187192](https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/187192) failed for f1e1a157f156667c4c74908c54343597739b4...## About you
CamiTK dev & maintainer
## Overview
## Steps to Reproduce
See error for instance in Job [#187192](https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/187192) failed for f1e1a157f156667c4c74908c54343597739b4412:
## Actual VS Expected Result
no package build vs debian unstable package are build
## Relevant logs and/or screenshots
See error for instance in Job [#187192](https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/187192) failed for f1e1a157f156667c4c74908c54343597739b4412:
## Interpretation & Possible fixes
- Check lintian message
- Check d/r
It seems the first time the package build failed was after !156 was merged, see #109
## CamiTK Version
Current development as of 23 dec 2020
## Latest info
As of 1 feb 2021
Job [#197871](https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/197871) failed for 45108ed033f366a2c065e14aae61c1fd7c83255b:
The package was not generated, please check the artifacts and fix the problem:
- summary: https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/197871/artifacts/raw/packaging-debian-unstable-develop/log/summary.log
- check environment: https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/197871/artifacts/raw/packaging-debian-unstable-develop/log/check-environment.log
- build package: https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/197871/artifacts/raw/packaging-debian-unstable-develop/log/build-package.log
- prepare package environment: https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/jobs/197871/artifacts/raw/packaging-debian-unstable-develop/log/prepare-package-environment.log
---
**please do not remove anything below this line**CamiTK 5Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/113action state machine log2020-10-20T00:24:16+02:00Emmanuel Promayonaction state machine log## Overview
The action state machine XML output log can not be open in a web browser anymore (external xsl are considered a security issue)
## Steps to Reproduce
1. run the action state machine with any valid SCXML
2. try to open the...## Overview
The action state machine XML output log can not be open in a web browser anymore (external xsl are considered a security issue)
## Steps to Reproduce
1. run the action state machine with any valid SCXML
2. try to open the resulting log.xml in a recent web browser (chrome or firefox tested)
## Actual VS Expected Result
File cannot be loaded or is only displaying the text of the XML element (no html presentation is produced through the given xsl stylesheet)
## Interpretation & Possible fixes
We need to embed the xsl stylesheet inside the XML, this way the web browser does not have to load a local file and it agrees to run the xslt to visualize the html instead of the XML
## CamiTK Version
CamiTK 4.2.dev.110-outdated-documentation.47480f53
---
**please do not remove anything below this line**Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/108ITK 52020-07-15T17:25:50+02:00Theophile TiffetITK 5## About you
Tiffet Théophile Phd student
## Overview
CamiTK should work with ITK 5 but refuse to compile with it.
## Interpretation & Possible fixes
Checks for itk_version < 5 should be removed from CMake files.
## CamiTK Version
...## About you
Tiffet Théophile Phd student
## Overview
CamiTK should work with ITK 5 but refuse to compile with it.
## Interpretation & Possible fixes
Checks for itk_version < 5 should be removed from CMake files.
## CamiTK Version
Last develop version (933bc0c2)
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/106Cannot compile CamiTK2020-07-10T12:58:59+02:00Theophile TiffetCannot compile CamiTK## About you
Theophile Tiffet PhD student
## Overview
Due to the changes to viewers in CamiTK, i cannot compile it anymore.
## Steps to Reproduce
Compile it.
## Relevant logs and/or screenshots
Several methods in viewers inheriting...## About you
Theophile Tiffet PhD student
## Overview
Due to the changes to viewers in CamiTK, i cannot compile it anymore.
## Steps to Reproduce
Compile it.
## Relevant logs and/or screenshots
Several methods in viewers inheriting from viewer rather than interactive viewer (MedicalImageViewer, Explorer, bitmapViewer, etc...) have methods marked with override (getWidget, getNumberOfComponents, etc..) that does not exist in the viewer class.
## Interpretation & Possible fixes
Possible change to the base classes that were not propagated to inheriting classes.
## CamiTK Version
commit 933bc0c2568482881247687a45ccc27f9856a371 of the develop branch
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/94Wizard generation problem2020-03-13T20:37:01+01:00Maxime CalkaWizard generation problem## About you
PHD Student and CamiTK developer
## Overview
Problem to generate CEP with wizard
## Steps to Reproduce
Try to create CEP with wizard
## Actual VS Expected Result
Seg fault during CEP creation vs Create CEP
## CamiTK V...## About you
PHD Student and CamiTK developer
## Overview
Problem to generate CEP with wizard
## Steps to Reproduce
Try to create CEP with wizard
## Actual VS Expected Result
Seg fault during CEP creation vs Create CEP
## CamiTK Version
[Copy/Paste the output of `camitk-config -b` CamiTK Version part ]
---
**please do not remove anything below this line**Emmanuel PromayonEmmanuel Promayonhttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/86CamiTK property of type double limited to int limits2019-05-28T23:42:59+02:00Matthias TummersCamiTK property of type double limited to int limitsAs a CamiTK dev, I noticed that there is a bug with the CamiTK Property of type double. Namely, it is limited to the limits of a type int (i.e. from -2147483648 to 2147483647).
### Steps to Reproduce:
To reproduce this bug create a Cam...As a CamiTK dev, I noticed that there is a bug with the CamiTK Property of type double. Namely, it is limited to the limits of a type int (i.e. from -2147483648 to 2147483647).
### Steps to Reproduce:
To reproduce this bug create a CamiTK property of type double and either:
- set it to any value outside the int limits (but comprised in the double range) in your code, run the code and observe the property being brought back to the closest int limit; or
- set it to any value within the int limits, run the code, try to set the property value to any value outside the int limits (but comprised in the double range), and click apply in the property explorer tab: on refresh of the property explorer the value is brought back to the closest int limit.
### Interpretation & Possible fixes:
change the INT_MAX macro to the DBL_MAX macro at following lines in qtpropertymanager.cpp :
l.945 : double minVal{-DBL_MAX };
l.946 : double maxVal{ DBL_MAX };
### CamiTK Version:
- CamiTK version........................... CamiTK 4.1.2
- CamiTK Short Version..................... camitk-4.1
- CamiTK SO NAME........................... 4
- Operating System......................... WIN32
- Build type............................... DEBUG
- QT Version............................... 5.6.1
- VTK Version.............................. 6.3.0
- Global Installation Directory [G]........ C:/dev/CamiTK/install
- Local Installation Directory [L]......... C:/Users/tummersm/AppData/Roaming/CamiTK
- Current Working Directory [W]............ C:/Users/tummersm/Datas/DEPORRA/US/CEP DEPORRAMotorControl/build
- Test Data Directory...................... C:/Users/tummersm/Datas/DEPORRA/US/CEP DEPORRAMotorControl/build/share/camitk-4.1/testdata
- Component Extension Directories.......... C:/Users/tummersm/Datas/DEPORRA/US/CEP DEPORRAMotorControl/build/lib/camitk-4.1/components
C:/dev/CamiTK/install/lib/camitk-4.1/components
- Action Extension Directories............. C:/Users/tummersm/Datas/DEPORRA/US/CEP DEPORRAMotorControl/build/lib/camitk-4.1/actions
C:/dev/CamiTK/install/lib/camitk-4.1/actions
- Number of Component Extensions........... 18 (locations: 17 global, 0 local, 1 in working directory, 0 manually installed by user)
- Number of File Extensions Supported...... 41
- Number of Action Extensions.............. 29 (locations: 28 global, 0 local, 1 in working directory, 0 manually installed by user)
- Number of Actions........................ 108
- Registered components:
- [G] Alias Wavefront OBJ Component...... obj
- [G] FocusImageComponentExtension....... fia
- [G] ItkImages Component................ hdr, spr, gipl, pic, lsm, nrrd, hdr.gz, nii, nii.gz, img, img.gz
- [G] MML Component...................... mml, scn
- [W] MotorComponentExtension............ cpm
- [G] Msh Component...................... msh
- [G] Off Component...................... off
- [G] PML Component...................... pml
- [G] Pick Me Component.................. pickme
- [G] STL Component...................... stl, STL
- [G] Testing Abort Component............ abort
- [G] Testing Mixed Component............ mixed
- [G] USImageComponentExtension.......... usi
- [G] USStreamComponentExtension......... uss
- [G] VRML 2 Component................... vrml, wrl
- [G] VTK Component...................... vtk
- [G] vtkImages Component................ jpg, png, tiff, tif, bmp, pbm, pgm, ppm, mhd, mha, raw
- [G] DICOM.............................. directory
- Registered actions:
- [G] Application Level Actions.......... 21 actions
- [G] AverageVoxelValuesExtension........ 1 actions
- [G] Basic Mesh Extension............... 9 actions
- [G] Basic Picking Tutorial............. 1 actions
- [G] Basic Topology..................... 2 actions
- [G] BoxVOIExtension.................... 1 actions
- [G] FocusActionExtension............... 1 actions
- [G] Frame Edition Extension............ 1 actions
- [G] ITK Filters........................ 14 actions
- [G] ITK Segmentation................... 3 actions
- [G] Image LUT.......................... 1 actions
- [G] ImageAcquisitionActionExtension.... 7 actions
- [G] MML................................ 2 actions
- [G] Mesh Point Data.................... 1 actions
- [G] Mesh Processing.................... 17 actions
- [G] Mesh Selection..................... 1 actions
- [G] MultiPickingExtension.............. 1 actions
- [G] PMLExploreExtension................ 2 actions
- [G] Pixel Color Changer................ 1 actions
- [W] ProbeMotorActionExtension.......... 2 actions
- [G] PropertiesExtension................ 3 actions
- [G] Reconstruction..................... 1 actions
- [G] Reorient Image Extension........... 1 actions
- [G] ResampleExtension.................. 1 actions
- [G] Shaker Extension................... 3 actions
- [G] ShowIn3DExtension.................. 5 actions
- [G] Sleeping While Working............. 2 actions
- [G] VolumeRenderingExtension........... 1 actions
- [G] Vtk Widget Tutorial................ 2 actionshttps://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/82Problem to save an mhd/raw image with voxel data type float2021-01-05T07:31:04+01:00Maxime CalkaProblem to save an mhd/raw image with voxel data type float## About you
CALKA Maxime, M2 trainee. I realize volumic image registration on CamiTK and I need to load/save MRI images.
## Overview
They are a problem when you save a mhd/raw image with a voxel type float. After saving the voxel type...## About you
CALKA Maxime, M2 trainee. I realize volumic image registration on CamiTK and I need to load/save MRI images.
## Overview
They are a problem when you save a mhd/raw image with a voxel type float. After saving the voxel type is change to unsigned char and the image is not workable.
## Steps to Reproduce
- Load in CamiTK an mhd/raw image with Voxel Data Type : float (ElementType = MET_FLOAT)
- Save the image with CamiTK in mhd/raw format (Save As)
- Load the new image
Normally, a entire grey image appear with the Voxel Data Type : unsigned char (ElementType = MET_UCHAR) (that is a problem)
## Actual VS Expected Result
I load the image : okay
I save the image : okay
I load the new image : no expected result (I am supposed found my original image but the voxel type has change and the image is totally grey)
## Relevant logs and/or screenshots
[bug](/uploads/6a74f9fe3e6a69ce429327af33dd9ceb/bug.png)
## Interpretation & Possible fixes
Sorry, I haven't idea.
## CamiTK Version
CamiTK Version:
- CamiTK version........................... CamiTK 4.1.2
- CamiTK Short Version..................... camitk-4.1
- CamiTK SO NAME........................... 4
- Operating System......................... WIN32
- Build type............................... DEBUG
- QT Version............................... 5.6.1
- VTK Version.............................. 6.3.0
- Global Installation Directory [G]........ C:/dev/CamiTK/install
- Local Installation Directory [L]......... C:/Users/calkam/AppData/Roaming/CamiTK
- Current Working Directory [W]............ C:/dev/CamiTK/install/bin
- Test Data Directory...................... C:/dev/CamiTK/install/share/camitk-4.1/testdata
- Component Extension Directories.......... C:/dev/CamiTK/install/lib/camitk-4.1/components
- Action Extension Directories............. C:/dev/CamiTK/install/lib/camitk-4.1/actions
- Number of Component Extensions........... 9 (locations: 9 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of File Extensions Supported...... 31
- Number of Action Extensions.............. 18 (locations: 18 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of Actions........................ 88
- Registered components:
- [G] Alias Wavefront OBJ Component...... obj
- [G] ItkImages Component................ hdr, spr, gipl, pic, lsm, nrrd, hdr.gz, nii, nii.gz, img, img.gz
- [G] Msh Component...................... msh
- [G] Off Component...................... off
- [G] STL Component...................... stl, STL
- [G] VRML 2 Component................... vrml, wrl
- [G] VTK Component...................... vtk
- [G] vtkImages Component................ jpg, png, tiff, tif, bmp, pbm, pgm, ppm, mhd, mha, raw
- [G] DICOM.............................. directory
- Registered actions:
- [G] Application Level Actions.......... 21 actions
- [G] Basic Mesh Extension............... 9 actions
- [G] Basic Topology..................... 2 actions
- [G] BoxVOIExtension.................... 1 actions
- [G] Frame Edition Extension............ 1 actions
- [G] ITK Filters........................ 14 actions
- [G] ITK Segmentation................... 3 actions
- [G] Image LUT.......................... 1 actions
- [G] ImageAcquisitionActionExtension.... 7 actions
- [G] Mesh Processing.................... 17 actions
- [G] MultiPickingExtension.............. 1 actions
- [G] Pixel Color Changer................ 1 actions
- [G] Reconstruction..................... 1 actions
- [G] Reorient Image Extension........... 1 actions
- [G] ResampleExtension.................. 1 actions
- [G] SegmentorExtension................. 1 actions
- [G] ShowIn3DExtension.................. 5 actions
- [G] VolumeRenderingExtension........... 1 actions
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/77Crash at launch2018-12-07T16:52:37+01:00Clement BeitoneCrash at launch## About you
[Present yourself and your project you're working on with CamiTK]
Clément Beitone your neighbour at GMCAO ;)
## Overview
[Rewrite here a larger and more detailed restatement of your summary]
## Steps to Reproduce
[Write ...## About you
[Present yourself and your project you're working on with CamiTK]
Clément Beitone your neighbour at GMCAO ;)
## Overview
[Rewrite here a larger and more detailed restatement of your summary]
## Steps to Reproduce
[Write here the step - by - step process to reproduce the bug, including file to test (you can attach file on gitlab issue report system)]
Crash at launch see log below
## Actual VS Expected Result
[Write here the result of the step - by - step process and explain why it is not what you expected]
Crash at launch see log below
## Relevant logs and/or screenshots
[Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's very hard to read otherwise.]
Launching sequence:
```
2018-11-23 12:04:49.034 [INFO ] [main@main.cpp:106] Logger started. To change log settings, go to "Edit → Preferences → General → camitk-imp"
2018-11-23 12:04:49.093 [INFO ] [camitk::Application::Application(QString, int&, char**, bool, bool)@Application.cpp:77] Application "camitk-imp" - Starting application...
Segmentation fault
```
## Interpretation & Possible fixes
[Write here your interpretation of this bug (If you can, link to the line of code that might be responsible for the problem)]
Issue with the new version of Qt??
## CamiTK Version
[Copy/Paste the output of `camitk-config -b` CamiTK Version part ]
CamiTK Version:
- CamiTK version........................... CamiTK 4.1.2
- CamiTK Short Version..................... camitk-4.1
- CamiTK SO NAME........................... 4
- Operating System......................... LINUX
- Build type............................... RELEASE
- QT Version............................... 5.10.1
- VTK Version.............................. 6.3.0
- Global Installation Directory [G]........ /usr
- Local Installation Directory [L]......... /home/beitoncl/.config/CamiTK
- Current Working Directory [W]............ /home/beitoncl
- Test Data Directory...................... /usr/share/camitk-4.1/testdata
- Component Extension Directories.......... /usr/lib/camitk-4.1/components
- Action Extension Directories............. /usr/lib/camitk-4.1/actions
- Number of Component Extensions........... 14 (locations: 14 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of File Extensions Supported...... 37
- Number of Action Extensions.............. 27 (locations: 27 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of Actions........................ 105
- Registered components:
- [G] Alias Wavefront OBJ Component...... obj
- [G] ItkImages Component................ hdr, spr, gipl, pic, lsm, nrrd, hdr.gz, nii, nii.gz, img, img.gz
- [G] MML Component...................... mml, scn
- [G] Msh Component...................... msh
- [G] Off Component...................... off
- [G] PML Component...................... pml
- [G] Pick Me Component.................. pickme
- [G] STL Component...................... stl, STL
- [G] Testing Abort Component............ abort
- [G] Testing Mixed Component............ mixed
- [G] VRML 2 Component................... vrml, wrl
- [G] VTK Component...................... vtk
- [G] vtkImages Component................ jpg, png, tiff, tif, bmp, pbm, pgm, ppm, mhd, mha, raw
- [G] DICOM.............................. directory
- Registered actions:
- [G] Application Level Actions.......... 21 actions
- [G] AverageVoxelValuesExtension........ 1 actions
- [G] Basic Mesh Extension............... 9 actions
- [G] Basic Picking Tutorial............. 1 actions
- [G] Basic Topology..................... 2 actions
- [G] BoxVOIExtension.................... 1 actions
- [G] Frame Edition Extension............ 1 actions
- [G] ITK Filters........................ 14 actions
- [G] ITK Segmentation................... 3 actions
- [G] Image LUT.......................... 1 actions
- [G] ImageAcquisitionActionExtension.... 7 actions
- [G] MML................................ 2 actions
- [G] Mesh Point Data.................... 1 actions
- [G] Mesh Processing.................... 17 actions
- [G] Mesh Selection..................... 1 actions
- [G] MultiPickingExtension.............. 1 actions
- [G] PMLExploreExtension................ 2 actions
- [G] Pixel Color Changer................ 1 actions
- [G] PropertiesExtension................ 3 actions
- [G] Reconstruction..................... 1 actions
- [G] Reorient Image Extension........... 1 actions
- [G] ResampleExtension.................. 1 actions
- [G] Shaker Extension................... 3 actions
- [G] ShowIn3DExtension.................. 5 actions
- [G] Sleeping While Working............. 2 actions
- [G] VolumeRenderingExtension........... 1 actions
- [G] Vtk Widget Tutorial................ 2 actions
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/73Procedure entry point not located when building a CEP from Sources with Cmake2020-06-15T10:53:29+02:00Guillaume LapougeProcedure entry point not located when building a CEP from Sources with Cmake## About you
PhD Student at TIMC-IMAG, I work on CamiTK for needle steering
## Overview
On windows 10 64bits (Family edition) with CamiTK 4.1.2 successfully installed with the community package.
Cmake version 3.9.6, QT 5.6.1.
Any CEP w...## About you
PhD Student at TIMC-IMAG, I work on CamiTK for needle steering
## Overview
On windows 10 64bits (Family edition) with CamiTK 4.1.2 successfully installed with the community package.
Cmake version 3.9.6, QT 5.6.1.
Any CEP won't be built by CMAKE. Windows displays an error "Procedure entry point not located" concerning some QT5 dlls.
## Steps to Reproduce
See above
## Actual VS Expected Result
We expect the CEP to be built because CamiTK was sucessfully installed with the same softwares. But Cmake displays an error before even building the project.
## Relevant logs and/or screenshots
![issueCamiTK](/uploads/7a66ee2d6238455af656ada8ee8a7ca5/issueCamiTK.png)
## Interpretation & Possible fixes
My interpretation is that the QT dll in QT 5.6.1 install folder are not found by Cmake.
Instead, Cmake seems to use the QT .dll files at \CmakeInstallFolder\CMake\bin.
A fix is to force Cmake to use the right dlls by pasting them in the folder mentioned above, replacing the old ones.
From QtInstallFolder\Qt5.6.1\5.6\msvc2015_64\bin, copy the following files :
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
Qt5Xml.dll
To replace those in \CmakeInstallFolder\CMake\bin. (Make a copy of the old ones for more safety).
## CamiTK Version
CamiTK Version:
- CamiTK version........................... CamiTK 4.1.2
- CamiTK Short Version..................... camitk-4.1
- CamiTK SO NAME........................... 4
- Operating System......................... WIN32
- Build type............................... RELEASE
- QT Version............................... 5.6.1
- VTK Version.............................. 6.3.0
- Global Installation Directory [G]........ D:/dev/CamiTK/CamiTK-4.1.2/install
- Local Installation Directory [L]......... C:/Users/guill/AppData/Roaming/CamiTK
- Current Working Directory [W]............ D:/dev/CamiTK/CamiTK-4.1.2/install/bin
- Test Data Directory...................... D:/dev/CamiTK/CamiTK-4.1.2/install/share/camitk-4.1/testdata
- Component Extension Directories.......... D:/dev/CamiTK/CamiTK-4.1.2/install/lib/camitk-4.1/components
- Action Extension Directories............. D:/dev/CamiTK/CamiTK-4.1.2/install/lib/camitk-4.1/actions
- Number of Component Extensions........... 11 (locations: 11 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of File Extensions Supported...... 34
- Number of Action Extensions.............. 19 (locations: 19 global, 0 local, 0 in working directory, 0 manually installed by user)
- Number of Actions........................ 91
- Registered components:
- [G] Alias Wavefront OBJ Component...... obj
- [G] ItkImages Component................ hdr, spr, gipl, pic, lsm, nrrd, hdr.gz, nii, nii.gz, img, img.gz
- [G] MML Component...................... mml, scn
- [G] Msh Component...................... msh
- [G] Off Component...................... off
- [G] PML Component...................... pml
- [G] STL Component...................... stl, STL
- [G] VRML 2 Component................... vrml, wrl
- [G] VTK Component...................... vtk
- [G] vtkImages Component................ jpg, png, tiff, tif, bmp, pbm, pgm, ppm, mhd, mha, raw
- [G] DICOM.............................. directory
- Registered actions:
- [G] Application Level Actions.......... 21 actions
- [G] Basic Mesh Extension............... 9 actions
- [G] Basic Topology..................... 2 actions
- [G] BoxVOIExtension.................... 1 actions
- [G] Frame Edition Extension............ 1 actions
- [G] ITK Filters........................ 14 actions
- [G] ITK Segmentation................... 3 actions
- [G] Image LUT.......................... 1 actions
- [G] ImageAcquisitionActionExtension.... 7 actions
- [G] MML................................ 2 actions
- [G] Mesh Processing.................... 17 actions
- [G] MultiPickingExtension.............. 1 actions
- [G] PMLExploreExtension................ 2 actions
- [G] Pixel Color Changer................ 1 actions
- [G] Reconstruction..................... 1 actions
- [G] Reorient Image Extension........... 1 actions
- [G] ResampleExtension.................. 1 actions
- [G] ShowIn3DExtension.................. 5 actions
- [G] VolumeRenderingExtension........... 1 actions
---
**please do not remove anything below this line**https://gricad-gitlab.univ-grenoble-alpes.fr/CamiTK/CamiTK/-/issues/66Load mha rotation/translation in the proper order2023-07-20T13:09:48+02:00Emmanuel PromayonLoad mha rotation/translation in the proper order## About you
This was a bug submitted to the old bugzilla by Guillaume Custillon on 2016-03-17
## Overview
> When loading an mhd/mha image that contains some transformation, the translation (offset) is not handled correctly.
> Indeed...## About you
This was a bug submitted to the old bugzilla by Guillaume Custillon on 2016-03-17
## Overview
> When loading an mhd/mha image that contains some transformation, the translation (offset) is not handled correctly.
> Indeed, the rotation matrix should be applied and then the translation in the world frame. However, on CamiTK the rotation is applied, and then the translation in the rotated frame.
## Steps to Reproduce
> - Open imp and load the attached mha test image:
>
> [test_frame_image.mha](/uploads/f3a59f67822c289391ac36321be032af/test_frame_image.mha)
>
> It is a 2D image with a rotation of 45° around z axis and a translation of 10 mm on the x axis.
> - Display the world frame.
## Actual VS Expected Result
> - Observe the location of the image: the translation is not made on the x axis of the world frame, but on the x axis of > the rotated image frame.
## Relevant logs and/or screenshots:
## Interpretation & Possible fixes:
This is the answer given by @jaffarda on 2016-03-22
> Following is based on the test image provided by Guillaume.
>
> ***** The Bug, reworded ******
> According to the data in file:
> TransformMatrix (which contains rotation matrix of frame) is
> 0.707 -0.707 0 0.707 0.707 0 0 0 1
> and
> Offset (which contains translation of frame) is
> 10 0 0
>
> Opening this image with camiTK:
> rotation is OK
> translation become 7.07 7.07 0
>
> in other words, the translation is applied in rotated frame, but we expect it to be applied in world frame
>
> ***** suggested fix *****
>
> based on tests on this image,
>
> in ImageComponent.cpp (line 290), the line
> ```cpp
vtkMatrix4x4::Multiply4x4(rotationMatrix, initialTranslation->GetMatrix(), initialFrameMatrix);
> ```
> should become :
> ```cpp
> vtkMatrix4x4::Multiply4x4(initialTranslation->GetMatrix(), rotationMatrix, initialFrameMatrix);
> ```
>
> ***** WARNING *****
> This change in a core file should only be commit after deep tests on every thing it may impact.
## CamiTK Version:
This was submitted for CamiTK 3.5.0.svn but is still present in CamiTK 4.1.develop