diff -Nru connectome-workbench-1.2.3+git3-g7b83782/build_scripts/linux64_rh_aux.sh connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/linux64_rh_aux.sh --- connectome-workbench-1.2.3+git3-g7b83782/build_scripts/linux64_rh_aux.sh 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/linux64_rh_aux.sh 2016-10-19 23:35:12.000000000 +0000 @@ -45,6 +45,8 @@ scp -v Desktop/wb_view caret@myelin1.wustl.edu:${DIST_DIR} scp -v CommandLine/wb_command caret@myelin1.wustl.edu:${DIST_DIR} scp -v ${GIT_ROOT_DIR}/src/CommandLine/wb_shortcuts caret@myelin1.wustl.edu:/mainpool/storage/distribution/caret7_distribution/workbench/bin_rh_linux64 +#put the completion into the exe directory, because it isn't useful to run it directly (and would make wb_comm behave worse) +scp -v ${GIT_ROOT_DIR}/src/CommandLine/bashcomplete_wb_command caret@myelin1.wustl.edu:${DIST_DIR} echo "SCRIPT COMPLETED SUCCESSFULLY" diff -Nru connectome-workbench-1.2.3+git3-g7b83782/build_scripts/mac32_aux.sh connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/mac32_aux.sh --- connectome-workbench-1.2.3+git3-g7b83782/build_scripts/mac32_aux.sh 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/mac32_aux.sh 2016-10-19 23:35:12.000000000 +0000 @@ -73,6 +73,7 @@ scp -rv Desktop/wb_view.app caret@myelin1:${DIST_DIR} scp -v CommandLine/wb_command caret@myelin1:${DIST_DIR} scp -v ${SRC_DIR}/CommandLine/wb_shortcuts caret@myelin1:${DIST_DIR} +scp -v ${SRC_DIR}/CommandLine/bashcomplete_wb_command caret@myelin1:${DIST_DIR} echo "SCRIPT COMPLETED SUCCESSFULLY" diff -Nru connectome-workbench-1.2.3+git3-g7b83782/build_scripts/mac64_aux.sh connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/mac64_aux.sh --- connectome-workbench-1.2.3+git3-g7b83782/build_scripts/mac64_aux.sh 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/mac64_aux.sh 2016-10-19 23:35:12.000000000 +0000 @@ -105,6 +105,7 @@ scp -rv Desktop/wb_view.app caret@myelin1:${DIST_DIR} scp -rv CommandLine/wb_command.app caret@myelin1:${DIST_DIR} scp -v ${SRC_DIR}/CommandLine/wb_shortcuts caret@myelin1:/mainpool/storage/distribution/caret7_distribution/workbench/bin_macosx64 +scp -v ${SRC_DIR}/CommandLine/bashcomplete_wb_command caret@myelin1:${DIST_DIR} echo "SCRIPT COMPLETED SUCCESSFULLY" diff -Nru connectome-workbench-1.2.3+git3-g7b83782/build_scripts/windows32.bat connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/windows32.bat --- connectome-workbench-1.2.3+git3-g7b83782/build_scripts/windows32.bat 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/windows32.bat 2016-10-19 23:35:12.000000000 +0000 @@ -32,4 +32,6 @@ echo "Copying Files" c:\cygwin\bin\scp build/Desktop/wb_view.exe %DIST_DIR% c:\cygwin\bin\scp build/CommandLine/wb_command.exe %DIST_DIR% +c:\cygwin\bin\scp src/CommandLine/wb_shortcuts %DIST_DIR% +c:\cygwin\bin\scp src/CommandLine/bashcomplete_wb_command %DIST_DIR% echo "Finished Copying Files" diff -Nru connectome-workbench-1.2.3+git3-g7b83782/build_scripts/windows64.bat connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/windows64.bat --- connectome-workbench-1.2.3+git3-g7b83782/build_scripts/windows64.bat 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/build_scripts/windows64.bat 2016-10-19 23:35:12.000000000 +0000 @@ -32,4 +32,6 @@ echo "Copying Files" c:\cygwin\bin\scp build/Desktop/wb_view.exe %DIST_DIR% c:\cygwin\bin\scp build/CommandLine/wb_command.exe %DIST_DIR% +c:\cygwin\bin\scp src/CommandLine/wb_shortcuts %DIST_DIR% +c:\cygwin\bin\scp src/CommandLine/bashcomplete_wb_command %DIST_DIR% echo "Finished Copying Files" diff -Nru connectome-workbench-1.2.3+git3-g7b83782/debian/changelog connectome-workbench-1.2.3+git41-gc4c6c90/debian/changelog --- connectome-workbench-1.2.3+git3-g7b83782/debian/changelog 2016-12-01 01:00:52.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/debian/changelog 2017-08-08 04:00:21.000000000 +0000 @@ -1,3 +1,20 @@ +connectome-workbench (1.2.3+git41-gc4c6c90-2) unstable; urgency=medium + + * Upload of the snapshot from experimental to unstable + * d/p/changeset_cf1faad575229c6519aee2b773f3e50b3d89e17e.diff + to resolve FTBFS with gcc 7 (Closes: #853354) + + -- Yaroslav Halchenko Tue, 08 Aug 2017 00:00:21 -0400 + +connectome-workbench (1.2.3+git41-gc4c6c90-1) experimental; urgency=medium + + * Upstream "experimental" snapshot in attempt to resolve FTBFS on mips, + mipsel due to heavy memory resource demand -- some files were moved + around and possibly split. + * debian/patches -- dropped all (all adopted upstream) + + -- Yaroslav Halchenko Wed, 19 Oct 2016 19:32:58 -0400 + connectome-workbench (1.2.3+git3-g7b83782-1) unstable; urgency=medium * New upstream snapshot from v1.2.3-3-g7b83782 diff -Nru connectome-workbench-1.2.3+git3-g7b83782/debian/copyright connectome-workbench-1.2.3+git41-gc4c6c90/debian/copyright --- connectome-workbench-1.2.3+git3-g7b83782/debian/copyright 2016-12-01 01:00:52.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/debian/copyright 2017-08-08 04:00:21.000000000 +0000 @@ -6,10 +6,14 @@ Copyright: 2014-2016 Washington University School of Medicine License: GPL-2+ -Files: src/Files/SurfaceResamplingHelper.cxx src/Cifti/examples/* src/CommandLine/wb_shortcuts +Files: src/Files/SurfaceResamplingHelper.cxx src/Cifti/examples/* src/CommandLine/wb_shortcuts src/CommandLine/wb_command_completion Copyright: 2014-2015 Washington University School of Medicine License: Expat +Files: src/kloewe/* +Copyright: 2012-2016 Kristian Loewe, Christian Borgelt +License: Expat + Files: src/Quazip/* Copyright: 2005-2012 Sergey A. Tachenov 1998-2010 Gilles Vollant diff -Nru connectome-workbench-1.2.3+git3-g7b83782/debian/patches/changeset_bf-build.diff connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/changeset_bf-build.diff --- connectome-workbench-1.2.3+git3-g7b83782/debian/patches/changeset_bf-build.diff 2016-12-01 01:00:52.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/changeset_bf-build.diff 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -From: Yaroslav Halchenko -Subject: BF: return NULL (not false) when promised to return VolumeFile* - ---- a/src/Files/ImageFile.cxx -+++ b/src/Files/ImageFile.cxx -@@ -1420,7 +1420,7 @@ ImageFile::convertToVolumeFile(const CON - if ((pixelNormalVector[2] < tinyValue) - && (pixelNormalVector[2] > -tinyValue)) { - errorMessageOut = "Control points need to be in a triangular shape; not a line"; -- return false; -+ return NULL; - } - - if (pixelNormalVector[2] < 0.0) { diff -Nru connectome-workbench-1.2.3+git3-g7b83782/debian/patches/changeset_cf1faad575229c6519aee2b773f3e50b3d89e17e.diff connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/changeset_cf1faad575229c6519aee2b773f3e50b3d89e17e.diff --- connectome-workbench-1.2.3+git3-g7b83782/debian/patches/changeset_cf1faad575229c6519aee2b773f3e50b3d89e17e.diff 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/changeset_cf1faad575229c6519aee2b773f3e50b3d89e17e.diff 2017-08-08 04:00:21.000000000 +0000 @@ -0,0 +1,19 @@ +From: Tim Coalson +Subject: don't try to split gcc version into components since we don't need it - it can report only one component, breaking the build script + + manually applied to resolve the conflict + +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -154,10 +154,7 @@ IF (NOT MSVC) + if (CMAKE_COMPILER_IS_GNUCC) + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion + OUTPUT_VARIABLE GCC_VERSION) +- string(REGEX MATCHALL "[0-9]+" GCC_VERSION_COMPONENTS ${GCC_VERSION}) +- list(GET GCC_VERSION_COMPONENTS 0 GCC_MAJOR) +- list(GET GCC_VERSION_COMPONENTS 1 GCC_MINOR) +- message("gcc major minor version numbers are: " ${GCC_MAJOR},${GCC_MINOR}) ++ message("gcc version is: " ${GCC_VERSION}) + if(${GCC_VERSION} VERSION_LESS "4.2") + #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -W -Wall" CACHE STRING "c++ compiler specific options") + ADD_DEFINITIONS(-W -Wall) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/debian/patches/deb_dynamic_GLU connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/deb_dynamic_GLU --- connectome-workbench-1.2.3+git3-g7b83782/debian/patches/deb_dynamic_GLU 2016-12-01 01:00:52.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/deb_dynamic_GLU 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -394,13 +394,13 @@ IF (EXISTS $ENV{OSMESA_DIR}) - IF (EXISTS $ENV{OSMESA_DIR}/include/GL/osmesa.h) - MESSAGE("Have Mesa Include Directory") - FIND_LIBRARY(OSMESA_LIBRARY_FOUND -- NAMES libOSMesa.a libOSMesa.so OSMesa.lib OSMesa.dll -+ NAMES libOSMesa.so OSMesa.lib OSMesa.dll libOSMesa.a - PATHS $ENV{OSMESA_DIR}/lib) - FIND_LIBRARY(OSMESA_GL_LIBRARY_FOUND -- NAMES libGL.a libGL.so -+ NAMES libGL.so libGL.a - PATHS $ENV{OSMESA_DIR}/lib) - FIND_LIBRARY(OSMESA_GLU_LIBRARY_FOUND -- NAMES libGLU.a libGLU.so -+ NAMES libGLU.so libGLU.a - PATHS $ENV{OSMESA_DIR}/lib) - MESSAGE("OSMesa lib: " ${OSMESA_LIBRARY}) - IF (EXISTS ${OSMESA_LIBRARY_FOUND} AND EXISTS ${OSMESA_GL_LIBRARY_FOUND} AND EXISTS ${OSMESA_GLU_LIBRARY_FOUND}) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/debian/patches/series connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/series --- connectome-workbench-1.2.3+git3-g7b83782/debian/patches/series 2016-12-01 01:00:52.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/series 2017-08-08 04:00:21.000000000 +0000 @@ -1,3 +1 @@ -deb_dynamic_GLU -up_debian_copyright -changeset_bf-build.diff +changeset_cf1faad575229c6519aee2b773f3e50b3d89e17e.diff diff -Nru connectome-workbench-1.2.3+git3-g7b83782/debian/patches/up_debian_copyright connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/up_debian_copyright --- connectome-workbench-1.2.3+git3-g7b83782/debian/patches/up_debian_copyright 2016-12-01 01:00:52.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/debian/patches/up_debian_copyright 1970-01-01 00:00:00.000000000 +0000 @@ -1,153 +0,0 @@ ---- a/src/debian/copyright -+++ b/src/debian/copyright -@@ -3,7 +3,7 @@ Upstream-Name: Connectome Workbench - Source: http://www.humanconnectome.org/software/get-connectome-workbench.html - - Files: * --Copyright: 2014-2015 Washington University School of Medicine -+Copyright: 2014-2016 Washington University School of Medicine - License: GPL-2+ - - Files: src/Files/SurfaceResamplingHelper.cxx src/Cifti/examples/* src/CommandLine/wb_shortcuts -@@ -51,6 +51,11 @@ Files: src/Resources/FtglFonts/Vera*.ttf - Copyright: 2003 Bitstream, Inc. - License: Bitstream-Vera - -+Files: src/Resources/Fonts/LinuxLibertine/*ttf -+Copyright: 2003-2009 Philipp H. Poll -+License: GPL-2+ with Font exception and OFL-1.1 -+ -+ - License: GPL-2+ - This program is free software; you can redistribute it - and/or modify it under the terms of the GNU General Public -@@ -293,3 +298,129 @@ License: Qt-commercial - conditions see http://qt.digia.com/licensing. For further information - use the contact form at http://qt.digia.com/contact-us. - -+ -+License: GPL-2+ with Font exception -+ The linux-libertine fonts are dual-licensed under the GNU General Public -+ License (GPL) with font exception, and the SIL Open Font License (OFL). -+ . -+ 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; either version 2 of the License, or (at your option) -+ any later version. -+ . -+ 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, write to the Free Software Foundation, Inc., 51 -+ Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -+ . -+ As a special exception, if you create a document which uses this font, and -+ embed this font or unaltered portions of this font into the document, this -+ font does not by itself cause the resulting document to be covered by the -+ GNU General Public License. This exception does not however invalidate any -+ other reasons why the document might be covered by the GNU General Public -+ License. If you modify this font, you may extend this exception to your -+ version of the font, but you are not obligated to do so. If you do not wish -+ to do so, delete this exception statement from your version. -+ . -+ On Debian systems, the complete text of the GNU General Public License can -+ be found in /usr/share/common-licenses/GPL-2 file. -+ -+License: OFL-1.1 -+ This Font Software is Copyright (c) 2003-2006, Philipp H. Poll -+ (http://linuxlibertine.sf.net/). All Rights Reserved. -+ . -+ "Linux Libertine" is a Reserved Font Name for this Font Software. -+ . -+ This Font Software is licensed under the SIL Open Font License, Version -+ 1.0. No modification of the license is permitted, only verbatim copy is -+ allowed. This license is copied below, and is also available with a FAQ -+ at: http://scripts.sil.org/OFL -+ . -+ ----------------------------------------------------------- -+ SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005 -+ ----------------------------------------------------------- -+ . -+ PREAMBLE -+ The goals of the Open Font License (OFL) are to stimulate worldwide -+ development of cooperative font projects, to support the font creation -+ efforts of academic and linguistic communities, and to provide an open -+ framework in which fonts may be shared and improved in partnership with -+ others. -+ . -+ The OFL allows the licensed fonts to be used, studied, modified and -+ redistributed freely as long as they are not sold by themselves. The fonts, -+ including any derivative works, can be bundled, embedded, redistributed and -+ sold with any software provided that the font names of derivative works are -+ changed. The fonts and derivatives, however, cannot be released under any -+ other type of license. -+ . -+ DEFINITIONS -+ "Font Software" refers to any and all of the following: -+ - font files -+ - data files -+ - source code -+ - build scripts -+ - documentation -+ . -+ "Reserved Font Name" refers to the Font Software name as seen by users and -+ any other names as specified after the copyright statement. -+ . -+ "Standard Version" refers to the collection of Font Software components as -+ distributed by the Copyright Holder. -+ . -+ "Modified Version" refers to any derivative font software made by adding -+ to, deleting, or substituting -- in part or in whole -- any of the -+ components of the Standard Version, by changing formats or by porting the -+ Font Software to a new environment. -+ . -+ "Author" refers to any designer, engineer, programmer, technical writer or -+ other person who contributed to the Font Software. -+ . -+ PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to -+ any person obtaining a copy of the Font Software, to use, study, copy, -+ merge, embed, modify, redistribute, and sell modified and unmodified -+ copies of the Font Software, subject to the following conditions: -+ . -+ 1) Neither the Font Software nor any of its individual components, in -+ Standard or Modified Versions, may be sold by itself. -+ . -+ 2) Standard or Modified Versions of the Font Software may be bundled, -+ redistributed and sold with any software, provided that each copy contains -+ the above copyright notice and this license. These can be included either -+ as stand-alone text files, human-readable headers or in the appropriate -+ machine-readable metadata fields within text or binary files as long as -+ those fields can be easily viewed by the user. -+ . -+ 3) No Modified Version of the Font Software may use the Reserved Font -+ Name(s), in part or in whole, unless explicit written permission is granted -+ by the Copyright Holder. This restriction applies to all references stored -+ in the Font Software, such as the font menu name and other font description -+ fields, which are used to differentiate the font from others. -+ . -+ 4) The name(s) of the Copyright Holder or the Author(s) of the Font -+ Software shall not be used to promote, endorse or advertise any Modified -+ Version, except to acknowledge the contribution(s) of the Copyright Holder -+ and the Author(s) or with their explicit written permission. -+ . -+ 5) The Font Software, modified or unmodified, in part or in whole, must be -+ distributed using this license, and may not be distributed under any other -+ license. -+ . -+ TERMINATION -+ This license becomes null and void if any of the above conditions are not -+ met. -+ . -+ DISCLAIMER -+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF -+ COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -+ OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS -+ IN THE FONT SOFTWARE. diff -Nru connectome-workbench-1.2.3+git3-g7b83782/README connectome-workbench-1.2.3+git41-gc4c6c90/README --- connectome-workbench-1.2.3+git3-g7b83782/README 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/README 2016-10-19 23:35:12.000000000 +0000 @@ -8,15 +8,11 @@ mkdir build cd build -cmake ../src -#OR -cmake-gui ../src -make [-j cores] +cmake ../workbench/src -D CMAKE_BUILD_TYPE=Release +make For other OSes, see http://www.cmake.org/cmake/help/runningcmake.html -You may want to set CMAKE_BUILD_TYPE to Release or Debug before building, as the default build behavior may be non-optimized and without debug symbols. - This produces 3 executables, 2 of which are useful to the end user (Desktop/wb_view, CommandLine/wb_command), and one for running internal tests (Tests/test_driver). To run the (few) tests available: @@ -25,22 +21,27 @@ #OR make test -To install wb_view and wb_command with the prefix configured in CMAKE_INSTALL_PREFIX: +To install wb_view, wb_command, wb_shortcuts, and the bash completion script to the default locations: make install It should be noted that wb_import, provided in the HCP binary releases of Connectome Workbench, is actually part of caret5 (http://brainvis.wustl.edu/wiki/index.php/Caret:Download). -Connectome Workbench itself is licensed under GPLv2 or later, copyright 2014-2015 Washington University School of Medicine, see LICENSE file +Connectome Workbench itself is licensed under GPLv2 or later, copyright 2014-2016 Washington University School of Medicine, see LICENSE file Some source files are licensed under an MIT license (Expat), for easier code reuse in non-GPL projects: Files/SurfaceResamplingHelper.cxx Cifti/examples/* CommandLine/wb_shortcuts +CommandLine/wb_command_completion Copyright (C) 2014-2016 Washington University School of Medicine Some included code/files are from third party sources, with the following licenses: +kloewe/*: +Copyright (c) 2012-2016 Kristian Loewe, Christian Borgelt +licensed under MIT (Expat), see kloewe/dot/LICENSE and kloewe/cpuinfo/LICENSE + Quazip/*: QuaZIP 0.6, http://quazip.sourceforge.net/ Copyright (C) 2005-2012 Sergey A. Tachenov diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiCorrelation.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiCorrelation.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiCorrelation.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiCorrelation.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -30,6 +30,7 @@ #include "CaretOMP.h" #include "FileInformation.h" #include "CaretPointer.h" +#include "dot_wrapper.h" #include #include #include @@ -525,12 +526,8 @@ } else { if (m_weightedMode) { - int numWeights = (int)m_weightIndexes.size(); - double accum = 0.0; - for (int i = 0; i < numWeights; ++i)//because we compacted the data in the row to not include any zero weights - { - accum += row1[i] * row2[i];//these have already had the weighted row means subtracted out, and weights applied - } + int numWeights = (int)m_weightIndexes.size();//because we compacted the data in the row to not include any zero weights + double accum = sddot(row1, row2, numWeights);//these have already had the weighted row means subtracted out, and weights applied if (m_covariance) { if (m_binaryWeights) @@ -543,11 +540,7 @@ r = accum / (rrs1 * rrs2);//as do these } } else { - double accum = 0.0; - for (int i = 0; i < m_numCols; ++i) - { - accum += row1[i] * row2[i];//these have already had the row means subtracted out - } + double accum = sddot(row1, row2, m_numCols);//these have already had the row means subtracted out if (m_covariance) { r = accum / m_numCols; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiCorrelationGradient.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiCorrelationGradient.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiCorrelationGradient.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiCorrelationGradient.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -31,6 +31,7 @@ #include "SurfaceFile.h" #include "Vector3D.h" #include "VolumeFile.h" +#include "dot_wrapper.h" #include using namespace caret; @@ -894,11 +895,7 @@ { r = 1.0;//short circuit for same row } else { - double accum = 0.0; - for (int i = 0; i < m_numCols; ++i) - { - accum += row1[i] * row2[i];//these have already had the row means subtracted out - } + double accum = sddot(row1, row2, m_numCols);//these have already had the row means subtracted out if (m_covariance) { r = accum / m_numCols; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiCrossCorrelation.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiCrossCorrelation.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiCrossCorrelation.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiCrossCorrelation.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -25,6 +25,7 @@ #include "CaretLogger.h" #include "CaretOMP.h" #include "CiftiFile.h" +#include "dot_wrapper.h" #include "FileInformation.h" #include @@ -61,7 +62,7 @@ memLimitOpt->addDoubleParameter(1, "limit-GB", "memory limit in gigabytes"); ret->setHelpText( - AString("Correlates every rown in with every row in . ") + + AString("Correlates every row in with every row in . ") + "The mapping along columns in becomes the mapping along rows in the output.\n\n" + "When using the -fisher-z option, the output is NOT a Z-score, it is artanh(r), to do further math on this output, consider using -cifti-math.\n\n" + "Restricting the memory usage will make it calculate the output in chunks, by reading through multiple times." @@ -246,19 +247,11 @@ double r; if (m_weightedMode) { - int numWeights = (int)m_weightIndexes.size(); - double accum = 0.0; - for (int i = 0; i < numWeights; ++i)//because we compacted the data in the row to not include any zero weights - { - accum += row1[i] * row2[i];//these have already had the weighted row means subtracted out, and weights applied - } + int numWeights = (int)m_weightIndexes.size();//because we compacted the data in the row to not include any zero weights + double accum = sddot(row1, row2, numWeights);//these have already had the weighted row means subtracted out, and weights applied r = accum / (rrs1 * rrs2);//as do these } else { - double accum = 0.0; - for (int i = 0; i < m_numCols; ++i) - { - accum += row1[i] * row2[i];//these have already had the row means subtracted out - } + double accum = sddot(row1, row2, m_numCols);//these have already had the row means subtracted out r = accum / (rrs1 * rrs2); } if (fisherZ) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiLabelToBorder.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiLabelToBorder.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiLabelToBorder.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiLabelToBorder.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,119 @@ +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include "AlgorithmCiftiLabelToBorder.h" +#include "AlgorithmException.h" + +#include "AlgorithmCiftiSeparate.h" +#include "AlgorithmLabelToBorder.h" +#include "CaretLogger.h" +#include "BorderFile.h" +#include "CiftiFile.h" +#include "LabelFile.h" +#include "SurfaceFile.h" + +using namespace caret; +using namespace std; + +AString AlgorithmCiftiLabelToBorder::getCommandSwitch() +{ + return "-cifti-label-to-border"; +} + +AString AlgorithmCiftiLabelToBorder::getShortDescription() +{ + return "DRAW BORDERS AROUND CIFTI LABELS"; +} + +OperationParameters* AlgorithmCiftiLabelToBorder::getParameters() +{ + OperationParameters* ret = new OperationParameters(); + + ret->addCiftiParameter(1, "cifti-in", "the input cifti dlabel file"); + + OptionalParameter* placeOpt = ret->createOptionalParameter(2, "-placement", "set how far along the edge border points are drawn"); + placeOpt->addDoubleParameter(1, "fraction", "fraction along edge from inside vertex (default 0.33)"); + + OptionalParameter* columnOpt = ret->createOptionalParameter(3, "-column", "select a single column"); + columnOpt->addStringParameter(1, "column", "the column number or name"); + + ParameterComponent* borderOpt = ret->createRepeatableParameter(4, "-border", "specify output file for a surface structure"); + borderOpt->addSurfaceParameter(1, "surface", "the surface to use for neighbor and structure information"); + borderOpt->addBorderOutputParameter(2, "border-out", "the output border file"); + + ret->setHelpText( + AString("For each surface, takes the labels on the matching structure and draws borders around the labels. ") + + "Use -column to only draw borders around one label map." + ); + return ret; +} + +void AlgorithmCiftiLabelToBorder::useParameters(OperationParameters* myParams, ProgressObject* /*myProgObj*/) +{ + CiftiFile* myCifti = myParams->getCifti(1); + float placement = 0.33f; + OptionalParameter* placeOpt = myParams->getOptionalParameter(2); + if (placeOpt->m_present) + { + placement = (float)placeOpt->getDouble(1); + } + int64_t column = -1; + OptionalParameter* columnOpt = myParams->getOptionalParameter(3); + if (columnOpt->m_present) + { + //row is first dimension, 0D cifti won't load, so don't need a test + column = myCifti->getCiftiXML().getMap(CiftiXML::ALONG_ROW)->getIndexFromNumberOrName(columnOpt->getString(2)); + if (column < 0) + { + throw AlgorithmException("invalid column specified"); + } + } + const vector& borderOpts = *(myParams->getRepeatableParameterInstances(4)); + if (borderOpts.empty()) CaretLogWarning("no output requested from -cifti-label-to-border, command will do nothing"); + for (int i = 0; i < (int)borderOpts.size(); ++i) + { + ParameterComponent& thisBorderOpt = *(borderOpts[i]); + AlgorithmCiftiLabelToBorder(NULL, myCifti, thisBorderOpt.getSurface(1), thisBorderOpt.getOutputBorder(2), placement, column); + } +} + +AlgorithmCiftiLabelToBorder::AlgorithmCiftiLabelToBorder(ProgressObject* myProgObj, const CiftiFile* myCifti, const SurfaceFile* mySurf, + BorderFile* borderOut, const float& placement, const int& column) : AbstractAlgorithm(myProgObj) +{ + LevelProgress myProgress(myProgObj); + const CiftiXML& myXML = myCifti->getCiftiXML(); + if (myXML.getNumberOfDimensions() != 2) throw AlgorithmException("input cifti file should have 2 dimensions, has " + AString::number(myXML.getNumberOfDimensions())); + if (myXML.getMappingType(CiftiXML::ALONG_COLUMN) != CiftiMappingType::BRAIN_MODELS) throw AlgorithmException("input cifti file does not have brain models mapping along column"); + if (myXML.getMappingType(CiftiXML::ALONG_ROW) != CiftiMappingType::LABELS) throw AlgorithmException("input cifti file does not have labels mapping along row"); + LabelFile tempLabel; + AlgorithmCiftiSeparate(NULL, myCifti, CiftiXML::ALONG_COLUMN, mySurf->getStructure(), &tempLabel);//NOTE: bad surface structure errors are printed from this algorithm + AlgorithmLabelToBorder(NULL, mySurf, &tempLabel, borderOut, placement, column); +} + +float AlgorithmCiftiLabelToBorder::getAlgorithmInternalWeight() +{ + return 1.0f;//override this if needed, if the progress bar isn't smooth +} + +float AlgorithmCiftiLabelToBorder::getSubAlgorithmWeight() +{ + //return AlgorithmInsertNameHere::getAlgorithmWeight();//if you use a subalgorithm + return 0.0f; +} diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiLabelToBorder.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiLabelToBorder.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiLabelToBorder.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiLabelToBorder.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,47 @@ +#ifndef __ALGORITHM_CIFTI_LABEL_TO_BORDER_H__ +#define __ALGORITHM_CIFTI_LABEL_TO_BORDER_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include "AbstractAlgorithm.h" + +namespace caret { + + class AlgorithmCiftiLabelToBorder : public AbstractAlgorithm + { + AlgorithmCiftiLabelToBorder(); + protected: + static float getSubAlgorithmWeight(); + static float getAlgorithmInternalWeight(); + public: + AlgorithmCiftiLabelToBorder(ProgressObject* myProgObj, const CiftiFile* myCifti, const SurfaceFile* mySurf, + BorderFile* borderOut, const float& placement = 0.33f, const int& column = -1); + static OperationParameters* getParameters(); + static void useParameters(OperationParameters* myParams, ProgressObject* myProgObj); + static AString getCommandSwitch(); + static AString getShortDescription(); + }; + + typedef TemplateAutoOperation AutoAlgorithmCiftiLabelToBorder; + +} + +#endif //__ALGORITHM_CIFTI_LABEL_TO_BORDER_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiMergeDense.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiMergeDense.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiMergeDense.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiMergeDense.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -214,35 +214,43 @@ } case CIFTI_MODEL_TYPE_VOXELS: { - vector inMap, outMap; - const CiftiXMLOld& otherXML = ciftiList[sourceCifti[i]]->getCiftiXMLOld(); - outXML.getVolumeStructureMap(myDir, outMap, myInfo.m_structure); - otherXML.getVolumeStructureMap(myDir, inMap, myInfo.m_structure); - CaretAssert(inMap.size() == outMap.size()); - vector rowscratch(outXML.getNumberOfColumns()), otherscratch(otherXML.getNumberOfColumns()); - if (myDir == CiftiXMLOld::ALONG_ROW) - { - for (int j = 0; j < outXML.getNumberOfRows(); ++j) + if (isLabel) + {//cropped volume should be okay on memory for label files - let replace structure handle the label table + VolumeFile tempFile; + int64_t junk[3]; + AlgorithmCiftiSeparate(NULL, ciftiList[sourceCifti[i]], myDir, myInfo.m_structure, &tempFile, junk, NULL, true); + AlgorithmCiftiReplaceStructure(NULL, myCiftiOut, myDir, myInfo.m_structure, &tempFile, true); + } else { + vector inMap, outMap; + const CiftiXMLOld& otherXML = ciftiList[sourceCifti[i]]->getCiftiXMLOld(); + outXML.getVolumeStructureMap(myDir, outMap, myInfo.m_structure); + otherXML.getVolumeStructureMap(myDir, inMap, myInfo.m_structure); + CaretAssert(inMap.size() == outMap.size()); + vector rowscratch(outXML.getNumberOfColumns()), otherscratch(otherXML.getNumberOfColumns()); + if (myDir == CiftiXMLOld::ALONG_ROW) { - myCiftiOut->getRow(rowscratch.data(), j, true); - ciftiList[sourceCifti[i]]->getRow(otherscratch.data(), j); + for (int j = 0; j < outXML.getNumberOfRows(); ++j) + { + myCiftiOut->getRow(rowscratch.data(), j, true); + ciftiList[sourceCifti[i]]->getRow(otherscratch.data(), j); + for (int k = 0; k < (int)inMap.size(); ++k) + { + CaretAssert(inMap[k].m_ijk[0] == outMap[k].m_ijk[0]); + CaretAssert(inMap[k].m_ijk[1] == outMap[k].m_ijk[1]); + CaretAssert(inMap[k].m_ijk[2] == outMap[k].m_ijk[2]); + rowscratch[outMap[k].m_ciftiIndex] = otherscratch[inMap[k].m_ciftiIndex]; + } + myCiftiOut->setRow(rowscratch.data(), j); + } + } else { for (int k = 0; k < (int)inMap.size(); ++k) { CaretAssert(inMap[k].m_ijk[0] == outMap[k].m_ijk[0]); CaretAssert(inMap[k].m_ijk[1] == outMap[k].m_ijk[1]); CaretAssert(inMap[k].m_ijk[2] == outMap[k].m_ijk[2]); - rowscratch[outMap[k].m_ciftiIndex] = otherscratch[inMap[k].m_ciftiIndex]; + ciftiList[sourceCifti[i]]->getRow(otherscratch.data(), inMap[k].m_ciftiIndex); + myCiftiOut->setRow(otherscratch.data(), outMap[k].m_ciftiIndex); } - myCiftiOut->setRow(rowscratch.data(), j); - } - } else { - for (int k = 0; k < (int)inMap.size(); ++k) - { - CaretAssert(inMap[k].m_ijk[0] == outMap[k].m_ijk[0]); - CaretAssert(inMap[k].m_ijk[1] == outMap[k].m_ijk[1]); - CaretAssert(inMap[k].m_ijk[2] == outMap[k].m_ijk[2]); - ciftiList[sourceCifti[i]]->getRow(otherscratch.data(), inMap[k].m_ciftiIndex); - myCiftiOut->setRow(otherscratch.data(), outMap[k].m_ciftiIndex); } } break; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiParcelMappingToLabel.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiParcelMappingToLabel.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiParcelMappingToLabel.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiParcelMappingToLabel.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -52,7 +52,7 @@ ret->setHelpText( AString("This command will output a dlabel file, useful for doing the same parcellation to another dense file.\n\n") + - "For ptseries, pscalar, plabel, pconn, and pdconn, using ROW for will work." + "For ptseries, pscalar, plabel, pconn, and pdconn, using COLUMN for will work." ); return ret; } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiResample.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiResample.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiResample.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiResample.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -60,11 +60,11 @@ ret->addCiftiParameter(1, "cifti-in", "the cifti file to resample"); - ret->addStringParameter(2, "direction", "the direction of the input that should be resampled"); + ret->addStringParameter(2, "direction", "the direction of the input that should be resampled, ROW or COLUMN"); ret->addCiftiParameter(3, "cifti-template", "a cifti file containing the cifti space to resample to"); - ret->addStringParameter(4, "template-direction", "the direction of the template to use as the resampling space"); + ret->addStringParameter(4, "template-direction", "the direction of the template to use as the resampling space, ROW or COLUMN"); ret->addStringParameter(5, "surface-method", "specify a surface resampling method"); @@ -134,6 +134,7 @@ AString("Resample cifti data to a different brainordinate space. Use COLUMN for the direction to resample dscalar, dlabel, or dtseries. ") + "Resampling both dimensions of a dconn requires running this command twice, once with COLUMN and once with ROW. " + "If you are resampling a dconn and your machine has a large amount of memory, you might consider using -cifti-resample-dconn-memory to avoid writing and rereading an intermediate file. " + + "The argument should usually be COLUMN, as dtseries, dscalar, and dlabel all have brainordinates on that direction. " + "If spheres are not specified for a surface structure which exists in the cifti files, its data is copied without resampling or dilation. " + "Dilation is done with the 'nearest' method, and is done on for surface data. " + "Volume components are padded before dilation so that dilation doesn't run into the edge of the component bounding box. " + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiSeparate.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiSeparate.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmCiftiSeparate.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmCiftiSeparate.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -207,7 +207,7 @@ if (myXML.getMappingType(myDir) != CiftiMappingType::BRAIN_MODELS) throw AlgorithmException("specified direction does not contain brain models"); if (myXML.getMappingType(1 - myDir) == CiftiMappingType::LABELS) CaretLogWarning("creating a metric file from cifti label data"); const CiftiBrainModelsMap& myBrainModelsMap = myXML.getBrainModelsMap(myDir); - if (!myBrainModelsMap.hasSurfaceData(myStruct)) throw AlgorithmException("specified file and direction does not contain the requested surface structure"); + if (!myBrainModelsMap.hasSurfaceData(myStruct)) throw AlgorithmException("specified file and direction does not contain the requested surface structure '" + StructureEnum::toName(myStruct) + "'"); vector myMap = myBrainModelsMap.getSurfaceMap(myStruct); int rowSize = ciftiIn->getNumberOfColumns(), colSize = ciftiIn->getNumberOfRows(); if (myDir == CiftiXML::ALONG_COLUMN) @@ -299,7 +299,7 @@ if (myXML.getMappingType(1 - myDir) != CiftiMappingType::LABELS) throw AlgorithmException("label separate requested on non-label cifti"); const CiftiBrainModelsMap& myBrainModelsMap = myXML.getBrainModelsMap(myDir); const CiftiLabelsMap& myLabelsMap = myXML.getLabelsMap(1 - myDir); - if (!myBrainModelsMap.hasSurfaceData(myStruct)) throw AlgorithmException("specified file and direction does not contain the requested surface structure"); + if (!myBrainModelsMap.hasSurfaceData(myStruct)) throw AlgorithmException("specified file and direction does not contain the requested surface structure '" + StructureEnum::toName(myStruct) + "'"); vector myMap = myBrainModelsMap.getSurfaceMap(myStruct); int64_t rowSize = ciftiIn->getNumberOfColumns(), colSize = ciftiIn->getNumberOfRows(); if (myDir == CiftiXML::ALONG_COLUMN) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmVolumeLabelProbability.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmVolumeLabelProbability.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmVolumeLabelProbability.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmVolumeLabelProbability.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,152 @@ +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include "AlgorithmVolumeLabelProbability.h" +#include "AlgorithmException.h" + +#include "GiftiLabelTable.h" +#include "VolumeFile.h" + +#include +#include +#include + +using namespace caret; +using namespace std; + +AString AlgorithmVolumeLabelProbability::getCommandSwitch() +{ + return "-volume-label-probability"; +} + +AString AlgorithmVolumeLabelProbability::getShortDescription() +{ + return "FIND FREQUENCY OF LABELS"; +} + +OperationParameters* AlgorithmVolumeLabelProbability::getParameters() +{ + OperationParameters* ret = new OperationParameters(); + + ret->addVolumeParameter(1, "label-maps", "volume label file containing individual label maps from many subjects"); + + ret->addVolumeOutputParameter(2, "probability-out", "the relative frequencies of each label at each voxel"); + + ret->createOptionalParameter(3, "-exclude-unlabeled", "don't make a probability map of the unlabeled key"); + + ret->setHelpText( + AString("This command outputs a set of soft ROIs, one for each label in the input, ") + + "where the value is how many of the input maps had that label at that voxel, divided by the number of input maps." + ); + return ret; +} + +void AlgorithmVolumeLabelProbability::useParameters(OperationParameters* myParams, ProgressObject* myProgObj) +{ + const VolumeFile* inputVol = myParams->getVolume(1); + VolumeFile* outputVol = myParams->getOutputVolume(2); + bool excludeUnlabeled = myParams->getOptionalParameter(3)->m_present; + AlgorithmVolumeLabelProbability(myProgObj, inputVol, outputVol, excludeUnlabeled); +} + +AlgorithmVolumeLabelProbability::AlgorithmVolumeLabelProbability(ProgressObject* myProgObj, const VolumeFile* inputVol, VolumeFile* outputVol, const bool& excludeUnlabeled) : AbstractAlgorithm(myProgObj) +{ + LevelProgress myProgress(myProgObj); + if (inputVol->getType() != SubvolumeAttributes::LABEL) throw AlgorithmException("input volume must be a label volume"); + if (inputVol->getNumberOfComponents() != 1) throw AlgorithmException("label volumes must not have multiple components per map"); + int numInMaps = inputVol->getNumberOfMaps(); + vector > outMapToKeyLookup(numInMaps);//we match labels by name, not by key - the lookup is this direction so we can compute one output frame at a time + map nameToOutMap;//yes, that involves a lot of rescanning memory, but it takes half the additional memory as one pass (because VolumeFile has internal memory) + for (int i = 0; i < numInMaps; ++i)//testing shows it doesn't take that much longer anyway, for smallish frame sizes at least + { + const GiftiLabelTable* thisTable = inputVol->getMapLabelTable(i); + set thisKeys = thisTable->getKeys(); + int32_t unlabeledKey = -1;//don't request it from the table if we aren't going to skip it, because requesting it can add it to the table + if (excludeUnlabeled) + { + unlabeledKey = thisTable->getUnassignedLabelKey(); + } + for (set::iterator iter = thisKeys.begin(); iter != thisKeys.end(); ++iter)//order by key value + { + if (excludeUnlabeled && *iter == unlabeledKey) continue;//skip to next key + const AString thisName = thisTable->getLabelName(*iter); + map::iterator search = nameToOutMap.find(thisName); + int outMap = -1; + if (search == nameToOutMap.end()) + { + outMap = nameToOutMap.size();//sequential integers starting from 0 + nameToOutMap[thisName] = outMap; + } else { + outMap = search->second; + } + outMapToKeyLookup[i][outMap] = *iter; + } + } + const vector inDims = inputVol->getDimensions(); + vector outDims = inDims; + outDims.resize(4); + int64_t numOutMaps = (int64_t)nameToOutMap.size(); + outDims[3] = numOutMaps; + outputVol->reinitialize(outDims, inputVol->getSform()); + for (map::iterator iter = nameToOutMap.begin(); iter != nameToOutMap.end(); ++iter) + { + outputVol->setMapName(iter->second, iter->first); + } + int64_t frameSize = inDims[0] * inDims[1] * inDims[2]; + for (int outMap = 0; outMap < numOutMaps; ++outMap) + { + vector scratchCount(frameSize, 0); + for (int inMap = 0; inMap < numInMaps; ++inMap) + { + map::iterator search = outMapToKeyLookup[inMap].find(outMap); + if (search == outMapToKeyLookup[inMap].end()) + { + continue;//this map doesn't contain a label name that matches, skip to next input map + } + int matchKey = search->second; + const float* inFrame = inputVol->getFrame(inMap); + for (int64_t i = 0; i < frameSize; ++i) + { + int thisKey = (int)floor(inFrame[i] + 0.5f); + if (thisKey == matchKey) + { + ++scratchCount[i]; + } + } + } + vector scratchFrameOut(frameSize); + for (int64_t i = 0; i < frameSize; ++i) + { + scratchFrameOut[i] = ((float)scratchCount[i]) / numInMaps; + } + outputVol->setFrame(scratchFrameOut.data(), outMap); + } +} + +float AlgorithmVolumeLabelProbability::getAlgorithmInternalWeight() +{ + return 1.0f;//override this if needed, if the progress bar isn't smooth +} + +float AlgorithmVolumeLabelProbability::getSubAlgorithmWeight() +{ + //return AlgorithmInsertNameHere::getAlgorithmWeight();//if you use a subalgorithm + return 0.0f; +} diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmVolumeLabelProbability.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmVolumeLabelProbability.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/AlgorithmVolumeLabelProbability.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/AlgorithmVolumeLabelProbability.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,46 @@ +#ifndef __ALGORITHM_VOLUME_LABEL_PROBABILITY_H__ +#define __ALGORITHM_VOLUME_LABEL_PROBABILITY_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include "AbstractAlgorithm.h" + +namespace caret { + + class AlgorithmVolumeLabelProbability : public AbstractAlgorithm + { + AlgorithmVolumeLabelProbability(); + protected: + static float getSubAlgorithmWeight(); + static float getAlgorithmInternalWeight(); + public: + AlgorithmVolumeLabelProbability(ProgressObject* myProgObj, const VolumeFile* inputVol, VolumeFile* outputVol, const bool& excludeUnlabeled = false); + static OperationParameters* getParameters(); + static void useParameters(OperationParameters* myParams, ProgressObject* myProgObj); + static AString getCommandSwitch(); + static AString getShortDescription(); + }; + + typedef TemplateAutoOperation AutoAlgorithmVolumeLabelProbability; + +} + +#endif //__ALGORITHM_VOLUME_LABEL_PROBABILITY_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Algorithms/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Algorithms/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -37,6 +37,7 @@ AlgorithmCiftiFindClusters.h AlgorithmCiftiGradient.h AlgorithmCiftiLabelAdjacency.h +AlgorithmCiftiLabelToBorder.h AlgorithmCiftiLabelToROI.h AlgorithmCiftiMergeDense.h AlgorithmCiftiMergeParcels.h @@ -114,6 +115,7 @@ AlgorithmVolumeFillHoles.h AlgorithmVolumeFindClusters.h AlgorithmVolumeGradient.h +AlgorithmVolumeLabelProbability.h AlgorithmVolumeLabelToROI.h AlgorithmVolumeLabelToSurfaceMapping.h AlgorithmVolumeParcelResampling.h @@ -149,6 +151,7 @@ AlgorithmCiftiFindClusters.cxx AlgorithmCiftiGradient.cxx AlgorithmCiftiLabelAdjacency.cxx +AlgorithmCiftiLabelToBorder.cxx AlgorithmCiftiLabelToROI.cxx AlgorithmCiftiMergeDense.cxx AlgorithmCiftiMergeParcels.cxx @@ -226,6 +229,7 @@ AlgorithmVolumeFillHoles.cxx AlgorithmVolumeFindClusters.cxx AlgorithmVolumeGradient.cxx +AlgorithmVolumeLabelProbability.cxx AlgorithmVolumeLabelToROI.cxx AlgorithmVolumeLabelToSurfaceMapping.cxx AlgorithmVolumeParcelResampling.cxx diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Annotations/AnnotationGroup.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Annotations/AnnotationGroup.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Annotations/AnnotationGroup.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Annotations/AnnotationGroup.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -1023,7 +1023,7 @@ * Selection status. */ bool -AnnotationGroup::isItemSelectedForEditingInWindow(const int32_t windowIndex) +AnnotationGroup::isItemSelectedForEditingInWindow(const int32_t /*windowIndex*/) { return false; } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/AnnotationManager.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/AnnotationManager.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/AnnotationManager.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/AnnotationManager.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -916,7 +916,7 @@ const std::vector tabIndices = displayedFilesEvent->getTabIndices(); - const DisplayPropertiesAnnotation* annProps = m_brain->getDisplayPropertiesAnnotation(); +// const DisplayPropertiesAnnotation* annProps = m_brain->getDisplayPropertiesAnnotation(); std::vector annotationFiles; m_brain->getAllAnnotationFilesIncludingSceneAnnotationFile(annotationFiles); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLFixedPipeline.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLFixedPipeline.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLFixedPipeline.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLFixedPipeline.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -72,6 +72,8 @@ #include "CiftiFiberOrientationFile.h" #include "CiftiFiberTrajectoryFile.h" #include "ClippingPlaneGroup.h" +#include "ControlPointFile.h" +#include "ControlPoint3D.h" #include "DeveloperFlagsEnum.h" #include "DisplayGroupEnum.h" #include "DisplayPropertiesAnnotation.h" @@ -107,6 +109,7 @@ #include "SelectionItemFocusSurface.h" #include "SelectionItemFocusVolume.h" #include "SelectionItemImage.h" +#include "SelectionItemImageControlPoint.h" #include "SelectionItemSurfaceNode.h" #include "SelectionItemSurfaceNodeIdentificationSymbol.h" #include "SelectionItemSurfaceTriangle.h" @@ -856,7 +859,7 @@ this->mode = mode; - drawBackgroundImage(viewportContent); +// drawBackgroundImage(viewportContent); if (this->browserTabContent != NULL) { m_clippingPlaneGroup = const_cast(this->browserTabContent->getClippingPlaneGroup()); @@ -934,6 +937,8 @@ } } + drawBackgroundImage(viewportContent); + glFlush(); this->checkForOpenGLError(model, "At end of drawModelInternal()"); @@ -6207,6 +6212,10 @@ return; } + const float backZ = -990.0; + const float middleZ = 0.0; + const float frontZ = 990.0; + DisplayPropertiesImages* dpi = m_brain->getDisplayPropertiesImages(); const int32_t tabIndex = btc->getTabNumber(); const DisplayGroupEnum::Enum displayGroup = dpi->getDisplayGroupForTab(tabIndex); @@ -6215,8 +6224,29 @@ ImageFile* imageFile = dpi->getSelectedImageFile(displayGroup, tabIndex); if (imageFile != NULL) { + float windowZ = 990.0; + const ImageDepthPositionEnum::Enum depthPos = dpi->getImagePosition(displayGroup, + tabIndex); + switch (depthPos) { + case ImageDepthPositionEnum::BACK: + windowZ = backZ; + break; + case ImageDepthPositionEnum::FRONT: + windowZ = frontZ; + break; + case ImageDepthPositionEnum::MIDDLE: + windowZ = middleZ; + break; + } + drawImage(vpContent, - imageFile); + imageFile, + windowZ, + frontZ, + dpi->getThresholdMinimum(displayGroup, tabIndex), + dpi->getThresholdMaximum(displayGroup, tabIndex), + dpi->getOpacity(displayGroup, tabIndex), + dpi->isControlPointsDisplayed(displayGroup, tabIndex)); } } } @@ -6228,17 +6258,33 @@ * The viewport dimensions. * @param image * The QImage that is drawn. + * @param windowZ + * Z-position for image. + * @param frontZ + * Z-position for front (used for control points) + * @param minimumThreshold + * Minimum threshold value. + * @param maximumThreshold + * Maximum threshold value. + * @param opacity + * Opacity. */ void BrainOpenGLFixedPipeline::drawImage(BrainOpenGLViewportContent* vpContent, - ImageFile* imageFile) + ImageFile* imageFile, + const float windowZ, + const float frontZ, + const float minimumThreshold, + const float maximumThreshold, + const float opacity, + const bool drawControlPointsFlag) { CaretAssert(vpContent); const int32_t originalImageWidth = imageFile->getWidth(); const int32_t originalImageHeight = imageFile->getHeight(); - const int32_t imageSize = originalImageWidth * originalImageHeight; - if (imageSize <= 0) { + const int32_t originalNumberOfPixels = originalImageWidth * originalImageHeight; + if (originalNumberOfPixels <= 0) { return; } @@ -6246,17 +6292,25 @@ vpContent->getModelViewport(viewport); SelectionItemImage* idImage = m_brain->getSelectionManager()->getImageIdentification(); + SelectionItemImageControlPoint* idControlPoint = m_brain->getSelectionManager()->getImageControlPointIdentification(); /* * Check for a 'selection' type mode */ - bool isSelect = false; + bool isSelectImage = false; + bool isSelectImageControlPoint = false; switch (this->mode) { case BrainOpenGLFixedPipeline::MODE_DRAWING: break; case BrainOpenGLFixedPipeline::MODE_IDENTIFICATION: if (idImage->isEnabledForSelection()) { - isSelect = true; + isSelectImage = true; + } + if (idControlPoint->isEnabledForSelection()) { + isSelectImageControlPoint = true; + } + if (isSelectImage + || isSelectImageControlPoint) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } else { @@ -6311,7 +6365,9 @@ dummyHeight); } - const int32_t correctNumberOfBytes = imageWidth * imageHeight * 4; + const int32_t numberOfPixels = imageWidth * imageHeight; + const int32_t bytesPerPixel = 4; + const int32_t correctNumberOfBytes = numberOfPixels * bytesPerPixel; if (static_cast(imageBytesRGBA.size()) != correctNumberOfBytes) { CaretLogSevere("Image size is incorrect. Number of bytes is " + QString::number(imageBytesRGBA.size()) @@ -6319,6 +6375,46 @@ + QString::number(correctNumberOfBytes)); } + const bool testThresholdFlag = ((minimumThreshold > 0.0) + || (maximumThreshold < 255.0)); + const bool testOpacityFlag = (opacity < 1.0); + + bool useBlendingFlag = false; + + if (testThresholdFlag + || testOpacityFlag) { + for (int32_t i = 0; i < numberOfPixels; i++) { + const int32_t i4 = i * 4; + CaretAssertVectorIndex(imageBytesRGBA, i4 + 3); + uint8_t pixelAlpha = 255; //imageBytesRGBA[i4 + 3]; + + if (testThresholdFlag) { + if ((imageBytesRGBA[i4] < minimumThreshold) + || (imageBytesRGBA[i4] > maximumThreshold) + || (imageBytesRGBA[i4+1] < minimumThreshold) + || (imageBytesRGBA[i4+1] > maximumThreshold) + || (imageBytesRGBA[i4+2] < minimumThreshold) + || (imageBytesRGBA[i4+2] > maximumThreshold)) { + pixelAlpha = 0; + } + } + if (testOpacityFlag) { + pixelAlpha = static_cast(pixelAlpha * opacity); + } + + if (pixelAlpha < 255) { + useBlendingFlag = true; + } + + imageBytesRGBA[i4 + 3] = pixelAlpha; + } + } + + if (isSelectImage + || isSelectImageControlPoint) { + useBlendingFlag = false; + } + /* * Center image in the window */ @@ -6349,28 +6445,72 @@ */ glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); - /* + GLboolean blendingEnabled = GL_FALSE; + glGetBooleanv(GL_BLEND, &blendingEnabled); + + if (useBlendingFlag) { + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + } + + /* * Set the image's Z coordinate where a depth percentage of 100.0 * is at the far clipping plane (away from viewer) and a percentage * of zero is at the near clipping plane (closest to viewer). * * Old way to set Z: const float imageZ = 10.0 - farClip; */ - const float imageZ = -imageFile->getWindowZ(); - glRasterPos3f(xPos, yPos, imageZ); //-500.0); // set Z so image behind surface + glRasterPos3f(xPos, yPos, windowZ); glDrawPixels(imageWidth, imageHeight, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid*)&imageBytesRGBA[0]); + if (blendingEnabled == GL_FALSE) { + glDisable(GL_BLEND); + } + glPopClientAttrib(); + ControlPointFile* controlPointFile = imageFile->getControlPointFile(); + if (drawControlPointsFlag) { + const int32_t numControlPoints = controlPointFile->getNumberOfControlPoints(); + if (numControlPoints > 0) { + const uint8_t red[4] = { 255, 0, 0, 255 }; + for (int32_t icp = 0; icp < numControlPoints; icp++) { + const ControlPoint3D* cp = controlPointFile->getControlPointAtIndex(icp); + const float pixelX = cp->getSourceX(); + const float pixelY = cp->getSourceY(); + + const float percentX = pixelX / originalImageWidth; + const float percentY = pixelY / originalImageHeight; + + const float x = xPos + (percentX * imageWidth); + const float y = yPos + (percentY * imageHeight); + + glPushMatrix(); + glTranslatef(x, y, frontZ); + + uint8_t rgba[4] = { red[0], red[1], red[2], red[3] }; + if (isSelectImageControlPoint) { + this->colorIdentification->addItem(rgba, + SelectionItemDataTypeEnum::IMAGE_CONTROL_POINT, + 0, // file index + icp); // index in file + rgba[3] = 255; + } + drawSphereWithDiameter(rgba, 10); + glPopMatrix(); + } + } + } + glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); - if (isSelect) { + if (isSelectImage) { const float mx = this->mouseX - viewport[0]; const float my = this->mouseY - viewport[1]; @@ -6392,6 +6532,38 @@ idImage->setImageFile(imageFile); idImage->setPixelI(pixelX); idImage->setPixelJ(pixelY); + + uint8_t pixelByteRGBA[4]; + if (imageFile->getImagePixelRGBA(ImageFile::IMAGE_DATA_ORIGIN_AT_BOTTOM, + pixelX, + pixelY, + pixelByteRGBA)) { + idImage->setPixelRGBA(pixelByteRGBA); + } + } + } + + if (isSelectImageControlPoint) { + int32_t fileIndex = -1; + int32_t controlPointIndex = -1; + float depth = -1.0; + this->getIndexFromColorSelection(SelectionItemDataTypeEnum::IMAGE_CONTROL_POINT, + this->mouseX, + this->mouseY, + fileIndex, + controlPointIndex, + depth); + if ((fileIndex >= 0) + && (controlPointIndex >= 0)) { + if (idControlPoint->isOtherScreenDepthCloserToViewer(depth)) { + ControlPoint3D* controlPoint = controlPointFile->getControlPointAtIndex(controlPointIndex); + idControlPoint->setBrain(m_brain); + idControlPoint->setImageFile(imageFile); + idControlPoint->setControlPointFile(controlPointFile); + idControlPoint->setControlPoint(controlPoint); + idControlPoint->setControlPointIndexInFile(controlPointIndex); + idControlPoint->setScreenDepth(depth); + } } } } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLFixedPipeline.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLFixedPipeline.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLFixedPipeline.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLFixedPipeline.h 2016-10-19 23:35:12.000000000 +0000 @@ -467,7 +467,13 @@ void drawBackgroundImage(BrainOpenGLViewportContent* vpContent); void drawImage(BrainOpenGLViewportContent* vpContent, - ImageFile* imageFile); + ImageFile* imageFile, + const float windowZ, + const float frontZ, + const float minimumThreshold, + const float maximumThreshold, + const float opacity, + const bool drawControlPointsFlag); void setProjectionModeData(const float screenDepth, const float xyz[3], diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLVolumeSliceDrawing.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLVolumeSliceDrawing.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLVolumeSliceDrawing.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLVolumeSliceDrawing.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -767,7 +767,7 @@ glDisable(GL_CULL_FACE); const bool cullingSliceViewFlag = true; - const bool cullingWholeBrainViewFlag = false; // culling only works in a view looking along an axis (any rotation and slices disappear) + const bool nonCulledLpiSliceViewFlag = false; // culling only works in a view looking along an axis (any rotation and slices disappear) switch (sliceProjectionType) { case VolumeSliceProjectionTypeEnum::VOLUME_SLICE_PROJECTION_ORTHOGONAL: @@ -778,23 +778,26 @@ slicePlane); } else { - drawOrthogonalSlice_LPI_ONLY(sliceViewPlane, - sliceCoordinates, - slicePlane); + if (nonCulledLpiSliceViewFlag) { + drawOrthogonalSlice_LPI_ONLY(sliceViewPlane, + sliceCoordinates, + slicePlane); + } + else { + drawOrthogonalSlice(sliceViewPlane, + sliceCoordinates, + slicePlane); + } } } else if (m_modelWholeBrain != NULL) { - /* - * At this time (Aug 4, 2016) culled drawing does not - * work for ALL (whole brain) view. - */ - if (cullingWholeBrainViewFlag) { - drawOrthogonalSliceWithCulling(sliceViewPlane, - sliceCoordinates, - slicePlane); + if (nonCulledLpiSliceViewFlag) { + drawOrthogonalSlice_LPI_ONLY(sliceViewPlane, + sliceCoordinates, + slicePlane); } else { - drawOrthogonalSlice_LPI_ONLY(sliceViewPlane, + drawOrthogonalSlice(sliceViewPlane, sliceCoordinates, slicePlane); } @@ -2056,6 +2059,15 @@ /* * Draw the voxels in the slice. */ +// const AString drawMsg("OLD LPI:" +// "\n Axis: " + VolumeSliceViewPlaneEnum::toName(sliceViewPlane) +// + "\n Start XYZ: " + AString::fromNumbers(startCoordinate, 3, ",") +// + "\n Row Step: " + AString::fromNumbers(rowStep, 3, ",") +// + "\n Column Step: " + AString::fromNumbers(columnStep, 3, ",") +// + "\n Num Cols: " + AString::number(numberOfColumns) +// + "\n Num Rows: " + AString::number(numberOfRows) +// + "\n"); +// std::cout << qPrintable(drawMsg) << std::endl; drawOrthogonalSliceVoxels(sliceNormalVector, startCoordinate, rowStep, @@ -2075,6 +2087,516 @@ sliceCoordinates, sliceNormalVector); + glDisable(GL_BLEND); + glShadeModel(GL_SMOOTH); +} + +/** + * Find the given orientation in the given volume, find its corresponding + * dimesion index. + * + * @param volume + * The volume. + * @param orientation + * The requested orientation + * @return + * Index of dimension containing the orientation or + * Negative if not found. + */ +static int32_t +getDimensionContainingOrientation(const VolumeMappableInterface* volume, + const VolumeSpace::OrientTypes orientation) +{ + VolumeSpace::OrientTypes orients[3]; + volume->getVolumeSpace().getOrientation(orients); + + for (int32_t i = 0; i < 3; i++) { + if (orientation == orients[i]) { + return i; + } + } + + return -1; +} +/** + * Find the given orientation in the given volume, find its corresponding + * dimesion index. + * + * @param volume + * The volume. + * @param orientation1 + * First requested orientation + * @param orientation2 + * Second requested orientation + * @return + * Index of dimension containing the orientation or + * Negative if not found. + */ +static int32_t +getDimensionContainingSlicePlane(const VolumeMappableInterface* volume, + const VolumeSliceViewPlaneEnum::Enum slicePlane) +{ + int32_t indexOne = -1; + int32_t indexTwo = -1; + switch (slicePlane) { + case caret::VolumeSliceViewPlaneEnum::ALL: + break; + case caret::VolumeSliceViewPlaneEnum::AXIAL: + indexOne = getDimensionContainingOrientation(volume, VolumeSpace::INFERIOR_TO_SUPERIOR); + indexTwo = getDimensionContainingOrientation(volume, VolumeSpace::SUPERIOR_TO_INFERIOR); + break; + case caret::VolumeSliceViewPlaneEnum::CORONAL: + indexOne = getDimensionContainingOrientation(volume, VolumeSpace::ANTERIOR_TO_POSTERIOR); + indexTwo = getDimensionContainingOrientation(volume, VolumeSpace::POSTERIOR_TO_ANTERIOR); + break; + case caret::VolumeSliceViewPlaneEnum::PARASAGITTAL: + indexOne = getDimensionContainingOrientation(volume, VolumeSpace::LEFT_TO_RIGHT); + indexTwo = getDimensionContainingOrientation(volume, VolumeSpace::RIGHT_TO_LEFT); + break; + } + + if ((indexOne >= 0) + && (indexTwo >= 0)) { + CaretLogSevere("Volume contains same axes orientations in more than one dimension"); + } + else if ((indexOne < 0) + && (indexTwo < 0)) { + /* probably occurs if volume is not plumb */ + } + else if (indexOne >= 0) { + return indexOne; + } + else if (indexTwo >= 0) { + return indexTwo; + } + + return -1; +} + +/** + * Provides information on an axis in a volume. + * Used for drawing volumes in any valid orientation. + */ +class AxisInfo { +public: + VolumeSliceViewPlaneEnum::Enum axis; + /** index for use with slice indices/dimensions and 'this->axis' */ + int64_t indexIntoIJK; + /** index for use with XYZ coordinates */ + int64_t indexIntoXYZ; + /** number of voxels in dimension */ + int64_t numberOfVoxels; + /** step to move to next voxel */ + int64_t voxelIndexStep; + /** index of first voxel (either 0 or (numberOfVoxels - 1)) */ + int64_t firstVoxelIndex; + /** absolute spatial size (mm) of voxel */ + float absoluteVoxelSize; + /** spatial step to next voxel (signed) */ + float voxelStepSize; + /** true if this axis info is valid */ + bool valid; + + AxisInfo() { valid = false; } + + void print() { + const AString s("Axis: " + VolumeSliceViewPlaneEnum::toName(axis) + + "\n IJK Index: " + AString::number(indexIntoIJK) + + "\n IJK Index: " + AString::number(indexIntoXYZ) + + "\n Number of voxels: " + AString::number(numberOfVoxels) + + "\n First Voxel Index: " + AString::number(firstVoxelIndex) + + "\n Voxel Index Step: " + AString::number(voxelIndexStep) + + "\n Abs Voxel Size: " + AString::number(absoluteVoxelSize) + + "\n Voxel Step Size: " + AString::number(voxelStepSize) + + "\n"); + std::cout << qPrintable(s) << std::endl; + + } +}; + +/** + * Get the info for the given axis in the given volume file + * + * @param volumeFile + * The volume file. + * @param axis + * The axis + * @param startWithMinimumCoordFlag + * If true, voxel information will start with voxel that has minimum coordinate. + * @param axisInfoOut + * Output containing information for the given axis + */ +static void +getAxisInfo(const VolumeMappableInterface* volumeFile, + const VolumeSliceViewPlaneEnum::Enum axis, + const bool startWithMinimumCoordFlag, + AxisInfo& axisInfoOut) +{ + /* + * Data for axis may be in any dimension + */ + axisInfoOut.axis = axis; + axisInfoOut.indexIntoIJK = getDimensionContainingSlicePlane(volumeFile, axis); + if (axisInfoOut.indexIntoIJK < 0) { + axisInfoOut.valid = false; + return; + } + + /* + * X, Y, Z is always indices 0, 1, 2 + */ + switch (axis) { + case VolumeSliceViewPlaneEnum::ALL: + break; + case VolumeSliceViewPlaneEnum::AXIAL: + axisInfoOut.indexIntoXYZ = 2; + break; + case VolumeSliceViewPlaneEnum::CORONAL: + axisInfoOut.indexIntoXYZ = 1; + break; + case VolumeSliceViewPlaneEnum::PARASAGITTAL: + axisInfoOut.indexIntoXYZ = 0; + break; + } + + std::vector dimArray; + volumeFile->getDimensions(dimArray); + + CaretAssertVectorIndex(dimArray, axisInfoOut.indexIntoIJK); + axisInfoOut.numberOfVoxels = dimArray[axisInfoOut.indexIntoIJK]; + + axisInfoOut.firstVoxelIndex = 0; + + int64_t zeroIndices[3] = { 0, 0, 0 }; + float xyzZero[3] = { 0.0, 0.0, 0.0 }; + volumeFile->indexToSpace(zeroIndices, xyzZero); + int64_t oneIndices[3] = { 1, 1, 1}; + float xyzOne[3] = { 1.0, 1.0, 1.0 }; + volumeFile->indexToSpace(oneIndices, xyzOne); + + axisInfoOut.voxelStepSize = (xyzOne[axisInfoOut.indexIntoXYZ] - xyzZero[axisInfoOut.indexIntoXYZ]); + + axisInfoOut.absoluteVoxelSize = std::fabs(axisInfoOut.voxelStepSize); + + axisInfoOut.voxelIndexStep = 1; + + if (startWithMinimumCoordFlag) { + if (axisInfoOut.voxelStepSize < 0.0) { + axisInfoOut.firstVoxelIndex = axisInfoOut.numberOfVoxels - 1; + axisInfoOut.voxelStepSize = -axisInfoOut.voxelStepSize; + axisInfoOut.voxelIndexStep = -1; + } + } + else { + if (axisInfoOut.voxelStepSize > 0.0) { + axisInfoOut.firstVoxelIndex = axisInfoOut.numberOfVoxels - 1; + axisInfoOut.voxelStepSize = -axisInfoOut.voxelStepSize; + axisInfoOut.voxelIndexStep = -1; + } + } + + axisInfoOut.valid = true; + + //axisInfoOut.print(); +} + +/** + * Draw an orthogonal slice. + * + * @param sliceViewingPlane + * The plane for slice drawing. + * @param sliceCoordinates + * Coordinates of the selected slice. + * @param plane + * Plane equation for the selected slice. + */ +void +BrainOpenGLVolumeSliceDrawing::drawOrthogonalSlice(const VolumeSliceViewPlaneEnum::Enum sliceViewingPlane, + const float sliceCoordinates[3], + const Plane& plane) +{ + CaretAssert(plane.isValidPlane()); + if (plane.isValidPlane() == false) { + return; + } + + const int32_t browserTabIndex = m_browserTabContent->getTabNumber(); + const DisplayPropertiesLabels* displayPropertiesLabels = m_brain->getDisplayPropertiesLabels(); + const DisplayGroupEnum::Enum displayGroup = displayPropertiesLabels->getDisplayGroupForTab(browserTabIndex); + + /* + * Enable alpha blending so voxels that are not drawn from higher layers + * allow voxels from lower layers to be seen. + */ + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + /* + * Flat shading voxels not interpolated + */ + glShadeModel(GL_FLAT); + + /* + * Compute coordinate of point in center of first slice + */ + float selectedSliceCoordinate = 0.0; + float sliceNormalVector[3] = { 0.0, 0.0, 0.0 }; + plane.getNormalVector(sliceNormalVector); + switch (sliceViewingPlane) { + case VolumeSliceViewPlaneEnum::ALL: + CaretAssert(0); + break; + case VolumeSliceViewPlaneEnum::AXIAL: + selectedSliceCoordinate = sliceCoordinates[2]; + break; + case VolumeSliceViewPlaneEnum::CORONAL: + selectedSliceCoordinate = sliceCoordinates[1]; + break; + case VolumeSliceViewPlaneEnum::PARASAGITTAL: + selectedSliceCoordinate = sliceCoordinates[0]; + break; + } + + /* + * Holds colors for voxels in the slice + * Outside of loop to minimize allocations + * It is faster to make one call to + * NodeAndVoxelColoring::colorScalarsWithPalette() with + * all voxels in the slice than it is to call it + * separately for each voxel. + */ + std::vector sliceVoxelsRgbaVector; + + /* + * Draw each of the volumes separately so that each + * is drawn with the correct voxel slices. + */ + const int32_t numberOfVolumesToDraw = static_cast(m_volumeDrawInfo.size()); + for (int32_t iVol = 0; iVol < numberOfVolumesToDraw; iVol++) { + const BrainOpenGLFixedPipeline::VolumeDrawInfo& volInfo = m_volumeDrawInfo[iVol]; + const VolumeMappableInterface* volumeFile = volInfo.volumeFile; + + /* + * Find axis that correspond to the axis that are on + * the screen horizontally and vertically. + */ + AxisInfo drawLeftToRightInfo; + AxisInfo drawBottomToTopInfo; + + int64_t viewPlaneDimIndex = getDimensionContainingSlicePlane(volumeFile, sliceViewingPlane); + int64_t sliceViewingPlaneIndexIntoXYZ = -1; + switch (sliceViewingPlane) { + case VolumeSliceViewPlaneEnum::ALL: + CaretAssert(0); + break; + case VolumeSliceViewPlaneEnum::AXIAL: + getAxisInfo(volumeFile, VolumeSliceViewPlaneEnum::PARASAGITTAL, true, drawLeftToRightInfo); + getAxisInfo(volumeFile, VolumeSliceViewPlaneEnum::CORONAL, true, drawBottomToTopInfo); + sliceViewingPlaneIndexIntoXYZ = 2; + break; + case VolumeSliceViewPlaneEnum::CORONAL: + getAxisInfo(volumeFile, VolumeSliceViewPlaneEnum::PARASAGITTAL, true, drawLeftToRightInfo); + getAxisInfo(volumeFile, VolumeSliceViewPlaneEnum::AXIAL, true, drawBottomToTopInfo); + sliceViewingPlaneIndexIntoXYZ = 1; + break; + case VolumeSliceViewPlaneEnum::PARASAGITTAL: + getAxisInfo(volumeFile, VolumeSliceViewPlaneEnum::CORONAL, false, drawLeftToRightInfo); + getAxisInfo(volumeFile, VolumeSliceViewPlaneEnum::AXIAL, true, drawBottomToTopInfo); + sliceViewingPlaneIndexIntoXYZ = 0; + break; + } + CaretAssert(drawLeftToRightInfo.valid); + CaretAssert(drawBottomToTopInfo.valid); + CaretAssert(viewPlaneDimIndex != drawLeftToRightInfo.indexIntoIJK); + CaretAssert(viewPlaneDimIndex != drawBottomToTopInfo.indexIntoIJK); + CaretAssert(drawLeftToRightInfo.indexIntoIJK != drawBottomToTopInfo.indexIntoIJK); + CaretAssert(sliceViewingPlaneIndexIntoXYZ != drawLeftToRightInfo.indexIntoXYZ); + CaretAssert(sliceViewingPlaneIndexIntoXYZ != drawBottomToTopInfo.indexIntoXYZ); + CaretAssert(drawLeftToRightInfo.indexIntoXYZ != drawBottomToTopInfo.indexIntoXYZ); + + /* + * There must be at least two voxels in both dimensions. + * If a dimension consists of a single voxel, then it is + * likely a single slice volume and our viewpoint is + * "in" the slice. + * + * Without this check the user would see a strange looking + * line that is one voxel in width + */ + if ((drawLeftToRightInfo.numberOfVoxels <= 1) + || (drawBottomToTopInfo.numberOfVoxels <= 1)) { + continue; + } + + /* + * Spatial amount to move up row. + */ + float rowStepXYZ[3] = { 0.0, 0.0, 0.0 }; + rowStepXYZ[drawBottomToTopInfo.indexIntoXYZ] = drawBottomToTopInfo.voxelStepSize; + + /* + * Spatial amount to move right one column. + */ + float columnStepXYZ[3] = { 0.0, 0.0, 0.0 }; + columnStepXYZ[drawLeftToRightInfo.indexIntoXYZ] = drawLeftToRightInfo.voxelStepSize; + + /* + * Step in voxel dimensions to move right one column + */ + int64_t columnStepIJK[3] = { 0, 0, 0 }; + columnStepIJK[drawLeftToRightInfo.indexIntoIJK] = drawLeftToRightInfo.voxelIndexStep; + + /* + * Step in voxel dimensions to move up one row + */ + int64_t rowStepIJK[3] = { 0, 0, 0 }; + rowStepIJK[drawBottomToTopInfo.indexIntoIJK] = drawBottomToTopInfo.voxelIndexStep; + + /* + * XYZ needs to use regular X=0, Y=1, Z=2 indices + */ + int64_t sliceVoxelIndices[3] = { 0, 0, 0 }; + float sliceVoxelXYZ[3] = { 0.0, 0.0, 0.0 }; + sliceVoxelXYZ[sliceViewingPlaneIndexIntoXYZ] = selectedSliceCoordinate; + //volumeFile->indexToSpace(sliceVoxelIndices, sliceVoxelXYZ); + volumeFile->enclosingVoxel(sliceVoxelXYZ[0], sliceVoxelXYZ[1], sliceVoxelXYZ[2], + sliceVoxelIndices[0], sliceVoxelIndices[1], sliceVoxelIndices[2]); + + /* + * Find the index of the slice for drawing and verify that + * it is a valid slice index. + */ + const int64_t sliceIndexForDrawing = sliceVoxelIndices[viewPlaneDimIndex]; + std::vector volDim; + volumeFile->getDimensions(volDim); + const int64_t maximumAxisSliceIndex = volDim[viewPlaneDimIndex]; + if ((sliceIndexForDrawing < 0) + || (sliceIndexForDrawing >= maximumAxisSliceIndex)) { + continue; + } + + /* + * Voxel indices for first voxel that is drawn at bottom left of screen + */ + int64_t firstVoxelIJK[3] = { -1, -1, -1 }; + firstVoxelIJK[drawBottomToTopInfo.indexIntoIJK] = drawBottomToTopInfo.firstVoxelIndex; + firstVoxelIJK[drawLeftToRightInfo.indexIntoIJK] = drawLeftToRightInfo.firstVoxelIndex; + firstVoxelIJK[viewPlaneDimIndex] = sliceIndexForDrawing; + + /* + * Coordinate of first voxel that is drawn at bottom left of screen + */ + float startCoordinateXYZ[3] = { 0.0, 0.0, 0.0 }; + volumeFile->indexToSpace(firstVoxelIJK, startCoordinateXYZ); + startCoordinateXYZ[drawLeftToRightInfo.indexIntoXYZ] -= (drawLeftToRightInfo.voxelStepSize / 2.0); + startCoordinateXYZ[drawBottomToTopInfo.indexIntoXYZ] -= (drawBottomToTopInfo.voxelStepSize / 2.0); + startCoordinateXYZ[viewPlaneDimIndex] = selectedSliceCoordinate; + + /* + * Stores RGBA values for each voxel. + * Use a vector for voxel colors so no worries about memory being freed. + */ + const int64_t numVoxelsInSlice = drawBottomToTopInfo.numberOfVoxels * drawLeftToRightInfo.numberOfVoxels; + const int64_t numVoxelsInSliceRGBA = numVoxelsInSlice * 4; + if (numVoxelsInSliceRGBA > static_cast(sliceVoxelsRgbaVector.size())) { + sliceVoxelsRgbaVector.resize(numVoxelsInSliceRGBA); + } + uint8_t* sliceVoxelsRGBA = &sliceVoxelsRgbaVector[0]; + + /* + * Get colors for all voxels in the slice. + */ + const int64_t validVoxelCount = volumeFile->getVoxelColorsForSliceInMap(volInfo.mapIndex, + firstVoxelIJK, + rowStepIJK, + columnStepIJK, + drawBottomToTopInfo.numberOfVoxels, + drawLeftToRightInfo.numberOfVoxels, + displayGroup, + browserTabIndex, + sliceVoxelsRGBA); + + /* + * Is label outline mode? + */ + if (m_volumeDrawInfo[iVol].mapFile->isMappedWithLabelTable()) { + int64_t xdim = drawLeftToRightInfo.numberOfVoxels; + int64_t ydim = drawBottomToTopInfo.numberOfVoxels; + + LabelDrawingTypeEnum::Enum labelDrawingType = LabelDrawingTypeEnum::DRAW_FILLED; + CaretColorEnum::Enum outlineColor = CaretColorEnum::BLACK; + const CaretMappableDataFile* mapFile = dynamic_cast(volumeFile); + if (mapFile != NULL) { + if (mapFile->isMappedWithLabelTable()) { + const LabelDrawingProperties* props = mapFile->getLabelDrawingProperties(); + labelDrawingType = props->getDrawingType(); + outlineColor = props->getOutlineColor(); + } + } + NodeAndVoxelColoring::convertSliceColoringToOutlineMode(sliceVoxelsRGBA, + labelDrawingType, + outlineColor, + xdim, + ydim); + } + + const uint8_t volumeDrawingOpacity = static_cast(volInfo.opacity * 255.0); + + if (m_modelWholeBrain != NULL) { + /* + * After the a slice is drawn in ALL view, some layers + * (volume surface outline) may be drawn in lines. As the + * view is rotated, lines will partially appear and disappear + * due to the lines having the same (extremely close) depth + * values as the voxel polygons. OpenGL's Polygon Offset + * only works with polygons and NOT with lines or points. + * So, polygon offset cannot be used to move the depth + * values for the lines and points "a little closer" to + * the user. Instead, polygon offset is used to push + * the underlaying slices "a little bit away" from the + * user. + * + * Resolves WB-414 + */ + const float inverseSliceIndex = numberOfVolumesToDraw - iVol; + const float factor = inverseSliceIndex * 1.0 + 1.0; + const float units = inverseSliceIndex * 1.0 + 1.0; + glEnable(GL_POLYGON_OFFSET_FILL); + glPolygonOffset(factor, units); + } + + /* + * Draw the voxels in the slice. + */ +// const AString drawMsg("NEW:" +// "\n Axis: " + VolumeSliceViewPlaneEnum::toName(sliceViewingPlane) +// + "\n Start XYZ: " + AString::fromNumbers(startCoordinateXYZ, 3, ",") +// + "\n Row Step: " + AString::fromNumbers(rowStepXYZ, 3, ",") +// + "\n Column Step: " + AString::fromNumbers(columnStepXYZ, 3, ",") +// + "\n Num Cols: " + AString::number(drawLeftToRightInfo.numberOfVoxels) +// + "\n Num Rows: " + AString::number(drawBottomToTopInfo.numberOfVoxels) +// + "\n"); +// std::cout << qPrintable(drawMsg) << std::endl; + drawOrthogonalSliceVoxels(sliceNormalVector, + startCoordinateXYZ, + rowStepXYZ, + columnStepXYZ, + drawLeftToRightInfo.numberOfVoxels, + drawBottomToTopInfo.numberOfVoxels, + sliceVoxelsRgbaVector, + validVoxelCount, + volumeFile, + iVol, + volInfo.mapIndex, + volumeDrawingOpacity); + glDisable(GL_POLYGON_OFFSET_FILL); + + } + + showBrainordinateHighlightRegionOfInterest(sliceViewingPlane, + sliceCoordinates, + sliceNormalVector); + glDisable(GL_BLEND); glShadeModel(GL_SMOOTH); } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLVolumeSliceDrawing.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLVolumeSliceDrawing.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/BrainOpenGLVolumeSliceDrawing.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/BrainOpenGLVolumeSliceDrawing.h 2016-10-19 23:35:12.000000000 +0000 @@ -204,6 +204,10 @@ const float sliceCoordinates[3], const Plane& plane); + void drawOrthogonalSlice(const VolumeSliceViewPlaneEnum::Enum sliceViewPlane, + const float sliceCoordinates[3], + const Plane& plane); + void drawOrthogonalSliceWithCulling(const VolumeSliceViewPlaneEnum::Enum sliceViewPlane, const float sliceCoordinates[3], const Plane& plane); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -94,6 +94,9 @@ DisplayPropertiesLabels.h DisplayPropertiesSurface.h DisplayPropertiesVolume.h +DisplayPropertyDataBoolean.h +DisplayPropertyDataEnum.h +DisplayPropertyDataFloat.h DummyFontTextRenderer.h EventAnnotationColorBarGet.h EventBrainReset.h @@ -133,6 +136,7 @@ IdentifiedItem.h IdentifiedItemNode.h IdentifiedItemVoxel.h +ImageDepthPositionEnum.h Model.h ModelChart.h ModelSurface.h @@ -157,6 +161,7 @@ SelectionItemFocusSurface.h SelectionItemFocusVolume.h SelectionItemImage.h +SelectionItemImageControlPoint.h SelectionItemSurfaceNode.h SelectionItemSurfaceNodeIdentificationSymbol.h SelectionItemSurfaceTriangle.h @@ -227,6 +232,8 @@ DisplayPropertiesLabels.cxx DisplayPropertiesSurface.cxx DisplayPropertiesVolume.cxx +DisplayPropertyDataBoolean.cxx +DisplayPropertyDataFloat.cxx DummyFontTextRenderer.cxx EventAnnotationColorBarGet.cxx EventBrainReset.cxx @@ -265,6 +272,7 @@ IdentifiedItem.cxx IdentifiedItemNode.cxx IdentifiedItemVoxel.cxx +ImageDepthPositionEnum.cxx Model.cxx ModelChart.cxx ModelSurface.cxx @@ -289,6 +297,7 @@ SelectionItemFocusSurface.cxx SelectionItemFocusVolume.cxx SelectionItemImage.cxx +SelectionItemImageControlPoint.cxx SelectionItemSurfaceNode.cxx SelectionItemSurfaceNodeIdentificationSymbol.cxx SelectionItemSurfaceTriangle.cxx diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertiesFoci.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertiesFoci.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertiesFoci.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertiesFoci.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -143,7 +143,7 @@ m_drawingTypeInTab[targetTabIndex] = m_drawingTypeInTab[sourceTabIndex]; m_fociSizeInTab[targetTabIndex] = m_fociSizeInTab[sourceTabIndex]; m_pasteOntoSurfaceInTab[targetTabIndex] = m_pasteOntoSurfaceInTab[sourceTabIndex]; - m_standardColorTypeInDisplayGroup[targetTabIndex] = m_standardColorTypeInDisplayGroup[sourceTabIndex]; + m_standardColorTypeInTab[targetTabIndex] = m_standardColorTypeInTab[sourceTabIndex]; } /** diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertiesImages.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertiesImages.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertiesImages.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertiesImages.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -27,6 +27,8 @@ #include "Brain.h" #include "CaretLogger.h" +#include "DisplayPropertyDataBoolean.h" +#include "DisplayPropertyDataFloat.h" #include "ImageFile.h" #include "SceneAttributes.h" #include "SceneClass.h" @@ -51,25 +53,35 @@ { CaretAssert(parentBrain); + const ImageDepthPositionEnum::Enum defaultImageDepth = ImageDepthPositionEnum::BACK; + for (int32_t i = 0; i < BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS; i++) { m_displayGroup[i] = DisplayGroupEnum::getDefaultValue(); - m_displayStatusInTab[i] = false; m_imageFileInTab[i] = NULL; } for (int32_t i = 0; i < DisplayGroupEnum::NUMBER_OF_GROUPS; i++) { - m_displayStatusInDisplayGroup[i] = false; m_imageFileInDisplayGroup[i] = NULL; } + m_imageDepthPosition.initialize(defaultImageDepth); + + m_displayStatus.grabNew(new DisplayPropertyDataBoolean(false)); + m_controlPointDisplayStatus.grabNew(new DisplayPropertyDataBoolean(true)); + m_thresholdMinimum.grabNew(new DisplayPropertyDataFloat(0)); + m_thresholdMaximum.grabNew(new DisplayPropertyDataFloat(255)); + m_opacity.grabNew(new DisplayPropertyDataFloat(1.0)); + + m_sceneAssistant->add("m_displayStatus", "DisplayPropertyDataBoolean", m_displayStatus); + m_sceneAssistant->add("m_controlPointDisplayStatus", "DisplayPropertyDataBoolean", m_controlPointDisplayStatus); m_sceneAssistant->addTabIndexedEnumeratedTypeArray("m_displayGroup", m_displayGroup); - m_sceneAssistant->addTabIndexedBooleanArray("m_displayStatusInTab", - m_displayStatusInTab); - m_sceneAssistant->addArray("m_displayStatusInDisplayGroup", - m_displayStatusInDisplayGroup, - DisplayGroupEnum::NUMBER_OF_GROUPS, - m_displayStatusInDisplayGroup[0]); + + m_sceneAssistant->add("m_imageDepthPosition", "DisplayPropertyDataEnum", &m_imageDepthPosition); + m_sceneAssistant->add("m_thresholdMinimum", "DisplayPropertyDataFloat", m_thresholdMinimum); + m_sceneAssistant->add("m_thresholdMaximum", "DisplayPropertyDataFloat", m_thresholdMaximum); + m_sceneAssistant->add("m_opacity", "DisplayPropertyDataFloat", m_opacity); + } /** @@ -93,7 +105,7 @@ const DisplayGroupEnum::Enum displayGroup = this->getDisplayGroupForTab(sourceTabIndex); this->setDisplayGroupForTab(targetTabIndex, displayGroup); - m_displayStatusInTab[targetTabIndex] = m_displayStatusInTab[sourceTabIndex]; + m_displayStatus->copyValues(sourceTabIndex, targetTabIndex); } /** @@ -121,30 +133,25 @@ } /** - * @return Display status of foci. + * @return Display status of images. * @param displayGroup * Display group. + * @param tabIndex + * The tab index. */ bool DisplayPropertiesImages::isDisplayed(const DisplayGroupEnum::Enum displayGroup, const int32_t tabIndex) const { - CaretAssertArrayIndex(m_displayStatusInDisplayGroup, - DisplayGroupEnum::NUMBER_OF_GROUPS, - static_cast(displayGroup)); - if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { - CaretAssertArrayIndex(m_displayStatusInTab, - BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, - tabIndex); - return m_displayStatusInTab[tabIndex]; - } - return m_displayStatusInDisplayGroup[displayGroup]; + return m_displayStatus->getValue(displayGroup, tabIndex); } /** - * Set the display status for foci. + * Set the display status for image. * @param displayGroup * Display group. + * @param tabIndex + * The tab index. * @param displayStatus * New status. */ @@ -153,18 +160,38 @@ const int32_t tabIndex, const bool displayStatus) { - CaretAssertArrayIndex(m_displayStatusInDisplayGroup, - DisplayGroupEnum::NUMBER_OF_GROUPS, - static_cast(displayGroup)); - if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { - CaretAssertArrayIndex(m_displayStatusInTab, - BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, - tabIndex); - m_displayStatusInTab[tabIndex] = displayStatus; - } - else { - m_displayStatusInDisplayGroup[displayGroup] = displayStatus; - } + m_displayStatus->setValue(displayGroup, tabIndex, displayStatus); +} + +/** + * @return Display status of image control points. + * @param displayGroup + * Display group. + * @param tabIndex + * The tab index. + */ +bool +DisplayPropertiesImages::isControlPointsDisplayed(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const +{ + return m_controlPointDisplayStatus->getValue(displayGroup, tabIndex); +} + +/** + * Set the display status for image control points. + * @param displayGroup + * Display group. + * @param tabIndex + * The tab index. + * @param displayStatus + * New status. + */ +void +DisplayPropertiesImages::setControlPointsDisplayed(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const bool displayStatus) +{ + m_controlPointDisplayStatus->setValue(displayGroup, tabIndex, displayStatus); } /** @@ -290,6 +317,146 @@ } /** + * Get the minimum threshold value. + * + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + * @return + * Threshold value for given display group and tab. + */ +float +DisplayPropertiesImages::getThresholdMinimum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const +{ + return m_thresholdMinimum->getValue(displayGroup, tabIndex); +} + +/** + * Set the minimum threshold value. + * + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + * @param value + * Threshold value for given display group and tab. + */ +void +DisplayPropertiesImages::setThresholdMinimum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value) +{ + m_thresholdMinimum->setValue(displayGroup, tabIndex, value); +} + + +/** + * Get the maximum threshold value. + * + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + * @return + * Threshold value for given display group and tab. + */ +float +DisplayPropertiesImages::getThresholdMaximum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const +{ + return m_thresholdMaximum->getValue(displayGroup, tabIndex); +} + +/** + * Set the maximum threshold value. + * + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + * @param value + * Threshold value for given display group and tab. + */ +void +DisplayPropertiesImages::setThresholdMaximum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value) +{ + m_thresholdMaximum->setValue(displayGroup, tabIndex, value); +} + +/** + * Get the opacity value. + * + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + * @return + * Opacity value for given display group and tab. + */ +float +DisplayPropertiesImages::getOpacity(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const +{ + return m_opacity->getValue(displayGroup, tabIndex); +} + +/** + * Set the opacity value. + * + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + * @param value + * Opacity value for given display group and tab. + */ +void +DisplayPropertiesImages::setOpacity(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value) +{ + m_opacity->setValue(displayGroup, tabIndex, value); +} + +/** + * @return The image position type. + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + */ +ImageDepthPositionEnum::Enum +DisplayPropertiesImages::getImagePosition(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const +{ + return m_imageDepthPosition.getValue(displayGroup, + tabIndex); +} + +/** + * Set the image position type. + * @param displayGroup + * Selected display group. + * @param tabIndex + * Selected tab. + * @param positionType + * New value for position type. + */ +void +DisplayPropertiesImages::setImagePosition(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const ImageDepthPositionEnum::Enum positionType) +{ + m_imageDepthPosition.setValue(displayGroup, + tabIndex, + positionType); +} + +/** * Create a scene for an instance of a class. * * @param sceneAttributes diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertiesImages.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertiesImages.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertiesImages.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertiesImages.h 2016-10-19 23:35:12.000000000 +0000 @@ -23,12 +23,17 @@ #include "BrainConstants.h" +#include "CaretPointer.h" #include "DisplayGroupEnum.h" #include "DisplayProperties.h" +#include "DisplayPropertyDataEnum.h" +#include "ImageDepthPositionEnum.h" namespace caret { class Brain; + class DisplayPropertyDataBoolean; + class DisplayPropertyDataFloat; class ImageFile; class DisplayPropertiesImages : public DisplayProperties { @@ -52,6 +57,13 @@ const int32_t tabIndex, const bool displayStatus); + bool isControlPointsDisplayed(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const; + + void setControlPointsDisplayed(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const bool displayStatus); + DisplayGroupEnum::Enum getDisplayGroupForTab(const int32_t browserTabIndex) const; void setDisplayGroupForTab(const int32_t browserTabIndex, @@ -64,6 +76,34 @@ const int32_t tabIndex, ImageFile* imageFile); + float getThresholdMinimum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const; + + void setThresholdMinimum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value); + + float getThresholdMaximum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const; + + void setThresholdMaximum(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value); + + float getOpacity(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const; + + void setOpacity(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value); + + ImageDepthPositionEnum::Enum getImagePosition(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const; + + void setImagePosition(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const ImageDepthPositionEnum::Enum positionType); + virtual SceneClass* saveToScene(const SceneAttributes* sceneAttributes, const AString& instanceName); @@ -84,14 +124,22 @@ DisplayGroupEnum::Enum m_displayGroup[BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS]; - bool m_displayStatusInDisplayGroup[DisplayGroupEnum::NUMBER_OF_GROUPS]; + CaretPointer m_displayStatus; - bool m_displayStatusInTab[BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS]; + CaretPointer m_controlPointDisplayStatus; mutable ImageFile* m_imageFileInDisplayGroup[DisplayGroupEnum::NUMBER_OF_GROUPS]; mutable ImageFile* m_imageFileInTab[BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS]; + DisplayPropertyDataEnum m_imageDepthPosition; + + CaretPointer m_thresholdMinimum; + + CaretPointer m_thresholdMaximum; + + CaretPointer m_opacity; + // ADD_NEW_MEMBERS_HERE }; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataBoolean.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataBoolean.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataBoolean.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataBoolean.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,207 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#define __DISPLAY_PROPERTY_DATA_BOOLEAN_DECLARE__ +#include "DisplayPropertyDataBoolean.h" +#undef __DISPLAY_PROPERTY_DATA_BOOLEAN_DECLARE__ + +#include "CaretAssert.h" +#include "SceneClass.h" +#include "SceneClassAssistant.h" + +using namespace caret; + +/** + * \class caret::DisplayPropertyDataBoolean + * \brief Boolean data for display property tab/display group + * \ingroup Brain + */ + +/** + * Constructor that initializes with the given default value. + * + * @param defaultValue + * Default data value. + */ +DisplayPropertyDataBoolean::DisplayPropertyDataBoolean(const bool defaultValue) +: CaretObject() +{ + setAllValues(defaultValue); + + m_sceneAssistant = new SceneClassAssistant(); + m_sceneAssistant->addTabIndexedBooleanArray("m_tabValues", + m_tabValues); + m_sceneAssistant->addArray("m_displayGroupValues", + m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + defaultValue); +} + +/** + * Destructor. + */ +DisplayPropertyDataBoolean::~DisplayPropertyDataBoolean() +{ + delete m_sceneAssistant; +} + +/** + * Copy the values from one tab to another. + * + * @param sourceTabIndex + * Index of tab from which values are copied. + * @param targetTabIndex + * Index of tab to which values are copied. + */ +void +DisplayPropertyDataBoolean::copyValues(const int32_t sourceTabIndex, + const int32_t targetTabIndex) +{ + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + sourceTabIndex); + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + targetTabIndex); + + m_tabValues[targetTabIndex] = m_tabValues[sourceTabIndex]; +} + + +/** + * @return The data value. + * + * @param displayGroup + * Display group. + * @param tabIndex + * Tab index. + */ +bool +DisplayPropertyDataBoolean::getValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const +{ + CaretAssertArrayIndex(m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + static_cast(displayGroup)); + if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + tabIndex); + return m_tabValues[tabIndex]; + } + return m_displayGroupValues[displayGroup]; + +} + +/** + * Set all display groups and tabs to the given value. + * + * @param value + * The value. + */ +void +DisplayPropertyDataBoolean::setAllValues(const bool value) +{ + for (int32_t i = 0; i < BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS; i++) { + m_tabValues[i] = value; + } + + for (int32_t i = 0; i < DisplayGroupEnum::NUMBER_OF_GROUPS; i++) { + m_displayGroupValues[i] = value; + } +} + +/** + * Set the data value. + * + * @param displayGroup + * Display group. + * @param tabIndex + * Tab index. + * @param value + * New value. + */ +void +DisplayPropertyDataBoolean::setValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const bool value) +{ + CaretAssertArrayIndex(m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + static_cast(displayGroup)); + if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + tabIndex); + m_tabValues[tabIndex] = value; + } + else { + m_displayGroupValues[displayGroup] = value; + } +} + +/** + * Save information specific to this type of model to the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * saving the scene. + * + * @param instanceName + * Name of instance in the scene. + */ +SceneClass* +DisplayPropertyDataBoolean::saveToScene(const SceneAttributes* sceneAttributes, + const AString& instanceName) +{ + SceneClass* sceneClass = new SceneClass(instanceName, + "DisplayPropertyDataBoolean", + 1); + m_sceneAssistant->saveMembers(sceneAttributes, + sceneClass); + + return sceneClass; +} + +/** + * Restore information specific to the type of model from the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * restoring the scene. + * + * @param sceneClass + * sceneClass from which model specific information is obtained. + */ +void +DisplayPropertyDataBoolean::restoreFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass) +{ + if (sceneClass == NULL) { + return; + } + + m_sceneAssistant->restoreMembers(sceneAttributes, + sceneClass); +} + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataBoolean.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataBoolean.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataBoolean.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataBoolean.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,96 @@ +#ifndef __DISPLAY_PROPERTY_DATA_BOOLEAN_H__ +#define __DISPLAY_PROPERTY_DATA_BOOLEAN_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include "BrainConstants.h" +#include "CaretObject.h" +#include "DisplayGroupEnum.h" +#include "SceneableInterface.h" + + +namespace caret { + class SceneClassAssistant; + + class DisplayPropertyDataBoolean : public CaretObject, public SceneableInterface { + + public: + DisplayPropertyDataBoolean(const bool defaultValue); + + virtual ~DisplayPropertyDataBoolean(); + + void setAllValues(const bool value); + + void copyValues(const int32_t sourceTabIndex, + const int32_t targetTabIndex); + + bool getValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const; + + void setValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const bool value); + + + // ADD_NEW_METHODS_HERE + + virtual SceneClass* saveToScene(const SceneAttributes* sceneAttributes, + const AString& instanceName); + + virtual void restoreFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass); + + + + + + +// If there will be sub-classes of this class that need to save +// and restore data from scenes, these pure virtual methods can +// be uncommented to force their implementation by sub-classes. +// protected: +// virtual void saveSubClassDataToScene(const SceneAttributes* sceneAttributes, +// SceneClass* sceneClass) = 0; +// +// virtual void restoreSubClassDataFromScene(const SceneAttributes* sceneAttributes, +// const SceneClass* sceneClass) = 0; + + private: + DisplayPropertyDataBoolean(const DisplayPropertyDataBoolean& obj); + + DisplayPropertyDataBoolean& operator=(const DisplayPropertyDataBoolean& obj); + + SceneClassAssistant* m_sceneAssistant; + + bool m_displayGroupValues[DisplayGroupEnum::NUMBER_OF_GROUPS]; + + bool m_tabValues[BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS]; + + // ADD_NEW_MEMBERS_HERE + + }; + +#ifdef __DISPLAY_PROPERTY_DATA_BOOLEAN_DECLARE__ + // +#endif // __DISPLAY_PROPERTY_DATA_BOOLEAN_DECLARE__ + +} // namespace +#endif //__DISPLAY_PROPERTY_DATA_BOOLEAN_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataEnum.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataEnum.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataEnum.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataEnum.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,270 @@ +#ifndef __DISPLAY_PROPERTY_DATA_ENUM_H__ +#define __DISPLAY_PROPERTY_DATA_ENUM_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include "BrainConstants.h" +#include "CaretAssert.h" +#include "CaretObject.h" +#include "DisplayGroupEnum.h" +#include "SceneAttributes.h" +#include "SceneClass.h" +#include "SceneClassAssistant.h" +#include "SceneableInterface.h" + +/** + * \class caret::DisplayPropertyDataEnum + * \brief Enumerated data for display property tab/display group + * \ingroup Brain + */ + +namespace caret { + class SceneClassAssistant; + + template + class DisplayPropertyDataEnum : public CaretObject, public SceneableInterface { + + public: + /** + * Constructor. + */ + DisplayPropertyDataEnum() + : CaretObject() + { + m_sceneAssistant.grabNew(NULL); + } + + /** + * Initializes with the given default value. + * + * MUST BE CALLED BEFORE ANY OTHER METHOD !!! + * + * @param defaultValue + * Default data value. + */ + void initialize(const ET defaultValue) + { + m_sceneAssistant.grabNew(new SceneClassAssistant()); + + /* + * NOTE: must be called after creating scene class assistant + */ + setAllValues(defaultValue); + + m_sceneAssistant->addTabIndexedEnumeratedTypeArray("m_tabValues", + m_tabValues); + m_sceneAssistant->addArray("m_displayGroupValues", + m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + defaultValue); + } + + /** + * Destructor. + */ + virtual ~DisplayPropertyDataEnum() + { + + } + + /** + * Set all display groups and tabs to the given value. + * + * @param value + * The value. + */ + void setAllValues(const ET value) + { + CaretAssertMessage(m_sceneAssistant.getPointer(), "Failed to call initialize(defaultValue) for the enumerated type"); + + for (int32_t i = 0; i < BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS; i++) { + m_tabValues[i] = value; + } + + for (int32_t i = 0; i < DisplayGroupEnum::NUMBER_OF_GROUPS; i++) { + m_displayGroupValues[i] = value; + } + } + + /** + * Copy the values from one tab to another. + * + * @param sourceTabIndex + * Index of tab from which values are copied. + * @param targetTabIndex + * Index of tab to which values are copied. + */ + void copyValues(const int32_t sourceTabIndex, + const int32_t targetTabIndex) + { + CaretAssertMessage(m_sceneAssistant.getPointer(), "Failed to call initialize(defaultValue) for the enumerated type"); + + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + sourceTabIndex); + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + targetTabIndex); + + m_tabValues[targetTabIndex] = m_tabValues[sourceTabIndex]; + } + + /** + * @return The data value. + * + * @param displayGroup + * Display group. + * @param tabIndex + * Tab index. + */ + ET getValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const + { + CaretAssertMessage(m_sceneAssistant.getPointer(), "Failed to call initialize(defaultValue) for the enumerated type"); + + CaretAssertArrayIndex(m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + static_cast(displayGroup)); + if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + tabIndex); + return m_tabValues[tabIndex]; + } + return m_displayGroupValues[displayGroup]; + } + + /** + * Set the data value. + * + * @param displayGroup + * Display group. + * @param tabIndex + * Tab index. + * @param value + * New value. + */ + void setValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const ET value) + { + CaretAssertMessage(m_sceneAssistant.getPointer(), "Failed to call initialize(defaultValue) for the enumerated type"); + + CaretAssertArrayIndex(m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + static_cast(displayGroup)); + if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + tabIndex); + m_tabValues[tabIndex] = value; + } + else { + m_displayGroupValues[displayGroup] = value; + } + } + + + /** + * Save information specific to this type of model to the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * saving the scene. + * + * @param instanceName + * Name of instance in the scene. + */ + virtual SceneClass* saveToScene(const SceneAttributes* sceneAttributes, + const AString& instanceName) + { + CaretAssertMessage(m_sceneAssistant.getPointer(), "Failed to call initialize(defaultValue) for the enumerated type"); + + SceneClass* sceneClass = new SceneClass(instanceName, + "DisplayPropertyDataEnum", + 1); + m_sceneAssistant->saveMembers(sceneAttributes, + sceneClass); + + return sceneClass; + } + + /** + * Restore information specific to the type of model from the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * restoring the scene. + * + * @param sceneClass + * sceneClass from which model specific information is obtained. + */ + virtual void restoreFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass) + { + CaretAssertMessage(m_sceneAssistant.getPointer(), "Failed to call initialize(defaultValue) for the enumerated type"); + + if (sceneClass == NULL) { + return; + } + + m_sceneAssistant->restoreMembers(sceneAttributes, + sceneClass); + } + + + + + + +// If there will be sub-classes of this class that need to save +// and restore data from scenes, these pure virtual methods can +// be uncommented to force their implementation by sub-classes. +// protected: +// virtual void saveSubClassDataToScene(const SceneAttributes* sceneAttributes, +// SceneClass* sceneClass) = 0; +// +// virtual void restoreSubClassDataFromScene(const SceneAttributes* sceneAttributes, +// const SceneClass* sceneClass) = 0; + + private: + DisplayPropertyDataEnum(const DisplayPropertyDataEnum& obj); + + DisplayPropertyDataEnum& operator=(const DisplayPropertyDataEnum& obj); + + CaretPointer m_sceneAssistant; + + ET m_displayGroupValues[DisplayGroupEnum::NUMBER_OF_GROUPS]; + + ET m_tabValues[BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS]; + + // ADD_NEW_MEMBERS_HERE + + }; + +#ifdef __DISPLAY_PROPERTY_DATA_ENUM_DECLARE__ + // +#endif // __DISPLAY_PROPERTY_DATA_ENUM_DECLARE__ + +} // namespace +#endif //__DISPLAY_PROPERTY_DATA_ENUM_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataFloat.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataFloat.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataFloat.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataFloat.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,207 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#define __DISPLAY_PROPERTY_DATA_FLOAT_DECLARE__ +#include "DisplayPropertyDataFloat.h" +#undef __DISPLAY_PROPERTY_DATA_FLOAT_DECLARE__ + +#include "CaretAssert.h" +#include "SceneClass.h" +#include "SceneClassAssistant.h" + +using namespace caret; + +/** + * \class caret::DisplayPropertyDataFloat + * \brief Float data for display property tab/display group + * \ingroup Brain + */ + +/** + * Constructor that initializes with the given default value. + * + * @param defaultValue + * Default data value. + */ +DisplayPropertyDataFloat::DisplayPropertyDataFloat(const float defaultValue) +: CaretObject() +{ + setAllValues(defaultValue); + + m_sceneAssistant = new SceneClassAssistant(); + m_sceneAssistant->addTabIndexedFloatArray("m_tabValues", + m_tabValues); + m_sceneAssistant->addArray("m_displayGroupValues", + m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + defaultValue); +} + +/** + * Destructor. + */ +DisplayPropertyDataFloat::~DisplayPropertyDataFloat() +{ + delete m_sceneAssistant; +} + +/** + * Copy the values from one tab to another. + * + * @param sourceTabIndex + * Index of tab from which values are copied. + * @param targetTabIndex + * Index of tab to which values are copied. + */ +void +DisplayPropertyDataFloat::copyValues(const int32_t sourceTabIndex, + const int32_t targetTabIndex) +{ + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + sourceTabIndex); + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + targetTabIndex); + + m_tabValues[targetTabIndex] = m_tabValues[sourceTabIndex]; +} + + +/** + * @return The data value. + * + * @param displayGroup + * Display group. + * @param tabIndex + * Tab index. + */ +float +DisplayPropertyDataFloat::getValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const +{ + CaretAssertArrayIndex(m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + static_cast(displayGroup)); + if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + tabIndex); + return m_tabValues[tabIndex]; + } + return m_displayGroupValues[displayGroup]; + +} + +/** + * Set all display groups and tabs to the given value. + * + * @param value + * The value. + */ +void +DisplayPropertyDataFloat::setAllValues(const float value) +{ + for (int32_t i = 0; i < BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS; i++) { + m_tabValues[i] = value; + } + + for (int32_t i = 0; i < DisplayGroupEnum::NUMBER_OF_GROUPS; i++) { + m_displayGroupValues[i] = value; + } +} + +/** + * Set the data value. + * + * @param displayGroup + * Display group. + * @param tabIndex + * Tab index. + * @param value + * New value. + */ +void +DisplayPropertyDataFloat::setValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value) +{ + CaretAssertArrayIndex(m_displayGroupValues, + DisplayGroupEnum::NUMBER_OF_GROUPS, + static_cast(displayGroup)); + if (displayGroup == DisplayGroupEnum::DISPLAY_GROUP_TAB) { + CaretAssertArrayIndex(m_tabValues, + BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS, + tabIndex); + m_tabValues[tabIndex] = value; + } + else { + m_displayGroupValues[displayGroup] = value; + } +} + +/** + * Save information specific to this type of model to the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * saving the scene. + * + * @param instanceName + * Name of instance in the scene. + */ +SceneClass* +DisplayPropertyDataFloat::saveToScene(const SceneAttributes* sceneAttributes, + const AString& instanceName) +{ + SceneClass* sceneClass = new SceneClass(instanceName, + "DisplayPropertyDataFloat", + 1); + m_sceneAssistant->saveMembers(sceneAttributes, + sceneClass); + + return sceneClass; +} + +/** + * Restore information specific to the type of model from the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * restoring the scene. + * + * @param sceneClass + * sceneClass from which model specific information is obtained. + */ +void +DisplayPropertyDataFloat::restoreFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass) +{ + if (sceneClass == NULL) { + return; + } + + m_sceneAssistant->restoreMembers(sceneAttributes, + sceneClass); +} + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataFloat.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataFloat.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/DisplayPropertyDataFloat.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/DisplayPropertyDataFloat.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,96 @@ +#ifndef __DISPLAY_PROPERTY_DATA_FLOAT_H__ +#define __DISPLAY_PROPERTY_DATA_FLOAT_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include "BrainConstants.h" +#include "CaretObject.h" +#include "DisplayGroupEnum.h" +#include "SceneableInterface.h" + + +namespace caret { + class SceneClassAssistant; + + class DisplayPropertyDataFloat : public CaretObject, public SceneableInterface { + + public: + DisplayPropertyDataFloat(const float defaultValue); + + virtual ~DisplayPropertyDataFloat(); + + void setAllValues(const float value); + + void copyValues(const int32_t sourceTabIndex, + const int32_t targetTabIndex); + + float getValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex) const; + + void setValue(const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + const float value); + + + // ADD_NEW_METHODS_HERE + + virtual SceneClass* saveToScene(const SceneAttributes* sceneAttributes, + const AString& instanceName); + + virtual void restoreFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass); + + + + + + +// If there will be sub-classes of this class that need to save +// and restore data from scenes, these pure virtual methods can +// be uncommented to force their implementation by sub-classes. +// protected: +// virtual void saveSubClassDataToScene(const SceneAttributes* sceneAttributes, +// SceneClass* sceneClass) = 0; +// +// virtual void restoreSubClassDataFromScene(const SceneAttributes* sceneAttributes, +// const SceneClass* sceneClass) = 0; + + private: + DisplayPropertyDataFloat(const DisplayPropertyDataFloat& obj); + + DisplayPropertyDataFloat& operator=(const DisplayPropertyDataFloat& obj); + + SceneClassAssistant* m_sceneAssistant; + + float m_displayGroupValues[DisplayGroupEnum::NUMBER_OF_GROUPS]; + + float m_tabValues[BrainConstants::MAXIMUM_NUMBER_OF_BROWSER_TABS]; + + // ADD_NEW_MEMBERS_HERE + + }; + +#ifdef __DISPLAY_PROPERTY_DATA_FLOAT_DECLARE__ + // +#endif // __DISPLAY_PROPERTY_DATA_FLOAT_DECLARE__ + +} // namespace +#endif //__DISPLAY_PROPERTY_DATA_FLOAT_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/IdentificationTextGenerator.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/IdentificationTextGenerator.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/IdentificationTextGenerator.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/IdentificationTextGenerator.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -1171,13 +1171,18 @@ const SelectionItemImage* idImage) const { if (idImage->isValid()) { - const AString text = ("Image " + AString text = ("Image " + idImage->getImageFile()->getFileNameNoPath() + " Pixel IJ (" + AString::number(idImage->getPixelI()) + "," + AString::number(idImage->getPixelJ()) + ")"); + + uint8_t pixelRGBA[4] = { 0, 0, 0, 0 }; + idImage->getPixelRGBA(pixelRGBA); + text.append(" RGBA (" + AString::fromNumbers(pixelRGBA, 4, ",") + ")"); + idText.addLine(false, text); } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/ImageDepthPositionEnum.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/ImageDepthPositionEnum.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/ImageDepthPositionEnum.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/ImageDepthPositionEnum.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,378 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include +#define __IMAGE_DEPTH_POSITION_ENUM_DECLARE__ +#include "ImageDepthPositionEnum.h" +#undef __IMAGE_DEPTH_POSITION_ENUM_DECLARE__ + +#include "CaretAssert.h" + +using namespace caret; + + +/** + * \class caret::ImageDepthPositionEnum + * \brief Depth position for images + * + * + * + * Using this enumerated type in the GUI with an EnumComboBoxTemplate + * + * Header File (.h) + * Forward declare the data type: + * class EnumComboBoxTemplate; + * + * Declare the member: + * EnumComboBoxTemplate* m_imageDepthPositionEnumComboBox; + * + * Declare a slot that is called when user changes selection + * private slots: + * void imageDepthPositionEnumComboBoxItemActivated(); + * + * Implementation File (.cxx) + * Include the header files + * #include "EnumComboBoxTemplate.h" + * #include "ImageDepthPositionEnum.h" + * + * Instatiate: + * m_imageDepthPositionEnumComboBox = new EnumComboBoxTemplate(this); + * m_imageDepthPositionEnumComboBox->setup(); + * + * Get notified when the user changes the selection: + * QObject::connect(m_imageDepthPositionEnumComboBox, SIGNAL(itemActivated()), + * this, SLOT(imageDepthPositionEnumComboBoxItemActivated())); + * + * Update the selection: + * m_imageDepthPositionEnumComboBox->setSelectedItem(NEW_VALUE); + * + * Read the selection: + * const ImageDepthPositionEnum::Enum VARIABLE = m_imageDepthPositionEnumComboBox->getSelectedItem(); + * + */ + +/** + * Constructor. + * + * @param enumValue + * An enumerated value. + * @param name + * Name of enumerated value. + * + * @param guiName + * User-friendly name for use in user-interface. + */ +ImageDepthPositionEnum::ImageDepthPositionEnum(const Enum enumValue, + const AString& name, + const AString& guiName) +{ + this->enumValue = enumValue; + this->integerCode = integerCodeCounter++; + this->name = name; + this->guiName = guiName; +} + +/** + * Destructor. + */ +ImageDepthPositionEnum::~ImageDepthPositionEnum() +{ +} + +/** + * Initialize the enumerated metadata. + */ +void +ImageDepthPositionEnum::initialize() +{ + if (initializedFlag) { + return; + } + initializedFlag = true; + + enumData.push_back(ImageDepthPositionEnum(BACK, + "BACK", + "Back")); + + enumData.push_back(ImageDepthPositionEnum(FRONT, + "FRONT", + "Front")); + + enumData.push_back(ImageDepthPositionEnum(MIDDLE, + "MIDDLE", + "Middle")); +} + +/** + * Find the data for and enumerated value. + * @param enumValue + * The enumerated value. + * @return Pointer to data for this enumerated type + * or NULL if no data for type or if type is invalid. + */ +const ImageDepthPositionEnum* +ImageDepthPositionEnum::findData(const Enum enumValue) +{ + if (initializedFlag == false) initialize(); + + size_t num = enumData.size(); + for (size_t i = 0; i < num; i++) { + const ImageDepthPositionEnum* d = &enumData[i]; + if (d->enumValue == enumValue) { + return d; + } + } + + return NULL; +} + +/** + * Get a string representation of the enumerated type. + * @param enumValue + * Enumerated value. + * @return + * String representing enumerated value. + */ +AString +ImageDepthPositionEnum::toName(Enum enumValue) { + if (initializedFlag == false) initialize(); + + const ImageDepthPositionEnum* enumInstance = findData(enumValue); + return enumInstance->name; +} + +/** + * Get an enumerated value corresponding to its name. + * @param name + * Name of enumerated value. + * @param isValidOut + * If not NULL, it is set indicating that a + * enum value exists for the input name. + * @return + * Enumerated value. + */ +ImageDepthPositionEnum::Enum +ImageDepthPositionEnum::fromName(const AString& name, bool* isValidOut) +{ + if (initializedFlag == false) initialize(); + + bool validFlag = false; + Enum enumValue = ImageDepthPositionEnum::enumData[0].enumValue; + + for (std::vector::iterator iter = enumData.begin(); + iter != enumData.end(); + iter++) { + const ImageDepthPositionEnum& d = *iter; + if (d.name == name) { + enumValue = d.enumValue; + validFlag = true; + break; + } + } + + if (isValidOut != 0) { + *isValidOut = validFlag; + } + else if (validFlag == false) { + CaretAssertMessage(0, AString("Name " + name + "failed to match enumerated value for type ImageDepthPositionEnum")); + } + return enumValue; +} + +/** + * Get a GUI string representation of the enumerated type. + * @param enumValue + * Enumerated value. + * @return + * String representing enumerated value. + */ +AString +ImageDepthPositionEnum::toGuiName(Enum enumValue) { + if (initializedFlag == false) initialize(); + + const ImageDepthPositionEnum* enumInstance = findData(enumValue); + return enumInstance->guiName; +} + +/** + * Get an enumerated value corresponding to its GUI name. + * @param s + * Name of enumerated value. + * @param isValidOut + * If not NULL, it is set indicating that a + * enum value exists for the input name. + * @return + * Enumerated value. + */ +ImageDepthPositionEnum::Enum +ImageDepthPositionEnum::fromGuiName(const AString& guiName, bool* isValidOut) +{ + if (initializedFlag == false) initialize(); + + bool validFlag = false; + Enum enumValue = ImageDepthPositionEnum::enumData[0].enumValue; + + for (std::vector::iterator iter = enumData.begin(); + iter != enumData.end(); + iter++) { + const ImageDepthPositionEnum& d = *iter; + if (d.guiName == guiName) { + enumValue = d.enumValue; + validFlag = true; + break; + } + } + + if (isValidOut != 0) { + *isValidOut = validFlag; + } + else if (validFlag == false) { + CaretAssertMessage(0, AString("guiName " + guiName + "failed to match enumerated value for type ImageDepthPositionEnum")); + } + return enumValue; +} + +/** + * Get the integer code for a data type. + * + * @return + * Integer code for data type. + */ +int32_t +ImageDepthPositionEnum::toIntegerCode(Enum enumValue) +{ + if (initializedFlag == false) initialize(); + const ImageDepthPositionEnum* enumInstance = findData(enumValue); + return enumInstance->integerCode; +} + +/** + * Find the data type corresponding to an integer code. + * + * @param integerCode + * Integer code for enum. + * @param isValidOut + * If not NULL, on exit isValidOut will indicate if + * integer code is valid. + * @return + * Enum for integer code. + */ +ImageDepthPositionEnum::Enum +ImageDepthPositionEnum::fromIntegerCode(const int32_t integerCode, bool* isValidOut) +{ + if (initializedFlag == false) initialize(); + + bool validFlag = false; + Enum enumValue = ImageDepthPositionEnum::enumData[0].enumValue; + + for (std::vector::iterator iter = enumData.begin(); + iter != enumData.end(); + iter++) { + const ImageDepthPositionEnum& enumInstance = *iter; + if (enumInstance.integerCode == integerCode) { + enumValue = enumInstance.enumValue; + validFlag = true; + break; + } + } + + if (isValidOut != 0) { + *isValidOut = validFlag; + } + else if (validFlag == false) { + CaretAssertMessage(0, AString("Integer code " + AString::number(integerCode) + "failed to match enumerated value for type ImageDepthPositionEnum")); + } + return enumValue; +} + +/** + * Get all of the enumerated type values. The values can be used + * as parameters to toXXX() methods to get associated metadata. + * + * @param allEnums + * A vector that is OUTPUT containing all of the enumerated values. + */ +void +ImageDepthPositionEnum::getAllEnums(std::vector& allEnums) +{ + if (initializedFlag == false) initialize(); + + allEnums.clear(); + + for (std::vector::iterator iter = enumData.begin(); + iter != enumData.end(); + iter++) { + allEnums.push_back(iter->enumValue); + } +} + +/** + * Get all of the names of the enumerated type values. + * + * @param allNames + * A vector that is OUTPUT containing all of the names of the enumerated values. + * @param isSorted + * If true, the names are sorted in alphabetical order. + */ +void +ImageDepthPositionEnum::getAllNames(std::vector& allNames, const bool isSorted) +{ + if (initializedFlag == false) initialize(); + + allNames.clear(); + + for (std::vector::iterator iter = enumData.begin(); + iter != enumData.end(); + iter++) { + allNames.push_back(ImageDepthPositionEnum::toName(iter->enumValue)); + } + + if (isSorted) { + std::sort(allNames.begin(), allNames.end()); + } +} + +/** + * Get all of the GUI names of the enumerated type values. + * + * @param allNames + * A vector that is OUTPUT containing all of the GUI names of the enumerated values. + * @param isSorted + * If true, the names are sorted in alphabetical order. + */ +void +ImageDepthPositionEnum::getAllGuiNames(std::vector& allGuiNames, const bool isSorted) +{ + if (initializedFlag == false) initialize(); + + allGuiNames.clear(); + + for (std::vector::iterator iter = enumData.begin(); + iter != enumData.end(); + iter++) { + allGuiNames.push_back(ImageDepthPositionEnum::toGuiName(iter->enumValue)); + } + + if (isSorted) { + std::sort(allGuiNames.begin(), allGuiNames.end()); + } +} + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/ImageDepthPositionEnum.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/ImageDepthPositionEnum.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/ImageDepthPositionEnum.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/ImageDepthPositionEnum.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,106 @@ +#ifndef __IMAGE_DEPTH_POSITION_ENUM_H__ +#define __IMAGE_DEPTH_POSITION_ENUM_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + + +#include +#include +#include "AString.h" + +namespace caret { + +class ImageDepthPositionEnum { + +public: + /** + * Enumerated values. + */ + enum Enum { + /** In back of models */ + BACK, + /** In front of models */ + FRONT, + /** In the middle of the models */ + MIDDLE + }; + + + ~ImageDepthPositionEnum(); + + static AString toName(Enum enumValue); + + static Enum fromName(const AString& name, bool* isValidOut); + + static AString toGuiName(Enum enumValue); + + static Enum fromGuiName(const AString& guiName, bool* isValidOut); + + static int32_t toIntegerCode(Enum enumValue); + + static Enum fromIntegerCode(const int32_t integerCode, bool* isValidOut); + + static void getAllEnums(std::vector& allEnums); + + static void getAllNames(std::vector& allNames, const bool isSorted); + + static void getAllGuiNames(std::vector& allGuiNames, const bool isSorted); + +private: + ImageDepthPositionEnum(const Enum enumValue, + const AString& name, + const AString& guiName); + + static const ImageDepthPositionEnum* findData(const Enum enumValue); + + /** Holds all instance of enum values and associated metadata */ + static std::vector enumData; + + /** Initialize instances that contain the enum values and metadata */ + static void initialize(); + + /** Indicates instance of enum values and metadata have been initialized */ + static bool initializedFlag; + + /** Auto generated integer codes */ + static int32_t integerCodeCounter; + + /** The enumerated type value for an instance */ + Enum enumValue; + + /** The integer code associated with an enumerated value */ + int32_t integerCode; + + /** The name, a text string that is identical to the enumerated value */ + AString name; + + /** A user-friendly name that is displayed in the GUI */ + AString guiName; +}; + +#ifdef __IMAGE_DEPTH_POSITION_ENUM_DECLARE__ +std::vector ImageDepthPositionEnum::enumData; +bool ImageDepthPositionEnum::initializedFlag = false; +int32_t ImageDepthPositionEnum::integerCodeCounter = 0; +#endif // __IMAGE_DEPTH_POSITION_ENUM_DECLARE__ + +} // namespace +#endif //__IMAGE_DEPTH_POSITION_ENUM_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemDataTypeEnum.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemDataTypeEnum.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemDataTypeEnum.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemDataTypeEnum.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -115,6 +115,10 @@ "IMAGE", "Image")); + enumData.push_back(SelectionItemDataTypeEnum(IMAGE_CONTROL_POINT, + "IMAGE_CONTROL_POINT", + "Image Control Point")); + enumData.push_back(SelectionItemDataTypeEnum(SURFACE_NODE, "SURFACE_NODE", "Surface Vertex")); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemDataTypeEnum.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemDataTypeEnum.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemDataTypeEnum.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemDataTypeEnum.h 2016-10-19 23:35:12.000000000 +0000 @@ -65,6 +65,8 @@ FOCUS_VOLUME, /* Image */ IMAGE, + /* Image Control Point */ + IMAGE_CONTROL_POINT, /** Surface Node*/ SURFACE_NODE, /** Surface Node Identification Symbol */ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImageControlPoint.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImageControlPoint.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImageControlPoint.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImageControlPoint.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,216 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#define __SELECTION_ITEM_IMAGE_CONTROL_POINT_DECLARE__ +#include "SelectionItemImageControlPoint.h" +#undef __SELECTION_ITEM_IMAGE_CONTROL_POINT_DECLARE__ + +#include "ControlPointFile.h" +#include "ImageFile.h" + +using namespace caret; + + + +/** + * \class SelectionItemImageControlPoint + * \brief Contains information about the selected control point. + */ +/** + * Constructor. + */ +SelectionItemImageControlPoint::SelectionItemImageControlPoint() +: SelectionItem(SelectionItemDataTypeEnum::IMAGE_CONTROL_POINT) +{ + m_imageFile = NULL; + m_controlPointFile = NULL; + m_controlPoint = NULL; + m_controlPointIndexInFile = -1; +} + +/** + * Destructor. + */ +SelectionItemImageControlPoint::~SelectionItemImageControlPoint() +{ +} + +/** + * Reset this selection item. + */ +void +SelectionItemImageControlPoint::reset() +{ + SelectionItem::reset(); + + m_imageFile = NULL; + m_controlPointFile = NULL; + m_controlPoint = NULL; + m_controlPointIndexInFile = -1; +} + +/** + * @return Is this selected item valid? + */ +bool +SelectionItemImageControlPoint::isValid() const +{ + if (m_imageFile == NULL) { + return false; + } + if (m_controlPointFile == NULL) { + return false; + } + if (m_controlPoint == NULL) { + return false; + } + if ((m_controlPointIndexInFile < 0) + || (m_controlPointIndexInFile >= m_controlPointFile->getNumberOfControlPoints())) { + return false; + } + + return true; +} + +/** + * @return Image File that was selected (NULL if not valid). + */ +const ImageFile* +SelectionItemImageControlPoint::getImageFile() const +{ + return m_imageFile; +} + +/** + * @return Image File that was selected (NULL if not valid). + */ +ImageFile* +SelectionItemImageControlPoint::getImageFile() +{ + return m_imageFile; +} + +/** + * Set the image file that was selected. + * + * @param imageFile + * Pointer to selected image file (NULL if not valid). + */ +void +SelectionItemImageControlPoint::setImageFile(ImageFile* imageFile) +{ + m_imageFile = imageFile; +} + +/** + * @return Control point that was selected (NULL if not valid). + */ +const ControlPointFile* +SelectionItemImageControlPoint::getControlPointFile() const +{ + return m_controlPointFile; +} + +/** + * @return Control point that was selected (NULL if not valid). + */ +ControlPointFile* +SelectionItemImageControlPoint::getControlPointFile() +{ + return m_controlPointFile; +} + +/** + * Set the control point file that was selected. + * + * @param controlPointFile + * Pointer to selected control point file (NULL if not valid). + */ +void +SelectionItemImageControlPoint::setControlPointFile(ControlPointFile* controlPointFile) +{ + m_controlPointFile = controlPointFile; +} + +/** + * @return Index of the control point in the control point file (negative if invalid) + */ +int32_t +SelectionItemImageControlPoint::getControlPointIndexInFile() const +{ + return m_controlPointIndexInFile; +} + +/** + * Set the index of the control point in the file. + * + * @param controlPointIndexInFile + * Index of the control point in the file. + */ +void +SelectionItemImageControlPoint::setControlPointIndexInFile(const int32_t controlPointIndexInFile) +{ + m_controlPointIndexInFile = controlPointIndexInFile; +} + +/** + * @return Pointer to the control point (NULL if invalid) + */ +ControlPoint3D* +SelectionItemImageControlPoint::getControlPoint() +{ + return m_controlPoint; +} + +/** + * @return Pointer to the control point (NULL if invalid) + */ +const ControlPoint3D* +SelectionItemImageControlPoint::getControlPoint() const +{ + return m_controlPoint; +} + +/** + * Set the control point. + * + * @param controlPoint + * Pointer to the control point. + */ +void +SelectionItemImageControlPoint::setControlPoint(ControlPoint3D* controlPoint) +{ + m_controlPoint = controlPoint; +} + +/** + * Get a description of m_ object's content. + * @return String describing m_ object's content. + */ +AString +SelectionItemImageControlPoint::toString() const +{ + AString text = SelectionItem::toString(); + text += ("ImageFile: " + ((m_imageFile != NULL) ? m_imageFile->getFileNameNoPath() : "INVALID") + "\n"); + text += ("ControlPointFile: " + ((m_imageFile != NULL) ? m_controlPointFile->getFileNameNoPath() : "INVALID") + "\n"); + text += ("Index in File: " + AString::number(m_controlPointIndexInFile) + "\n"); + return text; +} diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImageControlPoint.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImageControlPoint.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImageControlPoint.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImageControlPoint.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,87 @@ +#ifndef __SELECTION_ITEM_IMAGE_CONTROL_POINT_H_ +#define __SELECTION_ITEM_IMAGE_CONTROL_POINT_H_ + +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + + +#include "SelectionItem.h" + +namespace caret { + + class ControlPointFile; + class ControlPoint3D; + class ImageFile; + + class SelectionItemImageControlPoint : public SelectionItem { + + public: + SelectionItemImageControlPoint(); + + virtual ~SelectionItemImageControlPoint(); + + virtual bool isValid() const; + + ImageFile* getImageFile(); + + const ImageFile* getImageFile() const; + + void setImageFile(ImageFile* imageFile); + + ControlPointFile* getControlPointFile(); + + const ControlPointFile* getControlPointFile() const; + + void setControlPointFile(ControlPointFile* imageFile); + + int32_t getControlPointIndexInFile() const; + + void setControlPointIndexInFile(const int32_t controlPointIndexInFile); + + ControlPoint3D* getControlPoint(); + + const ControlPoint3D* getControlPoint() const; + + void setControlPoint(ControlPoint3D* controlPoint); + + virtual void reset(); + + virtual AString toString() const; + + private: + SelectionItemImageControlPoint(const SelectionItemImageControlPoint&); + + SelectionItemImageControlPoint& operator=(const SelectionItemImageControlPoint&); + + ImageFile* m_imageFile; + + ControlPointFile* m_controlPointFile; + + ControlPoint3D* m_controlPoint; + + int32_t m_controlPointIndexInFile; + }; + +#ifdef __SELECTION_ITEM_IMAGE_CONTROL_POINT_DECLARE__ + // +#endif // __SELECTION_ITEM_IMAGE_CONTROL_POINT_DECLARE__ + +} // namespace +#endif //__SELECTION_ITEM_IMAGE_CONTROL_POINT_H_ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImage.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImage.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImage.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImage.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -42,6 +42,10 @@ m_imageFile = NULL; m_pixelI = -1; m_pixelJ = -1; + m_pixelRGBA[0] = 0; + m_pixelRGBA[1] = 0; + m_pixelRGBA[2] = 0; + m_pixelRGBA[3] = 0; } /** @@ -94,6 +98,37 @@ } /** + * Get the pixel RGBA value. + * + * @param pixelRGBAOut + * Output containing pixel RGBA. + */ +void +SelectionItemImage::getPixelRGBA(uint8_t pixelRGBAOut[4]) const +{ + pixelRGBAOut[0] = m_pixelRGBA[0]; + pixelRGBAOut[1] = m_pixelRGBA[1]; + pixelRGBAOut[2] = m_pixelRGBA[2]; + pixelRGBAOut[3] = m_pixelRGBA[3]; +} + +/** + * Set the pixel RGBA value. + * + * @param pixelRGBA + * Pixel RGBA. + */ +void +SelectionItemImage::setPixelRGBA(const uint8_t pixelRGBA[4]) +{ + m_pixelRGBA[0] = pixelRGBA[0]; + m_pixelRGBA[1] = pixelRGBA[1]; + m_pixelRGBA[2] = pixelRGBA[2]; + m_pixelRGBA[3] = pixelRGBA[3]; +} + + +/** * Reset this selection item. */ void @@ -103,6 +138,10 @@ m_imageFile = NULL; m_pixelI = -1; m_pixelJ = -1; + m_pixelRGBA[0] = 0; + m_pixelRGBA[1] = 0; + m_pixelRGBA[2] = 0; + m_pixelRGBA[3] = 0; } /** diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImage.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImage.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionItemImage.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionItemImage.h 2016-10-19 23:35:12.000000000 +0000 @@ -51,6 +51,10 @@ void setPixelJ(const int32_t j); + void getPixelRGBA(uint8_t pixelRGBAOut[4]) const; + + void setPixelRGBA(const uint8_t pixelRGBA[4]); + virtual void reset(); virtual AString toString() const; @@ -65,6 +69,9 @@ int32_t m_pixelI; int32_t m_pixelJ; + + uint8_t m_pixelRGBA[4]; + }; #ifdef __SELECTION_ITEM_IMAGE_DECLARE__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionManager.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionManager.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionManager.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionManager.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -41,6 +41,7 @@ #include "SelectionItemFocusSurface.h" #include "SelectionItemFocusVolume.h" #include "SelectionItemImage.h" +#include "SelectionItemImageControlPoint.h" #include "SelectionItemSurfaceNode.h" #include "SelectionItemSurfaceNodeIdentificationSymbol.h" #include "SelectionItemSurfaceTriangle.h" @@ -76,6 +77,7 @@ m_surfaceFocusIdentification = new SelectionItemFocusSurface(); m_volumeFocusIdentification = new SelectionItemFocusVolume(); m_imageIdentification = new SelectionItemImage(); + m_imageControlPointIdentification = new SelectionItemImageControlPoint(); m_surfaceNodeIdentification = new SelectionItemSurfaceNode(); m_surfaceNodeIdentificationSymbol = new SelectionItemSurfaceNodeIdentificationSymbol(); m_surfaceTriangleIdentification = new SelectionItemSurfaceTriangle(); @@ -95,6 +97,7 @@ m_allSelectionItems.push_back(m_surfaceNodeIdentificationSymbol); m_allSelectionItems.push_back(m_surfaceTriangleIdentification); m_allSelectionItems.push_back(m_imageIdentification); + m_allSelectionItems.push_back(m_imageControlPointIdentification); m_allSelectionItems.push_back(m_voxelIdentification); m_allSelectionItems.push_back(m_voxelIdentificationSymbol); m_allSelectionItems.push_back(m_voxelEditingIdentification); @@ -144,6 +147,8 @@ m_surfaceFocusIdentification = NULL; delete m_imageIdentification; m_imageIdentification = NULL; + delete m_imageControlPointIdentification; + m_imageControlPointIdentification = NULL; delete m_surfaceNodeIdentification; m_surfaceNodeIdentification = NULL; delete m_surfaceNodeIdentificationSymbol; @@ -484,6 +489,24 @@ } /** + * @return Identification for image control point. + */ +SelectionItemImageControlPoint* +SelectionManager::getImageControlPointIdentification() +{ + return m_imageControlPointIdentification; +} + +/** + * @return Identification for image control point. + */ +const SelectionItemImageControlPoint* +SelectionManager::getImageControlPointIdentification() const +{ + return m_imageControlPointIdentification; +} + +/** * @return Identification for surface node. */ SelectionItemSurfaceNode* diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionManager.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionManager.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Brain/SelectionManager.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Brain/SelectionManager.h 2016-10-19 23:35:12.000000000 +0000 @@ -39,6 +39,7 @@ class SelectionItemFocusSurface; class SelectionItemFocusVolume; class SelectionItemImage; + class SelectionItemImageControlPoint; class SelectionItemSurfaceNode; class SelectionItemSurfaceNodeIdentificationSymbol; class SelectionItemSurfaceTriangle; @@ -79,6 +80,10 @@ const SelectionItemImage* getImageIdentification() const; + SelectionItemImageControlPoint* getImageControlPointIdentification(); + + const SelectionItemImageControlPoint* getImageControlPointIdentification() const; + SelectionItemSurfaceNode* getSurfaceNodeIdentification(); const SelectionItemSurfaceNode* getSurfaceNodeIdentification() const; @@ -180,6 +185,8 @@ SelectionItemImage* m_imageIdentification; + SelectionItemImageControlPoint* m_imageControlPointIdentification; + SelectionItemSurfaceNode* m_surfaceNodeIdentification; SelectionItemSurfaceNodeIdentificationSymbol* m_surfaceNodeIdentificationSymbol; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -184,6 +184,33 @@ ENDIF (NOT MSVC) # +# If GNU compiler, use SIMD-based dot computation, if possible +# +if (CMAKE_COMPILER_IS_GNUCC) + + # + # Define flag to avoid trying to compile SIMD stuff (coded for x86 only) + # + SET(WORKBENCH_USE_SIMD TRUE CACHE BOOL "try to compile with SIMD support") + + # + # If we should try to use SIMD, check whether cpuinfo compiles + # + IF (WORKBENCH_USE_SIMD) + TRY_COMPILE(CPUINFO_COMPILES ${CMAKE_CURRENT_BINARY_DIR}/cpuinfo_compile_test ${CMAKE_CURRENT_SOURCE_DIR}/kloewe/cpuinfo cpuinfo) + MESSAGE("CPUINFO_COMPILES: ${CPUINFO_COMPILES}") + ENDIF (WORKBENCH_USE_SIMD) + + # + # Add the necessary definition and include directory to enable the SIMD-based dot product implementations + # + if (WORKBENCH_USE_SIMD AND CPUINFO_COMPILES) + ADD_DEFINITIONS(-DCARET_DOTFCN) + INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/kloewe/dot/src) + endif() +endif() + +# # will set name of XCode project: # disabled at this time # @@ -394,14 +421,14 @@ IF (EXISTS $ENV{OSMESA_DIR}/include/GL/osmesa.h) MESSAGE("Have Mesa Include Directory") FIND_LIBRARY(OSMESA_LIBRARY_FOUND - NAMES libOSMesa.a libOSMesa.so OSMesa.lib OSMesa.dll - PATHS $ENV{OSMESA_DIR}/lib) + NAMES OSMesa + HINTS $ENV{OSMESA_DIR}/lib) FIND_LIBRARY(OSMESA_GL_LIBRARY_FOUND - NAMES libGL.a libGL.so - PATHS $ENV{OSMESA_DIR}/lib) + NAMES GL + HINTS $ENV{OSMESA_DIR}/lib) FIND_LIBRARY(OSMESA_GLU_LIBRARY_FOUND - NAMES libGLU.a libGLU.so - PATHS $ENV{OSMESA_DIR}/lib) + NAMES GLU + HINTS $ENV{OSMESA_DIR}/lib) MESSAGE("OSMesa lib: " ${OSMESA_LIBRARY}) IF (EXISTS ${OSMESA_LIBRARY_FOUND} AND EXISTS ${OSMESA_GL_LIBRARY_FOUND} AND EXISTS ${OSMESA_GLU_LIBRARY_FOUND}) SET(OSMESA_DEFINITION -DHAVE_OSMESA) @@ -462,20 +489,12 @@ ADD_SUBDIRECTORY ( Desktop ) ADD_SUBDIRECTORY ( CommandLine ) ADD_SUBDIRECTORY ( Tests ) +if (WORKBENCH_USE_SIMD AND CPUINFO_COMPILES) + ADD_SUBDIRECTORY ( kloewe/cpuinfo ) + ADD_SUBDIRECTORY ( kloewe/dot ) +ENDIF() # #CTest tests # ENABLE_TESTING() - -ADD_TEST(timer ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver timer) -ADD_TEST(progress ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver progress) -ADD_TEST(volumefile ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver volumefile) -#debian build machines don't have internet access -#ADD_TEST(http ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver http) -ADD_TEST(heap ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver heap) -ADD_TEST(pointer ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver pointer) -ADD_TEST(statistics ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver statistics) -ADD_TEST(quaternion ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver quaternion) -ADD_TEST(mathexpression ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver mathexpression) -ADD_TEST(lookup ${CMAKE_CURRENT_BINARY_DIR}/Tests/test_driver lookup) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/bashcomplete_wb_command connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/bashcomplete_wb_command --- connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/bashcomplete_wb_command 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/bashcomplete_wb_command 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,100 @@ +# bash completion for wb_command + +# Copyright (C) 2016 Washington University School of Medicine +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +#put this file in (or link to it from) /etc/bash_completion.d or copy contents to ~/.bash_completion + +function _wb_command() +{ + #debug must be "false" or "true", because it *executes* it (because i'm lazy) + local debug=false + COMPREPLY=() + #use bash-completion's hacks to deal with the word splitting we don't want + local cur words cword + #use only space for splitting + _get_comp_words_by_ref -n "'"'"><=;|&(:' cur words cword + #NOTE: cur has the partial word that is *before* the cursor, but words has the entire word under the cursor + #wb_command doesn't need to know what the current partial word is, it spits out space-separated glob patterns and the like + #but we will need it in compgen afterwards + local wbopts="" + if ! shopt -q extglob + then + #bash-completion enables extglob, but work around it if it isn't set + wbopts="-noextglob" + fi + #only give wb_command the options coming *before* the one to complete, not even the partial word to complete + #also don't include the executable name ${words[0]} + $debug && echo + $debug && echo "exe call: wb_command -completion $wbopts ${words[@]:1:$((cword - 1))}" + local exereplyraw=`wb_command -completion $wbopts "${words[@]:1:$((cword - 1))}" 2> /dev/null` + local exestatus=$? + if [[ $exestatus != 0 ]] + then + return 1 + fi + $debug && echo "exereplayraw: $exereplyraw" + #need to cause backslashes to escape spaces... + local -a exereply + IFS=' ' read -a exereply <<< "$exereplyraw" + $debug && echo "exereply: ${exereply[@]}" + for ((i = 0; i < ${#exereply[@]}; i += 2)) + do + $debug && echo "key: ${exereply[$i]}" + $debug && echo "value: ${exereply[$((i + 1))]}" + case "${exereply[$i]}" in + fileglob) + #bash_completion itself uses -f -X for file extension matching + #using -G requires manually adding $cur before the pattern + COMPREPLY+=(`compgen -f -X "!${exereply[$((i + 1))]}" -- "$cur"`) + ;; + wordlist) + #for the things accepted as bool, maybe other uses - happens to function like "option" for now + COMPREPLY+=(`compgen -W "${exereply[$((i + 1))]}" -- "$cur"`) + ;; + esac + done + $debug && echo "COMPREPLY: ${COMPREPLY[@]}" + return 0 +} + +complete -o filenames -o bashdefault -o default -F _wb_command wb_command + +#completion for wb_shortcuts - could be a separate file, but this is simpler + +function _wb_shortcuts () +{ + COMPREPLY=() + #use bash-completion's hacks to deal with the word splitting we don't want + #we can only complete the first word, so only get cur and cword + local cur cword + #use only space for splitting + _get_comp_words_by_ref -n "'"'"><=;|&(:' cur cword + if ((cword != 1)) + then + return 0 + fi + local -a switches + readarray -t switches < <(wb_shortcuts -list-functions | awk '{print $1}') + COMPREPLY=(`compgen -W "${switches[*]}" -- "$cur"`) +} + +complete -o filenames -o bashdefault -o default -F _wb_shortcuts wb_shortcuts diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -26,7 +26,7 @@ # # Resources # -QT4_ADD_RESOURCES(IMAGE_RCS_SRCS ../Resources/General/general_resources.qrc) +QT4_ADD_RESOURCES(IMAGE_RCS_SRCS ../Resources/GeneralResources/general_resources.qrc) # # Create the executable @@ -80,6 +80,7 @@ INSTALL(TARGETS ${EXE_NAME} DESTINATION bin) INSTALL(PROGRAMS wb_shortcuts DESTINATION bin) +INSTALL(PROGRAMS bashcomplete_wb_command DESTINATION /usr/share/bash-completion/completions RENAME wb_command) # # Find Headers diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/wb_command.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/wb_command.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/wb_command.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/wb_command.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -87,8 +87,42 @@ return ret; } +static int doCompletion(int argc, char* argv[]) +{ + //we don't handle any interactive arguments in this file (only completion related arguments, which should never be used interactively) + //so, just call completion on next level + ProgramParameters parameters(argc, argv); + caret_global_commandLine_init(parameters); + try { + parameters.nextString("-completion");//drop the completion switch + bool useExtGlob = true;//bash-completion turns on extglob by default, so it is usually safe + if (parameters.hasNext()) + { + if (parameters.nextString("test for option") == "-noextglob") + { + useExtGlob = false; + } else { + parameters.backup(); + } + } + CommandOperationManager* commandManager = CommandOperationManager::getCommandOperationManager(); + AString compHints = commandManager->doCompletion(parameters, useExtGlob); + cout << compHints.toLocal8Bit().constData() << endl; + } catch (...) { + return 1; + } + + return 0; +} + int main(int argc, char* argv[]) { srand(time(NULL)); + //short-circuit to avoid things like palette initialization so that command line completion can be more responsive + //also should be easier to avoid various logging statements, which we don't want (stderr would destroy the current prompt, and stdout would interfere with the completion output) + if (argc > 1 && AString::fromLocal8Bit(argv[1]) == "-completion") + { + return doCompletion(argc, argv); + } int result = 0; { /* diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/wb_shortcuts connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/wb_shortcuts --- connectome-workbench-1.2.3+git3-g7b83782/src/CommandLine/wb_shortcuts 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/CommandLine/wb_shortcuts 2016-10-19 23:35:12.000000000 +0000 @@ -25,7 +25,7 @@ global_cmd_line="$0 $*" global_script_name="wb_shortcuts" -global_script_version="beta-0.2" +global_script_version="beta-0.3" function version () { @@ -37,9 +37,10 @@ version echo echo "Information options:" - echo " -help display this help info" - echo " -version display version info" - echo " -list-functions show available functions" + echo " -help display this help info" + echo " -version display version info" + echo " -list-functions show available functions" + echo " -all-functions-help show all functions and their help info - VERY LONG" echo #wrap guide for 80 columns | echo "To get the help information of a function, run it without any additional" @@ -71,6 +72,9 @@ (-list-functions) list_functions ;; + (-all-functions-help) + all_functions_help + ;; (*) #magic switch matching and function name conversion happens in here do_operation "$@" @@ -107,7 +111,7 @@ global_descrip+=("$*") } -function switch_to_func_name +function switch_to_func_name () { printf '%s' "$1" | sed 's/^-//' | sed 's/-/_/g' } @@ -135,7 +139,7 @@ #wrap guide for 80 columns | echo " Additional input files may be specified after the mandatory input file." echo - exit 0 + return 0 fi if (($# < 2)) then @@ -169,7 +173,7 @@ echo " The -map option takes either a 1-based index or a map name, and causes" echo " the operation to use only one map from each input file." echo - exit 0 + return 0 fi local -a maparg if [[ "$1" == "-map" ]] @@ -188,7 +192,7 @@ local -a merge_arg_array for ((i = 2; i <= $#; ++i)) do - merge_arg_array+=("-cifti" "${!i}" "${maparg[@]}") + merge_arg_array+=("-cifti" "${!i}" ${maparg[@]+"${maparg[@]}"}) done wb_command -cifti-merge "$1" "${merge_arg_array[@]}" } @@ -212,7 +216,7 @@ echo " concatenates them. Additional input files may be specified after the" echo " mandatory input file." echo - exit 0 + return 0 fi local normalize=0 if [[ "$1" == "-normalize" ]] @@ -250,6 +254,77 @@ #let the exit hook clean up the normed temporaries, we're done } +create_function "-cifti-dlabel-split-cortex" "SEPARATE SURFACE LABELS INTO LEFT/RIGHT" +function cifti_dlabel_split_cortex () +{ + local function_switch="$1" + shift + if (($# < 1)) + then + echo "`switch_to_descrip $function_switch`" + echo " $global_script_name $function_switch" + echo " - input dlabel file" + echo " - output - output dlabel file" + echo + #wrap guide for 80 columns | + echo " For every label represented on left or right cortex, rename it with a" + echo " prefix of 'L_' or 'R_', and change the label values as needed to keep" + echo " the new names separate." + echo + return 0 + fi + if (($# != 2)) + then + error "function requires 2 arguments, $# provided" + fi + #to prevent it from also changing label keys in a multi-map dlabel (because gifti doesn't support label tables per-map), + #we need to loop through the columns + local i num_maps=`wb_command -file-information -only-number-of-maps "$1"` + local -a mergeargs + for ((i = 1; i <= num_maps; ++i)) + do + add_temporary_files "$2".temp$i.dlabel.nii "$2".temp$i.L.label.gii "$2".temp$i.R.label.gii "$2".temp$i.nii.gz + add_temporary_files "$2".temp$i.L.txt "$2".temp$i.R.txt "$2".temp$i.vol.txt + wb_command -cifti-merge "$2".temp$i.dlabel.nii -cifti "$1" -column $i + wb_command -cifti-separate "$2".temp$i.dlabel.nii COLUMN -label CORTEX_LEFT "$2".temp$i.L.label.gii -label CORTEX_RIGHT "$2".temp$i.R.label.gii -volume-all "$2".temp$i.nii.gz -crop + #these are temporary files and will be deleted regardless, go ahead and overwrite them + #LEFT + wb_command -gifti-label-add-prefix "$2".temp$i.L.label.gii L_ "$2".temp$i.L.label.gii + #need to remove the unused ones from the table so we don't get stupid overlaps + wb_command -label-export-table "$2".temp$i.L.label.gii "$2".temp$i.L.txt + #mute the warning from loading a label as a metric + wb_command -metric-label-import "$2".temp$i.L.label.gii \ + "$2".temp$i.L.txt \ + "$2".temp$i.L.label.gii \ + -drop-unused-labels 2> /dev/null + + #RIGHT + wb_command -gifti-label-add-prefix "$2".temp$i.R.label.gii R_ "$2".temp$i.R.label.gii + #need to remove the unused ones from the table so we don't get stupid overlaps + wb_command -label-export-table "$2".temp$i.R.label.gii "$2".temp$i.R.txt + #mute the warning from loading a label as a metric + wb_command -metric-label-import "$2".temp$i.R.label.gii \ + "$2".temp$i.R.txt \ + "$2".temp$i.R.label.gii \ + -drop-unused-labels 2> /dev/null + #VOLUME + #need to also remove unused labels from this, too + wb_command -volume-label-export-table "$2".temp$i.nii.gz 1 "$2".temp$i.vol.txt + #no warning to mute + wb_command -volume-label-import "$2".temp$i.nii.gz \ + "$2".temp$i.vol.txt \ + "$2".temp$i.nii.gz \ + -drop-unused-labels + + wb_command -cifti-create-dense-from-template "$2".temp$i.dlabel.nii "$2".temp$i.dlabel.nii -label CORTEX_LEFT "$2".temp$i.L.label.gii -label CORTEX_RIGHT "$2".temp$i.R.label.gii -volume-all "$2".temp$i.nii.gz -from-cropped + rm -f "$2".temp$i.L.label.gii "$2".temp$i.R.label.gii "$2".temp$i.nii.gz + rm -f "$2".temp$i.L.txt "$2".temp$i.R.txt "$2".temp$i.vol.txt + mergeargs+=(-cifti "$2".temp$i.dlabel.nii) + done + wb_command -cifti-merge "$2" "${mergeargs[@]}" + #let the cleanup function remove the intermediate cifti files +} + create_function "-command-help-search" "SEARCH WB_COMMAND HELP" function command_help_search () { @@ -259,15 +334,35 @@ then echo "`switch_to_descrip $function_switch`" echo " $global_script_name $function_switch" + echo " [-also-deprecated] - also search deprecated commands" echo " - grep pattern to search for" echo #wrap guide for 80 columns | echo " Searches for wb_command processing commands that contain the pattern." echo - exit 0 + return 0 fi local -a switches readarray -t switches < <(wb_command -list-commands | awk '{print $1}') + if [[ "$1" == "-also-deprecated" ]] + then + shift + local -a depswitches + readarray -t depswitches < <(wb_command -list-deprecated-commands | awk '{print $1}') + switches+=("${depswitches[@]}") + fi + #we could add a -- option to denote end of options, but then it would be harder to search for -- rather than for an option + if (($# < 1)) + then + error "function requires an argument" + fi + #requiring quotes when searching for a phrase is slightly inconvenient + #on the other hand, a phrase could get split across lines, so that is error prone anyway + #if (($# != 1)) + #then + # warning "more than one argument provided, check for unquoted spaces and spelling of options" + #fi + local i for ((i = 0; i < ${#switches[@]}; ++i)) do #use $* in case someone didn't quote, but keep it all in the pattern argument @@ -308,11 +403,11 @@ echo " both midthickness surfaces needed by the -area-surfs option of wb_command" echo " -metric-resample, -label-resample, and similar commands." echo - exit 0 + return 0 fi - if (($# < 7)) + if (($# != 7)) then - error "function requires 7 arguments" + error "function requires 7 arguments, $# provided" fi if [[ "$7" != *.surf.gii ]] then @@ -353,11 +448,11 @@ echo " The file should contain the ROI used as the mask, and should" echo " be in the desired brainordinate space." echo - exit 0 + return 0 fi - if (($# < 3)) + if (($# != 3)) then - error "function requires 3 arguments" + error "function requires 3 arguments, $# provided" fi #make temporaries based on the output file name add_temporary_files "$3.temp1-$$" "$3.temp2-$$" @@ -388,7 +483,7 @@ echo " The -map option takes either a 1-based index or a map name, and causes" echo " the operation to use only one map from each input file." echo - exit 0 + return 0 fi local -a maparg if [[ "$1" == "-map" ]] @@ -405,9 +500,10 @@ error "function requires 2 or more arguments" fi local -a merge_arg_array + local i for ((i = 2; i <= $#; ++i)) do - merge_arg_array+=("-label" "${!i}" "${maparg[@]}") + merge_arg_array+=("-label" "${!i}" ${maparg[@]+"${maparg[@]}"}) done wb_command -label-merge "$1" "${merge_arg_array[@]}" } @@ -432,7 +528,7 @@ echo " The -map option takes either a 1-based index or a map name, and causes" echo " the operation to use only one map from each input file." echo - exit 0 + return 0 fi local -a maparg if [[ "$1" == "-map" ]] @@ -449,9 +545,10 @@ error "function requires 2 or more arguments" fi local -a merge_arg_array + local i for ((i = 2; i <= $#; ++i)) do - merge_arg_array+=("-metric" "${!i}" "${maparg[@]}") + merge_arg_array+=("-metric" "${!i}" ${maparg[@]+"${maparg[@]}"}) done wb_command -metric-merge "$1" "${merge_arg_array[@]}" } @@ -472,13 +569,14 @@ #wrap guide for 80 columns | echo " Additional input files may be specified after the mandatory input file." echo - exit 0 + return 0 fi if (($# < 2)) then error "function requires 2 or more arguments" fi local -a merge_arg_array + local i for ((i = 2; i <= $#; ++i)) do merge_arg_array+=("-scene-file" "${!i}") @@ -506,7 +604,7 @@ echo " The -map option takes either a 1-based index or a map name, and causes" echo " the operation to use only one map from each input file." echo - exit 0 + return 0 fi local -a maparg if [[ "$1" == "-map" ]] @@ -523,9 +621,14 @@ error "function requires 2 or more arguments" fi local -a merge_arg_array + local i + #we INTENTIONALLY expand an empty array to 0 elements, but set -u doesn't like this, and there is no simple syntax to tell it to allow it + #so, use complicated syntax to tell it to allow it + #this syntax is apparently UNDOCUMENTED, but it came from stackoverflow, and it works, so it must be right + #http://stackoverflow.com/questions/7577052/bash-empty-array-expansion-with-set-u for ((i = 2; i <= $#; ++i)) do - merge_arg_array+=("-volume" "${!i}" "${maparg[@]}") + merge_arg_array+=("-volume" "${!i}" ${maparg[@]+"${maparg[@]}"}) done wb_command -volume-merge "$1" "${merge_arg_array[@]}" } @@ -534,12 +637,13 @@ function do_operation () { #use the existence of a short description to denote existence of the function + local i for ((i = 0; i < ${#global_switch[@]}; ++i)) do if [[ "${global_switch[$i]}" == "$1" ]] then `switch_to_func_name "$1"` "$@" - exit 0 + return $? fi done local maxlength=0 @@ -570,6 +674,7 @@ function switch_to_descrip () { #because we aren't using associative arrays, because mac's ancient bash + local i for ((i = 0; i < ${#global_switch[@]}; ++i)) do if [[ "${global_switch[$i]}" == "$1" ]] @@ -583,7 +688,7 @@ function list_functions () { - local maxlength=0 + local i maxlength=0 for ((i = 0; i < ${#global_switch[@]}; ++i)) do local thislength=`printf '%s' "${global_switch[$i]}" | wc -c` @@ -598,6 +703,16 @@ done | sort } +function all_functions_help () +{ + #assume that the commands all print their help info when given no additional arguments besides the command switch itself + local i + for ((i = 0; i < ${#global_switch[@]}; ++i)) + do + `switch_to_func_name "${global_switch[$i]}"` "${global_switch[$i]}" + done +} + function error () { echo >&2 @@ -609,8 +724,16 @@ exit 1 } +function warning () +{ + echo >&2 + echo "Warning: $*" >&2 + echo >&2 +} + function check_functions () { + local i for ((i = 0; i < ${#global_switch[@]}; ++i)) do local function_name=`switch_to_func_name "${global_switch[$i]}"` @@ -622,7 +745,7 @@ done } -declare -a global_temporary_files +global_temporary_files=() function add_temporary_files () { global_temporary_files+=("$@") @@ -634,7 +757,7 @@ #so first test if the array is empty if ((${#global_temporary_files[@]} > 0)) then - rm -f "${global_temporary_files[@]}" &> /dev/null + rm -f -- "${global_temporary_files[@]}" &> /dev/null fi } trap cleanup EXIT diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperation.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperation.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperation.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperation.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -73,6 +73,11 @@ { } +AString CommandOperation::doCompletion(ProgramParameters&, const bool&) +{ + return ""; +} + bool CommandOperation::takesParameters() { return true; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperation.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperation.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperation.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperation.h 2016-10-19 23:35:12.000000000 +0000 @@ -39,6 +39,8 @@ void execute(ProgramParameters& parameters, const bool& preventProvenance); + virtual AString doCompletion(ProgramParameters& parameters, const bool& useExtGlob); + protected: /** * Execute the operation. diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperationManager.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperationManager.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperationManager.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperationManager.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -43,6 +43,7 @@ #include "AlgorithmCiftiFindClusters.h" #include "AlgorithmCiftiGradient.h" #include "AlgorithmCiftiLabelAdjacency.h" +#include "AlgorithmCiftiLabelToBorder.h" #include "AlgorithmCiftiLabelToROI.h" #include "AlgorithmCiftiMergeDense.h" #include "AlgorithmCiftiMergeParcels.h" @@ -118,6 +119,7 @@ #include "AlgorithmVolumeFillHoles.h" #include "AlgorithmVolumeFindClusters.h" #include "AlgorithmVolumeGradient.h" +#include "AlgorithmVolumeLabelProbability.h" #include "AlgorithmVolumeLabelToROI.h" #include "AlgorithmVolumeLabelToSurfaceMapping.h" #include "AlgorithmVolumeParcelResampling.h" @@ -235,6 +237,7 @@ #include "ProgramParameters.h" #include "CaretLogger.h" +#include "dot_wrapper.h" #include "StructureEnum.h" #include @@ -294,6 +297,7 @@ this->commandOperations.push_back(new CommandParser(new AutoAlgorithmCiftiFindClusters())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmCiftiGradient())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmCiftiLabelAdjacency())); + this->commandOperations.push_back(new CommandParser(new AutoAlgorithmCiftiLabelToBorder())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmCiftiLabelToROI())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmCiftiMergeDense())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmCiftiMergeParcels())); @@ -370,6 +374,7 @@ this->commandOperations.push_back(new CommandParser(new AutoAlgorithmVolumeFillHoles())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmVolumeFindClusters())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmVolumeGradient())); + this->commandOperations.push_back(new CommandParser(new AutoAlgorithmVolumeLabelProbability())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmVolumeLabelToROI())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmVolumeLabelToSurfaceMapping())); this->commandOperations.push_back(new CommandParser(new AutoAlgorithmVolumeParcelResampling())); @@ -524,6 +529,17 @@ if (!valid) throw CommandException("unrecognized logging level: '" + globalOptionArgs[0] + "'"); CaretLogger::getLogger()->setLevel(level); } + if (getGlobalOption(parameters, "-simd", 1, globalOptionArgs)) + { + bool valid = false; + const DotSIMDEnum::Enum impl = DotSIMDEnum::fromName(globalOptionArgs[0], &valid); + if (!valid) throw CommandException("unrecognized SIMD type: '" + globalOptionArgs[0] + "'"); + DotSIMDEnum::Enum retval = dot_set_impl(impl); + if (impl != DOT_AUTO && retval != impl) + { + CaretLogWarning("SIMD type '" + DotSIMDEnum::toName(impl) + "' not supported (could be cpu, compiler, or build options), using '" + DotSIMDEnum::toName(retval) + "'"); + } + } const uint64_t numberOfCommands = this->commandOperations.size(); const uint64_t numberOfDeprecated = this->deprecatedOperations.size(); @@ -534,7 +550,7 @@ } AString commandSwitch; - commandSwitch = fixUnicode(parameters.nextString("Command Name")); + commandSwitch = fixUnicode(parameters.nextString("Command Name"), false); if (commandSwitch == "-help") { @@ -595,37 +611,137 @@ } } +AString CommandOperationManager::doCompletion(ProgramParameters& parameters, const bool& useExtGlob) +{ + AString ret; + vector globalOptionArgs; + /*OptionInfo provInfo = */parseGlobalOption(parameters, "-disable-provenance", 0, globalOptionArgs, true);//we need to at least strip out the global options for other parsing to work + OptionInfo loggingInfo = parseGlobalOption(parameters, "-logging", 1, globalOptionArgs, true);//the previous option doesn't take arguments, doesn't need completion testing + if (loggingInfo.specified && !loggingInfo.complete) + {//user is tab completing the logging option, and as it only takes one argument, we know what the completions are + vector logLevels; + LogLevelEnum::getAllEnums(logLevels); + ret = "wordlist "; + for (int i = 0; i < (int)logLevels.size(); ++i) + { + if (i != 0) ret += "\\ ";//backslash-escaped space to leave the list of levels as one word + ret += LogLevelEnum::toName(logLevels[i]); + } + return ret; + } + OptionInfo simdInfo = parseGlobalOption(parameters, "-simd", 1, globalOptionArgs, true);//the previous option doesn't take arguments, doesn't need completion testing + if (simdInfo.specified && !simdInfo.complete) + {//user is tab completing the logging option, and as it only takes one argument, we know what the completions are + vector simdTypes = DotSIMDEnum::getAllEnums(); + ret = "wordlist "; + for (int i = 0; i < (int)simdTypes.size(); ++i) + { + if (i != 0) ret += "\\ ";//backslash-escaped space to leave the list of levels as one word + ret += DotSIMDEnum::toName(simdTypes[i]); + } + return ret; + } + ret = "wordlist -disable-provenance\\ -logging\\ -simd";//we could prevent suggesting an already-provided global option, but that would be a bit surprising + const uint64_t numberOfCommands = this->commandOperations.size(); + const uint64_t numberOfDeprecated = this->deprecatedOperations.size(); + if (!parameters.hasNext()) + {//suggest all commands, including deprecated and informational (order doesn't matter, bash sorts them before displaying) + ret += "\\ -help\\ -arguments-help\\ -cifti-help\\ -gifti-help\\ -version\\ -list-commands\\ -list-deprecated-commands\\ -all-commands-help"; + for (uint64_t i = 0; i < numberOfCommands; i++) + { + ret += "\\ " + commandOperations[i]->getCommandLineSwitch(); + } + for (uint64_t i = 0; i < numberOfDeprecated; i++) + { + ret += "\\ " + deprecatedOperations[i]->getCommandLineSwitch(); + } + return ret; + } + //only processing commands take additional arguments, so we can now ignore -help and similar + AString commandSwitch; + commandSwitch = fixUnicode(parameters.nextString("Command Name"), true); + for (uint64_t i = 0; i < numberOfCommands; i++) + { + if (commandOperations[i]->getCommandLineSwitch() == commandSwitch) + { + AString commandCompletion = commandOperations[i]->doCompletion(parameters, useExtGlob); + if (commandCompletion != "") + { + if (ret != "") ret += " "; + ret += commandCompletion; + } + return ret; + } + } + for (uint64_t i = 0; i < numberOfDeprecated; i++) + { + if (deprecatedOperations[i]->getCommandLineSwitch() == commandSwitch) + { + AString commandCompletion = deprecatedOperations[i]->doCompletion(parameters, useExtGlob); + if (commandCompletion != "") + { + if (ret != "") ret += " "; + ret += commandCompletion; + } + return ret; + } + } + //if we get here, then the operation switch is wrong, or goes to an informational option + return ret; +} + bool CommandOperationManager::getGlobalOption(ProgramParameters& parameters, const AString& optionString, const int& numArgs, vector& arguments) { - parameters.setParameterIndex(0);//this ends up being slightly redundant, but whatever - while (parameters.hasNext())//shouldn't be many global options, so do it the simple way + OptionInfo retval = parseGlobalOption(parameters, optionString, numArgs, arguments, false); + if (retval.specified && !retval.complete) + { + throw CommandException("missing argument #" + AString::number(arguments.size() + 1) + " to global option "); + } + return retval.specified; +} + +CommandOperationManager::OptionInfo CommandOperationManager::parseGlobalOption(ProgramParameters& parameters, const AString& optionString, const int& numArgs, vector& arguments, const bool& quiet) +{ + OptionInfo ret;//initializes to false, false, -1 + int32_t initialIndex = parameters.getParameterIndex();//before returning, restore initial index - also, only search from current index onwards + while (parameters.hasNext()) { bool hyphenReplaced = false; AString testRaw = parameters.nextString("global option"); - AString test = testRaw.fixUnicodeHyphens(&hyphenReplaced); + AString test = testRaw.fixUnicodeHyphens(&hyphenReplaced, NULL, quiet); if (test == optionString) { - if (hyphenReplaced) + if (!quiet && hyphenReplaced) { CaretLogWarning("replaced non-ascii hyphen/dash characters in global option '" + testRaw + "' with ascii '-'"); + }//delay parameter removal until we know we have all arguments + if (!quiet && ret.specified) + { + CaretLogInfo("global option '" + optionString + "' specified multiple times"); } - parameters.remove(); arguments.clear(); + OptionInfo temp;//initializes to false, false, -1 + temp.specified = true; + temp.index = parameters.getParameterIndex() - 1;//the function actually reports the index of the next parameter for (int i = 0; i < numArgs; ++i) { if (!parameters.hasNext()) { - throw CommandException("missing argument #" + AString::number(i + 1) + " to global option '" + optionString + "'"); + return temp;//complete is still false - since this is a fatal parsing error, don't reset the parameter index } arguments.push_back(parameters.nextString("global option argument")); - parameters.remove(); } - parameters.setParameterIndex(0); - return true; + for (int i = 0; i < numArgs; ++i) + { + parameters.remove();//remove arguments + } + parameters.remove();//remove option switch + temp.complete = true; + ret = temp; } } - parameters.setParameterIndex(0); - return false; + parameters.setParameterIndex(initialIndex); + return ret; } /** @@ -794,6 +910,17 @@ iter++) { cout << " " << LogLevelEnum::toName(*iter) << endl; } + cout << endl;//add a line after the logging types for readability + //guide for wrap, assuming 80 columns: | + cout << " -simd set the SIMD implementation to use (currently" << endl; + cout << " used only for correlation, default AUTO which" << endl; + cout << " selects fastest supported), valid values are:" << endl; + vector simdTypes = DotSIMDEnum::getAllEnums(); + for (vector::iterator iter = simdTypes.begin(); + iter != simdTypes.end(); + iter++) { + cout << " " << DotSIMDEnum::toName(*iter) << endl; + } cout << endl; cout << "To get the help information of a processing subcommand, run it without any" << endl; cout << " additional arguments." << endl; @@ -979,15 +1106,15 @@ } } -AString CommandOperationManager::fixUnicode(const AString& input) +AString CommandOperationManager::fixUnicode(const AString& input, const bool& quiet) { bool hyphenReplaced = false, otherNonAscii = false; - AString ret = input.fixUnicodeHyphens(&hyphenReplaced, &otherNonAscii); + AString ret = input.fixUnicodeHyphens(&hyphenReplaced, &otherNonAscii, quiet); if (otherNonAscii) { throw CaretException("found non-ascii character in operation switch '" + input + "', but one that is not recognized as a dash/hyphen/minus"); } - if (hyphenReplaced) + if (!quiet && hyphenReplaced) { CaretLogWarning("replaced non-ascii hyphen/dash characters in operation switch '" + input + "' with ascii '-'"); } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperationManager.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperationManager.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandOperationManager.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandOperationManager.h 2016-10-19 23:35:12.000000000 +0000 @@ -44,6 +44,8 @@ void runCommand(ProgramParameters& parameters); + AString doCompletion(ProgramParameters& parameters, const bool& useExtGlob); + std::vector getCommandOperations(); private: @@ -73,7 +75,17 @@ bool getGlobalOption(ProgramParameters& parameters, const AString& optionString, const int& numArgs, std::vector& arguments); - static AString fixUnicode(const AString& input); + struct OptionInfo + { + bool specified; + bool complete; + int index;//only valid when complete is false, might not be needed + OptionInfo() { specified = false; complete = false; index = -1; } + }; + + OptionInfo parseGlobalOption(ProgramParameters& parameters, const AString& optionString, const int& numArgs, std::vector& arguments, const bool& quiet); + + static AString fixUnicode(const AString& input, const bool& quiet); private: std::vector commandOperations, deprecatedOperations; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandParser.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandParser.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandParser.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandParser.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -62,7 +62,6 @@ m_doProvenance = false; } - void CommandParser::executeOperation(ProgramParameters& parameters) { CaretPointer myAlgParams(m_autoOper->getParameters());//could be an autopointer, but this is safer @@ -100,9 +99,8 @@ } void CommandParser::parseComponent(ParameterComponent* myComponent, ProgramParameters& parameters, vector& outAssociation, bool debug) -{ - uint32_t i; - for (i = 0; i < myComponent->m_paramList.size(); ++i) +{//IMPORTANT: update completionComponent() and friends with any change to parsing logic + for (int i = 0; i < (int)myComponent->m_paramList.size(); ++i) { bool hyphenReplaced = false; //TSC: until someone complains, I say non-unicode dashes don't belong on the command line, EVER @@ -383,7 +381,7 @@ } } } - for (i = 0; i < myComponent->m_outputList.size(); ++i) + for (int i = 0; i < (int)myComponent->m_outputList.size(); ++i) {//parse the output options of this component bool hyphenReplaced = false; //TSC: until someone complains, I say non-unicode dashes don't belong on the command line, EVER @@ -534,6 +532,279 @@ } } +AString CommandParser::doCompletion(ProgramParameters& parameters, const bool& useExtGlob) +{ + CaretPointer myAlgParams(m_autoOper->getParameters());//could be an autopointer, but this is safer + CompletionInfo ret = completionComponent(myAlgParams.getPointer(), parameters, useExtGlob); + if (parameters.hasNext()) return "";//you're off the edge of the map, find the monsters yourself + return ret.completionHints; +} + +CommandParser::CompletionInfo CommandParser::completionComponent(ParameterComponent* myComponent, ProgramParameters& parameters, const bool& useExtGlob) +{ + CompletionInfo ret;//initializes complete to false + for (int i = 0; i < (int)myComponent->m_paramList.size(); ++i) + { + //a bit complicated... + //if there is no next parameter, obviously we should do completion based on current mandatory parameter + //if the next parameter starts with -, it must either be an option, numeric, or string + // if the option hasn't been completed, return its completion info + // *if the option is completed, but no parameters remain, need to add the mandatory argument completion to the returned completion info + // if parameters remain after the option is completed, restart the iteration in order to be able take another option immediately + if (parameters.hasNext()) + { + //TSC: until someone complains, I say non-unicode dashes don't belong on the command line, EVER + AString rawArg = parameters.nextString(myComponent->m_paramList[i]->m_shortName); + AString nextArg = rawArg.fixUnicodeHyphens(); + if (!nextArg.isEmpty() && nextArg[0] == '-') + { + CompletionInfo optionInfo = completionOption(nextArg, myComponent, parameters, useExtGlob); + if (!optionInfo.found) + { + switch (myComponent->m_paramList[i]->getType()) + { + case OperationParametersEnum::STRING: + case OperationParametersEnum::INT: + case OperationParametersEnum::DOUBLE: + break;//it is probably a negative number, so let it parse as one + default: + //NOTE: we know the command will fail to parse, now what? + break;//pretend it will parse as a filename, and continue? + }; + continue;//assume the parameter works in the given position and move on + } else {//specified option switch did match an option + if (!optionInfo.complete) + {//if the option's mandatory parameters weren't completed, don't add any completion from the current context, just pass the result through + return optionInfo; + } + if (!parameters.hasNext()) + {//save these hints, then let it proceed to the completion section + ret.completionHints = optionInfo.completionHints; + } else { + --i; + continue;//so skip trying to parse it as a required argument, and restart the loop on the same iteration + } + } + } else { + continue;//parameter is empty or doesn't start with -, assume it works fine + } + }//the above conditional does a continue unless we need to do completion now + switch (myComponent->m_paramList[i]->getType()) + { + case OperationParametersEnum::BOOL: + if (ret.completionHints != "") ret.completionHints += " "; + ret.completionHints += "wordlist true\\ TRUE\\ false\\ FALSE"; + break; + case OperationParametersEnum::BORDER: + if (ret.completionHints != "") ret.completionHints += " "; + if (useExtGlob) + { + ret.completionHints += "fileglob *.?(wb_)border"; + } else { + ret.completionHints += "fileglob *.border fileglob *.wb_border"; + } + break; + case OperationParametersEnum::CIFTI: + if (ret.completionHints != "") ret.completionHints += " "; + ret.completionHints += "fileglob *.*.nii";//cifti standard allows arbitrary secondary extensions, and volume files are nearly always .nii.gz anyway + break;//could restrict it if someone complains (maybe a preference) + case OperationParametersEnum::FOCI: + if (ret.completionHints != "") ret.completionHints += " "; + if (useExtGlob) + { + ret.completionHints += "fileglob *.?(wb_)foci"; + } else { + ret.completionHints += "fileglob *.foci fileglob *.wb_foci"; + } + break; + case OperationParametersEnum::LABEL://is there a caret5 extension for this gifti file type? + if (ret.completionHints != "") ret.completionHints += " "; + ret.completionHints += "fileglob *.label.gii"; + break; + case OperationParametersEnum::METRIC://include the caret5 extension that is often the same format + if (ret.completionHints != "") ret.completionHints += " "; + if (useExtGlob)//also allow label files for now, see if anyone complains (maybe a preference) + { + ret.completionHints += "fileglob *.@(@(func|shape|label).gii|metric)"; + } else { + ret.completionHints += "fileglob *.func.gii fileglob *.shape.gii fileglob *.metric fileglob *.label.gii"; + } + break; + case OperationParametersEnum::SURFACE: + if (ret.completionHints != "") ret.completionHints += " "; + ret.completionHints += "fileglob *.surf.gii"; + break; + case OperationParametersEnum::VOLUME: + if (ret.completionHints != "") ret.completionHints += " "; + if (useExtGlob) + {//special functionality - when we have extglob, we can exclude common cifti extensions + ret.completionHints += "fileglob !(*.dconn|*.dtseries|*.pconn|*.ptseries|*.dscalar|*.dlabel|*.pscalar|*.pdconn|*.dpconn|*.pconnseries|*.pconnscalar|*.plabel).nii?(.gz)"; + } else {//when we don't...sorry - maybe have a preference to exclude uncompressed nifti in this condition (not great either) + //if it is really a problem, we could introduce a "fileregexp" response type and do it manually with sed or grep + ret.completionHints += "fileglob *.nii.gz fileglob *.nii"; + } + break; + case OperationParametersEnum::STRING://for strings, since we use them for filenames sometimes, glob to filenames, I guess + if (ret.completionHints != "") ret.completionHints += " "; + ret.completionHints += "fileglob *"; + break; + case OperationParametersEnum::DOUBLE: + case OperationParametersEnum::INT: + //numeric types don't get any completion hints + break; + } + AString optionHints = completionOptionHints(myComponent, useExtGlob); + if (optionHints != "") + { + if (ret.completionHints != "") ret.completionHints += " "; + ret.completionHints += optionHints; + } + return ret; + } + for (int i = 0; i < (int)myComponent->m_outputList.size(); ++i) + {//parse the output options of this component + if (parameters.hasNext()) + { + //TSC: until someone complains, I say non-unicode dashes don't belong on the command line, EVER + AString rawArg = parameters.nextString(myComponent->m_paramList[i]->m_shortName); + AString nextArg = rawArg.fixUnicodeHyphens(); + if (!nextArg.isEmpty() && nextArg[0] == '-') + { + CompletionInfo optionInfo = completionOption(nextArg, myComponent, parameters, useExtGlob); + if (!optionInfo.found) + { + //NOTE: we know the command will fail to parse, now what? + continue;//pretend the parameter works in the given position and move on? + } else {//specified option switch did match an option + if (!optionInfo.complete) + {//if the option's mandatory parameters weren't completed, don't add any completion from the current context, just pass the result through + return optionInfo; + } + if (!parameters.hasNext()) + {//save these hints, then let it proceed to the completion section + ret.completionHints = optionInfo.completionHints; + } else { + --i; + continue;//so skip trying to parse it as a required argument, and restart the loop on the same iteration + } + } + } else { + continue;//parameter is empty or doesn't start with -, assume it works fine + } + }//the above conditional does a continue unless we need to do completion now + if (ret.completionHints != "") ret.completionHints += " "; + ret.completionHints += "fileglob *";//we are specifying an output file, so glob to everything so they can easily reuse names from other format files + AString optionHints = completionOptionHints(myComponent, useExtGlob); + if (optionHints != "") + { + ret.completionHints += " " + optionHints; + } + return ret; + } + CompletionInfo remainInfo = completionRemainingOptions(myComponent, parameters, useExtGlob);//returns last option parsed (so, the one to do completion on, if applicable) + if (remainInfo.found) + { + if (!remainInfo.complete) return remainInfo; + if (!parameters.hasNext()) + { + AString localOpts = completionOptionHints(myComponent, useExtGlob); + if (remainInfo.completionHints != "") remainInfo.completionHints += " "; + remainInfo.completionHints += localOpts; + return remainInfo; + } + } + ret.complete = true; + if (!parameters.hasNext())//no remaining options matched, but we are out of parameters, so fill in any options that could come next + { + ret.completionHints = completionOptionHints(myComponent, useExtGlob); + } + return ret; +} + +CommandParser::CompletionInfo CommandParser::completionOption(const AString& mySwitch, ParameterComponent* myComponent, ProgramParameters& parameters, const bool& useExtGlob) +{ + for (uint32_t i = 0; i < myComponent->m_optionList.size(); ++i) + { + if (mySwitch == myComponent->m_optionList[i]->m_optionSwitch) + { + if (myComponent->m_optionList[i]->m_present) + { + //NOTE: we know the parsing will fail here, now what? + //pretend it is repeatable and move on, I guess + } + myComponent->m_optionList[i]->m_present = true; + CompletionInfo optionInfo = completionComponent(myComponent->m_optionList[i], parameters, useExtGlob); + optionInfo.found = true; + return optionInfo; + } + } + for (uint32_t i = 0; i < myComponent->m_repeatableOptions.size(); ++i) + { + if (mySwitch == myComponent->m_repeatableOptions[i]->m_optionSwitch) + { + myComponent->m_repeatableOptions[i]->m_instances.push_back(new ParameterComponent(myComponent->m_repeatableOptions[i]->m_template)); + CompletionInfo optionInfo = completionComponent(myComponent->m_repeatableOptions[i]->m_instances.back(), parameters, useExtGlob); + optionInfo.found = true; + return optionInfo; + } + } + return CompletionInfo();//found initializes to false +} + +AString CommandParser::completionOptionHints(ParameterComponent* myComponent, const bool& /*useExtGlob*/) +{ + AString ret; + for (uint32_t i = 0; i < myComponent->m_optionList.size(); ++i) + { + if (!myComponent->m_optionList[i]->m_present) + {//don't suggest non-repeatable options we already have + if (ret == "") + { + ret = "wordlist "; + } else { + ret += "\\ "; + } + ret += myComponent->m_optionList[i]->m_optionSwitch; + } + } + for (uint32_t i = 0; i < myComponent->m_repeatableOptions.size(); ++i) + {//include all repeatable options + if (ret == "") + { + ret = "wordlist "; + } else { + ret += "\\ "; + } + ret += myComponent->m_repeatableOptions[i]->m_optionSwitch; + } + return ret; +} + +CommandParser::CompletionInfo CommandParser::completionRemainingOptions(ParameterComponent* myComponent, ProgramParameters& parameters, const bool& useExtGlob) +{//NOTE: completionComponent will complete the local options if needed when found is false + CompletionInfo prev; + while (parameters.hasNext()) + { + //TSC: until someone complains, I say non-unicode dashes don't belong on the command line, EVER + AString rawArg = parameters.nextString("option"); + AString nextArg = rawArg.fixUnicodeHyphens(); + if (!nextArg.isEmpty() && nextArg[0] == '-') + { + CompletionInfo temp = completionOption(nextArg, myComponent, parameters, useExtGlob); + if (!temp.found) + { + parameters.backup(); + return prev;//more things to parse, could return default constructed instead + } + prev = temp;//it was found, so update what we found + } else {//more things to parse, but they don't go here + parameters.backup(); + return CompletionInfo();//found initializes to false + } + } + return prev;//no parameters remain, return whatever was found +} + void CommandParser::provenanceBeforeOperation(const vector& outAssociation) { vector versionInfo;//need this for on-disk outputs, because we have to set it before the command executes diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandParser.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandParser.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Commands/CommandParser.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Commands/CommandParser.h 2016-10-19 23:35:12.000000000 +0000 @@ -44,6 +44,12 @@ AString m_fileName; AbstractParameter* m_param; }; + struct CompletionInfo + { + bool complete, found;//found is only used for options + AString completionHints;//only valid when hasNext returns false during the component + CompletionInfo() { complete = false; found = false; } + }; void parseComponent(ParameterComponent* myComponent, ProgramParameters& parameters, std::vector& outAssociation, bool debug = false); bool parseOption(const AString& mySwitch, ParameterComponent* myComponent, ProgramParameters& parameters, std::vector& outAssociation, bool debug); void parseRemainingOptions(ParameterComponent* myAlgParams, ProgramParameters& parameters, std::vector& outAssociation, bool debug); @@ -58,12 +64,16 @@ void addComponentDescriptions(AString& info, ParameterComponent* myComponent, int curIndent); void addOptionDescriptions(AString& info, ParameterComponent* myComponent, int curIndent); AString formatString(const AString& in, int curIndent, bool addIndent); - static AString fixUnicodeHyphens(const AString& input); + CompletionInfo completionComponent(ParameterComponent* myComponent, ProgramParameters& parameters, const bool& useExtGlob); + CompletionInfo completionOption(const AString& mySwitch, ParameterComponent* myComponent, ProgramParameters& parameters, const bool& useExtGlob); + AString completionOptionHints(ParameterComponent* myComponent, const bool& useExtGlob); + CompletionInfo completionRemainingOptions(ParameterComponent* myComponent, ProgramParameters& parameters, const bool& useExtGlob); public: CommandParser(AutoOperationInterface* myAutoOper); void disableProvenance(); void executeOperation(ProgramParameters& parameters); void showParsedOperation(ProgramParameters& parameters); + AString doCompletion(ProgramParameters& parameters, const bool& useExtGlob); AString getHelpInformation(const AString& programName); bool takesParameters(); }; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/AString.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/AString.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/AString.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/AString.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -745,7 +745,7 @@ return htmlString; } -AString AString::fixUnicodeHyphens(bool* hyphenReplaced, bool* hadOtherNonAscii) const +AString AString::fixUnicodeHyphens(bool* hyphenReplaced, bool* hadOtherNonAscii, const bool& quiet) const { AString ret = this->normalized(QString::NormalizationForm_C);//first, normalize multi-char forms to their combined equivalents, etc, tons of nasties for (int i = 0; i < ret.length(); ++i) @@ -759,11 +759,11 @@ charCode == 65123 || //small hyphen-minus charCode == 65293)// { - CaretLogFine("character code " + AString::number(charCode) + " replaced with ascii dash"); + if (!quiet) CaretLogFine("character code " + AString::number(charCode) + " replaced with ascii dash"); ret[i] = '-'; if (hyphenReplaced != NULL) *hyphenReplaced = true; } else {//other stuff - CaretLogInfo("non-ascii character code " + AString::number(charCode) + " not recognized as dash/hyphen/minus"); + if (!quiet) CaretLogInfo("non-ascii character code " + AString::number(charCode) + " not recognized as dash/hyphen/minus"); if (hadOtherNonAscii != NULL) *hadOtherNonAscii = true; } } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/AString.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/AString.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/AString.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/AString.h 2016-10-19 23:35:12.000000000 +0000 @@ -130,7 +130,7 @@ AString replaceHtmlSpecialCharactersWithEscapeCharacters() const; - AString fixUnicodeHyphens(bool* hyphenReplaced = NULL, bool* hadOtherNonAscii = NULL) const; + AString fixUnicodeHyphens(bool* hyphenReplaced = NULL, bool* hadOtherNonAscii = NULL, const bool& quiet = false) const; }; } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -60,7 +60,6 @@ CaretTemporaryFile.h CaretUndoCommand.h CaretUndoStack.h -ControlPoint3D.h CubicSpline.h DataCompressZLib.h DataFile.h @@ -161,7 +160,6 @@ CaretTemporaryFile.cxx CaretUndoCommand.cxx CaretUndoStack.cxx -ControlPoint3D.cxx CubicSpline.cxx DataCompressZLib.cxx DataFile.cxx @@ -258,3 +256,10 @@ COMMENT "No repository found, setting commit info to 'unknown'. Reconfigure to look for the repository again." ) ENDIF(EXISTS ${GIT_REPOSITORY}) + +# +# Conditionally link the dot library to use the SIMD-based dot product implementation +# +IF (WORKBENCH_USE_SIMD AND CPUINFO_COMPILES) + TARGET_LINK_LIBRARIES(Common dot) +ENDIF() diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/ControlPoint3D.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/ControlPoint3D.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/ControlPoint3D.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/ControlPoint3D.cxx 1970-01-01 00:00:00.000000000 +0000 @@ -1,303 +0,0 @@ - -/*LICENSE_START*/ -/* - * Copyright (C) 2016 Washington University School of Medicine - * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/*LICENSE_END*/ - -#define __CONTROL_POINT3_D_DECLARE__ -#include "ControlPoint3D.h" -#undef __CONTROL_POINT3_D_DECLARE__ - -#include "CaretAssert.h" -#include "CaretLogger.h" -#include "MathFunctions.h" - -using namespace caret; - - - -/** - * \class caret::ControlPoint3D - * \brief 3D control point with source and target coordinates. - * \ingroup Common - */ - -/** - * Constructor. - * - * @param sourceXYZ - * The source coordinate. - * @param targetXYZ - * The target coordinate. - */ -ControlPoint3D::ControlPoint3D(const float sourceXYZ[3], - const float targetXYZ[3]) -: CaretObject(), -m_sourceX(sourceXYZ[0]), -m_sourceY(sourceXYZ[1]), -m_sourceZ(sourceXYZ[2]), -m_targetX(targetXYZ[0]), -m_targetY(targetXYZ[1]), -m_targetZ(targetXYZ[2]) -{ - -} - -/** - * Constructor. - * - * @param sourceX - * The source X-coordinate. - * @param sourceY - * The source Y-coordinate. - * @param sourceZ - * The source Z-coordinate. - * @param targetX - * The target X-coordinate. - * @param targetY - * The target Y-coordinate. - * @param targetZ - * The target Z-coordinate. - */ -ControlPoint3D::ControlPoint3D(const float sourceX, - const float sourceY, - const float sourceZ, - const float targetX, - const float targetY, - const float targetZ) -: CaretObject(), -m_sourceX(sourceX), -m_sourceY(sourceY), -m_sourceZ(sourceZ), -m_targetX(targetX), -m_targetY(targetY), -m_targetZ(targetZ) -{ - -} - - -/** - * Destructor. - */ -ControlPoint3D::~ControlPoint3D() -{ -} - -/** - * Copy constructor. - * @param obj - * Object that is copied. - */ -ControlPoint3D::ControlPoint3D(const ControlPoint3D& obj) -: CaretObject(obj) -{ - this->copyHelperControlPoint3D(obj); -} - -/** - * Assignment operator. - * @param obj - * Data copied from obj to this. - * @return - * Reference to this object. - */ -ControlPoint3D& -ControlPoint3D::operator=(const ControlPoint3D& obj) -{ - if (this != &obj) { - CaretObject::operator=(obj); - this->copyHelperControlPoint3D(obj); - } - return *this; -} - -/** - * Helps with copying an object of this type. - * @param obj - * Object that is copied. - */ -void -ControlPoint3D::copyHelperControlPoint3D(const ControlPoint3D& obj) -{ - m_sourceX = obj.m_sourceX; - m_sourceY = obj.m_sourceY; - m_sourceZ = obj.m_sourceZ; - - m_targetX = obj.m_targetX; - m_targetY = obj.m_targetY; - m_targetZ = obj.m_targetZ; -} - -/** - * Get the source coordinate. - * - * @param pt - * Output with source coordinate. - */ -void -ControlPoint3D::getSource(double pt[3]) const -{ - pt[0] = m_sourceX; - pt[1] = m_sourceY; - pt[2] = m_sourceZ; -} - -/** - * Get the target coordinate. - * - * @param pt - * Output with target coordinate. - */ -void -ControlPoint3D::getTarget(double pt[3]) const -{ - pt[0] = m_targetX; - pt[1] = m_targetY; - pt[2] = m_targetZ; -} - -/** - * Get the source coordinate. - * - * @param pt - * Output with source coordinate. - */ -void -ControlPoint3D::getSource(float pt[3]) const -{ - pt[0] = m_sourceX; - pt[1] = m_sourceY; - pt[2] = m_sourceZ; -} - -/** - * Get the target coordinate. - * - * @param pt - * Output with target coordinate. - */ -void -ControlPoint3D::getTarget(float pt[3]) const -{ - pt[0] = m_targetX; - pt[1] = m_targetY; - pt[2] = m_targetZ; -} - -/** - * @return The source X-coordinate - */ -float -ControlPoint3D::getSourceX() const -{ - return m_sourceX; -} - -/** - * @return The source Y-coordinate - */ -float ControlPoint3D::getSourceY() const -{ - return m_sourceY; -} - -/** - * @return The source Z-coordinate - */ -float ControlPoint3D::getSourceZ() const -{ - return m_sourceZ; -} - -/** - * @return The target X-coordinate - */ -float ControlPoint3D::getTargetX() const -{ - return m_targetX; -} - -/** - * @return The target Y-coordinate - */ -float ControlPoint3D::getTargetY() const -{ - return m_targetY; -} - -/** @return - * The target Z-coordinate - */ -float ControlPoint3D::getTargetZ() const -{ - return m_targetZ; -} - -/** - * @return String containing control point coordinates. - */ -AString -ControlPoint3D::toString() const -{ - const AString s("Source: (" - + AString::number(m_sourceX) - + ", " + AString::number(m_sourceY) - + ", " + AString::number(m_sourceZ) - + ") Target: (" - + AString::number(m_targetX) - + ", " + AString::number(m_targetY) - + ", " + AString::number(m_targetZ) - + ")"); - return s; -} - - -/** - * Get the normal vector for the source coordinates of the first three - * control points. If there are less than three control points, - * a unit vector is returned. - * - * @param controlPoints - * The control points. - * @param sourceNormalVectorOut - * Output unit normal vector for source points. - */ -void -ControlPoint3D::getSourceNormalVector(const std::vector& controlPoints, - float sourceNormalVectorOut[3]) -{ - if (controlPoints.size() < 3) { - sourceNormalVectorOut[0] = 0.0; - sourceNormalVectorOut[1] = 0.0; - sourceNormalVectorOut[2] = 1.0; - CaretLogSevere("Cannot compute normal vector for fewer than three control points."); - } - - CaretAssertVectorIndex(controlPoints, 2); - - float s1[3]; - controlPoints[0].getSource(s1); - float s2[3]; - controlPoints[1].getSource(s2); - float s3[3]; - controlPoints[2].getSource(s3); - MathFunctions::normalVector(s1, s2, s3, sourceNormalVectorOut); -} - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/ControlPoint3D.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/ControlPoint3D.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/ControlPoint3D.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/ControlPoint3D.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ -#ifndef __CONTROL_POINT3_D_H__ -#define __CONTROL_POINT3_D_H__ - -/*LICENSE_START*/ -/* - * Copyright (C) 2016 Washington University School of Medicine - * - * 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; either version 2 of the License, or - * (at your option) any later version. - * - * 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, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ -/*LICENSE_END*/ - - -#include "CaretObject.h" - - - -namespace caret { - - class ControlPoint3D : public CaretObject { - - public: - ControlPoint3D(const float sourceXYZ[3], - const float targetXYZ[3]); - - ControlPoint3D(const float sourceX, - const float sourceY, - const float sourceZ, - const float targetX, - const float targetY, - const float targetZ); - - virtual ~ControlPoint3D(); - - ControlPoint3D(const ControlPoint3D& obj); - - ControlPoint3D& operator=(const ControlPoint3D& obj); - - void getSource(double pt[3]) const; - - void getTarget(double pt[3]) const; - - void getSource(float pt[3]) const; - - void getTarget(float pt[3]) const; - - float getSourceX() const; - - float getSourceY() const; - - float getSourceZ() const; - - float getTargetX() const; - - float getTargetY() const; - - float getTargetZ() const; - - virtual AString toString() const; - - static void getSourceNormalVector(const std::vector& controlPoints, - float sourceNormalVectorOut[3]); - - // ADD_NEW_METHODS_HERE - - private: - void copyHelperControlPoint3D(const ControlPoint3D& obj); - - // ADD_NEW_MEMBERS_HERE - - float m_sourceX; - - float m_sourceY; - - float m_sourceZ; - - float m_targetX; - - float m_targetY; - - float m_targetZ; - }; - -#ifdef __CONTROL_POINT3_D_DECLARE__ - // -#endif // __CONTROL_POINT3_D_DECLARE__ - -} // namespace -#endif //__CONTROL_POINT3_D_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/DataFileTypeEnum.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/DataFileTypeEnum.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/DataFileTypeEnum.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/DataFileTypeEnum.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -61,7 +61,8 @@ const bool fileIsUsedWithOneStructure, const AString& fileExtensionOne, const AString& fileExtensionTwo, - const AString& fileExtensionThree) + const AString& fileExtensionThree, + const AString& fileExtensionFour) { this->enumValue = enumValue; this->integerCode = DataFileTypeEnum::integerCodeGenerator++; @@ -79,6 +80,9 @@ if (fileExtensionThree.isEmpty() == false) { this->fileExtensions.push_back(fileExtensionThree); } + if (fileExtensionFour.isEmpty() == false) { + this->fileExtensions.push_back(fileExtensionFour); + } AString filterText = this->guiName + " Files ("; @@ -241,6 +245,8 @@ "Image", "IMAGE", false, + "jpg", + "jpeg", "png", "ppm")); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/DataFileTypeEnum.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/DataFileTypeEnum.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/DataFileTypeEnum.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/DataFileTypeEnum.h 2016-10-19 23:35:12.000000000 +0000 @@ -157,7 +157,8 @@ const bool fileIsUsedWithOneStructure, const AString& fileExtensionOne, const AString& fileExtensionTwo = "", - const AString& fileExtensionThree = ""); + const AString& fileExtensionThree = "", + const AString& fileExtensionFour = ""); static const DataFileTypeEnum* findData(const Enum enumValue); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/dot_wrapper.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/dot_wrapper.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/dot_wrapper.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/dot_wrapper.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,122 @@ +#ifndef DOT_WRAPPER_H +#define DOT_WRAPPER_H + +//workbench is strictly c++, so we don't actually need ifdef guards on this +//we also don't expose any libraries, so it doesn't really matter whether it switches to c++ name mangling when we disable SIMD +//but hey, whatever +#ifdef __cplusplus +extern "C" +{ +#endif + +#ifdef _WIN32 +#define inline __inline +#endif + +#ifdef CARET_DOTFCN +#include "dot.h" +#else +inline double sddot (const float *a, const float *b, int n) +{ + double sum = 0; + for (int k = 0; k < n; k++) + sum += a[k] * b[k]; + return sum; +} // sddot() +//copy enum from dot.h +//renamed to dot_flags in both files for less conflict chance +typedef enum { + DOT_NAIVE = 1, + DOT_SSE2 = 2, + DOT_AVX = 3, + DOT_AVXFMA = 4, + DOT_AUTO = 100 +} dot_flags; +//and dummy implementation of dot_set_impl +inline dot_flags dot_set_impl (dot_flags) +{ + return DOT_NAIVE; +} +#endif + +#ifdef __cplusplus +} +#endif + +//convenience helpers for the enum +#include "AString.h" +#include "CaretAssert.h" + +#include + +namespace caret +{ + class DotSIMDEnum + { + public: + typedef dot_flags Enum; + + static inline std::vector getAllEnums() + { + std::vector ret; + ret.push_back(DOT_NAIVE); + ret.push_back(DOT_SSE2); + ret.push_back(DOT_AVX); + ret.push_back(DOT_AVXFMA); + ret.push_back(DOT_AUTO); + return ret; + } + + static inline Enum fromName(const AString& name, bool* isValidOut = NULL) + { + bool valid = false; + Enum ret = DOT_NAIVE; + if (name == "NAIVE") + { + ret = DOT_NAIVE; + valid = true; + } else if (name == "SSE2") { + ret = DOT_SSE2; + valid = true; + } else if (name == "AVX") { + ret = DOT_AVX; + valid = true; + } else if (name == "AVXFMA") { + ret = DOT_AVXFMA; + valid = true; + } else if (name == "AUTO") { + ret = DOT_AUTO; + valid = true; + } + if (isValidOut == NULL) + { + CaretAssert(valid); + } else { + *isValidOut = valid; + } + return ret; + } + + static inline AString toName(const Enum& value) + { + switch (value) + { + case DOT_NAIVE: + return "NAIVE"; + case DOT_SSE2: + return "SSE2"; + case DOT_AVX: + return "AVX"; + case DOT_AVXFMA: + return "AVXFMA"; + case DOT_AUTO: + return "AUTO"; + default: + CaretAssert(0); + } + return ""; + } + }; +} + +#endif diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/NumericTextFormatting.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/NumericTextFormatting.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/NumericTextFormatting.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/NumericTextFormatting.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -104,13 +104,16 @@ * If there is a leading zero in the exponent, remove it * to save space (-2.1e+03 => -2.1e+3) * + * @param numericFormat + * How to format the numbers when converted to text. * @param textValueIn * Text representation of the value. * @reutrn * Value after cleanup of zeros. */ AString -NumericTextFormatting::removeLeadingZeroFromExponent(const AString& textValueIn) +NumericTextFormatting::removeLeadingZeroFromExponent(const NumericFormatModeEnum::Enum numericFormat, + const AString& textValueIn) { AString textValue = textValueIn; @@ -134,10 +137,18 @@ AString mantissaText = textValue.left(eIndex); AString exponentText = textValue.mid(eIndex + 2); - /* - * Remove trailing zeros from mantissa - */ - mantissaText = cleanZerosInValueText(mantissaText); + switch (numericFormat) { + case NumericFormatModeEnum::AUTO: + /* + * Remove trailing zeros from mantissa + */ + mantissaText = cleanZerosInValueText(mantissaText); + break; + case NumericFormatModeEnum::DECIMAL: + break; + case NumericFormatModeEnum::SCIENTIFIC: + break; + } /* * Remove leading zeros from exponent and @@ -173,6 +184,8 @@ /** * Format a number for display. * + * @param numericFormat + * How to format the numbers when converted to text. * @param value * The value for formatting. * @param format @@ -185,7 +198,8 @@ * Text representation of number with formatting applied. */ AString -NumericTextFormatting::formatNumberForDisplay(const double value, +NumericTextFormatting::formatNumberForDisplay(const NumericFormatModeEnum::Enum numericFormat, + const double value, const char format, const int fieldWidth, const int precision) @@ -211,7 +225,8 @@ format, precision); - numberValue = removeLeadingZeroFromExponent(numberValue); + numberValue = removeLeadingZeroFromExponent(numericFormat, + numberValue); AString textValue; if (value < 0.0) { @@ -220,7 +235,15 @@ textValue += numberValue; if ( ! textValue.contains('e')) { - textValue = cleanZerosInValueText(textValue); + switch (numericFormat) { + case NumericFormatModeEnum::AUTO: + textValue = cleanZerosInValueText(textValue); + break; + case NumericFormatModeEnum::DECIMAL: + break; + case NumericFormatModeEnum::SCIENTIFIC: + break; + } } return textValue; @@ -339,7 +362,8 @@ for (int32_t i = 0; i < numberOfValues; i++) { const double value = valuesIn[i]; - AString textValue = formatNumberForDisplay(value, + AString textValue = formatNumberForDisplay(numericFormat, + value, format, FIELD_WIDTH, precision); @@ -418,7 +442,8 @@ const int FIELD_WIDTH = 0; - AString textValue = formatNumberForDisplay(value, + AString textValue = formatNumberForDisplay(NumericFormatModeEnum::AUTO, + value, format, FIELD_WIDTH, precision); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Common/NumericTextFormatting.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/NumericTextFormatting.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Common/NumericTextFormatting.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Common/NumericTextFormatting.h 2016-10-19 23:35:12.000000000 +0000 @@ -62,9 +62,11 @@ static AString cleanZerosInValueText(const AString& textValueIn); - static AString removeLeadingZeroFromExponent(const AString& textValueIn); + static AString removeLeadingZeroFromExponent(const NumericFormatModeEnum::Enum numericFormat, + const AString& textValueIn); - static AString formatNumberForDisplay(const double value, + static AString formatNumberForDisplay(const NumericFormatModeEnum::Enum numericFormat, + const double value, const char format, const int fieldWidth, const int precision); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/debian/copyright connectome-workbench-1.2.3+git41-gc4c6c90/src/debian/copyright --- connectome-workbench-1.2.3+git3-g7b83782/src/debian/copyright 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/debian/copyright 2016-10-19 23:35:12.000000000 +0000 @@ -3,13 +3,17 @@ Source: http://www.humanconnectome.org/software/get-connectome-workbench.html Files: * -Copyright: 2014-2015 Washington University School of Medicine +Copyright: 2014-2016 Washington University School of Medicine License: GPL-2+ -Files: src/Files/SurfaceResamplingHelper.cxx src/Cifti/examples/* src/CommandLine/wb_shortcuts +Files: src/Files/SurfaceResamplingHelper.cxx src/Cifti/examples/* src/CommandLine/wb_shortcuts src/CommandLine/wb_command_completion Copyright: 2014-2015 Washington University School of Medicine License: Expat +Files: src/kloewe/* +Copyright: 2012-2016 Kristian Loewe, Christian Borgelt +License: Expat + Files: src/Quazip/* Copyright: 2005-2012 Sergey A. Tachenov 1998-2010 Gilles Vollant @@ -51,6 +55,11 @@ Copyright: 2003 Bitstream, Inc. License: Bitstream-Vera +Files: src/Resources/Fonts/LinuxLibertine/*ttf +Copyright: 2003-2009 Philipp H. Poll +License: GPL-2+ with Font exception and OFL-1.1 + + License: GPL-2+ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -293,3 +302,129 @@ conditions see http://qt.digia.com/licensing. For further information use the contact form at http://qt.digia.com/contact-us. + +License: GPL-2+ with Font exception + The linux-libertine fonts are dual-licensed under the GNU General Public + License (GPL) with font exception, and the SIL Open Font License (OFL). + . + 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; either version 2 of the License, or (at your option) + any later version. + . + 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, write to the Free Software Foundation, Inc., 51 + Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + As a special exception, if you create a document which uses this font, and + embed this font or unaltered portions of this font into the document, this + font does not by itself cause the resulting document to be covered by the + GNU General Public License. This exception does not however invalidate any + other reasons why the document might be covered by the GNU General Public + License. If you modify this font, you may extend this exception to your + version of the font, but you are not obligated to do so. If you do not wish + to do so, delete this exception statement from your version. + . + On Debian systems, the complete text of the GNU General Public License can + be found in /usr/share/common-licenses/GPL-2 file. + +License: OFL-1.1 + This Font Software is Copyright (c) 2003-2006, Philipp H. Poll + (http://linuxlibertine.sf.net/). All Rights Reserved. + . + "Linux Libertine" is a Reserved Font Name for this Font Software. + . + This Font Software is licensed under the SIL Open Font License, Version + 1.0. No modification of the license is permitted, only verbatim copy is + allowed. This license is copied below, and is also available with a FAQ + at: http://scripts.sil.org/OFL + . + ----------------------------------------------------------- + SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005 + ----------------------------------------------------------- + . + PREAMBLE + The goals of the Open Font License (OFL) are to stimulate worldwide + development of cooperative font projects, to support the font creation + efforts of academic and linguistic communities, and to provide an open + framework in which fonts may be shared and improved in partnership with + others. + . + The OFL allows the licensed fonts to be used, studied, modified and + redistributed freely as long as they are not sold by themselves. The fonts, + including any derivative works, can be bundled, embedded, redistributed and + sold with any software provided that the font names of derivative works are + changed. The fonts and derivatives, however, cannot be released under any + other type of license. + . + DEFINITIONS + "Font Software" refers to any and all of the following: + - font files + - data files + - source code + - build scripts + - documentation + . + "Reserved Font Name" refers to the Font Software name as seen by users and + any other names as specified after the copyright statement. + . + "Standard Version" refers to the collection of Font Software components as + distributed by the Copyright Holder. + . + "Modified Version" refers to any derivative font software made by adding + to, deleting, or substituting -- in part or in whole -- any of the + components of the Standard Version, by changing formats or by porting the + Font Software to a new environment. + . + "Author" refers to any designer, engineer, programmer, technical writer or + other person who contributed to the Font Software. + . + PERMISSION & CONDITIONS Permission is hereby granted, free of charge, to + any person obtaining a copy of the Font Software, to use, study, copy, + merge, embed, modify, redistribute, and sell modified and unmodified + copies of the Font Software, subject to the following conditions: + . + 1) Neither the Font Software nor any of its individual components, in + Standard or Modified Versions, may be sold by itself. + . + 2) Standard or Modified Versions of the Font Software may be bundled, + redistributed and sold with any software, provided that each copy contains + the above copyright notice and this license. These can be included either + as stand-alone text files, human-readable headers or in the appropriate + machine-readable metadata fields within text or binary files as long as + those fields can be easily viewed by the user. + . + 3) No Modified Version of the Font Software may use the Reserved Font + Name(s), in part or in whole, unless explicit written permission is granted + by the Copyright Holder. This restriction applies to all references stored + in the Font Software, such as the font menu name and other font description + fields, which are used to differentiate the font from others. + . + 4) The name(s) of the Copyright Holder or the Author(s) of the Font + Software shall not be used to promote, endorse or advertise any Modified + Version, except to acknowledge the contribution(s) of the Copyright Holder + and the Author(s) or with their explicit written permission. + . + 5) The Font Software, modified or unmodified, in part or in whole, must be + distributed using this license, and may not be distributed under any other + license. + . + TERMINATION + This license becomes null and void if any of the above conditions are not + met. + . + DISCLAIMER + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF + COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS + IN THE FONT SOFTWARE. diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Desktop/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Desktop/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Desktop/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Desktop/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -33,7 +33,7 @@ # # Resources # -QT4_ADD_RESOURCES(IMAGE_RCS_SRCS ../Resources/General/general_resources.qrc ../Resources/Gui/gui_resources.qrc ../Resources/Help/help_resources.qrc) +QT4_ADD_RESOURCES(IMAGE_RCS_SRCS ../Resources/GeneralResources/general_resources.qrc ../Resources/GuiResources/gui_resources.qrc) # # Create the executable diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/CiftiConnectivityMatrixDenseDynamicFile.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CiftiConnectivityMatrixDenseDynamicFile.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/CiftiConnectivityMatrixDenseDynamicFile.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CiftiConnectivityMatrixDenseDynamicFile.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -33,6 +33,7 @@ #include "CiftiFile.h" #include "FileInformation.h" #include "SceneClassAssistant.h" +#include "dot_wrapper.h" using namespace caret; @@ -488,21 +489,12 @@ const RowData& otherData = m_rowData[otherRowIndex]; if (m_cacheDataFlag) { - for (int i = 0; i < numberOfPoints; i++) { - CaretAssertVectorIndex(data, i); - CaretAssertVectorIndex(otherData.m_data, i); - xySum += data[i] * otherData.m_data[i]; - } + xySum = sddot(&data[0], &otherData.m_data[0], numberOfPoints); } else { std::vector otherDataVector(m_numberOfTimePoints); m_parentDataSeriesCiftiFile->getRow(&otherDataVector[0], otherRowIndex); - - for (int i = 0; i < numberOfPoints; i++) { - CaretAssertVectorIndex(data, i); - CaretAssertVectorIndex(otherDataVector, i); - xySum += data[i] * otherDataVector[i]; - } + xySum = sddot(&data[0], &otherDataVector[0], numberOfPoints); } const double ssxy = xySum - (numFloat * mean * otherData.m_mean); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/CiftiMappableDataFile.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CiftiMappableDataFile.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/CiftiMappableDataFile.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CiftiMappableDataFile.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -2665,6 +2665,44 @@ } /** + * Get voxel coloring for a set of voxels. + * + * @param mapIndex + * Index of map. + * @param firstVoxelIJK + * IJK Indices of first voxel + * @param rowStepIJK + * IJK Step for moving to next row. + * @param columnStepIJK + * IJK Step for moving to next column. + * @param numberOfRows + * Number of rows. + * @param numberOfColumns + * Number of columns. + * @param displayGroup + * The selected display group. + * @param tabIndex + * Index of selected tab. + * @param rgbaOut + * RGBA color components out. + * @return + * Number of voxels with alpha greater than zero + */ +int64_t +CiftiMappableDataFile::getVoxelColorsForSliceInMap(const int32_t /*mapIndex*/, + const int64_t[] /*firstVoxelIJK[3]*/, + const int64_t[] /*rowStepIJK[3]*/, + const int64_t[] /*columnStepIJK[3]*/, + const int64_t /*numberOfRows*/, + const int64_t /*numberOfColumns*/, + const DisplayGroupEnum::Enum /*displayGroup*/, + const int32_t /*tabIndex*/, + uint8_t* /*rgbaOut*/) const +{ + return 0; +} + +/** * Get the voxel colors for a sub slice in the map. * * @param paletteFile @@ -3719,6 +3757,7 @@ { numericalValuesOut.clear(); numericalValuesOutValid.clear(); + textValueOut.clear(); CaretAssert(m_ciftiFile); const CiftiXML& ciftiXML = m_ciftiFile->getCiftiXML(); @@ -3753,19 +3792,18 @@ const int32_t labelKey = static_cast(value); const GiftiLabel* gl = glt->getLabel(labelKey); if (gl != NULL) { - textValueOut += gl->getName(); + textValueOut += (" " + gl->getName()); } else { - textValueOut += ("InvalidLabelKey=" + textValueOut += (" InvalidLabelKey=" + AString::number(labelKey)); } } else { - textValueOut = AString::number(value, 'f'); + textValueOut += (" " + AString::number(value, 'f')); } } } - return true; } } } @@ -3847,7 +3885,6 @@ } } } - return true; break; case CiftiMappingType::SCALARS: CaretAssertMessage(0, "Mapping type should never be SCALARS"); @@ -3856,8 +3893,15 @@ CaretAssertMessage(0, "Mapping type should never be SERIES"); break; } + + if (textValueOut.isEmpty()) { + return false; + } - return false; + /* + * Output text is valid + */ + return true; } /** diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/CiftiMappableDataFile.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CiftiMappableDataFile.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/CiftiMappableDataFile.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CiftiMappableDataFile.h 2016-10-19 23:35:12.000000000 +0000 @@ -297,6 +297,16 @@ const int32_t tabIndex, uint8_t* rgbaOut) const; + int64_t getVoxelColorsForSliceInMap(const int32_t mapIndex, + const int64_t firstVoxelIJK[3], + const int64_t rowStepIJK[3], + const int64_t columnStepIJK[3], + const int64_t numberOfRows, + const int64_t numberOfColumns, + const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + uint8_t* rgbaOut) const; + virtual int64_t getVoxelColorsForSubSliceInMap(const PaletteFile* paletteFile, const int32_t mapIndex, const VolumeSliceViewPlaneEnum::Enum slicePlane, diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -61,6 +61,7 @@ CiftiParcelScalarFile.h CiftiScalarDataSeriesFile.h ConnectivityDataLoaded.h +ControlPointFile.h EventCaretMappableDataFilesGet.h EventChartMatrixParcelYokingValidation.h EventGetDisplayedDataFiles.h @@ -177,6 +178,7 @@ CiftiParcelScalarFile.cxx CiftiScalarDataSeriesFile.cxx ConnectivityDataLoaded.cxx +ControlPointFile.cxx EventCaretMappableDataFilesGet.cxx EventChartMatrixParcelYokingValidation.cxx EventGetDisplayedDataFiles.cxx diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/ControlPointFile.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ControlPointFile.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/ControlPointFile.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ControlPointFile.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,457 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#define __CONTROL_POINT_FILE_DECLARE__ +#include "ControlPointFile.h" +#undef __CONTROL_POINT_FILE_DECLARE__ + +#include "CaretAssert.h" +#include "ControlPoint3D.h" +#include "DataFileException.h" +#include "GiftiMetaData.h" +#include "Matrix4x4.h" +#include "SceneClass.h" +#include "SceneClassArray.h" +#include "SceneClassAssistant.h" + +using namespace caret; + + + +/** + * \class caret::ControlPointFile + * \brief File containing control points used for data transformations. + * \ingroup Files + */ + +/** + * Constructor. + */ +ControlPointFile::ControlPointFile() +: CaretDataFile(DataFileTypeEnum::UNKNOWN) +{ + m_metadata.grabNew(new GiftiMetaData()); + m_sceneAssistant.grabNew(new SceneClassAssistant()); + m_landmarkTransformationMatrix.grabNew(new Matrix4x4()); + +// addControlPoint(ControlPoint3D(151, 147, 0, -42, -81, 6)); +// addControlPoint(ControlPoint3D(263, 126, 0, -10, -87, 6)); +// addControlPoint(ControlPoint3D(250, 491, 0, -13, 20, 6)); + +// addControlPoint(ControlPoint3D(48, 105, 0, -58, -13, 11)); +// addControlPoint(ControlPoint3D(140, 106, 0, -12, -13, 13)); +// addControlPoint(ControlPoint3D(133, 196, 0, -17, -13, 58)); +} + +/** + * Destructor. + */ +ControlPointFile::~ControlPointFile() +{ + clearPrivate(); +} + +/** + * @return True if this file is empty, else false. + */ +bool +ControlPointFile::isEmpty() const +{ + return m_controlPoints.empty(); +} + +/** + * @return The structure for this file. + */ +StructureEnum::Enum +ControlPointFile::getStructure() const +{ + return StructureEnum::ALL; +} + +/** + * Set the structure for this file. + * @param structure + * New structure for this file. + */ +void +ControlPointFile::setStructure(const StructureEnum::Enum /*structure*/) +{ + /* nothing */ +} + +/** + * @return Get access to the file's metadata. + */ +GiftiMetaData* +ControlPointFile::getFileMetaData() +{ + return m_metadata.getPointer(); +} + +/** + * @return Get access to unmodifiable file's metadata. + */ +const GiftiMetaData* +ControlPointFile::getFileMetaData() const +{ + return m_metadata.getPointer(); +} + +/** + * Clear the content of this file. + * This method is virtual so do not call from constructor/destructor. + */ +void +ControlPointFile::clear() +{ + const AString nameOfFile = getFileName(); + + CaretDataFile::clear(); + + clearPrivate(); +} + +/** + * Clear the content of this file. + */ +void +ControlPointFile::clearPrivate() +{ + m_metadata->clear(); + + removeAllControlPoints(); + + m_landmarkTransformationMatrix->identity(); +} + + +/** + * Add information about the content of this file. + * + * @param dataFileInformation + * Will contain information about this file. + */ +void +ControlPointFile::addToDataFileContentInformation(DataFileContentInformation& dataFileInformation) +{ + CaretDataFile::addToDataFileContentInformation(dataFileInformation); +} + +/** + * @return true if file is modified, else false. + */ +bool +ControlPointFile::isModified() const +{ + if (CaretDataFile::isModified()) { + return true; + } + + if (m_metadata->isModified()) { + return true; + } + + for (std::vector::const_iterator iter = m_controlPoints.begin(); + iter != m_controlPoints.end(); + iter++) { + if ((*iter)->isModified()) { + return true; + } + } + + return false; +} + +/** + * Clear the modified status of this file. + */ +void +ControlPointFile::clearModified() +{ + CaretDataFile::clearModified(); + + m_metadata->clearModified(); + + for (std::vector::const_iterator iter = m_controlPoints.begin(); + iter != m_controlPoints.end(); + iter++) { + (*iter)->clearModified(); + } + + m_landmarkTransformationMatrix->clearModified(); +} + +/** + * @return The number of control points. + */ +int32_t +ControlPointFile::getNumberOfControlPoints() const +{ + return m_controlPoints.size(); +} + +/** + * Add a control point. + * + * @param controlPoint + * Control point to add. + */ +void +ControlPointFile::addControlPoint(const ControlPoint3D& controlPoint) +{ + m_controlPoints.push_back(new ControlPoint3D(controlPoint)); + setModified(); +} + +/** + * @return Control point at the given index (const method). + * + * @param index + * Index of the control point. + */ +const ControlPoint3D* +ControlPointFile::getControlPointAtIndex(const int32_t index) const +{ + CaretAssertVectorIndex(m_controlPoints, index); + return m_controlPoints[index]; +} + +/** + * @return Control point at the given index. + * + * @param index + * Index of the control point. + */ +ControlPoint3D* +ControlPointFile::getControlPointAtIndex(const int32_t index) +{ + CaretAssertVectorIndex(m_controlPoints, index); + return m_controlPoints[index]; +} + +/** + * Remove all of the control points. + */ +void +ControlPointFile::removeAllControlPoints() +{ + for (std::vector::iterator iter = m_controlPoints.begin(); + iter != m_controlPoints.end(); + iter++) { + delete *iter; + } + m_controlPoints.clear(); +} + +/** + * Remote the control point at the given index. + * + * @param index + * Index of the control point. + */ +void +ControlPointFile::removeControlPointAtIndex(const int32_t index) +{ + CaretAssertVectorIndex(m_controlPoints, index); + delete m_controlPoints[index]; + m_controlPoints.erase(m_controlPoints.begin() + index); + setModified(); +} + +/** + * Update the landmark transformation matrix from the control points. + * The transformed position will be set in the control points if the + * matrix is successfully created. + * + * @param errorMessageOutk + * Contains error information upon exit. + * @return True if landmark transformation matrix was successfully update, + * else false. + */ +bool +ControlPointFile::updateLandmarkTransformationMatrix(AString& errorMessageOut) +{ + m_landmarkTransformationMatrix->identity(); + errorMessageOut.clear(); + + bool successFlag = m_landmarkTransformationMatrix->createLandmarkTransformMatrix(m_controlPoints, + errorMessageOut); + + const int32_t numCP = getNumberOfControlPoints(); + for (int32_t icp = 0; icp < numCP; icp++) { + float transformedXYZ[3] = { 0.0, 0.0, 0.0 }; + + CaretAssertVectorIndex(m_controlPoints, icp); + ControlPoint3D* cp = m_controlPoints[icp]; + if (successFlag) { + cp->getSourceXYZ(transformedXYZ); + m_landmarkTransformationMatrix->multiplyPoint3(transformedXYZ); + } + cp->setTransformedXYZ(transformedXYZ); + } + + return successFlag; +} + +/** + * @return The landmark transformation matrix. + */ +Matrix4x4* +ControlPointFile::getLandmarkTransformationMatrix() +{ + return m_landmarkTransformationMatrix; +} + +/** + * @return The landmark transformation matrix (const method). + */ +const Matrix4x4* +ControlPointFile::getLandmarkTransformationMatrix() const +{ + return m_landmarkTransformationMatrix; +} + +/** + * Read the data file. + * + * @param filename + * Name of the data file. + * @throws DataFileException + * If the file was not successfully read. + */ +void +ControlPointFile::readFile(const AString& filename) +{ + clear(); + + checkFileReadability(filename); + + throw DataFileException("Reading of Control Point files not implemented"); + +// AnnotationFileXmlReader reader; +// reader.readFile(filename, +// this); +// +// updateUniqueKeysAfterReadingFile(); + + setFileName(filename); + + clearModified(); +} + +/** + * Write the data file. + * + * @param filename + * Name of the data file. + * @throws DataFileException + * If the file was not successfully written. + */ +void +ControlPointFile::writeFile(const AString& filename) +{ + checkFileWritability(filename); + + throw DataFileException("Writing of Control Point files not implemented"); + + setFileName(filename); + +// AnnotationFileXmlWriter writer; +// writer.writeFile(this); + + clearModified(); +} + + + + + + + +/** + * Save subclass data to the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * restoring the scene. + * + * @param sceneClass + * sceneClass to which data members should be added. Will always + * be valid (non-NULL). + */ +void +ControlPointFile::saveFileDataToScene(const SceneAttributes* sceneAttributes, + SceneClass* sceneClass) +{ + m_sceneAssistant->saveMembers(sceneAttributes, + sceneClass); + + std::vector controlPointsVector; + + const int32_t numCP = getNumberOfControlPoints(); + for (int32_t icp = 0; icp < numCP; icp++) { + const QString name("ControlPoint" + QString::number(icp)); + controlPointsVector.push_back(m_controlPoints[icp]->saveToScene(sceneAttributes, + name)); + } + SceneClassArray* classArray = new SceneClassArray("controlPointsArray", + controlPointsVector); + sceneClass->addChild(classArray); +} + +/** + * Restore file data from the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * restoring the scene. + * + * @param sceneClass + * sceneClass for the instance of a class that implements + * this interface. Will NEVER be NULL. + */ +void +ControlPointFile::restoreFileDataFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass) +{ + if (sceneClass == NULL) { + return; + } + + m_sceneAssistant->restoreMembers(sceneAttributes, + sceneClass); + + const SceneClassArray* controlPointsArray = sceneClass->getClassArray("controlPointsArray"); + if (controlPointsArray != NULL) { + const int32_t numElements = controlPointsArray->getNumberOfArrayElements(); + for (int32_t i = 0; i < numElements; i++) { + const SceneClass* controlPointClass = controlPointsArray->getClassAtIndex(i); + ControlPoint3D controlPoint(0, 0, 0, 0, 0, 0); + controlPoint.restoreFromScene(sceneAttributes, + controlPointClass); + addControlPoint(controlPoint); + } + } +} + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/ControlPointFile.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ControlPointFile.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/ControlPointFile.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ControlPointFile.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,119 @@ +#ifndef __CONTROL_POINT_FILE_H__ +#define __CONTROL_POINT_FILE_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + + +#include "CaretDataFile.h" +#include "CaretPointer.h" + + +namespace caret { + class ControlPoint3D; + class Matrix4x4; + class SceneClassAssistant; + + class ControlPointFile : public CaretDataFile { + + public: + ControlPointFile(); + + virtual ~ControlPointFile(); + + bool isEmpty() const; + + virtual void clear(); + + virtual StructureEnum::Enum getStructure() const; + + virtual void setStructure(const StructureEnum::Enum structure); + + virtual GiftiMetaData* getFileMetaData(); + + virtual const GiftiMetaData* getFileMetaData() const; + + virtual void readFile(const AString& filename); + + virtual void writeFile(const AString& filename); + + virtual bool isModified() const; + + virtual void clearModified(); + + virtual void addToDataFileContentInformation(DataFileContentInformation& dataFileInformation); + + int32_t getNumberOfControlPoints() const; + + void addControlPoint(const ControlPoint3D& controlPoint); + + const ControlPoint3D* getControlPointAtIndex(const int32_t index) const; + + ControlPoint3D* getControlPointAtIndex(const int32_t index); + + void removeAllControlPoints(); + + void removeControlPointAtIndex(const int32_t index); + + bool updateLandmarkTransformationMatrix(AString& errorMessageOut); + + Matrix4x4* getLandmarkTransformationMatrix(); + + const Matrix4x4* getLandmarkTransformationMatrix() const; + + // ADD_NEW_METHODS_HERE + + + + + + + protected: + virtual void saveFileDataToScene(const SceneAttributes* sceneAttributes, + SceneClass* sceneClass); + + virtual void restoreFileDataFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass); + + private: + ControlPointFile(const ControlPointFile&); + + ControlPointFile& operator=(const ControlPointFile&); + + void clearPrivate(); + + CaretPointer m_metadata; + + CaretPointer m_sceneAssistant; + + std::vector m_controlPoints; + + CaretPointer m_landmarkTransformationMatrix; + + // ADD_NEW_MEMBERS_HERE + + }; + +#ifdef __CONTROL_POINT_FILE_DECLARE__ + // +#endif // __CONTROL_POINT_FILE_DECLARE__ + +} // namespace +#endif //__CONTROL_POINT_FILE_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/ImageFile.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ImageFile.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/ImageFile.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ImageFile.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -28,6 +28,7 @@ #include "CaretAssert.h" #include "CaretLogger.h" +#include "ControlPointFile.h" #include "ControlPoint3D.h" #include "DataFileException.h" #include "FileInformation.h" @@ -50,10 +51,11 @@ ImageFile::ImageFile() : CaretDataFile(DataFileTypeEnum::IMAGE) { + m_controlPointFile.grabNew(new ControlPointFile()); + m_fileMetaData.grabNew(new GiftiMetaData()); m_image = new QImage(); - m_windowZ = s_defaultWindowDepthPercentage; } /** @@ -64,10 +66,11 @@ ImageFile::ImageFile(const QImage& qimage) : CaretDataFile(DataFileTypeEnum::IMAGE) { + m_controlPointFile.grabNew(new ControlPointFile()); + m_fileMetaData.grabNew(new GiftiMetaData()); m_image = new QImage(qimage); - m_windowZ = s_defaultWindowDepthPercentage; } /** @@ -89,12 +92,13 @@ const IMAGE_DATA_ORIGIN_LOCATION imageOrigin) : CaretDataFile(DataFileTypeEnum::IMAGE) { + m_controlPointFile.grabNew(new ControlPointFile()); + m_fileMetaData.grabNew(new GiftiMetaData()); m_image = new QImage(imageWidth, imageHeight, QImage::Format_RGB32); - m_windowZ = s_defaultWindowDepthPercentage; bool isOriginAtTop = false; switch (imageOrigin) { @@ -1176,6 +1180,79 @@ return false; } +/** + * Get the pixel RGBA at the given pixel I and J. + * + * @param imageOrigin + * Location of first pixel in the image data. + * @param pixelI + * Image I index + * @param pixelJ + * Image J index + * @param pixelRGBAOut + * RGBA at Pixel I, J + * @return + * True if valid, else false. + */ +bool +ImageFile::getImagePixelRGBA(const IMAGE_DATA_ORIGIN_LOCATION imageOrigin, + const int32_t pixelI, + const int32_t pixelJ, + uint8_t pixelRGBAOut[4]) const +{ + if (m_image != NULL) { + const int32_t w = m_image->width(); + const int32_t h = m_image->height(); + + if ((pixelI >= 0) + && (pixelI < w) + && (pixelJ >= 0) + && (pixelJ < h)) { + + int32_t imageJ = pixelJ; + switch (imageOrigin) { + case IMAGE_DATA_ORIGIN_AT_BOTTOM: + imageJ = h - pixelJ - 1; + break; + case IMAGE_DATA_ORIGIN_AT_TOP: + break; + } + + if ((imageJ >= 0) + && (imageJ < h)) { + const QRgb rgb = m_image->pixel(pixelI, + imageJ); + pixelRGBAOut[0] = static_cast(qRed(rgb)); + pixelRGBAOut[1] = static_cast(qGreen(rgb)); + pixelRGBAOut[2] = static_cast(qBlue(rgb)); + pixelRGBAOut[3] = 255; + + return true; + } + else { + CaretLogSevere("Invalid image J"); + } + } + } + + return false; +} + + +/** + * Get the RGBA bytes from the image resized into the given width and height. + * + * @param imageOrigin + * Location of first pixel in the image data. + * @param resizeToWidth + * New width for image. + * @param resizeToHeight + * New height of the image. + * @param bytesRGBAOut + * The RGBA bytes in the image. + * @return + * True if the bytes, width, and height are valid, else false. + */ bool ImageFile::getImageResizedBytes(const IMAGE_DATA_ORIGIN_LOCATION imageOrigin, const int32_t resizeToWidth, @@ -1274,34 +1351,6 @@ } /** - * @return - * The Window Z for the image. - * - * Note: 1000 is at far clipping plane - * -1000 is at near clipping plane - */ -float -ImageFile::getWindowZ() const -{ - return m_windowZ; -} - -/** - * Set the Window Z for the image. - * - * Note: 1000 is at far clipping plane - * -1000 is at near clipping plane - * - * @param windowZ - * New window Z for drawing image. - */ -void -ImageFile::setWindowZ(const float windowZ) -{ - m_windowZ = windowZ; -} - -/** * Essentially writes the image file to a byte array using the given format. * * @param byteArrayOut @@ -1367,12 +1416,12 @@ } /** - * Convert this image into a Volume File. + * Convert this image into a Volume File using the + * encapsulated Control Point File whose matrix + * must have been updated. * * @param colorMode * Color mode for conversion. - * @param sformMatrix - * Matrix used as NIFTI sform. * @param paletteFile * Palette file used for coloring the voxels. * @param errorMessageOut @@ -1385,7 +1434,6 @@ */ VolumeFile* ImageFile::convertToVolumeFile(const CONVERT_TO_VOLUME_COLOR_MODE colorMode, - const std::vector& controlPointsIn, const PaletteFile* paletteFile, AString& errorMessageOut) const { @@ -1395,75 +1443,44 @@ int32_t width = 0; int32_t height = 0; getImageBytesRGBA(ImageFile::IMAGE_DATA_ORIGIN_AT_BOTTOM, - rgbaBytes, - width, - height); + rgbaBytes, + width, + height); if ((width <= 0) || (height <= 0)) { errorMessageOut = "Image width and/or height is invalid."; return NULL; } - std::vector controlPoints = controlPointsIn; - const int32_t numControlPoints = static_cast(controlPoints.size()); - if (numControlPoints < 3) { - errorMessageOut = "There must be at least three control points."; - return NULL; - } - - float pixelNormalVector[3]; - ControlPoint3D::getSourceNormalVector(controlPoints, pixelNormalVector); - - std::cout << "Pixel Normal Vector: " << qPrintable(AString::fromNumbers(pixelNormalVector, 3, ",")) << std::endl; - - const float tinyValue = 0.00001; - if ((pixelNormalVector[2] < tinyValue) - && (pixelNormalVector[2] > -tinyValue)) { - errorMessageOut = "Control points need to be in a triangular shape; not a line"; - return false; - } - - if (pixelNormalVector[2] < 0.0) { - std::cout << "Swapping coordinates so image normal vector is counter clockwise" << std::endl; - std::swap(controlPoints[0], controlPoints[2]); - ControlPoint3D::getSourceNormalVector(controlPoints, pixelNormalVector); - std::cout << "After Swapping Pixel Normal Vector: " << qPrintable(AString::fromNumbers(pixelNormalVector, 3, ",")) << std::endl; - } - - Matrix4x4 matrix; - if ( ! matrix.createLandmarkTransformMatrix(controlPoints, - errorMessageOut)) { - return NULL; - } + const Matrix4x4* transformationMatrix = m_controlPointFile->getLandmarkTransformationMatrix(); float firstPixel[3] = { 0, 0, 0 }; - matrix.multiplyPoint3(firstPixel); + transformationMatrix->multiplyPoint3(firstPixel); std::cout << "First pixel coord: " << AString::fromNumbers(firstPixel, 3, ",") << std::endl; float lastPixel[3] = { width - 1, height - 1, 0 }; - matrix.multiplyPoint3(lastPixel); + transformationMatrix->multiplyPoint3(lastPixel); std::cout << "Last pixel coord: " << AString::fromNumbers(lastPixel, 3, ",") << std::endl; { float bl[3] = { 0.0, 0.0, 0.0 }; - matrix.multiplyPoint3(bl); + transformationMatrix->multiplyPoint3(bl); ControlPoint3D bottomLeft(0, 0, 0, bl[0], bl[1], bl[2]); float br[3] = { width - 1.0, 0.0, 0.0 }; - matrix.multiplyPoint3(br); + transformationMatrix->multiplyPoint3(br); ControlPoint3D bottomRight(width - 1.0, 0.0, 0.0, br[0], br[1], br[2]); float tr[3] = { width - 1.0, height - 1.0, 0.0 }; - matrix.multiplyPoint3(tr); + transformationMatrix->multiplyPoint3(tr); ControlPoint3D topRight(width - 1.0, height - 1.0, 0.0, tr[0], tr[1], tr[2]); - std::vector volumeControlPoints; - volumeControlPoints.push_back(bottomLeft); - volumeControlPoints.push_back(bottomRight); - volumeControlPoints.push_back(topRight); + ControlPointFile volumeControlPointFile; + volumeControlPointFile.addControlPoint(bottomLeft); + volumeControlPointFile.addControlPoint(bottomRight); + volumeControlPointFile.addControlPoint(topRight); - Matrix4x4 volumeMatrix; - if ( ! volumeMatrix.createLandmarkTransformMatrix(volumeControlPoints, errorMessageOut)) { + if ( ! volumeControlPointFile.updateLandmarkTransformationMatrix(errorMessageOut)) { errorMessageOut.insert(0, "Volume Matrix: "); return NULL; } @@ -1481,12 +1498,12 @@ std::vector row2; std::vector row3; std::vector row4; - + for (int j = 0; j < 4; j++) { - row1.push_back(matrix.getMatrixElement(0, j)); - row2.push_back(matrix.getMatrixElement(1, j)); - row3.push_back(matrix.getMatrixElement(2, j)); - row4.push_back(matrix.getMatrixElement(3, j)); + row1.push_back(transformationMatrix->getMatrixElement(0, j)); + row2.push_back(transformationMatrix->getMatrixElement(1, j)); + row3.push_back(transformationMatrix->getMatrixElement(2, j)); + row4.push_back(transformationMatrix->getMatrixElement(3, j)); } std::vector > indexToSpace; indexToSpace.push_back(row1); @@ -1504,11 +1521,10 @@ whatType = SubvolumeAttributes::RGB; break; } - VolumeFile* volumeFile = new VolumeFile(dimensions, - indexToSpace, - numComponents, - whatType); + indexToSpace, + numComponents, + whatType); FileInformation fileInfo(getFileName()); const AString volumeFileName = FileInformation::assembleFileComponents(fileInfo.getAbsolutePath(), @@ -1579,11 +1595,27 @@ volumeFile->clearVoxelColoringForMap(mapIndex); volumeFile->updateScalarColoringForMap(mapIndex, paletteFile); - + return volumeFile; } +/** + * @return The control point file. + */ +ControlPointFile* +ImageFile::getControlPointFile() +{ + return m_controlPointFile; +} +/** + * @return The control point file. + */ +const ControlPointFile* +ImageFile::getControlPointFile() const +{ + return m_controlPointFile; +} /** * Save file data from the scene. For subclasses that need to @@ -1599,11 +1631,13 @@ * sceneClass to which data members should be added. */ void -ImageFile::saveFileDataToScene(const SceneAttributes* /*sceneAttributes*/, +ImageFile::saveFileDataToScene(const SceneAttributes* sceneAttributes, SceneClass* sceneClass) { - sceneClass->addFloat("m_windowZ", - m_windowZ); + if (m_controlPointFile != NULL) { + sceneClass->addClass(m_controlPointFile->saveToScene(sceneAttributes, + "m_controlPointFile")); + } } /** @@ -1621,11 +1655,11 @@ * this interface. Will NEVER be NULL. */ void -ImageFile::restoreFileDataFromScene(const SceneAttributes* /*sceneAttributes*/, +ImageFile::restoreFileDataFromScene(const SceneAttributes* sceneAttributes, const SceneClass* sceneClass) { - m_windowZ = sceneClass->getFloatValue("m_windowZ", - s_defaultWindowDepthPercentage); + m_controlPointFile->restoreFromScene(sceneAttributes, + sceneClass->getClass("m_controlPointFile")); } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/ImageFile.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ImageFile.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/ImageFile.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/ImageFile.h 2016-10-19 23:35:12.000000000 +0000 @@ -27,8 +27,8 @@ class QImage; namespace caret { + class ControlPointFile; class ControlPoint3D; - class Matrix4x4; class PaletteFile; class VolumeFile; @@ -142,14 +142,15 @@ const int32_t resizeToHeight, std::vector& bytesRGBAOut) const; + bool getImagePixelRGBA(const IMAGE_DATA_ORIGIN_LOCATION imageOrigin, + const int32_t pixelI, + const int32_t pixelJ, + uint8_t pixelRGBAOut[4]) const; + int32_t getWidth() const; int32_t getHeight() const; - float getWindowZ() const; - - void setWindowZ(const float windowZ); - virtual void readFile(const AString& filename); virtual void writeFile(const AString& filename); @@ -197,10 +198,13 @@ AString& defaultFilter); VolumeFile* convertToVolumeFile(const CONVERT_TO_VOLUME_COLOR_MODE colorMode, - const std::vector& controlPoints, const PaletteFile* paletteFile, AString& errorMessageOut) const; + ControlPointFile* getControlPointFile(); + + const ControlPointFile* getControlPointFile() const; + virtual void saveFileDataToScene(const SceneAttributes* sceneAttributes, SceneClass* sceneClass); @@ -222,10 +226,10 @@ QImage* m_image; - float m_windowZ; - CaretPointer m_fileMetaData; + CaretPointer m_controlPointFile; + static const float s_defaultWindowDepthPercentage; }; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFile.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFile.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFile.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFile.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -1396,6 +1396,58 @@ } /** + * Get voxel coloring for a set of voxels. + * + * @param mapIndex + * Index of map. + * @param firstVoxelIJK + * IJK Indices of first voxel + * @param rowStepIJK + * IJK Step for moving to next row. + * @param columnStepIJK + * IJK Step for moving to next column. + * @param numberOfRows + * Number of rows. + * @param numberOfColumns + * Number of columns. + * @param displayGroup + * The selected display group. + * @param tabIndex + * Index of selected tab. + * @param rgbaOut + * RGBA color components out. + * @return + * Number of voxels with alpha greater than zero + */ +int64_t +VolumeFile::getVoxelColorsForSliceInMap(const int32_t mapIndex, + const int64_t firstVoxelIJK[3], + const int64_t rowStepIJK[3], + const int64_t columnStepIJK[3], + const int64_t numberOfRows, + const int64_t numberOfColumns, + const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + uint8_t* rgbaOut) const +{ + if (s_voxelColoringEnabled == false) { + return 0; + } + + CaretAssert(m_voxelColorizer); + + return m_voxelColorizer->getVoxelColorsForSliceInMap(mapIndex, + firstVoxelIJK, + rowStepIJK, + columnStepIJK, + numberOfRows, + numberOfColumns, + displayGroup, + tabIndex, + rgbaOut); +} + +/** * Get the voxel colors for a sub slice in the map. * * @param paletteFile diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFile.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFile.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFile.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFile.h 2016-10-19 23:35:12.000000000 +0000 @@ -284,6 +284,16 @@ void updateScalarColoringForMap(const int32_t mapIndex, const PaletteFile* paletteFile); + virtual int64_t getVoxelColorsForSliceInMap(const int32_t mapIndex, + const int64_t firstVoxelIJK[3], + const int64_t rowStepIJK[3], + const int64_t columnStepIJK[3], + const int64_t numberOfRows, + const int64_t numberOfColumns, + const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + uint8_t* rgbaOut) const; + virtual int64_t getVoxelColorsForSliceInMap(const PaletteFile* paletteFile, const int32_t mapIndex, const VolumeSliceViewPlaneEnum::Enum slicePlane, diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFileVoxelColorizer.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFileVoxelColorizer.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFileVoxelColorizer.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFileVoxelColorizer.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -352,6 +352,109 @@ } /** + * Get voxel coloring for a set of voxels. + * + * @param mapIndex + * Index of map. + * @param firstVoxelIJK + * IJK Indices of first voxel + * @param rowStepIJK + * IJK Step for moving to next row. + * @param columnStepIJK + * IJK Step for moving to next column. + * @param numberOfRows + * Number of rows. + * @param numberOfColumns + * Number of columns. + * @param displayGroup + * The selected display group. + * @param tabIndex + * Index of selected tab. + * @param rgbaOut + * RGBA color components out. + * @return + * Number of voxels with alpha greater than zero + */ +int64_t +VolumeFileVoxelColorizer::getVoxelColorsForSliceInMap(const int32_t mapIndex, + const int64_t firstVoxelIJK[3], + const int64_t rowStepIJK[3], + const int64_t columnStepIJK[3], + const int64_t numberOfRows, + const int64_t numberOfColumns, + const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + uint8_t* rgbaOut) const +{ + /* + * Pointer to maps RGBA values + */ + const uint8_t* mapRGBA = m_mapRGBA[mapIndex]; + + const GiftiLabelTable* labelTable = (m_volumeFile->isMappedWithLabelTable() + ? m_volumeFile->getMapLabelTable(mapIndex) + : NULL); + if (m_volumeFile->isMappedWithLabelTable()) { + CaretAssert(labelTable); + } + + int64_t validVoxelCount = 0; + int64_t rgbaOutIndex = 0; + + int64_t rowIJK[3] = { firstVoxelIJK[0], firstVoxelIJK[1], firstVoxelIJK[2] }; + for (int64_t iRow = 0; iRow < numberOfRows; iRow++) { + + int64_t ijk[3] = { rowIJK[0], rowIJK[1], rowIJK[2] }; + for (int64_t iCol = 0; iCol < numberOfColumns; iCol++) { + const int64_t rgbaOffset = getRgbaOffsetForVoxelIndex(ijk); + + CaretAssertArrayIndex(mapRGBA, m_mapRGBACount, rgbaOffset); + rgbaOut[rgbaOutIndex] = mapRGBA[rgbaOffset]; + rgbaOut[rgbaOutIndex+1] = mapRGBA[rgbaOffset+1]; + rgbaOut[rgbaOutIndex+2] = mapRGBA[rgbaOffset+2]; + uint8_t alpha = mapRGBA[rgbaOffset+3]; + + if (alpha > 0) { + if (labelTable != NULL) { + /* + * For label data, verify that the label is displayed. + * If NOT displayed, zero out the alpha value to + * prevent display of the data. + */ + const int32_t dataValue = static_cast(m_volumeFile->getValue(ijk, + mapIndex)); + const GiftiLabel* label = labelTable->getLabel(dataValue); + if (label != NULL) { + const GroupAndNameHierarchyItem* item = label->getGroupNameSelectionItem(); + if (item != NULL) { + if (item->isSelected(displayGroup, tabIndex) == false) { + alpha = 0; + } + } + } + } + } + + if (alpha > 0.0) { + ++validVoxelCount; + } + rgbaOut[rgbaOutIndex+3] = alpha; + rgbaOutIndex += 4; + + ijk[0] += columnStepIJK[0]; + ijk[1] += columnStepIJK[1]; + ijk[2] += columnStepIJK[2]; + } + + rowIJK[0] += rowStepIJK[0]; + rowIJK[1] += rowStepIJK[1]; + rowIJK[2] += rowStepIJK[2]; + } + + return validVoxelCount; +} + +/** * Get voxel coloring for a sub-slice in a map. If voxel coloring is not ready * (it may be running in a different thread) this method will wait until the * coloring is valid prior to returning the slice's coloring. diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFileVoxelColorizer.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFileVoxelColorizer.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Files/VolumeFileVoxelColorizer.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Files/VolumeFileVoxelColorizer.h 2016-10-19 23:35:12.000000000 +0000 @@ -44,6 +44,16 @@ const int32_t thresholdVolumeMapIndex); int64_t getVoxelColorsForSliceInMap(const int32_t mapIndex, + const int64_t firstVoxelIJK[3], + const int64_t rowStepIJK[3], + const int64_t columnStepIJK[3], + const int64_t numberOfRows, + const int64_t numberOfColumns, + const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + uint8_t* rgbaOut) const; + + int64_t getVoxelColorsForSliceInMap(const int32_t mapIndex, const VolumeSliceViewPlaneEnum::Enum slicePlane, const int64_t sliceIndex, const DisplayGroupEnum::Enum displayGroup, @@ -88,6 +98,15 @@ + ((k * m_dimI * m_dimJ)))); } + /** + * Get theRGBA offset for a voxel index + */ + inline int64_t getRgbaOffsetForVoxelIndex(const int64_t ijk[3]) const { + return (4 * (ijk[0] + + (ijk[1] * m_dimI) + + ((ijk[2] * m_dimI * m_dimJ)))); + } + // ADD_NEW_MEMBERS_HERE VolumeFile* m_volumeFile; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/FilesBase/VolumeMappableInterface.h connectome-workbench-1.2.3+git41-gc4c6c90/src/FilesBase/VolumeMappableInterface.h --- connectome-workbench-1.2.3+git3-g7b83782/src/FilesBase/VolumeMappableInterface.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/FilesBase/VolumeMappableInterface.h 2016-10-19 23:35:12.000000000 +0000 @@ -288,6 +288,40 @@ uint8_t* rgbaOut) const = 0; /** + * Get voxel coloring for a set of voxels. + * + * @param mapIndex + * Index of map. + * @param firstVoxelIJK + * IJK Indices of first voxel + * @param rowStepIJK + * IJK Step for moving to next row. + * @param columnStepIJK + * IJK Step for moving to next column. + * @param numberOfRows + * Number of rows. + * @param numberOfColumns + * Number of columns. + * @param displayGroup + * The selected display group. + * @param tabIndex + * Index of selected tab. + * @param rgbaOut + * RGBA color components out. + * @return + * Number of voxels with alpha greater than zero + */ + virtual int64_t getVoxelColorsForSliceInMap(const int32_t mapIndex, + const int64_t firstVoxelIJK[3], + const int64_t rowStepIJK[3], + const int64_t columnStepIJK[3], + const int64_t numberOfRows, + const int64_t numberOfColumns, + const DisplayGroupEnum::Enum displayGroup, + const int32_t tabIndex, + uint8_t* rgbaOut) const = 0; + + /** * Get the voxel colors for a sub slice in the map. * * @param paletteFile diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindow.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindow.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindow.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindow.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -75,7 +75,6 @@ #include "FileInformation.h" #include "FociProjectionDialog.h" #include "GuiManager.h" -#include "ImageFileConvertToVolumeFileDialog.h" #include "ModelSurface.h" #include "ModelSurfaceMontage.h" #include "ModelWholeBrain.h" @@ -1184,13 +1183,6 @@ this, SLOT(processExitProgram())); - m_dataConvertImageToVolumeAction = - WuQtUtilities::createAction("Convert Image to Volume...", - "Convert Image to Volume", - this, - this, - SLOT(processConvertImageToVolume())); - m_dataFociProjectAction = WuQtUtilities::createAction("Project Foci...", "Project Foci to Surfaces", @@ -2398,7 +2390,6 @@ QObject::connect(menu, SIGNAL(aboutToShow()), this, SLOT(processDataMenuAboutToShow())); - menu->addAction(m_dataConvertImageToVolumeAction); menu->addAction(m_dataFociProjectAction); menu->addAction(m_dataBorderFilesSplitAction); @@ -2423,24 +2414,7 @@ break; } } - m_dataBorderFilesSplitAction->setEnabled(haveMultiStructureBorderFiles); - - /* - * Find image selected and displayed in current tab - */ - m_dataConvertImageToVolumeAction->setEnabled(false); - BrowserTabContent* btc = m_toolbar->getTabContentFromSelectedTab(); - if (btc != NULL) { - DisplayPropertiesImages* dpi = brain->getDisplayPropertiesImages(); - const int32_t tabIndex = btc->getTabNumber(); - const DisplayGroupEnum::Enum displayGroup = dpi->getDisplayGroupForTab(tabIndex); - if (dpi->isDisplayed(displayGroup, tabIndex)) { - ImageFile* imageFile = dpi->getSelectedImageFile(displayGroup, tabIndex); - if (imageFile != NULL) { - m_dataConvertImageToVolumeAction->setEnabled(true); - } - } - } + m_dataBorderFilesSplitAction->setEnabled(haveMultiStructureBorderFiles); } /** @@ -2767,30 +2741,6 @@ } } } - -/** - * Convert Image to Volume - */ -void -BrainBrowserWindow::processConvertImageToVolume() -{ - Brain* brain = GuiManager::get()->getBrain(); - BrowserTabContent* btc = m_toolbar->getTabContentFromSelectedTab(); - if (btc != NULL) { - DisplayPropertiesImages* dpi = brain->getDisplayPropertiesImages(); - const int32_t tabIndex = btc->getTabNumber(); - const DisplayGroupEnum::Enum displayGroup = dpi->getDisplayGroupForTab(tabIndex); - if (dpi->isDisplayed(displayGroup, tabIndex)) { - ImageFile* imageFile = dpi->getSelectedImageFile(displayGroup, tabIndex); - if (imageFile != NULL) { - ImageFileConvertToVolumeFileDialog convertDialog(this, - tabIndex, - imageFile); - convertDialog.exec(); - } - } - } -} /** * Project foci. diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindow.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindow.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindow.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindow.h 2016-10-19 23:35:12.000000000 +0000 @@ -221,7 +221,6 @@ void developerMenuAboutToShow(); void developerMenuFlagTriggered(QAction*); - void processConvertImageToVolume(); void processProjectFoci(); void processSplitBorderFiles(); void processTabAspectRatioLockedToggled(bool checked); @@ -384,7 +383,6 @@ QAction* m_featuresToolBoxAction; - QAction* m_dataConvertImageToVolumeAction; QAction* m_dataFociProjectAction; QAction* m_dataBorderFilesSplitAction; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindowToolBar.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindowToolBar.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindowToolBar.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindowToolBar.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -2236,6 +2236,16 @@ inputModeFociToolButton->setDefaultAction(this->modeInputModeFociAction); /* + * Image + */ + this->modeInputModeImageAction = WuQtUtilities::createAction("Image", + "Edit Image Control Points", + this); + this->modeInputModeImageAction->setCheckable(true); + QToolButton* inputModeImageToolButton = new QToolButton(); + inputModeImageToolButton->setDefaultAction(this->modeInputModeImageAction); + + /* * Volume Edit */ this->modeInputVolumeEditAction = WuQtUtilities::createAction("Volume", @@ -2271,25 +2281,43 @@ WuQtUtilities::matchWidgetWidths(inputModeAnnotationsToolButton, inputModeBordersToolButton, - inputModeFociToolButton, + //inputModeFociToolButton, + //inputModeImageToolButton, inputModeViewToolButton, inputModeVolumeEditButton); +// inputModeFociToolButton->setContentsMargins(0, 0, 0, 0); +// inputModeImageToolButton->setContentsMargins(0, 0, 0, 0); + inputModeFociToolButton->setSizePolicy(QSizePolicy::Preferred, + inputModeFociToolButton->sizePolicy().verticalPolicy()); + inputModeImageToolButton->setSizePolicy(QSizePolicy::Preferred, + inputModeImageToolButton->sizePolicy().verticalPolicy()); +// inputModeFociToolButton->setFixedWidth(inputModeFociToolButton->sizeHint().width()); +// inputModeImageToolButton->setFixedWidth(inputModeImageToolButton->sizeHint().width()); + /* * Layout for input modes */ QWidget* inputModeWidget = new QWidget(); - QVBoxLayout* inputModeLayout = new QVBoxLayout(inputModeWidget); + QGridLayout* inputModeLayout = new QGridLayout(inputModeWidget); + int modeRow = 0; WuQtUtilities::setLayoutSpacingAndMargins(inputModeLayout, 2, 2); - inputModeLayout->addWidget(inputModeAnnotationsToolButton, 0, Qt::AlignHCenter); - inputModeLayout->addWidget(inputModeBordersToolButton, 0, Qt::AlignHCenter); - inputModeLayout->addWidget(inputModeFociToolButton, 0, Qt::AlignHCenter); - inputModeLayout->addWidget(inputModeViewToolButton, 0, Qt::AlignHCenter); - inputModeLayout->addWidget(inputModeVolumeEditButton, 0, Qt::AlignHCenter); + inputModeLayout->addWidget(inputModeAnnotationsToolButton, modeRow, 0, 1, 2, Qt::AlignHCenter); + modeRow++; + inputModeLayout->addWidget(inputModeBordersToolButton, modeRow, 0, 1, 2, Qt::AlignHCenter); + modeRow++; + inputModeLayout->addWidget(inputModeFociToolButton, modeRow, 0); + inputModeLayout->addWidget(inputModeImageToolButton, modeRow, 1); + modeRow++; + inputModeLayout->addWidget(inputModeViewToolButton, modeRow, 0, 1, 2, Qt::AlignHCenter); + modeRow++; + inputModeLayout->addWidget(inputModeVolumeEditButton, modeRow, 0, 1, 2, Qt::AlignHCenter); + modeRow++; this->modeInputModeActionGroup = new QActionGroup(this); this->modeInputModeActionGroup->addAction(this->modeInputModeAnnotationsAction); this->modeInputModeActionGroup->addAction(this->modeInputModeBordersAction); this->modeInputModeActionGroup->addAction(this->modeInputModeFociAction); + this->modeInputModeActionGroup->addAction(this->modeInputModeImageAction); this->modeInputModeActionGroup->addAction(this->modeInputModeViewAction); this->modeInputModeActionGroup->addAction(this->modeInputVolumeEditAction); QObject::connect(this->modeInputModeActionGroup, SIGNAL(triggered(QAction*)), @@ -2352,6 +2380,9 @@ else if (action == this->modeInputModeFociAction) { inputMode = UserInputModeAbstract::FOCI; } + else if (action == this->modeInputModeImageAction) { + inputMode = UserInputModeAbstract::IMAGE; + } else if (action == this->modeInputVolumeEditAction) { inputMode = UserInputModeAbstract::VOLUME_EDIT; } @@ -2403,6 +2434,9 @@ case UserInputModeAbstract::FOCI: this->modeInputModeFociAction->setChecked(true); break; + case UserInputModeAbstract::IMAGE: + this->modeInputModeImageAction->setChecked(true); + break; case UserInputModeAbstract::VOLUME_EDIT: this->modeInputVolumeEditAction->setChecked(true); break; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindowToolBar.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindowToolBar.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainBrowserWindowToolBar.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainBrowserWindowToolBar.h 2016-10-19 23:35:12.000000000 +0000 @@ -368,6 +368,7 @@ QAction* modeInputModeAnnotationsAction; QAction* modeInputModeBordersAction; QAction* modeInputModeFociAction; + QAction* modeInputModeImageAction; QAction* modeInputModeViewAction; QAction* modeInputVolumeEditAction; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainOpenGLWidget.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainOpenGLWidget.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainOpenGLWidget.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainOpenGLWidget.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -76,6 +76,7 @@ #include "UserInputModeAnnotations.h" #include "UserInputModeBorders.h" #include "UserInputModeFoci.h" +#include "UserInputModeImage.h" #include "UserInputModeView.h" #include "UserInputModeVolumeEdit.h" @@ -118,6 +119,7 @@ this->userInputBordersModeProcessor = new UserInputModeBorders(this->borderBeingDrawn, windowIndex); this->userInputFociModeProcessor = new UserInputModeFoci(windowIndex); + this->userInputImageModeProcessor = new UserInputModeImage(windowIndex); this->userInputVolumeEditModeProcessor = new UserInputModeVolumeEdit(windowIndex); this->userInputViewModeProcessor = new UserInputModeView(); this->selectedUserInputProcessor = this->userInputViewModeProcessor; @@ -166,6 +168,7 @@ delete this->userInputAnnotationsModeProcessor; delete this->userInputBordersModeProcessor; delete this->userInputFociModeProcessor; + delete this->userInputImageModeProcessor; delete this->userInputVolumeEditModeProcessor; this->selectedUserInputProcessor = NULL; // DO NOT DELETE since it does not own the object to which it points @@ -1349,6 +1352,9 @@ case UserInputModeAbstract::FOCI: newUserInputProcessor = this->userInputFociModeProcessor; break; + case UserInputModeAbstract::IMAGE: + newUserInputProcessor = this->userInputImageModeProcessor; + break; case UserInputModeAbstract::VOLUME_EDIT: newUserInputProcessor = this->userInputVolumeEditModeProcessor; break; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainOpenGLWidget.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainOpenGLWidget.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/BrainOpenGLWidget.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/BrainOpenGLWidget.h 2016-10-19 23:35:12.000000000 +0000 @@ -50,6 +50,7 @@ class UserInputModeAnnotations; class UserInputModeBorders; class UserInputModeFoci; + class UserInputModeImage; class UserInputModeView; class UserInputModeVolumeEdit; class UserInputModeAbstract; @@ -172,6 +173,7 @@ UserInputModeView* userInputViewModeProcessor; UserInputModeBorders* userInputBordersModeProcessor; UserInputModeFoci* userInputFociModeProcessor; + UserInputModeImage* userInputImageModeProcessor; UserInputModeVolumeEdit* userInputVolumeEditModeProcessor; Border* borderBeingDrawn; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/CiftiConnectivityMatrixViewController.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/CiftiConnectivityMatrixViewController.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/CiftiConnectivityMatrixViewController.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/CiftiConnectivityMatrixViewController.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -173,9 +173,13 @@ } else { checkBox = new QCheckBox(""); + checkBox->setToolTip("When selected, load data during\n" + "an identification operation"); m_fileEnableCheckBoxes.push_back(checkBox); layerCheckBox = new QCheckBox(""); + layerCheckBox->setToolTip("When selected, allow selection of this\n" + "file as an overlay in the Layers tab"); m_layerCheckBoxes.push_back(layerCheckBox); lineEdit = new QLineEdit(); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -150,6 +150,7 @@ UserInputModeAnnotationsWidget.h UserInputModeBordersWidget.h UserInputModeFociWidget.h +UserInputModeImageWidget.h UserInputModeViewContextMenu.h UserInputModeVolumeEditWidget.h UsernamePasswordWidget.h @@ -353,6 +354,8 @@ UserInputModeBordersWidget.h UserInputModeFociWidget.h UserInputModeFoci.h +UserInputModeImageWidget.h +UserInputModeImage.h UserInputModeView.h UserInputModeViewContextMenu.h UserInputModeVolumeEdit.h @@ -551,6 +554,8 @@ UserInputModeBordersWidget.cxx UserInputModeFoci.cxx UserInputModeFociWidget.cxx +UserInputModeImage.cxx +UserInputModeImageWidget.cxx UserInputModeView.cxx UserInputModeViewContextMenu.cxx UserInputModeVolumeEdit.cxx diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageFileConvertToVolumeFileDialog.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageFileConvertToVolumeFileDialog.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageFileConvertToVolumeFileDialog.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageFileConvertToVolumeFileDialog.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -23,19 +23,18 @@ #include "ImageFileConvertToVolumeFileDialog.h" #undef __IMAGE_FILE_CONVERT_TO_VOLUME_FILE_DIALOG_DECLARE__ -#include +#include #include #include #include #include -#include #include "Brain.h" #include "BrowserTabContent.h" #include "CaretAssert.h" +#include "ControlPointFile.h" #include "ControlPoint3D.h" #include "DisplayPropertiesImages.h" -#include "EnumComboBoxTemplate.h" #include "EventBrowserTabGet.h" #include "EventDataFileAdd.h" #include "EventGraphicsUpdateAllWindows.h" @@ -80,8 +79,6 @@ layout->addWidget(controlPointWidget); setCentralWidget(widget, WuQDialog::SCROLL_AREA_NEVER); - - loadAllControlPoints(); } /** @@ -112,16 +109,6 @@ slicePlanes.push_back(VolumeSliceViewPlaneEnum::CORONAL); slicePlanes.push_back(VolumeSliceViewPlaneEnum::PARASAGITTAL); - QLabel* m_sliceViewPlaneLabel = new QLabel("Slice Axis:"); - - m_sliceViewPlaneComboBox = new EnumComboBoxTemplate(this); - m_sliceViewPlaneComboBox->setupWithItems(slicePlanes); - m_sliceViewPlaneComboBox->getComboBox()->setItemText(0, "Current View"); // replaces ALL - m_sliceViewPlaneComboBox->getComboBox()->setSizeAdjustPolicy(QComboBox::AdjustToContentsOnFirstShow); - WuQtUtilities::setToolTipAndStatusTip(m_sliceViewPlaneComboBox->getWidget(), - "Axis of slice to which image is aligned"); - - QLabel* colorConversionLabel = new QLabel("Color Conversion:"); m_colorConversionComboBox = new QComboBox(); m_colorConversionComboBox->addItem("Grayscale"); @@ -138,9 +125,6 @@ layout->addWidget(volumeFileNameLabel, row, 0); layout->addWidget(m_volumeFileNameLineEdit, row, 1); row++; - layout->addWidget(m_sliceViewPlaneLabel, row, 0); - layout->addWidget(m_sliceViewPlaneComboBox->getWidget(), row, 1); - row++; layout->addWidget(colorConversionLabel, row, 0); layout->addWidget(m_colorConversionComboBox, row, 1); row++; @@ -154,92 +138,144 @@ QWidget* ImageFileConvertToVolumeFileDialog::createControlPointWidget() { + const ControlPointFile* controlPointFile = m_imageFile->getControlPointFile(); + const int32_t numberOfControlPoints = controlPointFile->getNumberOfControlPoints(); + + int32_t columnCounter = 0; + const int32_t COLUMN_PIXEL_I = columnCounter++; + const int32_t COLUMN_PIXEL_J = columnCounter++; + const int32_t COLUMN_SEPARATOR_1 = columnCounter++; + const int32_t COLUMN_VOLUME_X = columnCounter++; + const int32_t COLUMN_VOLUME_Y = columnCounter++; + const int32_t COLUMN_VOLUME_Z = columnCounter++; + const int32_t COLUMN_SEPARATOR_2 = columnCounter++; + const int32_t COLUMN_TRANSFORMED_X = columnCounter++; + const int32_t COLUMN_TRANSFORMED_Y = columnCounter++; + const int32_t COLUMN_TRANSFORMED_Z = columnCounter++; + const int32_t COLUMN_SEPARATOR_3 = columnCounter++; + const int32_t COLUMN_ERROR_X = columnCounter++; + const int32_t COLUMN_ERROR_Y = columnCounter++; + const int32_t COLUMN_ERROR_Z = columnCounter++; + const int32_t COLUMN_ERROR_TOTAL = columnCounter++; + + const int32_t FLOAT_PRECISION = 1; + QGroupBox* widget = new QGroupBox("Control Points"); QGridLayout* gridLayout = new QGridLayout(widget); + int32_t row = gridLayout->rowCount(); - int row = 0; - gridLayout->addWidget(new QLabel("Pixel I"), row, 0, Qt::AlignHCenter); - gridLayout->addWidget(new QLabel("Pixel J"), row, 1, Qt::AlignHCenter); - gridLayout->addWidget(new QLabel("X"), row, 2, Qt::AlignHCenter); - gridLayout->addWidget(new QLabel("Y"), row, 3, Qt::AlignHCenter); - gridLayout->addWidget(new QLabel("Z"), row, 4, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Image"), + row, COLUMN_PIXEL_I, 1, 2, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Volume"), + row, COLUMN_VOLUME_X, 1, 3, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Transformed"), + row, COLUMN_TRANSFORMED_X, 1, 3, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Error"), + row, COLUMN_ERROR_X, 1, 4, Qt::AlignHCenter); row++; - const int32_t numberOfControlPoints = 3; + gridLayout->addWidget(new QLabel("I"), + row, COLUMN_PIXEL_I, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("J"), + row, COLUMN_PIXEL_J, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("X"), + row, COLUMN_VOLUME_X, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Y"), + row, COLUMN_VOLUME_Y, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Z"), + row, COLUMN_VOLUME_Z, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("X"), + row, COLUMN_TRANSFORMED_X, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Y"), + row, COLUMN_TRANSFORMED_Y, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Z"), + row, COLUMN_TRANSFORMED_Z, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("X"), + row, COLUMN_ERROR_X, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Y"), + row, COLUMN_ERROR_Y, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Z"), + row, COLUMN_ERROR_Z, Qt::AlignHCenter); + gridLayout->addWidget(new QLabel("Total"), + row, COLUMN_ERROR_TOTAL, Qt::AlignHCenter); + row++; for (int32_t icp = 0; icp < numberOfControlPoints; icp++) { - QSpinBox* isb = new QSpinBox(); - isb->setRange(0, m_imageFile->getWidth() - 1); - QSpinBox* jsb = new QSpinBox(); - jsb->setRange(0, m_imageFile->getHeight() - 1); + const ControlPoint3D* cp = controlPointFile->getControlPointAtIndex(icp); - const double maxValue = 9999999.0; - QDoubleSpinBox* xsb = new QDoubleSpinBox(); - xsb->setRange(-maxValue, maxValue); - xsb->setDecimals(3); - QDoubleSpinBox* ysb = new QDoubleSpinBox(); - ysb->setRange(-maxValue, maxValue); - ysb->setDecimals(3); - QDoubleSpinBox* zsb = new QDoubleSpinBox(); - zsb->setRange(-maxValue, maxValue); - zsb->setDecimals(3); - -// switch (icp) { -// case 0: -// isb->setValue(45); -// jsb->setValue(37); -// xsb->setValue(-58); -// ysb->setValue(-72); -// zsb->setValue(6); -// -// isb->setValue(72); -// jsb->setValue(32); -// xsb->setValue(-42); -// ysb->setValue(-92); -// zsb->setValue(6); -// break; -// case 1: -// isb->setValue(122); -// jsb->setValue(40); -// xsb->setValue(-10); -// ysb->setValue(-71); -// zsb->setValue(6); -// -// isb->setValue(130); -// jsb->setValue(33); -// xsb->setValue(1); -// ysb->setValue(-94); -// zsb->setValue(6); -// break; -// case 2: -// isb->setValue(113); -// jsb->setValue(155); -// xsb->setValue(-16); -// ysb->setValue(2); -// zsb->setValue(6); -// -// isb->setValue(104); -// jsb->setValue(106); -// xsb->setValue(-44); -// ysb->setValue(-33); -// zsb->setValue(6); -// break; -// } + float sourceXYZ[3]; + cp->getSourceXYZ(sourceXYZ); + gridLayout->addWidget(new QLabel(QString::number(sourceXYZ[0], 'f', 0)), + row, + COLUMN_PIXEL_I, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(sourceXYZ[1], 'f', 0)), + row, + COLUMN_PIXEL_J, + Qt::AlignRight); - m_sourceXSpinBox.push_back(isb); - m_sourceYSpinBox.push_back(jsb); - m_targetXSpinBox.push_back(xsb); - m_targetYSpinBox.push_back(ysb); - m_targetZSpinBox.push_back(zsb); + float targetXYZ[3]; + cp->getTargetXYZ(targetXYZ); + gridLayout->addWidget(new QLabel(QString::number(targetXYZ[0], 'f', FLOAT_PRECISION)), + row, + COLUMN_VOLUME_X, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(targetXYZ[1], 'f', FLOAT_PRECISION)), + row, + COLUMN_VOLUME_Y, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(targetXYZ[2], 'f', FLOAT_PRECISION)), + row, + COLUMN_VOLUME_Z, + Qt::AlignRight); + + float transformedXYZ[3]; + cp->getTransformedXYZ(transformedXYZ); + gridLayout->addWidget(new QLabel(QString::number(transformedXYZ[0], 'f', FLOAT_PRECISION)), + row, + COLUMN_TRANSFORMED_X, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(transformedXYZ[1], 'f', FLOAT_PRECISION)), + row, + COLUMN_TRANSFORMED_Y, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(transformedXYZ[2], 'f', FLOAT_PRECISION)), + row, + COLUMN_TRANSFORMED_Z, + Qt::AlignRight); + + float errorXYZTotal[4]; + cp->getErrorMeasurements(errorXYZTotal); + gridLayout->addWidget(new QLabel(QString::number(errorXYZTotal[0], 'f', FLOAT_PRECISION)), + row, + COLUMN_ERROR_X, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(errorXYZTotal[1], 'f', FLOAT_PRECISION)), + row, + COLUMN_ERROR_Y, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(errorXYZTotal[2], 'f', FLOAT_PRECISION)), + row, + COLUMN_ERROR_Z, + Qt::AlignRight); + gridLayout->addWidget(new QLabel(QString::number(errorXYZTotal[3], 'f', FLOAT_PRECISION)), + row, + COLUMN_ERROR_TOTAL, + Qt::AlignRight); - gridLayout->addWidget(isb, row, 0); - gridLayout->addWidget(jsb, row, 1); - gridLayout->addWidget(xsb, row, 2); - gridLayout->addWidget(ysb, row, 3); - gridLayout->addWidget(zsb, row, 4); row++; } + gridLayout->addWidget(WuQtUtilities::createVerticalLineWidget(), + 0, COLUMN_SEPARATOR_1, + row, 1); + gridLayout->addWidget(WuQtUtilities::createVerticalLineWidget(), + 0, COLUMN_SEPARATOR_2, + row, 1); + gridLayout->addWidget(WuQtUtilities::createVerticalLineWidget(), + 0, COLUMN_SEPARATOR_3, + row, 1); + return widget; } @@ -256,12 +292,15 @@ EventManager::get()->sendEvent(tabEvent.getPointer()); BrowserTabContent* tabContent = tabEvent.getBrowserTab(); ModelWholeBrain* wholeBrainModel = NULL; + ModelVolume* volumeModel = NULL; if (tabContent != NULL) { + volumeModel = tabContent->getDisplayedVolumeModel(); wholeBrainModel = tabContent->getDisplayedWholeBrainModel(); } - if (wholeBrainModel == NULL) { + if ((volumeModel == NULL) + && (wholeBrainModel == NULL)) { WuQMessageBox::errorOk(this, - "Conversion must be performed in ALL view."); + "Conversion must be performed in ALL or VOLUME view."); return; } @@ -280,27 +319,16 @@ std::vector controlPoints; - const int32_t numberOfControlPoints = static_cast(m_sourceXSpinBox.size()); + const ControlPointFile* controlPointFile = m_imageFile->getControlPointFile(); + const int32_t numberOfControlPoints = controlPointFile->getNumberOfControlPoints(); for (int32_t icp = 0; icp < numberOfControlPoints; icp++) { - const float sourceXYZ[3] = { - m_sourceXSpinBox[icp]->value(), - m_sourceYSpinBox[icp]->value(), - 0.0 - }; - const float targetXYZ[3] = { - m_targetXSpinBox[icp]->value(), - m_targetYSpinBox[icp]->value(), - m_targetZSpinBox[icp]->value() - }; - controlPoints.push_back(ControlPoint3D(sourceXYZ, - targetXYZ)); + controlPoints.push_back(*controlPointFile->getControlPointAtIndex(icp)); } const int colorConversionIndex = m_colorConversionComboBox->itemData(m_colorConversionComboBox->currentIndex()).toInt(); const ImageFile::CONVERT_TO_VOLUME_COLOR_MODE colorMode = static_cast(colorConversionIndex); AString errorMessage; VolumeFile* volumeFile = m_imageFile->convertToVolumeFile(colorMode, - controlPoints, brain->getPaletteFile(), errorMessage); @@ -318,53 +346,3 @@ WuQDialogModal::okButtonClicked(); } -/** - * Load the control points. - */ -void -ImageFileConvertToVolumeFileDialog::loadAllControlPoints() -{ - /* - * Coronal View - */ - ControlPoint3D cp1(48, 105, 0, -58, -13, 11); - ControlPoint3D cp2(140, 106, 0, -12, -13, 13); - ControlPoint3D cp3(133, 196, 0, -17, -13, 58); - -// /* -// * Axial View -// */ -// ControlPoint3D cp1(60, 36, 0, -41, -79, 6); -// ControlPoint3D cp2(98, 35, 0, -13, -80, 6); -// ControlPoint3D cp3(97, 151, 0, -14, 4, 6); - - loadControlPoint(0, cp1); - loadControlPoint(1, cp2); - loadControlPoint(2, cp3); -} - -/** - * Load a control point into the spin boxes for the given index. - * - * @param index - * Index of the spin boxes. - * @param cp - * The control point. - */ -void -ImageFileConvertToVolumeFileDialog::loadControlPoint(const int32_t index, - const ControlPoint3D& cp) -{ - CaretAssertVectorIndex(m_sourceXSpinBox, index); - CaretAssertVectorIndex(m_sourceYSpinBox, index); - CaretAssertVectorIndex(m_targetXSpinBox, index); - CaretAssertVectorIndex(m_targetYSpinBox, index); - CaretAssertVectorIndex(m_targetZSpinBox, index); - - m_sourceXSpinBox[index]->setValue(cp.getSourceX()); - m_sourceYSpinBox[index]->setValue(cp.getSourceY()); - m_targetXSpinBox[index]->setValue(cp.getTargetX()); - m_targetYSpinBox[index]->setValue(cp.getTargetY()); - m_targetZSpinBox[index]->setValue(cp.getTargetZ()); - -} diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageFileConvertToVolumeFileDialog.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageFileConvertToVolumeFileDialog.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageFileConvertToVolumeFileDialog.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageFileConvertToVolumeFileDialog.h 2016-10-19 23:35:12.000000000 +0000 @@ -21,22 +21,16 @@ */ /*LICENSE_END*/ - +#include "CaretPointer.h" #include "WuQDialogModal.h" class QComboBox; -class QDoubleSpinBox; class QLineEdit; -class QSpinBox; +class QTableWidget; namespace caret { - class Brain; - class BrowserTabContent; - class ControlPoint3D; - class EnumComboBoxTemplate; class ImageFile; - class Matrix4x4; class ImageFileConvertToVolumeFileDialog : public WuQDialogModal { @@ -64,11 +58,6 @@ QWidget* createControlPointWidget(); - void loadAllControlPoints(); - - void loadControlPoint(const int32_t index, - const ControlPoint3D& cp); - // ADD_NEW_MEMBERS_HERE const int32_t m_tabIndex; @@ -77,21 +66,9 @@ QLineEdit* m_volumeFileNameLineEdit; - EnumComboBoxTemplate* m_sliceViewPlaneComboBox; - QComboBox* m_colorConversionComboBox; - std::vector m_sourceXSpinBox; - - std::vector m_sourceYSpinBox; - - std::vector m_targetXSpinBox; - - std::vector m_targetYSpinBox; - - std::vector m_targetZSpinBox; - - + QTableWidget* m_tableWidget; }; #ifdef __IMAGE_FILE_CONVERT_TO_VOLUME_FILE_DIALOG_DECLARE__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageSelectionViewController.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageSelectionViewController.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageSelectionViewController.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageSelectionViewController.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -38,6 +38,7 @@ #include "CaretAssert.h" #include "DisplayGroupEnumComboBox.h" #include "DisplayPropertiesImages.h" +#include "EnumComboBoxTemplate.h" #include "EventGraphicsUpdateAllWindows.h" #include "EventManager.h" #include "EventUserInterfaceUpdate.h" @@ -47,14 +48,12 @@ #include "SceneClassAssistant.h" #include "WuQSpinBoxGroup.h" #include "WuQtUtilities.h" +#include "WuQTabWidget.h" using namespace caret; -static const int COLUMN_SPIN_BOX = 1; static const int COLUMN_RADIO_BUTTON = 0; - - /** * \class caret::ImageSelectionViewController * \brief View controller for image selection @@ -85,41 +84,30 @@ m_imageDisplayCheckBox = new QCheckBox("Display Image"); QObject::connect(m_imageDisplayCheckBox, SIGNAL(clicked(bool)), - this, SLOT(processSelectionChanges())); - - m_imageRadioButtonGroup = new QButtonGroup(this); - QObject::connect(m_imageRadioButtonGroup, SIGNAL(buttonClicked(int)), - this, SLOT(imageRadioButtonClicked(int))); - - m_windowZeeSpinBoxSignalMapper = new QSignalMapper(this); - QObject::connect(m_windowZeeSpinBoxSignalMapper, SIGNAL(mapped(int)), - this, SLOT(windowZeeSpinBoxValueChanged(const int))); + this, SLOT(processAttributesChanges())); - QWidget* imageRadioButtonWidget = new QWidget(); - imageRadioButtonWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - m_imageRadioButtonLayout = new QGridLayout(imageRadioButtonWidget); - m_imageRadioButtonLayout->setColumnStretch(COLUMN_SPIN_BOX, 0); - m_imageRadioButtonLayout->setColumnStretch(COLUMN_RADIO_BUTTON, 100); - const int imageLayoutRow = m_imageRadioButtonLayout->rowCount(); - m_imageRadioButtonLayout->addWidget(new QLabel("Image"), - imageLayoutRow, COLUMN_RADIO_BUTTON, - Qt::AlignHCenter); - m_imageRadioButtonLayout->addWidget(new QLabel("Depth"), - imageLayoutRow, COLUMN_SPIN_BOX, - Qt::AlignLeft); - - QScrollArea* imageRadioButtonScrollArea = new QScrollArea(); - imageRadioButtonScrollArea->setWidget(imageRadioButtonWidget); - imageRadioButtonScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); - imageRadioButtonScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); - imageRadioButtonScrollArea->setWidgetResizable(true); + m_controlPointsDisplayCheckBox = new QCheckBox("Display Control Points"); + QObject::connect(m_controlPointsDisplayCheckBox, SIGNAL(clicked(bool)), + this, SLOT(processAttributesChanges())); + + QWidget* attributesWidget = this->createAttributesWidget(); + QWidget* selectionWidget = this->createSelectionWidget(); + + m_tabWidget = new WuQTabWidget(WuQTabWidget::TAB_ALIGN_LEFT, + this); + m_tabWidget->addTab(attributesWidget, + "Attributes"); + m_tabWidget->addTab(selectionWidget, + "Selection"); + m_tabWidget->setCurrentWidget(attributesWidget); QVBoxLayout* layout = new QVBoxLayout(this); // WuQtUtilities::setLayoutSpacingAndMargins(layout, 2, 2); layout->addLayout(groupLayout, 0); layout->addWidget(m_imageDisplayCheckBox, 0); + layout->addWidget(m_controlPointsDisplayCheckBox, 0); layout->addSpacing(10); - layout->addWidget(imageRadioButtonScrollArea, 100); + layout->addWidget(m_tabWidget->getWidget(), 100); layout->addStretch(); EventManager::get()->addEventListener(this, EventTypeEnum::EVENT_USER_INTERFACE_UPDATE); @@ -168,10 +156,126 @@ } /** + * Create the image selection widget. + */ +QWidget* +ImageSelectionViewController::createSelectionWidget() +{ + m_imageRadioButtonGroup = new QButtonGroup(this); + QObject::connect(m_imageRadioButtonGroup, SIGNAL(buttonClicked(int)), + this, SLOT(imageRadioButtonClicked(int))); + + QWidget* imageRadioButtonWidget = new QWidget(); + imageRadioButtonWidget->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + m_imageRadioButtonLayout = new QGridLayout(imageRadioButtonWidget); + m_imageRadioButtonLayout->setColumnStretch(COLUMN_RADIO_BUTTON, 100); + const int imageLayoutRow = m_imageRadioButtonLayout->rowCount(); + m_imageRadioButtonLayout->addWidget(new QLabel("Image"), + imageLayoutRow, COLUMN_RADIO_BUTTON, + Qt::AlignHCenter); + + QScrollArea* imageRadioButtonScrollArea = new QScrollArea(); + imageRadioButtonScrollArea->setWidget(imageRadioButtonWidget); + imageRadioButtonScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); + imageRadioButtonScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + imageRadioButtonScrollArea->setWidgetResizable(true); + + return imageRadioButtonScrollArea; +} + +/** + * @return The attributes widget. + */ +QWidget* +ImageSelectionViewController::createAttributesWidget() +{ + QLabel* depthLabel = new QLabel("Depth"); + m_depthComboBox = new EnumComboBoxTemplate(this); + m_depthComboBox->setup(); + m_depthComboBox->getWidget()->setToolTip("Set the depth position of the image3"); + QObject::connect(m_depthComboBox, SIGNAL(itemActivated()), + this, SLOT(processAttributesChanges())); + + const float threshMin = -1.0; + const float threshMax = 100000.0; + + QLabel* thresholdMinimumLabel = new QLabel("Minimum Threshold"); + m_thresholdMinimumSpinBox = WuQFactory::newDoubleSpinBox(); + m_thresholdMinimumSpinBox->setFixedWidth(80); + m_thresholdMinimumSpinBox->setRange(threshMin, + threshMax); + m_thresholdMinimumSpinBox->setSingleStep(1.0); + m_thresholdMinimumSpinBox->setDecimals(1); + m_thresholdMinimumSpinBox->setToolTip("Do not display image pixels containing a color component less than this value"); + QObject::connect(m_thresholdMinimumSpinBox, SIGNAL(valueChanged(double)), + this, SLOT(processAttributesChanges())); + + QLabel* thresholdMaximumLabel = new QLabel("Maximum Threshold"); + m_thresholdMaximumSpinBox = WuQFactory::newDoubleSpinBox(); + m_thresholdMaximumSpinBox->setFixedWidth(80); + m_thresholdMaximumSpinBox->setRange(threshMin, + threshMax); + m_thresholdMaximumSpinBox->setSingleStep(1.0); + m_thresholdMaximumSpinBox->setDecimals(1); + m_thresholdMaximumSpinBox->setToolTip("Do not display image pixels containing a color component greater than this value"); + QObject::connect(m_thresholdMaximumSpinBox, SIGNAL(valueChanged(double)), + this, SLOT(processAttributesChanges())); + + const float minOpacity = 0.0; + const float maxOpacity = 1.0; + QLabel* opacityLabel = new QLabel("Opacity"); + m_opacitySpinBox = WuQFactory::newDoubleSpinBox(); + m_opacitySpinBox->setFixedWidth(80); + m_opacitySpinBox->setRange(minOpacity, + maxOpacity); + m_opacitySpinBox->setSingleStep(0.1); + m_opacitySpinBox->setDecimals(1); + m_opacitySpinBox->setToolTip("Opacity for image"); + QObject::connect(m_opacitySpinBox, SIGNAL(valueChanged(double)), + this, SLOT(processAttributesChanges())); + + + QWidget* gridWidget = new QWidget(); + QGridLayout* gridLayout = new QGridLayout(gridWidget); + WuQtUtilities::setLayoutSpacingAndMargins(gridLayout, 8, 2); + int row = gridLayout->rowCount(); + gridLayout->addWidget(depthLabel, row, 0); + gridLayout->addWidget(m_depthComboBox->getWidget(), row, 1); + row++; + gridLayout->addWidget(thresholdMinimumLabel, row, 0); + gridLayout->addWidget(m_thresholdMinimumSpinBox, row, 1); + row++; + gridLayout->addWidget(thresholdMaximumLabel, row, 0); + gridLayout->addWidget(m_thresholdMaximumSpinBox, row, 1); + row++; + gridLayout->addWidget(opacityLabel, row, 0); + gridLayout->addWidget(m_opacitySpinBox, row, 1); + row++; +// gridLayout->addWidget(pointSizeLabel, row, 0); +// gridLayout->addWidget(m_pointSizeSpinBox, row, 1); +// row++; +// gridLayout->addWidget(m_enableUnstretchedLinesCheckBox, row, 0); +// gridLayout->addWidget(m_unstretchedLinesLengthSpinBox, row, 1); +// row++; +// gridLayout->addWidget(aboveSurfaceLabel, row, 0); +// gridLayout->addWidget(m_aboveSurfaceOffsetSpinBox, row, 1); +// +// gridWidget->setSizePolicy(QSizePolicy::Fixed, +// QSizePolicy::Fixed); + + QWidget* widget = new QWidget(); + QVBoxLayout* layout = new QVBoxLayout(widget); + layout->addWidget(gridWidget); + layout->addStretch(); + + return widget; +} + +/** * Called when a selection changes. */ void -ImageSelectionViewController::processSelectionChanges() +ImageSelectionViewController::processAttributesChanges() { DisplayPropertiesImages* dpi = GuiManager::get()->getBrain()->getDisplayPropertiesImages(); @@ -185,6 +289,24 @@ dpi->setDisplayed(displayGroup, browserTabIndex, m_imageDisplayCheckBox->isChecked()); + dpi->setControlPointsDisplayed(displayGroup, + browserTabIndex, + m_controlPointsDisplayCheckBox->isChecked()); + dpi->setImagePosition(displayGroup, + browserTabIndex, + m_depthComboBox->getSelectedItem()); + + dpi->setThresholdMinimum(displayGroup, + browserTabIndex, + m_thresholdMinimumSpinBox->value()); + + dpi->setThresholdMaximum(displayGroup, + browserTabIndex, + m_thresholdMaximumSpinBox->value()); + + dpi->setOpacity(displayGroup, + browserTabIndex, + m_opacitySpinBox->value()); EventManager::get()->sendEvent(EventGraphicsUpdateAllWindows().getPointer()); @@ -252,32 +374,6 @@ } /** - * Gets called when a depth spin box has its value changed. - * - * @param spinBoxIndex - * Index of spin box whose value is changed. - */ -void -ImageSelectionViewController::windowZeeSpinBoxValueChanged(const int spinBoxIndex) -{ - BrowserTabContent* browserTabContent = - GuiManager::get()->getBrowserTabContentForBrowserWindow(m_browserWindowIndex, true); - if (browserTabContent == NULL) { - return; - } - Brain* brain = GuiManager::get()->getBrain(); - std::vector allImageFiles = brain->getAllImagesFiles(); - CaretAssertVectorIndex(allImageFiles, spinBoxIndex); - CaretAssertVectorIndex(m_windowZeeSpinBoxes, spinBoxIndex); - - allImageFiles[spinBoxIndex]->setWindowZ(m_windowZeeSpinBoxes[spinBoxIndex]->value()); - - updateOtherImageViewControllers(); -} - - - -/** * Update the image selection widget. */ void @@ -301,36 +397,21 @@ m_imageDisplayCheckBox->setChecked(dpi->isDisplayed(displayGroup, browserTabIndex)); + m_controlPointsDisplayCheckBox->setChecked(dpi->isControlPointsDisplayed(displayGroup, + browserTabIndex)); const int32_t numImageFiles = static_cast(allImageFiles.size()); int32_t numRadioButtons = static_cast(m_imageRadioButtons.size()); if (numImageFiles > numRadioButtons) { - const AString depthToolTip = ("Adjust 'depth' of image:\n" - " Negative ==> Move towards viewer\n" - " Zero ==> Anterior Commissure\n" - " Positive ==> Move away from viewer"); const int32_t numToAdd = numImageFiles - numRadioButtons; for (int32_t i = 0; i < numToAdd; i++) { const int buttonID = static_cast(m_imageRadioButtons.size()); QRadioButton* rb = new QRadioButton(""); m_imageRadioButtons.push_back(rb); - QDoubleSpinBox* sb = new QDoubleSpinBox(); - sb->setRange(-1000.0, 1000.0); - sb->setDecimals(1); - sb->setSingleStep(1.0); - sb->setToolTip(depthToolTip); - m_windowZeeSpinBoxes.push_back(sb); - - QObject::connect(sb, SIGNAL(valueChanged(double)), - m_windowZeeSpinBoxSignalMapper, SLOT(map())); - m_windowZeeSpinBoxSignalMapper->setMapping(sb, i); - const int row = m_imageRadioButtonLayout->rowCount(); - m_imageRadioButtonLayout->addWidget(sb, - row, COLUMN_SPIN_BOX); m_imageRadioButtonLayout->addWidget(rb, row, COLUMN_RADIO_BUTTON); @@ -341,15 +422,11 @@ numRadioButtons = static_cast(m_imageRadioButtons.size()); } - m_windowZeeSpinBoxSignalMapper->blockSignals(true); - const ImageFile* selectedImageFile = dpi->getSelectedImageFile(displayGroup, browserTabIndex); for (int32_t i = 0; i < numRadioButtons; i++) { CaretAssertVectorIndex(m_imageRadioButtons, i); QRadioButton* rb = m_imageRadioButtons[i]; - CaretAssertVectorIndex(m_windowZeeSpinBoxes, i); - QDoubleSpinBox* sb = m_windowZeeSpinBoxes[i]; if (i < numImageFiles) { rb->setText(allImageFiles[i]->getFileNameNoPath()); @@ -357,17 +434,23 @@ rb->setChecked(true); } rb->setVisible(true); - - sb->setValue(allImageFiles[i]->getWindowZ()); - sb->setVisible(true); } else { rb->setVisible(false); - sb->setVisible(false); } } - - m_windowZeeSpinBoxSignalMapper->blockSignals(false); + + m_depthComboBox->setSelectedItem(dpi->getImagePosition(displayGroup, + browserTabIndex)); + m_thresholdMinimumSpinBox->blockSignals(true); + m_thresholdMinimumSpinBox->setValue(dpi->getThresholdMinimum(displayGroup, browserTabIndex)); + m_thresholdMinimumSpinBox->blockSignals(false); + m_thresholdMaximumSpinBox->blockSignals(true); + m_thresholdMaximumSpinBox->setValue(dpi->getThresholdMaximum(displayGroup, browserTabIndex)); + m_thresholdMaximumSpinBox->blockSignals(false); + m_opacitySpinBox->blockSignals(true); + m_opacitySpinBox->setValue(dpi->getOpacity(displayGroup, browserTabIndex)); + m_opacitySpinBox->blockSignals(false); } /** diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageSelectionViewController.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageSelectionViewController.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/ImageSelectionViewController.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/ImageSelectionViewController.h 2016-10-19 23:35:12.000000000 +0000 @@ -39,7 +39,9 @@ namespace caret { class DisplayGroupEnumComboBox; + class EnumComboBoxTemplate; class SceneClassAssistant; + class WuQTabWidget; class ImageSelectionViewController : public QWidget, public EventListenerInterface, public SceneableInterface { @@ -64,14 +66,12 @@ private slots: - void processSelectionChanges(); + void processAttributesChanges(); void imageDisplayGroupSelected(const DisplayGroupEnum::Enum); void imageRadioButtonClicked(int); - void windowZeeSpinBoxValueChanged(const int indx); - // If there will be sub-classes of this class that need to save // and restore data from scenes, these pure virtual methods can // be uncommented to force their implemetation by sub-classes. @@ -91,15 +91,21 @@ void updateImageViewController(); + QWidget* createSelectionWidget(); + + QWidget* createAttributesWidget(); + const int32_t m_browserWindowIndex; + WuQTabWidget* m_tabWidget; + SceneClassAssistant* m_sceneAssistant; DisplayGroupEnumComboBox* m_imagesDisplayGroupComboBox; QCheckBox* m_imageDisplayCheckBox; - std::vector m_windowZeeSpinBoxes; + QCheckBox* m_controlPointsDisplayCheckBox; std::vector m_imageRadioButtons; @@ -107,7 +113,13 @@ QGridLayout* m_imageRadioButtonLayout; - QSignalMapper* m_windowZeeSpinBoxSignalMapper; + EnumComboBoxTemplate* m_depthComboBox; + + QDoubleSpinBox* m_thresholdMinimumSpinBox; + + QDoubleSpinBox* m_thresholdMaximumSpinBox; + + QDoubleSpinBox* m_opacitySpinBox; static std::set s_allImageSelectionViewControllers; // ADD_NEW_MEMBERS_HERE diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/MouseEvent.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/MouseEvent.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/MouseEvent.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/MouseEvent.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -22,6 +22,7 @@ #include #include "BrainOpenGLViewportContent.h" +#include "BrainOpenGLWidget.h" #include "CaretAssert.h" #include "MouseEvent.h" @@ -295,6 +296,33 @@ } /** + * Get the Global X-coordinate of where the mouse was pressed. + * @return The Global X-coordinate. + * + * @param x + * X-coordinate in widget (0 is left side of widget) + * @param y + * Y-coordinate in widget (0 is bottom side of widget) + * @param outGlobalX + * Output with global X-coordinate + * @param outGlobalY + * Output with global Y-coordinate + */ +void +MouseEvent::getGlobalXY(const int32_t x, + const int32_t y, + int32_t& outGlobalX, + int32_t& outGlobalY) const +{ + CaretAssert(m_openGLWidget); + const int32_t yOriginTop = m_openGLWidget->height() - y; + const QPoint globalPoint = m_openGLWidget->mapToGlobal(QPoint(x, + yOriginTop)); + outGlobalX = globalPoint.x(); + outGlobalY = globalPoint.y(); +} + +/** * Get the amount of rotation in the mouse wheel. * @return Amount mouse wheel rotated. * diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/MouseEvent.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/MouseEvent.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/MouseEvent.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/MouseEvent.h 2016-10-19 23:35:12.000000000 +0000 @@ -81,6 +81,11 @@ int32_t getPressedY() const; + void getGlobalXY(const int32_t x, + const int32_t y, + int32_t& outGlobalX, + int32_t& outGlobalY) const; + int32_t getWheelRotation() const; bool isFirstDragging() const; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeAbstract.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeAbstract.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeAbstract.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeAbstract.h 2016-10-19 23:35:12.000000000 +0000 @@ -49,6 +49,8 @@ BORDERS, /** Foci Operations */ FOCI, + /** Image Operations */ + IMAGE, /** Viewing Operations */ VIEW, /** Volume Edit Operations */ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImage.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImage.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImage.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImage.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,357 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#define __USER_INPUT_MODE_IMAGE_DECLARE__ +#include "UserInputModeImage.h" +#undef __USER_INPUT_MODE_IMAGE_DECLARE__ + +#include + +#include "Brain.h" +#include "BrainOpenGLViewportContent.h" +#include "BrainOpenGLWidget.h" +#include "BrowserTabContent.h" +#include "CaretAssert.h" +#include "ControlPoint3D.h" +#include "ControlPointFile.h" +#include "DisplayPropertiesImages.h" +#include "EventBrowserWindowContentGet.h" +#include "EventGraphicsUpdateAllWindows.h" +#include "EventGraphicsUpdateOneWindow.h" +#include "EventManager.h" +#include "EventUserInterfaceUpdate.h" +#include "GuiManager.h" +#include "ImageFile.h" +#include "SelectionItemImage.h" +#include "SelectionItemImageControlPoint.h" +#include "SelectionItemVoxel.h" +#include "SelectionManager.h" +#include "MouseEvent.h" +#include "UserInputModeImageWidget.h" +#include "UserInputModeView.h" +#include "VolumeFile.h" +#include "WuQTimedMessageDisplay.h" + +using namespace caret; + + + +/** + * \class caret::UserInputModeImage + * \brief Processes user input for images. + */ + +/** + * Constructor. + */ +UserInputModeImage::UserInputModeImage(const int32_t windowIndex) +: UserInputModeView(UserInputModeAbstract::IMAGE), + m_windowIndex(windowIndex) +{ + m_inputModeImageWidget = new UserInputModeImageWidget(this, + windowIndex); + m_editOperation = EDIT_OPERATION_ADD; + setWidgetForToolBar(m_inputModeImageWidget); +} + +/** + * Destructor. + */ +UserInputModeImage::~UserInputModeImage() +{ + +} + +/** + * @return The edit operation. + */ +UserInputModeImage::EditOperation +UserInputModeImage::getEditOperation() const +{ + return m_editOperation; +} + +/** + * Set the edit operation. + * @param editOperation + * New edit operation. + */ +void +UserInputModeImage::setEditOperation(const EditOperation editOperation) +{ + m_editOperation = editOperation; +} + +/** + * Called when 'this' user input receiver is set + * to receive events. + */ +void +UserInputModeImage::initialize() +{ + m_inputModeImageWidget->updateWidget(); +} + +/** + * Called when 'this' user input receiver is no + * longer set to receive events. + */ +void +UserInputModeImage::finish() +{ +} + +/** + * Called to update the input receiver for various events. + */ +void +UserInputModeImage::update() +{ + +} + +/** + * @return The cursor for display in the OpenGL widget. + */ +CursorEnum::Enum +UserInputModeImage::getCursor() const +{ + + CursorEnum::Enum cursor = CursorEnum::CURSOR_DEFAULT; + + cursor = CursorEnum::CURSOR_POINTING_HAND; + switch (m_editOperation) { + case EDIT_OPERATION_ADD: + cursor = CursorEnum::CURSOR_DEFAULT; + break; + case EDIT_OPERATION_DELETE: + cursor = CursorEnum::CURSOR_CROSS; + break; + } + + return cursor; +} + +/** + * Updates after any changes to control points + */ +void +UserInputModeImage::updateAfterControlPointsChanged() +{ + /* + * Need to update all graphics windows and all border controllers. + */ + EventManager::get()->sendEvent(EventGraphicsUpdateAllWindows().getPointer()); + EventManager::get()->sendEvent(EventUserInterfaceUpdate().getPointer()); +} + +/** + * Process a mouse left click event. + * + * @param mouseEvent + * Mouse event information. + */ +void +UserInputModeImage::mouseLeftClick(const MouseEvent& mouseEvent) +{ + BrainOpenGLViewportContent* viewportContent = mouseEvent.getViewportContent(); + if (viewportContent == NULL) { + return; + } + + BrainOpenGLWidget* openGLWidget = mouseEvent.getOpenGLWidget(); + //BrowserTabContent* browserTabContent = viewportContent->getBrowserTabContent(); + SelectionManager* idManager = + openGLWidget->performIdentification(mouseEvent.getX(), + mouseEvent.getY(), + true); + + SelectionItemImage* idImage = idManager->getImageIdentification(); + CaretAssert(idImage); + + SelectionItemVoxel* idVoxel = idManager->getVoxelIdentification(); + CaretAssert(idVoxel); + + SelectionItemImageControlPoint* idImageControlPoint = idManager->getImageControlPointIdentification(); + CaretAssert(idImageControlPoint); + + AString toolTipMessage; + + switch (m_editOperation) { + case EDIT_OPERATION_ADD: + if (idImage->isValid() + && idVoxel->isValid()) { + addControlPoint(idImage, + idVoxel); + } + else if (idImage->isValid()) { + toolTipMessage = "Mouse click is over image but must also be over volume slice"; + } + else if (idVoxel->isValid()) { + toolTipMessage = "Mouse click is over volume slice but must also be over an image"; + } + else { + toolTipMessage = "Mouse click must be over both an image and a volume slice"; + } + break; + case EDIT_OPERATION_DELETE: + if (idImageControlPoint->isValid()) { + deleteControlPoint(idImageControlPoint); + } + else { + toolTipMessage = "Mouse click must be over an image control point"; + } + break; + } + + updateAfterControlPointsChanged(); + + if ( ! toolTipMessage.isEmpty()) { + WuQTimedMessageDisplay::show(openGLWidget, + mouseEvent.getX(), + mouseEvent.getY(), + 2, + toolTipMessage); + } +} + +/** + * Create a control point for the given image and voxel coordinates. + * + * @param imageSelection + * The image selection. + * @param voxelSelection + * The voxel selection. + */ +void +UserInputModeImage::addControlPoint(SelectionItemImage* imageSelection, + const SelectionItemVoxel* voxelSelection) +{ + ImageFile* imageFile = imageSelection->getImageFile(); + CaretAssert(imageFile); + ControlPointFile* controlPointFile = imageFile->getControlPointFile(); + CaretAssert(controlPointFile); + + const float pixelX = imageSelection->getPixelI(); + const float pixelY = imageSelection->getPixelJ(); + const float pixelZ = 0.0; + + double voxelXYZ[3] = { 0.0, 0.0, 0.0 }; + voxelSelection->getModelXYZ(voxelXYZ); + + controlPointFile->addControlPoint(ControlPoint3D(pixelX, pixelY, pixelZ, + voxelXYZ[0], voxelXYZ[1], voxelXYZ[2])); +} + +/** + * Delete the selection control point. + * + * @param idImageControlPoint + * Control point identification. + */ +void +UserInputModeImage::deleteControlPoint(SelectionItemImageControlPoint* idImageControlPoint) +{ + ControlPointFile* controlPointFile = idImageControlPoint->getControlPointFile(); + CaretAssert(controlPointFile); + const int32_t controlPointIndex = idImageControlPoint->getControlPointIndexInFile(); + CaretAssert(controlPointIndex >= 0); + + controlPointFile->removeControlPointAtIndex(controlPointIndex); +} + +/** + * Delete all control points + */ +void +UserInputModeImage::deleteAllControlPoints() +{ + ImageFile* imageFile = getImageFile(); + if (imageFile != NULL) { + imageFile->getControlPointFile()->removeAllControlPoints(); + } + updateAfterControlPointsChanged(); +} + +/** + * @return The selected image file in the window (NULL if not valid) + */ +ImageFile* +UserInputModeImage::getImageFile() const +{ + EventBrowserWindowContentGet windowGet(m_windowIndex); + EventManager::get()->sendEvent(windowGet.getPointer()); + + DisplayPropertiesImages* dpi = GuiManager::get()->getBrain()->getDisplayPropertiesImages(); + BrowserTabContent* tabContent = windowGet.getSelectedBrowserTabContent(); + if (tabContent == NULL) { + return NULL; + } + + const DisplayGroupEnum::Enum displayGroup = dpi->getDisplayGroupForTab(tabContent->getTabNumber()); + + ImageFile* imageFile = dpi->getSelectedImageFile(displayGroup, + tabContent->getTabNumber()); + + return imageFile; +} + +/** + * @return The tab index (negative if invalid). + */ +int32_t +UserInputModeImage::getTabIndex() const +{ + int32_t tabIndex = -1; + + EventBrowserWindowContentGet windowGet(m_windowIndex); + EventManager::get()->sendEvent(windowGet.getPointer()); + + //DisplayPropertiesImages* dpi = GuiManager::get()->getBrain()->getDisplayPropertiesImages(); + BrowserTabContent* tabContent = windowGet.getSelectedBrowserTabContent(); + if (tabContent != NULL) { + tabIndex = tabContent->getTabNumber(); + } + + return tabIndex; +} + + +/** + * Show a context menu (pop-up menu at mouse location) + * + * @param mouseEvent + * Mouse event information. + * @param menuPosition + * Point at which menu is displayed (passed to QMenu::exec()) + * @param openGLWidget + * OpenGL widget in which context menu is requested + */ +void +UserInputModeImage::showContextMenu(const MouseEvent& /*mouseEvent*/, + const QPoint& /*menuPosition*/, + BrainOpenGLWidget* /*openGLWidget*/) +{ + /* no context menu */ +} + + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImage.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImage.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImage.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImage.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,105 @@ +#ifndef __USER_INPUT_MODE_IMAGE__H_ +#define __USER_INPUT_MODE_IMAGE__H_ + +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + + +#include "CaretObject.h" +#include "UserInputModeView.h" + +namespace caret { + + class ImageFile; + class SelectionItemImage; + class SelectionItemImageControlPoint; + class SelectionItemVoxel; + class UserInputModeImageWidget; + + class UserInputModeImage : public UserInputModeView { + + public: + enum EditOperation { + EDIT_OPERATION_ADD, + EDIT_OPERATION_DELETE + }; + + UserInputModeImage(const int32_t windowIndex); + + virtual ~UserInputModeImage(); + + virtual void initialize(); + + virtual void finish(); + + virtual void update(); + + virtual CursorEnum::Enum getCursor() const; + + virtual void mouseLeftClick(const MouseEvent& mouseEvent); + + virtual void showContextMenu(const MouseEvent& mouseEvent, + const QPoint& menuPosition, + BrainOpenGLWidget* openGLWidget); + + private: + /* + * Note some private methods are accessed by the + * friend UserInputModeImageWidget. + */ + friend class UserInputModeImageWidget; + + + UserInputModeImage(const UserInputModeImage&); + + UserInputModeImage& operator=(const UserInputModeImage&); + + EditOperation getEditOperation() const; + + void setEditOperation(const EditOperation editOperation); + + void updateAfterControlPointsChanged(); + + void addControlPoint(SelectionItemImage* imageSelection, + const SelectionItemVoxel* voxelSelection); + + void deleteControlPoint(SelectionItemImageControlPoint* idImageControlPoint); + + void deleteAllControlPoints(); + + ImageFile* getImageFile() const; + + int32_t getTabIndex() const; + + // ADD_NEW_MEMBERS_HERE + + const int32_t m_windowIndex; + + UserInputModeImageWidget* m_inputModeImageWidget; + + EditOperation m_editOperation; + }; + +#ifdef __USER_INPUT_MODE_IMAGE_DECLARE__ + // +#endif // __USER_INPUT_MODE_IMAGE_DECLARE__ + +} // namespace +#endif //__USER_INPUT_MODE_IMAGE__H_ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImageWidget.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImageWidget.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImageWidget.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImageWidget.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,289 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include +#include +#include +#include +#include +#include +#include + +#define __USER_INPUT_MODE_IMAGE_WIDGET_DECLARE__ +#include "UserInputModeImageWidget.h" +#undef __USER_INPUT_MODE_IMAGE_WIDGET_DECLARE__ + +#include "Brain.h" +#include "BrainBrowserWindow.h" +#include "BrowserTabContent.h" +#include "CaretAssert.h" +#include "ControlPointFile.h" +#include "DisplayPropertiesFoci.h" +#include "EventGraphicsUpdateAllWindows.h" +#include "EventManager.h" +#include "EventUserInterfaceUpdate.h" +#include "FociFile.h" +#include "FociPropertiesEditorDialog.h" +#include "Focus.h" +#include "GuiManager.h" +#include "ImageFile.h" +#include "ImageFileConvertToVolumeFileDialog.h" +#include "Matrix4x4.h" +#include "SelectionManager.h" +#include "SelectionItemSurfaceNode.h" +#include "SelectionItemVoxel.h" +#include "ModelSurface.h" +#include "ModelWholeBrain.h" +#include "Surface.h" +#include "UserInputModeImage.h" +#include "VolumeFile.h" +#include "WuQMessageBox.h" +#include "WuQtUtilities.h" + +using namespace caret; + + + +/** + * \class caret::UserInputModeImageWidget + * \brief Foci controls shown at bottom of toolbar + */ + +/** + * Constructor. + * @param inputModeImage + * Process of mouse input for image + * @param windowIndex + * Index of browser window + * @param parent + * Parent widget + */ +UserInputModeImageWidget::UserInputModeImageWidget(UserInputModeImage* inputModeImage, + const int32_t windowIndex, + QWidget* parent) +: QWidget(parent), + m_windowIndex(windowIndex) +{ + m_transformToolTipText = ("\n\n" + "At any time, the view of the surface may be changed by\n" + " PAN: Move the mouse with the left mouse button down while " + "holding down the Shift key.\n" + " ROTATE: Move the mouse with the left mouse button down.\n" + " ZOOM: Move the mouse with the left mouse button down while " + "holding down the Ctrl key (Apple key on Macs)." + ); + + m_inputModeImage = inputModeImage; + QLabel* nameLabel = new QLabel("Image Control Points "); + + m_editOperationWidget = createEditOperationWidget(); + + + QHBoxLayout* layout = new QHBoxLayout(this); + WuQtUtilities::setLayoutSpacingAndMargins(layout, 0, 0); + layout->addWidget(nameLabel); + layout->addSpacing(10); + layout->addWidget(m_editOperationWidget); + layout->addStretch(); +} + +/** + * Destructor. + */ +UserInputModeImageWidget::~UserInputModeImageWidget() +{ + +} + +/** + * Update the contents of the widget. + */ +void +UserInputModeImageWidget::updateWidget() +{ + setActionGroupByActionData(m_editOperationActionGroup, + (int)m_inputModeImage->getEditOperation()); +} + +/** + * Set the action with its data value of the given integer + * as the active action. + * @param actionGroup + * Action group for which action is selected. + * @param dataInteger + * Integer value for data attribute. + */ +void +UserInputModeImageWidget::setActionGroupByActionData(QActionGroup* actionGroup, + const int dataInteger) +{ + actionGroup->blockSignals(true); + const QList actionList = actionGroup->actions(); + QListIterator iter(actionList); + while (iter.hasNext()) { + QAction* action = iter.next(); + const int actionDataInteger = action->data().toInt(); + if (dataInteger == actionDataInteger) { + action->setChecked(true); + break; + } + } + actionGroup->blockSignals(false); +} + + +/** + * @return The edit widget. + */ +QWidget* +UserInputModeImageWidget::createEditOperationWidget() +{ + /* + * Add button + */ + const AString addToolTipText = ("Click the mouse over an image and volume slice " + "to add a control point." + + m_transformToolTipText); + QAction* addAction = WuQtUtilities::createAction("Add", + WuQtUtilities::createWordWrappedToolTipText(addToolTipText), + this); + addAction->setCheckable(true); + addAction->setData(static_cast(UserInputModeImage::EDIT_OPERATION_ADD)); + QToolButton* addToolButton = new QToolButton(); + addToolButton->setDefaultAction(addAction); + + /* + * Delete button + */ + const AString deleteToolTipText = ("Delete a control point by clicking the mouse over the control point." + + m_transformToolTipText); + QAction* deleteAction = WuQtUtilities::createAction("Delete", + WuQtUtilities::createWordWrappedToolTipText(deleteToolTipText), + this); + deleteAction->setCheckable(true); + deleteAction->setData(static_cast(UserInputModeImage::EDIT_OPERATION_DELETE)); + QToolButton* deleteToolButton = new QToolButton(); + deleteToolButton->setDefaultAction(deleteAction); + + /* + * Action group to make add/delete actions mutually exclusive + */ + m_editOperationActionGroup = new QActionGroup(this); + m_editOperationActionGroup->addAction(deleteAction); + m_editOperationActionGroup->addAction(addAction); + m_editOperationActionGroup->setExclusive(true); + QObject::connect(m_editOperationActionGroup, SIGNAL(triggered(QAction*)), + this, SLOT(editOperationActionTriggered(QAction*))); + + /* + * Convert button + */ + const AString convertToolTipText = ("Convert image to volume"); + QAction* convertAction = WuQtUtilities::createAction("Convert...", + WuQtUtilities::createWordWrappedToolTipText(convertToolTipText), + this, + this, + SLOT(convertActionTriggered())); + convertAction->setCheckable(false); + m_convertToolButton = new QToolButton(); + m_convertToolButton->setDefaultAction(convertAction); + + /* + * Delete all button + */ + const AString deleteAllToolTipText = ("Delete all control points"); + QAction* deleteAllAction = WuQtUtilities::createAction("Delete All", + WuQtUtilities::createWordWrappedToolTipText(deleteAllToolTipText), + this, + this, + SLOT(deleteAllActionTriggered())); + deleteAllAction->setCheckable(false); + m_deleteAllToolButton = new QToolButton(); + m_deleteAllToolButton->setDefaultAction(deleteAllAction); + + + + QWidget* widget = new QWidget(); + QHBoxLayout* layout = new QHBoxLayout(widget); + WuQtUtilities::setLayoutSpacingAndMargins(layout, 2, 0); + layout->addWidget(addToolButton); + layout->addWidget(deleteToolButton); + layout->addSpacing(15); + layout->addWidget(m_deleteAllToolButton); + layout->addSpacing(35); + layout->addWidget(m_convertToolButton); + layout->addStretch(); + +// widget->setFixedWidth(widget->sizeHint().width()); + return widget; +} + +/** + * Called when convert action is triggered. + */ +void +UserInputModeImageWidget::convertActionTriggered() +{ + ImageFile* imageFile = m_inputModeImage->getImageFile(); + const int32_t tabIndex = m_inputModeImage->getTabIndex(); + if ((imageFile != NULL) + && (tabIndex >= 0)) { + ControlPointFile* controlPointFile = imageFile->getControlPointFile(); + AString errorMessage; + if ( ! controlPointFile->updateLandmarkTransformationMatrix(errorMessage)) { + WuQMessageBox::errorOk(m_convertToolButton, + errorMessage); + return; + } + + ImageFileConvertToVolumeFileDialog convertDialog(this, + tabIndex, + imageFile); + convertDialog.exec(); + } +} + +/** + * Called when convert action is triggered. + */ +void +UserInputModeImageWidget::deleteAllActionTriggered() +{ + if (WuQMessageBox::warningOkCancel(m_deleteAllToolButton, + "Delete all control points?")) { + m_inputModeImage->deleteAllControlPoints(); + } +} + + +/** + * Called when an edit operation button is selected. + * @param action + * Action that was selected. + */ +void +UserInputModeImageWidget::editOperationActionTriggered(QAction* action) +{ + const int editModeInteger = action->data().toInt(); + const UserInputModeImage::EditOperation editOperation = static_cast(editModeInteger); + m_inputModeImage->setEditOperation(editOperation); +} + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImageWidget.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImageWidget.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/UserInputModeImageWidget.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/UserInputModeImageWidget.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,91 @@ +#ifndef __USER_INPUT_MODE_IMAGE_WIDGET__H_ +#define __USER_INPUT_MODE_IMAGE_WIDGET__H_ + +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include +#include + +#include "AString.h" + +class QActionGroup; +class QToolButton; + +namespace caret { + + class UserInputModeImage; + + class UserInputModeImageWidget : public QWidget { + + Q_OBJECT + + public: + UserInputModeImageWidget(UserInputModeImage* inputModeImage, + const int32_t windowIndex, + QWidget* parent = 0); + + virtual ~UserInputModeImageWidget(); + + void updateWidget(); + + // ADD_NEW_METHODS_HERE + + private slots: + void convertActionTriggered(); + + void deleteAllActionTriggered(); + + void editOperationActionTriggered(QAction*); + + private: + UserInputModeImageWidget(const UserInputModeImageWidget&); + + UserInputModeImageWidget& operator=(const UserInputModeImageWidget&); + + QWidget* createEditOperationWidget(); + + void setActionGroupByActionData(QActionGroup* actionGroup, + const int dataInteger); + + // ADD_NEW_MEMBERS_HERE + + UserInputModeImage* m_inputModeImage; + + const int32_t m_windowIndex; + + QActionGroup* m_editOperationActionGroup; + + QToolButton* m_deleteAllToolButton; + + QToolButton* m_convertToolButton; + + QWidget* m_editOperationWidget; + + QString m_transformToolTipText; + + friend class UserInputModeImage; + }; + +#ifdef __USER_INPUT_MODE_IMAGE_WIDGET_DECLARE__ +#endif // __USER_INPUT_MODE_IMAGE_WIDGET_DECLARE__ + +} // namespace +#endif //__USER_INPUT_MODE_IMAGE_WIDGET__H_ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/WuQTimedMessageDisplay.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/WuQTimedMessageDisplay.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/WuQTimedMessageDisplay.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/WuQTimedMessageDisplay.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -83,6 +83,7 @@ label->setFrameStyle(QFrame::Panel | QFrame::Plain); label->setLineWidth(2); + label->setWordWrap(true); QVBoxLayout* layout = new QVBoxLayout(this); layout->setContentsMargins(3, 3, 3, 3); layout->addWidget(label); @@ -126,6 +127,38 @@ md->exec(); } +/** + * Display a message containing the given message for the given amount + * of time. This method will not return until the message window closes. + * + * @param parent + * Parent on which message is displayed. + * @param x + * X-coordinate of parent for display of message. + * @param y + * Y-coordinate of parent for display of message (origin at bottom). + * @param displayForSeconds + * Message is displayed for this amount of time, in milliseconds. + * @param message + * Message that is displayed. + */ +void +WuQTimedMessageDisplay::show(QWidget* parent, + const int32_t x, + const int32_t y, + const float displayForSeconds, + const QString& message) +{ + WuQTimedMessageDisplay* md = new WuQTimedMessageDisplay(parent, + displayForSeconds, + message); + const int32_t originAtTopWindowY = parent->height() - y; + QPoint globalXY = parent->mapToGlobal(QPoint(x, + originAtTopWindowY)); + md->move(globalXY); + md->exec(); +} + /** * Destructor. */ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/WuQTimedMessageDisplay.h connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/WuQTimedMessageDisplay.h --- connectome-workbench-1.2.3+git3-g7b83782/src/GuiQt/WuQTimedMessageDisplay.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/GuiQt/WuQTimedMessageDisplay.h 2016-10-19 23:35:12.000000000 +0000 @@ -21,6 +21,7 @@ */ /*LICENSE_END*/ +#include #include @@ -40,6 +41,12 @@ const float displayForSeconds, const QString& message); + static void show(QWidget* parent, + const int32_t x, + const int32_t y, + const float displayForSeconds, + const QString& message); + virtual ~WuQTimedMessageDisplay(); private: diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 2.7.8) + +project(cpuinfo) + +if(CMAKE_VERSION VERSION_LESS "2.8.12") + function(add_compile_options) + add_definitions(${ARGN}) + endfunction(add_compile_options) +endif() + +add_compile_options(-std=c99 -Wall -Wextra -Wno-unused-parameter -Wconversion -Wshadow -pedantic) +add_definitions(-DNDEBUG) + +add_library(cpuinfo src/cpuinfo.c) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/LICENSE connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/LICENSE --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/LICENSE 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2013-2016 Kristian Loewe, Christian Borgelt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/src/cpuinfo.c connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/src/cpuinfo.c --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/src/cpuinfo.c 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/src/cpuinfo.c 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,375 @@ +/*---------------------------------------------------------------------------- + File : cpuinfo.c + Contents: processor information queries + Author : Kristian Loewe, Christian Borgelt +----------------------------------------------------------------------------*/ +#ifdef _WIN32 /* if Microsoft Windows system */ +# include +#else +# include +# include +# include +# include +# ifdef __APPLE__ /* if Apple Mac OS system */ +# include +# include +# elif defined __linux__ /* if Linux system */ +# ifdef HAVE_HWLOC +# include /* needed for corecntHwloc() */ +# endif +# endif /* #ifdef __APPLE__ .. #elif defined __linux__ */ +#endif /* #ifdef _WIN32 .. #else .. */ + +#include "cpuinfo.h" + +/*---------------------------------------------------------------------------- + Preprocessor Definitions +----------------------------------------------------------------------------*/ +#ifdef NDEBUG +#define DBGMSG(...) ((void)0) +#else +#define DBGMSG(...) fprintf(stderr, __VA_ARGS__) +#endif + +/*---------------------------------------------------------------------------- + Type Definitions +----------------------------------------------------------------------------*/ +typedef struct { /* --- processor ids --- */ + int phys; /* physical id */ + int core; /* core id */ +} PROCIDS; /* (processor ids) */ + +/*---------------------------------------------------------------------------- + Global Variables +----------------------------------------------------------------------------*/ +static int cpuinfo[5]; /* cpu information */ + +/*---------------------------------------------------------------------------- + Functions +----------------------------------------------------------------------------*/ +#ifdef _WIN32 /* if Microsoft Windows system */ +#define cpuid __cpuid /* map existing function */ +#else /* if Linux/Unix system */ + +static void cpuid (int32_t info[4], int32_t type) +{ /* --- get CPU information */ + __asm__ __volatile__ ("cpuid" : + "=a" (info[0]), + "=b" (info[1]), + "=c" (info[2]), + "=d" (info[3]) + : "a" (type), "c" (0)); // : "a" (type)); +} /* cpuid() */ + +#endif /* #ifdef _WIN32 .. #else .. */ +/*---------------------------------------------------------------------------- +References (cpuid): + en.wikipedia.org/wiki/CPUID + stackoverflow.com/a/7495023 + msdn.microsoft.com/en-us/library/vstudio/hskdteyh%28v=vs.100%29.aspx +----------------------------------------------------------------------------*/ +#if defined __linux__ && defined HAVE_HWLOC + +int corecntHwloc (void) +{ /* --- number of processor cores */ + int depth, cnt = -1; + hwloc_topology_t topology; /* init and load topology */ + hwloc_topology_init(&topology); + hwloc_topology_load(topology); + depth = hwloc_get_type_depth(topology, HWLOC_OBJ_CORE); + /* get the number of cores */ + if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) + cnt = (int)hwloc_get_nbobjs_by_depth(topology, (unsigned)depth); + hwloc_topology_destroy(topology); /* destroy topology object */ + return cnt; /* return the number of cores */ +} /* corecntHwloc() */ + +#endif /* #if defined __linux__ && defined HAVE_HWLOC */ +/*---------------------------------------------------------------------------- +Additional info and references (corecntHwloc): + This function depends on the Portable Hardware Locality (hwloc) + software package. + stackoverflow.com/a/12486105 + open-mpi.org/projects/hwloc +----------------------------------------------------------------------------*/ +#ifdef __linux__ /* if Linux system */ + +static int cmpids (const void *p, const void *q) +{ /* --- compare processor ids */ + const PROCIDS *a = (PROCIDS*)p; /* type the given pointers */ + const PROCIDS *b = (PROCIDS*)q; /* (PROCIDS array elements) */ + if (a->phys < b->phys) return -1; + if (a->phys > b->phys) return +1; + if (a->core < b->core) return -1; + if (a->core > b->core) return +1; + return 0; /* return sign of difference */ +} /* cmpids() */ + +/*--------------------------------------------------------------------------*/ + +int corecnt (void) +{ /* --- number of processor cores */ + FILE *fp; /* file for /proc/cpuinfo */ + PROCIDS *pids; /* processor ids (physical & core) */ + int n; /* # log. processors found in cpuinfo */ + int i, p, c, np, nc; /* loop variables */ + int nphys = 0; /* number of physical processors */ + int ncores = 0; /* number of physical cores */ + int nprocs = proccnt(); /* # log. processors (reference) */ + + if (nprocs < 0) return -1; /* abort if nprocs can't be determined */ + + /* collect physical id and core id of each logical processor */ + pids = calloc((size_t)nprocs, sizeof(PROCIDS)); + if (!pids) return -1; /* create array for processor ids */ + fp = fopen("/proc/cpuinfo", "r"); + if (!fp) { free(pids); return -1; } + for (c = p = n = 0; (c != EOF) && (n < nprocs); ) { + if (fscanf(fp, "physical id : %d", &i) > 0) { + pids[n].phys = i; p |= 1; } + else if (fscanf(fp, "core id : %d", &i) > 0) { + pids[n].core = i; p |= 2; } + if (p >= 3) { p = 0; n += 1; } + while (((c = fgetc(fp)) != EOF) && (c != '\n')); + } + fclose(fp); + if (n != nprocs) { free(pids); return -1; } + + /* sort the array of processor ids and determine the number of cores */ + qsort(pids, (size_t)nprocs, sizeof(PROCIDS), cmpids); + p = pids[0].phys; c = pids[0].core; + nphys = ncores = 1; + for (i = np = nc = 0; i < n; i++) { + if (pids[i].phys == p) { np += 1; + if (pids[i].core == c) { nc += 1; continue; } + DBGMSG("phys %d, core %d: %d logical processor(s)\n", p, c, nc); + c = pids[i].core; nc = 1; + ncores += 1; continue; + } + DBGMSG("phys %d, core %d: %d logical processor(s)\n", p, c, nc); + DBGMSG("physical id %d: %d logical processor(s)\n", p, np); + p = pids[i].phys; np = 1; /* count number of core ids */ + c = pids[i].core; nc = 1; /* per physical id and number */ + ncores += 1; nphys += 1; /* of different physical ids */ + } + DBGMSG("phys %d, core %d: %d logical processor(s)\n", p, c, nc); + DBGMSG("physical id %d: %d logical processor(s)\n", p, np); + DBGMSG("number of physical processors: %d\n", nphys); + DBGMSG("number of cores: %d\n", ncores); + free(pids); + if ((ncores != nprocs) && (ncores != nprocs/2)) + return -1; /* check result for consistency */ + return ncores; /* return the number of cores */ +} /* corecnt() */ + +#elif defined _WIN32 /* if Microsoft Windows system */ + +int corecnt (void) +{ /* --- number of processor cores */ + return -1; /* not yet implemented for Windows */ +} /* corecnt() */ + +#elif defined __APPLE__ /* if Apple Mac OS system */ + +int corecnt (void) +{ /* --- number of processor cores */ + int ncores; + size_t len = sizeof(ncores); + if (sysctlbyname("hw.physicalcpu", &ncores, &len, NULL, (size_t)0)) + return -1; + return ncores; +} /* corecnt() */ + +#endif /* #ifdef __linux__ .. #elif def. _WIN32 .. #elif def. __APPLE__ .. */ +/*--------------------------------------------------------------------------*/ +#ifdef __linux__ /* if Linux system */ +#ifdef _SC_NPROCESSORS_ONLN /* if glibc's sysconf is available */ + +int proccnt (void) +{ /* --- number of logical processors */ + return (int)sysconf(_SC_NPROCESSORS_ONLN); +} /* proccnt() */ + +#endif /* #ifdef _SC_NPROCESSORS_ONLN */ +#elif defined _WIN32 /* if Microsoft Windows system */ + +int proccnt (void) +{ /* --- number of logical processors */ + SYSTEM_INFO sysinfo; /* system information structure */ + GetSystemInfo(&sysinfo); /* get system information */ + return sysinfo.dwNumberOfProcessors; +} /* proccnt() */ + +#elif defined __APPLE__ /* if Apple Mac OS system */ + +int proccnt (void) +{ /* --- number of logical processors */ + int nproc; + size_t len = sizeof(nproc); + if (sysctlbyname("hw.logicalcpu", &nproc, &len, NULL, (size_t)0)) + return -1; + return nproc; +} /* proccnt() */ + +#endif /* #ifdef __linux__ .. #elif def. _WIN32 .. #elif def. __APPLE__ .. */ +/*---------------------------------------------------------------------------- +References (proccnt, Windows version): + Info on SYSTEM_INFO structure: + msdn.microsoft.com/en-us/library/windows/desktop/ms724958%28v=vs.85%29.aspx +Additional info and references (proccnt, Linux version): + This function depends on glibc's sysconf extension. + glibc also provides a function to access _SC_NPROCESSORS_ONLN + in : get_nprocs which could be use instead of + sysconf(_SC_NPROCESSORS_ONLN). + According to a comment by Joey Adams at stackoverflow.com/q/2693948 + sysconf(_SC_NPROCESSORS_ONLN) relies on /proc/stat if that exist and on + /proc/cpuinfo if it doesn't. + gnu.org/software/libc/manual/html_node/Processor-Resources.html +----------------------------------------------------------------------------*/ + +int proccntmax (void) +{ /* --- max. number of logical processors + * per physical processor */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[1] >> 16) & 0xff; /* EBX[23:16] */ +} /* proccntmax() */ + +/*---------------------------------------------------------------------------- +References (proccntmax): + "CPUID.1:EBX[23:16] represents the maximum number of addressable IDs + (initial APIC ID) that can be assigned to logical processors in a + physical package. The value may not be the same as the number of + logical processors that are present in the hardware of a physical package." + software.intel.com/en-us/articles/ + intel-64-architecture-processor-topology-enumeration + software.intel.com/sites/default/files/63/1a/ + Kuo_CpuTopology_rc1.rh1.final.pdf +----------------------------------------------------------------------------*/ + +int hasMMX (void) +{ /* --- check for MMX instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[3] & (1 << 23)) != 0; +} /* hasMMX() */ + +/*--------------------------------------------------------------------------*/ + +int hasSSE (void) +{ /* --- check for SSE instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[3] & (1 << 25)) != 0; +} /* hasSSE() */ + +/*--------------------------------------------------------------------------*/ + +int hasSSE2 (void) +{ /* --- check for SSE2 instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[3] & (1 << 26)) != 0; +} /* hasSSE2() */ + +/*--------------------------------------------------------------------------*/ + +int hasSSE3 (void) +{ /* --- check for SSE3 instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[2] & (1 << 0)) != 0; +} /* hasSSE3() */ + +/*--------------------------------------------------------------------------*/ + +int hasSSSE3 (void) +{ /* --- check for SSSE3 instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[2] & (1 << 9)) != 0; +} /* hasSSSE3() */ + +/*--------------------------------------------------------------------------*/ + +int hasSSE41 (void) +{ /* --- check for SSE4.1 instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[2] & (1 << 19)) != 0; +} /* hasSSE41() */ + +/*--------------------------------------------------------------------------*/ + +int hasSSE42 (void) +{ /* --- check for SSE4.2 instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[2] & (1 << 20)) != 0; +} /* hasSSE42() */ + +/*--------------------------------------------------------------------------*/ + +int hasPOPCNT (void) +{ /* --- check for popcnt instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[2] & (1 << 23)) != 0; +} /* hasPOPCNT() */ + +/*--------------------------------------------------------------------------*/ + +int hasAVX (void) +{ /* --- check for AVX instructions */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[2] & (1 << 28)) != 0; +} /* hasAVX() */ + +/*--------------------------------------------------------------------------*/ + +int hasFMA3 (void) +{ /* --- check for FMA3 */ + if (!cpuinfo[4]) { cpuid(cpuinfo, 1); cpuinfo[4] = -1; } + return (cpuinfo[2] & (1 << 12)) != 0; +} /* hasFMA3() */ + +/*--------------------------------------------------------------------------*/ + +void getVendorID (char *buf) +{ /* --- get vendor id */ + /* the string is going to be exactly 12 characters long, allocate + the buffer outside this function accordingly */ + int regs[4]; + cpuid(regs, 0); + ((unsigned *)buf)[0] = (unsigned)regs[1]; // EBX + ((unsigned *)buf)[1] = (unsigned)regs[3]; // EDX + ((unsigned *)buf)[2] = (unsigned)regs[2]; // ECX +} /* getVendorID() */ + +/*---------------------------------------------------------------------------- +References (getVendorID): + stackoverflow.com/a/3082553 +----------------------------------------------------------------------------*/ +#ifdef CPUINFO_MAIN + +int main (int argc, char* argv[]) +{ + char vendor[12]; + getVendorID(vendor); + printf("Vendor %s\n", vendor); + #ifndef _WIN32 + printf("Processor cores %d\n", corecnt()); + #endif + printf("Logical processors %d\n", proccnt()); + printf("MMX %d\n", hasMMX()); + printf("SSE %d\n", hasSSE()); + printf("SSE2 %d\n", hasSSE2()); + printf("SSE3 %d\n", hasSSE3()); + printf("SSSE3 %d\n", hasSSSE3()); + printf("SSE41 %d\n", hasSSE41()); + printf("SSE42 %d\n", hasSSE42()); + printf("POPCNT %d\n", hasPOPCNT()); + printf("AVX %d\n", hasAVX()); + printf("FMA3 %d\n", hasFMA3()); + +/* corecnt -> number of processor cores + proccnt -> number of logical processors + proccntmax -> max. number of logical processors per core + See the glossary at: + software.intel.com/en-us/articles/ + intel-64-architecture-processor-topology-enumeration */ + +} /* main() */ + +#endif diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/src/cpuinfo.h connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/src/cpuinfo.h --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/cpuinfo/src/cpuinfo.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/cpuinfo/src/cpuinfo.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,35 @@ +/*---------------------------------------------------------------------------- + File : cpuinfo.h + Contents: processor information queries + Author : Kristian Loewe, Christian Borgelt +----------------------------------------------------------------------------*/ +#ifndef CPUINFO_H +#define CPUINFO_H + +/*---------------------------------------------------------------------------- + Functions +----------------------------------------------------------------------------*/ +extern int proccnt (void); /* # logical processors */ + +#ifndef _WIN32 /* if Linux or Apple Mac OS system */ +extern int corecnt (void); /* # processor cores */ + +#ifdef __linux__ +#ifdef HAVE_HWLOC +extern int corecntHwloc (void); /* # processor cores */ +#endif +#endif +#endif + +extern int hasMMX (void); +extern int hasSSE (void); +extern int hasSSE2 (void); +extern int hasSSE3 (void); +extern int hasSSSE3 (void); +extern int hasSSE41 (void); +extern int hasSSE42 (void); +extern int hasPOPCNT (void); +extern int hasAVX (void); +extern int hasFMA3 (void); + +#endif /* #ifndef CPUINFO_H */ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 2.7.8) + +project(dot) + +if(CMAKE_VERSION VERSION_LESS "2.8.12") + function(add_compile_options) + add_definitions(${ARGN}) + endfunction(add_compile_options) +endif() + +SET(DOT_USEFMA 0) +if (CMAKE_COMPILER_IS_GNUCC) + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION) + if (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7) + message(STATUS "Version >= 4.7") + SET(DOT_USEFMA 1) + endif() +endif() + +add_compile_options(-std=c99 -Wall -Wextra -Wno-unused-parameter -Wconversion -Wshadow -pedantic) + +add_library(dot src/dot.c) +add_library(dot_naive src/dot_naive.c) +add_library(dot_sse2 src/dot_sse2.c) +add_library(dot_avx src/dot_avx.c) +if(DOT_USEFMA) + add_library(dot_avxfma src/dot_avx.c) + target_link_libraries(dot dot_naive dot_sse2 dot_avx dot_avxfma cpuinfo) +else() + target_link_libraries(dot dot_naive dot_sse2 dot_avx cpuinfo) +endif() + +if(CMAKE_VERSION VERSION_LESS "2.8.12") + if(DOT_USEFMA) + set_target_properties(dot_avxfma PROPERTIES COMPILE_FLAGS "-mfma -mavx -funroll-loops") + else() + set_target_properties(dot PROPERTIES COMPILE_FLAGS "-DDOT_NOFMA") + endif() + set_target_properties(dot_avx PROPERTIES COMPILE_FLAGS "-mavx -funroll-loops") + set_target_properties(dot_sse2 PROPERTIES COMPILE_FLAGS "-msse2") + include_directories(../cpuinfo/src) +else() + if(DOT_USEFMA) + target_compile_options(dot_avxfma PRIVATE -mfma -mavx -funroll-loops) + else() + target_compile_definitions(dot PRIVATE "DOT_NOFMA") + endif() + target_compile_options(dot_avx PRIVATE -mavx -funroll-loops) + target_compile_options(dot_sse2 PRIVATE -msse2) + target_include_directories(dot PRIVATE ../cpuinfo/src) +endif() diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/LICENSE connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/LICENSE --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/LICENSE 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/LICENSE 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2012-2016 Kristian Loewe, Christian Borgelt + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_avx.c connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_avx.c --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_avx.c 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_avx.c 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,19 @@ +/*---------------------------------------------------------------------------- + File : dot_avx.c + Contents: dot product (AVX-based implementations) + Author : Kristian Loewe +----------------------------------------------------------------------------*/ +#include "dot_avx.h" + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +#ifdef __FMA__ +extern float sdot_avxfma (const float *a, const float *b, int n); +extern double ddot_avxfma (const double *a, const double *b, int n); +extern double sddot_avxfma (const float *a, const float *b, int n); +#else +extern float sdot_avx (const float *a, const float *b, int n); +extern double ddot_avx (const double *a, const double *b, int n); +extern double sddot_avx (const float *a, const float *b, int n); +#endif diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_avx.h connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_avx.h --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_avx.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_avx.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,139 @@ +/*---------------------------------------------------------------------------- + File : dot_avx.h + Contents: dot product (AVX-based implementations) + Author : Kristian Loewe, Christian Borgelt +----------------------------------------------------------------------------*/ +#ifndef DOT_AVX_H +#define DOT_AVX_H + +#ifndef __AVX__ +# error "AXV is not enabled" +#endif + +#include + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +#ifdef __FMA__ +inline float sdot_avxfma (const float *a, const float *b, int n); +inline double ddot_avxfma (const double *a, const double *b, int n); +inline double sddot_avxfma (const float *a, const float *b, int n); +#else +inline float sdot_avx (const float *a, const float *b, int n); +inline double ddot_avx (const double *a, const double *b, int n); +inline double sddot_avx (const float *a, const float *b, int n); +#endif + +/*---------------------------------------------------------------------------- + Inline Functions +----------------------------------------------------------------------------*/ + +// --- dot product (single precision) +#ifdef __FMA__ +inline float sdot_avxfma (const float *a, const float *b, int n) +#else +inline float sdot_avx (const float *a, const float *b, int n) +#endif +{ + // initialize 8 sums + __m256 s8 = _mm256_setzero_ps(); + + // in each iteration, add 1 product to each of the 8 sums in parallel + for (int k = 0, nq = 8*(n/8); k < nq; k += 8) + #ifdef __FMA__ + s8 = _mm256_fmadd_ps(_mm256_loadu_ps(a+k), _mm256_loadu_ps(b+k), s8); + #else + s8 = _mm256_add_ps( + _mm256_mul_ps(_mm256_loadu_ps(a+k), _mm256_loadu_ps(b+k)), s8); + #endif + + // compute horizontal sum + #if 1 + __m128 sh = _mm_add_ps(_mm256_castps256_ps128(s8), + _mm256_extractf128_ps(s8, 1)); + sh = _mm_add_ps(sh, _mm_movehl_ps(sh, sh)); + sh = _mm_add_ss(sh, _mm_shuffle_ps(sh, sh, 1)); + #else + s8 = _mm256_hadd_ps(s8, s8); // comp horizontal sums in upper + s8 = _mm256_hadd_ps(s8, s8); // and lower half of the register + __m128 sh = _mm_add_ss(_mm256_castps256_ps128(s8), + _mm256_extractf128_ps(s8, 1)); + #endif + float s = _mm_cvtss_f32(sh); // extract horizontal sum from 1st elem. + + // add the remaining products + for (int k = 8*(n/8); k < n; k++) + s += a[k] * b[k]; + + return s; +} // sdot_avx() + +/*--------------------------------------------------------------------------*/ + +// --- dot product (double precision) +#ifdef __FMA__ +inline double ddot_avxfma (const double *a, const double *b, int n) +#else +inline double ddot_avx (const double *a, const double *b, int n) +#endif +{ + // initialize 4 sums + __m256d s4 = _mm256_setzero_pd(); + + // in each iteration, add 1 product to each of the 4 sums in parallel + for (int k = 0, nq = 4*(n/4); k < nq; k += 4) + #ifdef __FMA__ + s4 = _mm256_fmadd_pd(_mm256_loadu_pd(a+k), _mm256_loadu_pd(b+k), s4); + #else + s4 = _mm256_add_pd( + _mm256_mul_pd(_mm256_loadu_pd(a+k), _mm256_loadu_pd(b+k)), s4); + #endif + // compute horizontal sum + __m128d sh = _mm_add_pd(_mm256_extractf128_pd(s4, 0), + _mm256_extractf128_pd(s4, 1)); + sh = _mm_add_pd(sh, _mm_shuffle_pd(sh, sh, 1)); + double s = _mm_cvtsd_f64(sh); // extract horizontal sum from 1st elem. + + // add the remaining products + for (int k = 4*(n/4); k < n; k++) + s += a[k] * b[k]; + + return s; +} // ddot_avx() + +/*--------------------------------------------------------------------------*/ + +// --- dot product (input: single; intermediate and output: double) +#ifdef __FMA__ +inline double sddot_avxfma (const float *a, const float *b, int n) +#else +inline double sddot_avx (const float *a, const float *b, int n) +#endif +{ + // initialize 4 sums + __m256d s4 = _mm256_setzero_pd(); + + // in each iteration, add 1 product to each of the 4 sums in parallel + for (int k = 0, nq = 4*(n/4); k < nq; k += 4) + #ifdef __FMA__ + s4 = _mm256_fmadd_pd(_mm256_cvtps_pd(_mm_loadu_ps(a+k)), + _mm256_cvtps_pd(_mm_loadu_ps(b+k)), s4); + #else + s4 = _mm256_add_pd( + _mm256_cvtps_pd(_mm_mul_ps(_mm_loadu_ps(a+k), _mm_loadu_ps(b+k))), s4); + #endif + // compute horizontal sum + __m128d sh = _mm_add_pd(_mm256_extractf128_pd(s4, 0), + _mm256_extractf128_pd(s4, 1)); + sh = _mm_add_pd(sh, _mm_shuffle_pd(sh, sh, 1)); + double s = _mm_cvtsd_f64(sh); // extract horizontal sum from 1st elem. + + // add the remaining products + for (int k = 4*(n/4); k < n; k++) + s += a[k] * b[k]; + + return s; +} // sddot_avx() + +#endif // DOT_AVX_H diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot.c connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot.c --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot.c 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot.c 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,70 @@ +/*---------------------------------------------------------------------------- + File : dot.c + Contents: dot product (cpu dispatcher) + Author : Kristian Loewe +----------------------------------------------------------------------------*/ +#include "cpuinfo.h" +#include "dot.h" + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +extern float sdot (const float *a, const float *b, int n); +extern double ddot (const double *a, const double *b, int n); +extern double sddot (const float *a, const float *b, int n); + +/*---------------------------------------------------------------------------- + Global Variables +----------------------------------------------------------------------------*/ +sdot_func *sdot_ptr = &sdot_select; +ddot_func *ddot_ptr = &ddot_select; +sddot_func *sddot_ptr = &sddot_select; + +/*---------------------------------------------------------------------------- + Functions +----------------------------------------------------------------------------*/ + +float sdot_select (const float *a, const float *b, int n) { + dot_set_impl(DOT_AUTO); + return (*sdot_ptr)(a,b,n); +} + +double ddot_select (const double *a, const double *b, int n) { + dot_set_impl(DOT_AUTO); + return (*ddot_ptr)(a,b,n); +} + +double sddot_select (const float *a, const float *b, int n) { + dot_set_impl(DOT_AUTO); + return (*sddot_ptr)(a,b,n); +} + +dot_flags dot_set_impl (dot_flags impl) { + #ifndef DOT_NOFMA + // the AVX-FMA implementations are currently slower than the AVX + // implementations and are thus only used if explicitly requested + if (hasFMA3() && hasAVX() && (impl == DOT_AVXFMA)) { // AVX-FMA + sdot_ptr = &sdot_avxfma; + ddot_ptr = &ddot_avxfma; + sddot_ptr = &sddot_avxfma; + return DOT_AVXFMA; } + else if (hasAVX() && (impl >= DOT_AVX)) { // AVX + #else + if (hasAVX() && (impl >= DOT_AVX)) { // AVX + #endif + sdot_ptr = &sdot_avx; + ddot_ptr = &ddot_avx; + sddot_ptr = &sddot_avx; + return DOT_AVX; } + else if (hasSSE2() && (impl >= DOT_SSE2)) { // SSE2 + sdot_ptr = &sdot_sse2; + ddot_ptr = &ddot_sse2; + sddot_ptr = &sddot_sse2; + return DOT_SSE2; } + else { // naive + sdot_ptr = &sdot_naive; + ddot_ptr = &ddot_naive; + sddot_ptr = &sddot_naive; + return DOT_NAIVE; + } +} diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot.h connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot.h --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,115 @@ +/*---------------------------------------------------------------------------- + File : dot.h + Contents: dot product (cpu dispatcher) + Author : Kristian Loewe +----------------------------------------------------------------------------*/ +#ifndef DOT_H +#define DOT_H + +#ifdef __cplusplus +extern "C" +{ +#endif + +/*---------------------------------------------------------------------------- + Enum to encode the sets of dot implementations +----------------------------------------------------------------------------*/ +typedef enum { + DOT_NAIVE = 1, // plain C + DOT_SSE2 = 2, // SSE2 + DOT_AVX = 3, // AVX + DOT_AVXFMA = 4, // AVX+FMA3 + DOT_AUTO = 100 // automatic choice +} dot_flags; +// Using dot_set_impl(), these values are used to specify the set of +// implementations to be used. The values/sets are ordered chronologically wrt +// the advent of the prerequisite instruction set extensions, with DOT_NAIVE +// representing the plain C fallback implementations, and DOT_AUTO indicating +// that the best set of implementations should be chosen automatically. + +/*---------------------------------------------------------------------------- + Type Definitions +----------------------------------------------------------------------------*/ +typedef float (sdot_func) (const float *a, const float *b, int n); +typedef double (ddot_func) (const double *a, const double *b, int n); +typedef double (sddot_func) (const float *a, const float *b, int n); + +/*---------------------------------------------------------------------------- + Global Variables +----------------------------------------------------------------------------*/ +extern sdot_func *sdot_ptr; +extern ddot_func *ddot_ptr; +extern sddot_func *sddot_ptr; + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +inline float sdot (const float *a, const float *b, int n); +inline double ddot (const double *a, const double *b, int n); +inline double sddot (const float *a, const float *b, int n); + +/* dot_set_impl + * ------------ + * specify the set of implementations that is used + * + * If the requested set of implementations is not supported, the function + * will select the next best set of implementations that is supported. + * + * parameters + * impl indicates which set of implementations should be used + * DOT_NAIVE -> plain C implementations + * DOT_SSE2 -> SSE2 implementations + * DOT_AVX -> AVX implementations + * DOT_AVXFMA -> AVX+FMA3 implementations + * DOT_AUTO -> automatically choose the best available set + * (see also the above enum) + * + * returns + * the enum value corresponding to the selected set of implementations + */ +extern dot_flags dot_set_impl (dot_flags impl); + + +extern float sdot_select (const float *a, const float *b, int n); +extern double ddot_select (const double *a, const double *b, int n); +extern double sddot_select (const float *a, const float *b, int n); + +#ifndef DOT_NOFMA +extern float sdot_avxfma (const float *a, const float *b, int n); +extern double ddot_avxfma (const double *a, const double *b, int n); +extern double sddot_avxfma (const float *a, const float *b, int n); +#endif + +extern float sdot_avx (const float *a, const float *b, int n); +extern double ddot_avx (const double *a, const double *b, int n); +extern double sddot_avx (const float *a, const float *b, int n); + +extern float sdot_sse2 (const float *a, const float *b, int n); +extern double ddot_sse2 (const double *a, const double *b, int n); +extern double sddot_sse2 (const float *a, const float *b, int n); + +extern float sdot_naive (const float *a, const float *b, int n); +extern double ddot_naive (const double *a, const double *b, int n); +extern double sddot_naive (const float *a, const float *b, int n); + +/*---------------------------------------------------------------------------- + Inline Functions +----------------------------------------------------------------------------*/ + +inline float sdot (const float *a, const float *b, int n) { + return (*sdot_ptr)(a,b,n); +} + +inline double ddot (const double *a, const double *b, int n) { + return (*ddot_ptr)(a,b,n); +} + +inline double sddot (const float *a, const float *b, int n) { + return (*sddot_ptr)(a,b,n); +} + +#ifdef __cplusplus +} +#endif + +#endif // #ifndef DOT_H diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_naive.c connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_naive.c --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_naive.c 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_naive.c 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,13 @@ +/*---------------------------------------------------------------------------- + File : dot_naive.c + Contents: dot product (naive implementations) + Author : Kristian Loewe +----------------------------------------------------------------------------*/ +#include "dot_naive.h" + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +extern float sdot_naive (const float *a, const float *b, int n); +extern double ddot_naive (const double *a, const double *b, int n); +extern double sddot_naive (const float *a, const float *b, int n); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_naive.h connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_naive.h --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_naive.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_naive.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,63 @@ +/*---------------------------------------------------------------------------- + File : dot_naive.h + Contents: dot product (naive implementations) + Author : Kristian Loewe, Christian Borgelt +----------------------------------------------------------------------------*/ +#ifndef DOT_NAIVE_H +#define DOT_NAIVE_H + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +inline float sdot_naive (const float *a, const float *b, int n); +inline double ddot_naive (const double *a, const double *b, int n); +inline double sddot_naive (const float *a, const float *b, int n); + +/*---------------------------------------------------------------------------- + Inline Functions +----------------------------------------------------------------------------*/ +#ifdef REAL // if REAL is already defined, save its +# include "real-is-double.inc" // original definition based on the value +# undef REAL // of REAL_IS_DOUBLE, then undefine it +#endif +/*--------------------------------------------------------------------------*/ + +// --- dot product (single precision) +#define REAL float // (re)define REAL to be float +#define dot_naive sdot_naive +#include "dot_naive_real.h" +#undef dot_naive +#undef REAL + +/*--------------------------------------------------------------------------*/ +#undef DOT_NAIVE_REAL_H // undef guard to include header a 2nd time +/*--------------------------------------------------------------------------*/ + +// --- dot product (double precision) +#define REAL double // (re)define REAL to be double +#define dot_naive ddot_naive +#include "dot_naive_real.h" +#undef dot_naive +#undef REAL + +/*--------------------------------------------------------------------------*/ +#undef REAL // restore original definition of REAL +#ifdef REAL_IS_DOUBLE // (if necessary) +# if REAL_IS_DOUBLE +# define REAL double +# else +# define REAL float +# endif +#endif +/*--------------------------------------------------------------------------*/ + +// --- dot product (input: single; intermediate and output: double) +inline double sddot_naive (const float *a, const float *b, int n) +{ + double sum = 0; + for (int k = 0; k < n; k++) + sum += a[k] * b[k]; + return sum; +} // sddot_naive() + +#endif // DOT_NAIVE_H diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_naive_real.h connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_naive_real.h --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_naive_real.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_naive_real.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,21 @@ +/*---------------------------------------------------------------------------- + File : dot_naive_real.h + Contents: dot product (naive implementation) + Author : Kristian Loewe, Christian Borgelt +----------------------------------------------------------------------------*/ +#ifndef DOT_NAIVE_REAL_H +#define DOT_NAIVE_REAL_H + +/*---------------------------------------------------------------------------- + Inline Functions +----------------------------------------------------------------------------*/ + +inline REAL dot_naive (const REAL *a, const REAL *b, int n) +{ + REAL sum = 0; + for (int k = 0; k < n; k++) + sum += a[k] * b[k]; + return sum; +} // dot_naive() + +#endif // DOT_NAIVE_REAL_H diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_sse2.c connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_sse2.c --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_sse2.c 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_sse2.c 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,13 @@ +/*---------------------------------------------------------------------------- + File : dot_sse2.c + Contents: dot product (SSE2-based implementations) + Author : Kristian Loewe +----------------------------------------------------------------------------*/ +#include "dot_sse2.h" + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +extern float sdot_sse2 (const float *a, const float *b, int n); +extern double ddot_sse2 (const double *a, const double *b, int n); +extern double sddot_sse2 (const float *a, const float *b, int n); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_sse2.h connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_sse2.h --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/dot_sse2.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/dot_sse2.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,191 @@ +/*---------------------------------------------------------------------------- + File: dot_sse2.h + Contents: dot product (SSE2-based implementations) + + Notes: + On older CPU models such as the Xeon E5440, unaligned load (_mm_loadu_ps) + is significantly slower than aligned load (_mm_load_ps) which is why we + try to avoid it here if possible. On newer CPU models, the AVX version + should be used. + + Authors: Kristian Loewe, Christian Borgelt +----------------------------------------------------------------------------*/ +#ifndef DOT_SSE2_H +#define DOT_SSE2_H + +#ifndef __SSE2__ +# error "SSE2 is not enabled" +#endif + +#include + +// alignment check +#include +#define is_aligned(POINTER, BYTE_COUNT) \ + (((uintptr_t)(const void *)(POINTER)) % (BYTE_COUNT) == 0) + +// horizontal sum variant +#ifdef HORZSUM_SSE3 +# ifdef __SSE3__ +# include +# else +# error "HORZSUM_SSE3 requires SSE3." +# endif +#endif + +/*---------------------------------------------------------------------------- + Function Prototypes +----------------------------------------------------------------------------*/ +inline float sdot_sse2 (const float *a, const float *b, int n); +inline double ddot_sse2 (const double *a, const double *b, int n); +inline double sddot_sse2 (const float *a, const float *b, int n); + +/*---------------------------------------------------------------------------- + Inline Functions +----------------------------------------------------------------------------*/ + +// --- dot product (single precision) +inline float sdot_sse2 (const float *a, const float *b, int n) +{ + // initialize total sum + float s = 0.0; + + // compute and add up to 3 products without SIMD, hoping for alignment + int aligned = is_aligned(a, 16) && is_aligned(b, 16); + if (!aligned) { + int k = 0; + while (!aligned) { + s += (*a) * (*b); + n--; a++; b++; + aligned = is_aligned(a, 16) && is_aligned(b, 16); + if (aligned || (++k > 2) || (++k > n)) + break; + } + } + + // initialize 4 sums + __m128 s4 = _mm_setzero_ps(); + + // in each iteration, add 1 product to each of the 4 sums in parallel + if (is_aligned(a, 16) && is_aligned(b, 16)) + for (int k = 0, nq = 4*(n/4); k < nq; k += 4) + s4 = _mm_add_ps(s4, _mm_mul_ps(_mm_load_ps(a+k), _mm_load_ps(b+k))); + else + for (int k = 0, nq = 4*(n/4); k < nq; k += 4) + s4 = _mm_add_ps(s4, _mm_mul_ps(_mm_loadu_ps(a+k), _mm_loadu_ps(b+k))); + + // compute horizontal sum + #ifdef HORZSUM_SSE3 + s4 = _mm_hadd_ps(s4,s4); + s4 = _mm_hadd_ps(s4,s4); + #else + s4 = _mm_add_ps(s4, _mm_movehl_ps(s4, s4)); + s4 = _mm_add_ss(s4, _mm_shuffle_ps(s4, s4, 1)); + #endif + s += _mm_cvtss_f32(s4); // extract horizontal sum from 1st elem. + + // add the remaining products + for (int k = 4*(n/4); k < n; k++) + s += a[k] * b[k]; + + return s; +} // sdot_sse2() + +/*--------------------------------------------------------------------------*/ + +// --- dot product (double precision) +inline double ddot_sse2 (const double *a, const double *b, int n) +{ + // initialize total sum + double s = 0.0; + + // compute and add up to 1 product without SIMD, hoping for alignment + int aligned = is_aligned(a, 16) && is_aligned(b, 16); + if (!aligned) { + s += (*a) * (*b); + n--; a++; b++; + aligned = is_aligned(a, 16) && is_aligned(b, 16); + } + + // compute and add (the bulk of the) products using SSE2 intrinsics + __m128d s2 = _mm_setzero_pd(); // initalize 2 sums + if (aligned) + for (int k = 0, nq = 2*(n/2); k < nq; k += 2) + s2 = _mm_add_pd(s2, _mm_mul_pd(_mm_load_pd(a+k), _mm_load_pd(b+k))); + else + for (int k = 0, nq = 2*(n/2); k < nq; k += 2) + s2 = _mm_add_pd(s2, _mm_mul_pd(_mm_loadu_pd(a+k), _mm_loadu_pd(b+k))); + + // compute horizontal sum + #ifdef HORZSUM_SSE3 + s2 = _mm_hadd_pd(s2,s2); + #else + s2 = _mm_add_pd(s2, _mm_shuffle_pd(s2, s2, 1)); + #endif + s += _mm_cvtsd_f64(s2); // extract horizontal sum from 1st elem. + + // add the remaining products + for (int k = 2*(n/2); k < n; k++) + s += a[k] * b[k]; + + return s; +} // ddot_sse2() + +/*--------------------------------------------------------------------------*/ + +// --- dot product (input: single; intermediate and output: double) +inline double sddot_sse2 (const float *a, const float *b, int n) +{ + // initialize total sum + double s = 0.0; + + // compute and add up to 3 products without SIMD, hoping for alignment + int aligned = is_aligned(a, 16) && is_aligned(b, 16); + if (!aligned) { + int k = 0; + while (!aligned) { + s += (*a) * (*b); + n--; a++; b++; + aligned = is_aligned(a, 16) && is_aligned(b, 16); + if (aligned || (++k > 2) || (++k > n)) + break; + } + } + + // compute and add (the bulk of the) products using SSE2 intrinsics + __m128d s2 = _mm_setzero_pd(); // initalize 2 sums (aligned or unaligned) + __m128d s2u = _mm_setzero_pd(); // initalize 2 sums (unaligned) + // note that _mm_cvtps_pd() converts *the lower two* SPFP values + if (aligned) { + for (int k = 0, nq = 4*(n/4); k < nq; k += 4) { + s2 = _mm_add_pd(s2, + _mm_cvtps_pd(_mm_mul_ps(_mm_load_ps(a+k), _mm_load_ps(b+k)))); + s2u = _mm_add_pd(s2u, + _mm_cvtps_pd(_mm_mul_ps(_mm_loadu_ps(a+k+2), _mm_loadu_ps(b+k+2)))); + } } + else { + for (int k = 0, nq = 4*(n/4); k < nq; k += 4) { + s2 = _mm_add_pd(s2, + _mm_cvtps_pd(_mm_mul_ps(_mm_loadu_ps(a+k), _mm_loadu_ps(b+k)))); + s2u = _mm_add_pd(s2u, + _mm_cvtps_pd(_mm_mul_ps(_mm_loadu_ps(a+k+2), _mm_loadu_ps(b+k+2)))); + } + } + s2 = _mm_add_pd(s2,s2u); + + // compute horizontal sum + #ifdef HORZSUM_SSE3 + s2 = _mm_hadd_pd(s2, s2); + #else + s2 = _mm_add_pd(s2, _mm_shuffle_pd(s2, s2, 1)); + #endif + s += _mm_cvtsd_f64(s2); // extract horizontal sum from 1st elem. + + // add the remaining products + for (int k = 4*(n/4); k < n; k++) + s += a[k] * b[k]; + + return s; +} // sddot_sse2() + +#endif // DOT_SSE2_H diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/real-is-double.inc connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/real-is-double.inc --- connectome-workbench-1.2.3+git3-g7b83782/src/kloewe/dot/src/real-is-double.inc 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/kloewe/dot/src/real-is-double.inc 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,21 @@ +/*---------------------------------------------------------------------------- + File : real-is-double.inc + Contents: check the definition of REAL + Author : Kristian Loewe, Christian Borgelt +----------------------------------------------------------------------------*/ + +#ifdef REAL +# define float 1 // to check the definition of REAL +# define double 2 +# if REAL == float // if single precision data +# undef REAL_IS_DOUBLE +# define REAL_IS_DOUBLE 0 // clear indicator for double +# elif REAL == double // if double precision data +# undef REAL_IS_DOUBLE +# define REAL_IS_DOUBLE 1 // set indicator for double +# else +# error "REAL must be either 'float' or 'double'" +# endif +# undef float // delete definitions +# undef double // used for type checking +#endif diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -18,10 +18,12 @@ # Create the NIFTI library # ADD_LIBRARY(Nifti +ControlPoint3D.h Matrix4x4.h NiftiHeader.h NiftiIO.h +ControlPoint3D.cxx Matrix4x4.cxx NiftiHeader.cxx NiftiIO.cxx @@ -36,5 +38,6 @@ ${CMAKE_SOURCE_DIR}/Common ${CMAKE_SOURCE_DIR}/Palette ${CMAKE_SOURCE_DIR}/Cifti +${CMAKE_SOURCE_DIR}/Scenes ${CMAKE_SOURCE_DIR}/Xml ) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/ControlPoint3D.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/ControlPoint3D.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/ControlPoint3D.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/ControlPoint3D.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,495 @@ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + +#include + +#define __CONTROL_POINT3_D_DECLARE__ +#include "ControlPoint3D.h" +#undef __CONTROL_POINT3_D_DECLARE__ + +#include "CaretAssert.h" +#include "CaretLogger.h" +#include "MathFunctions.h" +#include "SceneClass.h" +#include "SceneClassAssistant.h" + +using namespace caret; + + + +/** + * \class caret::ControlPoint3D + * \brief 3D control point with source and target coordinates. + * \ingroup Common + */ + +/** + * Constructor. + * + * @param sourceXYZ + * The source coordinate. + * @param targetXYZ + * The target coordinate. + */ +ControlPoint3D::ControlPoint3D(const float sourceXYZ[3], + const float targetXYZ[3]) +: CaretObjectTracksModification(), +SceneableInterface(), +m_sourceX(sourceXYZ[0]), +m_sourceY(sourceXYZ[1]), +m_sourceZ(sourceXYZ[2]), +m_targetX(targetXYZ[0]), +m_targetY(targetXYZ[1]), +m_targetZ(targetXYZ[2]), +m_transformedX(0.0), +m_transformedY(0.0), +m_transformedZ(0.0) +{ + initializeInstance(); + + setModified(); +} + +/** + * Constructor. + * + * @param sourceX + * The source X-coordinate. + * @param sourceY + * The source Y-coordinate. + * @param sourceZ + * The source Z-coordinate. + * @param targetX + * The target X-coordinate. + * @param targetY + * The target Y-coordinate. + * @param targetZ + * The target Z-coordinate. + */ +ControlPoint3D::ControlPoint3D(const float sourceX, + const float sourceY, + const float sourceZ, + const float targetX, + const float targetY, + const float targetZ) +: CaretObjectTracksModification(), +SceneableInterface(), +m_sourceX(sourceX), +m_sourceY(sourceY), +m_sourceZ(sourceZ), +m_targetX(targetX), +m_targetY(targetY), +m_targetZ(targetZ), +m_transformedX(0.0), +m_transformedY(0.0), +m_transformedZ(0.0) +{ + initializeInstance(); + + setModified(); +} + + +/** + * Destructor. + */ +ControlPoint3D::~ControlPoint3D() +{ + delete m_sceneAssistant; +} + +/** + * Copy constructor. + * @param obj + * Object that is copied. + */ +ControlPoint3D::ControlPoint3D(const ControlPoint3D& obj) +: CaretObjectTracksModification(obj), +SceneableInterface(obj) +{ + initializeInstance(); + + this->copyHelperControlPoint3D(obj); +} + +/** + * Assignment operator. + * @param obj + * Data copied from obj to this. + * @return + * Reference to this object. + */ +ControlPoint3D& +ControlPoint3D::operator=(const ControlPoint3D& obj) +{ + if (this != &obj) { + CaretObject::operator=(obj); + this->copyHelperControlPoint3D(obj); + } + return *this; +} + +/** + * Helps with copying an object of this type. + * @param obj + * Object that is copied. + */ +void +ControlPoint3D::copyHelperControlPoint3D(const ControlPoint3D& obj) +{ + m_sourceX = obj.m_sourceX; + m_sourceY = obj.m_sourceY; + m_sourceZ = obj.m_sourceZ; + + m_targetX = obj.m_targetX; + m_targetY = obj.m_targetY; + m_targetZ = obj.m_targetZ; + + m_transformedX = obj.m_transformedX; + m_transformedY = obj.m_transformedY; + m_transformedZ = obj.m_transformedZ; + + setModified(); +} + +/** + * Initialize an instance of a control point + */ +void +ControlPoint3D::initializeInstance() +{ + m_sceneAssistant = new SceneClassAssistant(); + + m_sceneAssistant->add("m_sourceX", &m_sourceX); + m_sceneAssistant->add("m_sourceY", &m_sourceY); + m_sceneAssistant->add("m_sourceZ", &m_sourceZ); + m_sceneAssistant->add("m_targetX", &m_targetX); + m_sceneAssistant->add("m_targetY", &m_targetY); + m_sceneAssistant->add("m_targetZ", &m_targetZ); + m_sceneAssistant->add("m_transformedX", &m_transformedX); + m_sceneAssistant->add("m_transformedY", &m_transformedY); + m_sceneAssistant->add("m_transformedZ", &m_transformedZ); +} + + +/** + * Get the source coordinate. + * + * @param pt + * Output with source coordinate. + */ +void +ControlPoint3D::getSourceXYZ(double pt[3]) const +{ + pt[0] = m_sourceX; + pt[1] = m_sourceY; + pt[2] = m_sourceZ; +} + +/** + * Get the target coordinate. + * + * @param pt + * Output with target coordinate. + */ +void +ControlPoint3D::getTargetXYZ(double pt[3]) const +{ + pt[0] = m_targetX; + pt[1] = m_targetY; + pt[2] = m_targetZ; +} + +/** + * Get the transformed coordinate that is + * source coordinate multiplied by + * the landmard transformation matrix. + * Can be compared with target coordinate + * for error measurement. + * + * @param pt + * Output with transformed coordinate. + */ +void +ControlPoint3D::getTransformedXYZ(double pt[3]) const +{ + pt[0] = m_transformedX; + pt[1] = m_transformedY; + pt[2] = m_transformedZ; +} + +/** + * Set the transformed coordinate that is + * source coordinate multiplied by + * the landmard transformation matrix. + * Can be compared with target coordinate + * for error measurement. + * + * @param pt + * Output with transformed coordinate. + */ +void +ControlPoint3D::setTransformedXYZ(const double pt[3]) +{ + m_transformedX = pt[0]; + m_transformedY = pt[1]; + m_transformedZ = pt[2]; +} + +/** + * Get the transformed coordinate that is + * source coordinate multiplied by + * the landmard transformation matrix. + * Can be compared with target coordinate + * for error measurement. + * + * @param pt + * Output with transformed coordinate. + */ +void +ControlPoint3D::getTransformedXYZ(float pt[3]) const +{ + pt[0] = m_transformedX; + pt[1] = m_transformedY; + pt[2] = m_transformedZ; +} + +/** + * Set the transformed coordinate that is + * source coordinate multiplied by + * the landmard transformation matrix. + * Can be compared with target coordinate + * for error measurement. + * + * @param pt + * Output with transformed coordinate. + */ +void +ControlPoint3D::setTransformedXYZ(const float pt[3]) +{ + m_transformedX = pt[0]; + m_transformedY = pt[1]; + m_transformedZ = pt[2]; +} + +/** + * Get the source coordinate. + * + * @param pt + * Output with source coordinate. + */ +void +ControlPoint3D::getSourceXYZ(float pt[3]) const +{ + pt[0] = m_sourceX; + pt[1] = m_sourceY; + pt[2] = m_sourceZ; +} + +/** + * Get the target coordinate. + * + * @param pt + * Output with target coordinate. + */ +void +ControlPoint3D::getTargetXYZ(float pt[3]) const +{ + pt[0] = m_targetX; + pt[1] = m_targetY; + pt[2] = m_targetZ; +} + +/** + * @return The source X-coordinate + */ +float +ControlPoint3D::getSourceX() const +{ + return m_sourceX; +} + +/** + * @return The source Y-coordinate + */ +float +ControlPoint3D::getSourceY() const +{ + return m_sourceY; +} + +/** + * @return The source Z-coordinate + */ +float +ControlPoint3D::getSourceZ() const +{ + return m_sourceZ; +} + +/** + * @return The target X-coordinate + */ +float +ControlPoint3D::getTargetX() const +{ + return m_targetX; +} + +/** + * @return The target Y-coordinate + */ +float +ControlPoint3D::getTargetY() const +{ + return m_targetY; +} + +/** @return + * The target Z-coordinate + */ +float +ControlPoint3D::getTargetZ() const +{ + return m_targetZ; +} + +/** + * Get the error measurements. Error is difference + * between target and transformed coordinates. + * + * @param xyzTotalErrorOut + * 4 elements error in x, y, z, and total error. + */ +void +ControlPoint3D::getErrorMeasurements(float xyzTotalErrorOut[4]) const +{ + xyzTotalErrorOut[0] = std::fabs(m_targetX - m_transformedX); + xyzTotalErrorOut[1] = std::fabs(m_targetY - m_transformedY); + xyzTotalErrorOut[2] = std::fabs(m_targetZ - m_transformedZ); + xyzTotalErrorOut[3] = std::sqrt((xyzTotalErrorOut[0] * xyzTotalErrorOut[0]) + + (xyzTotalErrorOut[1] * xyzTotalErrorOut[1]) + + (xyzTotalErrorOut[2] * xyzTotalErrorOut[2])); +} + + +/** + * @return String containing control point coordinates. + */ +AString +ControlPoint3D::toString() const +{ + const AString s("Source: (" + + AString::number(m_sourceX) + + ", " + AString::number(m_sourceY) + + ", " + AString::number(m_sourceZ) + + ") Target: (" + + AString::number(m_targetX) + + ", " + AString::number(m_targetY) + + ", " + AString::number(m_targetZ) + + ") Transformed: (" + + AString::number(m_transformedX) + + ", " + AString::number(m_transformedY) + + ", " + AString::number(m_transformedZ) + + ")"); + return s; +} + +/** + * Get the normal vector for the source coordinates of the first three + * control points. If there are less than three control points, + * a unit vector is returned. + * + * @param controlPoints + * The control points. + * @param sourceNormalVectorOut + * Output unit normal vector for source points. + */ +void +ControlPoint3D::getSourceNormalVector(const std::vector& controlPoints, + float sourceNormalVectorOut[3]) +{ + if (controlPoints.size() < 3) { + sourceNormalVectorOut[0] = 0.0; + sourceNormalVectorOut[1] = 0.0; + sourceNormalVectorOut[2] = 1.0; + CaretLogSevere("Cannot compute normal vector for fewer than three control points."); + } + + CaretAssertVectorIndex(controlPoints, 2); + + float s1[3]; + controlPoints[0].getSourceXYZ(s1); + float s2[3]; + controlPoints[1].getSourceXYZ(s2); + float s3[3]; + controlPoints[2].getSourceXYZ(s3); + MathFunctions::normalVector(s1, s2, s3, sourceNormalVectorOut); +} + +/** + * Save information specific to this type of model to the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * saving the scene. + * + * @param instanceName + * Name of instance in the scene. + */ +SceneClass* +ControlPoint3D::saveToScene(const SceneAttributes* sceneAttributes, + const AString& instanceName) +{ + SceneClass* sceneClass = new SceneClass(instanceName, + "ControlPoint", + 1); + m_sceneAssistant->saveMembers(sceneAttributes, + sceneClass); + + return sceneClass; +} + +/** + * Restore information specific to the type of model from the scene. + * + * @param sceneAttributes + * Attributes for the scene. Scenes may be of different types + * (full, generic, etc) and the attributes should be checked when + * restoring the scene. + * + * @param sceneClass + * sceneClass from which model specific information is obtained. + */ +void +ControlPoint3D::restoreFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass) +{ + if (sceneClass == NULL) { + return; + } + + m_sceneAssistant->restoreMembers(sceneAttributes, + sceneClass); +} + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/ControlPoint3D.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/ControlPoint3D.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/ControlPoint3D.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/ControlPoint3D.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,130 @@ +#ifndef __CONTROL_POINT3_D_H__ +#define __CONTROL_POINT3_D_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2016 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ + + +#include "CaretObjectTracksModification.h" +#include "SceneableInterface.h" + + + + +namespace caret { + class SceneClassAssistant; + + class ControlPoint3D : public CaretObjectTracksModification, public SceneableInterface { + + public: + ControlPoint3D(const float sourceXYZ[3], + const float targetXYZ[3]); + + ControlPoint3D(const float sourceX, + const float sourceY, + const float sourceZ, + const float targetX, + const float targetY, + const float targetZ); + + virtual ~ControlPoint3D(); + + ControlPoint3D(const ControlPoint3D& obj); + + ControlPoint3D& operator=(const ControlPoint3D& obj); + + void getSourceXYZ(double pt[3]) const; + + void getTargetXYZ(double pt[3]) const; + + void getTransformedXYZ(double pt[3]) const; + + void setTransformedXYZ(const double pt[3]); + + void getSourceXYZ(float pt[3]) const; + + void getTargetXYZ(float pt[3]) const; + + void getTransformedXYZ(float pt[3]) const; + + void setTransformedXYZ(const float pt[3]); + + float getSourceX() const; + + float getSourceY() const; + + float getSourceZ() const; + + float getTargetX() const; + + float getTargetY() const; + + float getTargetZ() const; + + void getErrorMeasurements(float xyzTotalErrorOut[4]) const; + + virtual AString toString() const; + + static void getSourceNormalVector(const std::vector& controlPoints, + float sourceNormalVectorOut[3]); + + virtual SceneClass* saveToScene(const SceneAttributes* sceneAttributes, + const AString& instanceName); + + virtual void restoreFromScene(const SceneAttributes* sceneAttributes, + const SceneClass* sceneClass); + + // ADD_NEW_METHODS_HERE + + private: + void copyHelperControlPoint3D(const ControlPoint3D& obj); + + void initializeInstance(); + + // ADD_NEW_MEMBERS_HERE + + SceneClassAssistant* m_sceneAssistant; + + float m_sourceX; + + float m_sourceY; + + float m_sourceZ; + + float m_targetX; + + float m_targetY; + + float m_targetZ; + + float m_transformedX; + + float m_transformedY; + + float m_transformedZ; + + }; + +#ifdef __CONTROL_POINT3_D_DECLARE__ + // +#endif // __CONTROL_POINT3_D_DECLARE__ + +} // namespace +#endif //__CONTROL_POINT3_D_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/Matrix4x4.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/Matrix4x4.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/Matrix4x4.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/Matrix4x4.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -46,6 +46,7 @@ #include +#include #include #include "CaretAssert.h" @@ -1032,6 +1033,15 @@ double alpha = std::atan2(sinAlpha, cosAlpha); rotationOutZ = MathFunctions::toDegrees(alpha); + if (MathFunctions::isNaN(rotationOutX)) { + rotationOutX = 0.0; + } + if (MathFunctions::isNaN(rotationOutY)) { + rotationOutY = 0.0; + } + if (MathFunctions::isNaN(rotationOutZ)) { + rotationOutZ = 0.0; + } } void @@ -1932,16 +1942,46 @@ * matrix will be the identity matrix. */ bool -Matrix4x4::createLandmarkTransformMatrix(const std::vector& controlPoints, +Matrix4x4::createLandmarkTransformMatrix(const std::vector& controlPoints, AString& errorMessageOut) { - const bool testFlag = true; + const bool debugFlag = false; + identity(); + errorMessageOut.clear(); + + if (controlPoints.size() < 3) { + errorMessageOut = "There must be at least three control points."; + return false; + } + + float s1[3]; + controlPoints[0]->getSourceXYZ(s1); + float s2[3]; + controlPoints[1]->getSourceXYZ(s2); + float s3[3]; + controlPoints[2]->getSourceXYZ(s3); + float sourceNormalVector[3] = { 0.0, 0.0, 0.0 }; + MathFunctions::normalVector(s1, s2, s3, sourceNormalVector); + + const float tinyValue = 0.00001; + if ((sourceNormalVector[2] < tinyValue) + && (sourceNormalVector[2] > -tinyValue)) { + errorMessageOut = ("First three control points are along a line. Edit control points to that " + "the first three control points form a triangular shape."); + return false; + } + +// if (sourceNormalVector[2] < 0.0) { +// CaretLogWarning("Control points are orientated clockwise; unknown if this causes a problem."); +// } + double leastError = std::numeric_limits::max(); Matrix4x4 leastErrorMatrix; bool leastErrorMatrixValid = false; - if (testFlag) { + const bool testAllTransformTypesFlag = true; + if (testAllTransformTypesFlag) { for (int32_t j = 0; j < 3; j++) { LANDMARK_TRANSFORM_MODE mode = LANDMARK_TRANSFORM_AFFINE; AString modeName; @@ -1965,35 +2005,39 @@ mode, errorMessageOut)) { - // matrix.setMatrixToOpenGLRotationFromVector(coordinateNormalVector); - std::cout << std::endl; - std::cout << "Mode: " << qPrintable(modeName) << std::endl; - std::cout << "Matrix: " << qPrintable(matrix.toFormattedString(" ")) << std::endl; + if (debugFlag) { + std::cout << std::endl; + std::cout << "Mode: " << qPrintable(modeName) << std::endl; + std::cout << "Matrix: " << qPrintable(matrix.toFormattedString(" ")) << std::endl; + } const int32_t numcp = static_cast(controlPoints.size()); double sum = 0.0; - for (int32_t i = 0; i < numcp; i++) { double source[3]; - controlPoints[i].getSource(source); + controlPoints[i]->getSourceXYZ(source); double predicted[3] = { source[0], source[1], source[2] }; matrix.multiplyPoint3(predicted); double target[3]; - controlPoints[i].getTarget(target); + controlPoints[i]->getTargetXYZ(target); const double error = MathFunctions::distance3D(predicted, target); sum += error; - std::cout << "CP("<< i << ") Source: (" - << qPrintable(AString::fromNumbers(source, 3, ",")) << ") Target: (" - << qPrintable(AString::fromNumbers(target, 3, ",")) << ") Predicted: (" - << qPrintable(AString::fromNumbers(predicted, 3, ",")) << ") Error: " - << error << std::endl; + if (debugFlag) { + std::cout << "CP("<< i << ") Source: (" + << qPrintable(AString::fromNumbers(source, 3, ",")) << ") Target: (" + << qPrintable(AString::fromNumbers(target, 3, ",")) << ") Predicted: (" + << qPrintable(AString::fromNumbers(predicted, 3, ",")) << ") Error: " + << error << std::endl; + } } const double error = (sum /= static_cast(numcp)); - std::cout << "Error: " << error << std::endl; + if (debugFlag) { + std::cout << " Average error per control point: " << error << std::endl; + } if (error < leastError) { leastError = error; @@ -2006,12 +2050,16 @@ *this = leastErrorMatrix; + const float averageError = measureTransformError(controlPoints, + *this); // const bool result = createLandmarkTransformMatrixPrivate(controlPoints, // LANDMARK_TRANSFORM_AFFINE, // errorMessageOut); - std::cout << std::endl; - std::cout << "Transform Error: " << measureTransformError(controlPoints, - *this) << std::endl; + if (debugFlag) { + std::cout << std::endl; + std::cout << "Transform Error: " << averageError << std::endl; + } + return leastErrorMatrixValid; } @@ -2043,7 +2091,7 @@ * matrix will be the identity matrix. */ bool -Matrix4x4::createLandmarkTransformMatrixPrivate(const std::vector& controlPoints, +Matrix4x4::createLandmarkTransformMatrixPrivate(const std::vector& controlPoints, const LANDMARK_TRANSFORM_MODE mode, AString& errorMessageOut) { @@ -2075,7 +2123,12 @@ // Original python implementation by David G. Gobbi //const vtkIdType N_PTS = this->SourceLandmarks->GetNumberOfPoints(); - const int32_t N_PTS = static_cast(controlPoints.size()); + int32_t N_PTS = static_cast(controlPoints.size()); + if (mode == LANDMARK_TRANSFORM_AFFINE) { + if (N_PTS > 3) { + N_PTS = 3; + } + } // if(N_PTS != this->TargetLandmarks->GetNumberOfPoints()) // { // vtkErrorMacro("Update: Source and Target Landmarks contain a different number of points"); @@ -2099,12 +2152,12 @@ { CaretAssertVectorIndex(controlPoints, i); //this->SourceLandmarks->GetPoint(i, p); - controlPoints[i].getSource(p); + controlPoints[i]->getSourceXYZ(p); source_centroid[0] += p[0]; source_centroid[1] += p[1]; source_centroid[2] += p[2]; //this->TargetLandmarks->GetPoint(i, p); - controlPoints[i].getTarget(p); + controlPoints[i]->getTargetXYZ(p); target_centroid[0] += p[0]; target_centroid[1] += p[1]; target_centroid[2] += p[2]; @@ -2150,13 +2203,13 @@ // get the origin-centred point (a) in the source set //this->SourceLandmarks->GetPoint(pt,a); CaretAssertVectorIndex(controlPoints, pt); - controlPoints[pt].getSource(a); + controlPoints[pt]->getSourceXYZ(a); a[0] -= source_centroid[0]; a[1] -= source_centroid[1]; a[2] -= source_centroid[2]; // get the origin-centred point (b) in the target set //this->TargetLandmarks->GetPoint(pt,b); - controlPoints[pt].getTarget(b); + controlPoints[pt]->getTargetXYZ(b); b[0] -= target_centroid[0]; b[1] -= target_centroid[1]; b[2] -= target_centroid[2]; @@ -2265,10 +2318,10 @@ // this->SourceLandmarks->GetPoint(1,s1); // this->TargetLandmarks->GetPoint(1,t1); CaretAssertVectorIndex(controlPoints, 1); - controlPoints[0].getSource(s0); - controlPoints[0].getTarget(t0); - controlPoints[1].getSource(s1); - controlPoints[1].getTarget(t1); + controlPoints[0]->getSourceXYZ(s0); + controlPoints[0]->getTargetXYZ(t0); + controlPoints[1]->getSourceXYZ(s1); + controlPoints[1]->getTargetXYZ(t1); double ds[3],dt[3]; double rs = 0, rt = 0; @@ -2411,7 +2464,7 @@ * The transform matrix. */ float -Matrix4x4::measureTransformError(const std::vector& controlPoints, +Matrix4x4::measureTransformError(const std::vector& controlPoints, const Matrix4x4& matrix) const { const int32_t numcp = static_cast(controlPoints.size()); @@ -2422,15 +2475,19 @@ double sum = 0.0; for (int32_t i = 0; i < numcp; i++) { + ControlPoint3D* cp = controlPoints[i]; + double pt[3]; - controlPoints[i].getSource(pt); + cp->getSourceXYZ(pt); matrix.multiplyPoint3(pt); + cp->setTransformedXYZ(pt); + double target[3]; - controlPoints[i].getTarget(target); + controlPoints[i]->getTargetXYZ(target); - const double error = MathFunctions::distance3D(pt, target); - sum += error; + const double totalError = MathFunctions::distance3D(pt, target); + sum += totalError; } const double error = (sum /= static_cast(numcp)); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/Matrix4x4.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/Matrix4x4.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Nifti/Matrix4x4.h 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Nifti/Matrix4x4.h 2016-10-19 23:35:12.000000000 +0000 @@ -161,7 +161,7 @@ bool invert(); - bool createLandmarkTransformMatrix(const std::vector& controlPoints, + bool createLandmarkTransformMatrix(const std::vector& controlPoints, AString& errorMessageOut); AString toString() const; @@ -232,11 +232,11 @@ static int JacobiN(double **a, int n, double *w, double **v); - bool createLandmarkTransformMatrixPrivate(const std::vector& controlPoints, + bool createLandmarkTransformMatrixPrivate(const std::vector& controlPoints, const LANDMARK_TRANSFORM_MODE mode, AString& errorMessageOut); - float measureTransformError(const std::vector& controlPoints, + float measureTransformError(const std::vector& controlPoints, const Matrix4x4& matrix) const; protected: diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Operations/OperationCiftiLabelImport.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Operations/OperationCiftiLabelImport.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Operations/OperationCiftiLabelImport.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Operations/OperationCiftiLabelImport.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -68,15 +68,17 @@ ret->setHelpText( AString("Creates a cifti label file from a cifti file with label-like values. ") + "You may specify the empty string ('' will work on linux/mac) for , which will be treated as if it is an empty file. " + - "The label list file must have lines of the following format:\n\n" + - "\n \n\n" + - "Do not specify the \"unlabeled\" key in the file, it is assumed that 0 means not labeled unless -unlabeled-value is specified. " + - "Label names must be on a separate line, but may contain spaces or other unusual characters (but not newline). " + + "It is assumed that a value of 0 in the input file means \"unlabeled\", unless -unlabeled-value is specified. " + + "Do not specify the \"unlabeled\" label in the text file.\n\n" + + "The label list file must have the following format (2 lines per label):\n\n" + + "\n \n...\n\n" + + "Label names are specified on a separate line from their value and color, in order to let label names contain spaces. " + "Whitespace is trimmed from both ends of the label name, but is kept if it is in the middle of a label. " + - "The values of red, green, blue and alpha must be integers from 0 to 255, and will specify the color the label is drawn as " + - "(alpha of 255 means opaque, which is probably what you want). " + - "By default, it will set new label names with names of LABEL_# for any values encountered that are not mentioned in the " + - "list file, specify -discard-others to instead set these to the \"unlabeled\" key." + "The value of specifies what value in the imported file should be used as this label. " + + "The values of , , and must be integers from 0 to 255, and will specify the color the label is drawn as " + + "(alpha of 255 means fully opaque, which is probably what you want).\n\n" + + "By default, it will create new label names with names like LABEL_5 for any values encountered that are not mentioned in the " + + "list file, specify -discard-others to instead set these values to the \"unlabeled\" key." ); return ret; } diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Operations/OperationCiftiMerge.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Operations/OperationCiftiMerge.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Operations/OperationCiftiMerge.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Operations/OperationCiftiMerge.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -49,9 +49,9 @@ ParameterComponent* ciftiOpt = ret->createRepeatableParameter(2, "-cifti", "specify an input cifti file"); ciftiOpt->addCiftiParameter(1, "cifti-in", "a cifti file to use columns from"); ParameterComponent* columnOpt = ciftiOpt->createRepeatableParameter(2, "-column", "select a single column to use"); - columnOpt->addIntegerParameter(1, "column", "the column index (starting from 1)"); + columnOpt->addStringParameter(1, "column", "the column number (starting from 1) or name"); OptionalParameter* upToOpt = columnOpt->createOptionalParameter(2, "-up-to", "use an inclusive range of columns"); - upToOpt->addIntegerParameter(1, "last-column", "the index of the last column to include"); + upToOpt->addStringParameter(1, "last-column", "the number or name of the last column to include"); upToOpt->createOptionalParameter(2, "-reverse", "use the range in reverse order"); ret->setHelpText( @@ -100,13 +100,13 @@ { for (int j = 0; j < numColumnOpts; ++j) { - int64_t initialColumn = columnOpts[j]->getInteger(1) - 1;//1-based indexing convention - if (initialColumn < 0 || initialColumn >= thisDims[0]) throw OperationException("column '" + AString::number(initialColumn + 1) + "' not valid in file '" + ciftiIn->getFileName() + "'"); + int64_t initialColumn = thisXML.getMap(CiftiXML::ALONG_ROW)->getIndexFromNumberOrName(columnOpts[j]->getString(1));//this function has the 1-indexing convention built in + if (initialColumn < 0 || initialColumn >= thisDims[0]) throw OperationException("column '" + columnOpts[j]->getString(1) + "' not valid in file '" + ciftiIn->getFileName() + "'"); OptionalParameter* upToOpt = columnOpts[j]->getOptionalParameter(2); if (upToOpt->m_present) { - int finalColumn = upToOpt->getInteger(1) - 1;//ditto - if (finalColumn < 0 || finalColumn >= thisDims[0]) throw OperationException("ending column '" + AString::number(finalColumn + 1) + "' not valid in file '" + ciftiIn->getFileName() + "'"); + int finalColumn = thisXML.getMap(CiftiXML::ALONG_ROW)->getIndexFromNumberOrName(upToOpt->getString(1));//ditto + if (finalColumn < 0 || finalColumn >= thisDims[0]) throw OperationException("ending column '" + columnOpts[j]->getString(1) + "' not valid in file '" + ciftiIn->getFileName() + "'"); if (finalColumn < initialColumn) throw OperationException("ending column occurs before starting column in file '" + ciftiIn->getFileName() + "'"); numOutColumns += finalColumn - initialColumn + 1;//inclusive - we don't need to worry about reversing for counting, though } else { @@ -155,11 +155,11 @@ { for (int j = 0; j < numColumnOpts; ++j) { - int64_t initialColumn = columnOpts[j]->getInteger(1) - 1;//1-based indexing convention - OptionalParameter* upToOpt = columnOpts[j]->getOptionalParameter(2); + int64_t initialColumn = thisXML.getMap(CiftiXML::ALONG_ROW)->getIndexFromNumberOrName(columnOpts[j]->getString(1));//this function has the 1-indexing convention built in + OptionalParameter* upToOpt = columnOpts[j]->getOptionalParameter(2);//we already checked that these strings give a valid column if (upToOpt->m_present) { - int finalColumn = upToOpt->getInteger(1) - 1;//ditto + int finalColumn = thisXML.getMap(CiftiXML::ALONG_ROW)->getIndexFromNumberOrName(upToOpt->getString(1));//ditto bool reverse = upToOpt->getOptionalParameter(2)->m_present; if (reverse) { @@ -264,6 +264,7 @@ { const CiftiFile* ciftiIn = myInputs[i]->getCifti(1); vector thisDims = ciftiIn->getDimensions(); + const CiftiXML& thisXML = ciftiIn->getCiftiXML(); const vector& columnOpts = *(myInputs[i]->getRepeatableParameterInstances(2)); int numColumnOpts = (int)columnOpts.size(); if (numColumnOpts > 0) @@ -271,11 +272,11 @@ ciftiIn->getRow(scratchRow.data(), row); for (int j = 0; j < numColumnOpts; ++j) { - int64_t initialColumn = columnOpts[j]->getInteger(1) - 1;//1-based indexing convention - OptionalParameter* upToOpt = columnOpts[j]->getOptionalParameter(2); + int64_t initialColumn = thisXML.getMap(CiftiXML::ALONG_ROW)->getIndexFromNumberOrName(columnOpts[j]->getString(1));//this function has the 1-indexing convention built in + OptionalParameter* upToOpt = columnOpts[j]->getOptionalParameter(2);//we already checked that these strings give a valid column if (upToOpt->m_present) { - int finalColumn = upToOpt->getInteger(1) - 1;//ditto + int finalColumn = thisXML.getMap(CiftiXML::ALONG_ROW)->getIndexFromNumberOrName(upToOpt->getString(1));//ditto bool reverse = upToOpt->getOptionalParameter(2)->m_present; if (reverse) { diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Operations/OperationCiftiResampleDconnMemory.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Operations/OperationCiftiResampleDconnMemory.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Operations/OperationCiftiResampleDconnMemory.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Operations/OperationCiftiResampleDconnMemory.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -48,7 +48,7 @@ ret->addCiftiParameter(3, "cifti-template", "a cifti file containing the cifti space to resample to"); - ret->addStringParameter(4, "template-direction", "the direction of the template to use as the resampling space"); + ret->addStringParameter(4, "template-direction", "the direction of the template to use as the resampling space, ROW or COLUMN"); ret->addStringParameter(5, "surface-method", "specify a surface resampling method"); @@ -118,6 +118,7 @@ AString("This command does the same thing as running -cifti-resample twice, but uses memory up to approximately 2x the size that the intermediate file would be. ") + "This is because the intermediate dconn is kept in memory, rather than written to disk, " + "and the components before and after resampling/dilation have to be in memory at the same time during the relevant computation. " + + "The argument should usually be COLUMN, as dtseries, dscalar, and dlabel all have brainordinates on that direction. " + "If spheres are not specified for a surface structure which exists in the cifti files, its data is copied without resampling or dilation. " + "Dilation is done with the 'nearest' method, and is done on for surface data. " + "Volume components are padded before dilation so that dilation doesn't run into the edge of the component bounding box.\n\n" + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Palette/PaletteColorMapping.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Palette/PaletteColorMapping.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Palette/PaletteColorMapping.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Palette/PaletteColorMapping.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -1865,7 +1865,7 @@ * Decimal mode integers for percentile */ numericFormatModeForTextFormatting = NumericFormatModeEnum::DECIMAL; - precisionDigitsForTextFormatting = 0; + //precisionDigitsForTextFormatting = 0; break; case PaletteColorBarValuesModeEnum::SIGN_ONLY: CaretAssertMessage(0, "Should never get here. Sign only handled above"); diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Qwt/qwt_date.cpp connectome-workbench-1.2.3+git41-gc4c6c90/src/Qwt/qwt_date.cpp --- connectome-workbench-1.2.3+git3-g7b83782/src/Qwt/qwt_date.cpp 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Qwt/qwt_date.cpp 2016-10-19 23:35:12.000000000 +0000 @@ -171,34 +171,34 @@ return dt.toTimeSpec( spec ); } -static inline double qwtToJulianDay( int year, int month, int day ) -{ - // code from QDate but using doubles to avoid overflows - // for large values - - const int m1 = ( month - 14 ) / 12; - const int m2 = ( 367 * ( month - 2 - 12 * m1 ) ) / 12; - const double y1 = ::floor( ( 4900.0 + year + m1 ) / 100 ); - - return ::floor( ( 1461.0 * ( year + 4800 + m1 ) ) / 4 ) + m2 - - ::floor( ( 3 * y1 ) / 4 ) + day - 32075; -} - -static inline qint64 qwtFloorDiv64( qint64 a, int b ) -{ - if ( a < 0 ) - a -= b - 1; - - return a / b; -} - -static inline qint64 qwtFloorDiv( int a, int b ) -{ - if ( a < 0 ) - a -= b - 1; - - return a / b; -} +//static inline double qwtToJulianDay( int year, int month, int day ) +//{ +// // code from QDate but using doubles to avoid overflows +// // for large values +// +// const int m1 = ( month - 14 ) / 12; +// const int m2 = ( 367 * ( month - 2 - 12 * m1 ) ) / 12; +// const double y1 = ::floor( ( 4900.0 + year + m1 ) / 100 ); +// +// return ::floor( ( 1461.0 * ( year + 4800 + m1 ) ) / 4 ) + m2 +// - ::floor( ( 3 * y1 ) / 4 ) + day - 32075; +//} +// +//static inline qint64 qwtFloorDiv64( qint64 a, int b ) +//{ +// if ( a < 0 ) +// a -= b - 1; +// +// return a / b; +//} +// +//static inline qint64 qwtFloorDiv( int a, int b ) +//{ +// if ( a < 0 ) +// a -= b - 1; +// +// return a / b; +//} static inline QDate qwtToDate( int year, int month = 1, int day = 1 ) { diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Qwt/qwt_date_scale_engine.cpp connectome-workbench-1.2.3+git41-gc4c6c90/src/Qwt/qwt_date_scale_engine.cpp --- connectome-workbench-1.2.3+git3-g7b83782/src/Qwt/qwt_date_scale_engine.cpp 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Qwt/qwt_date_scale_engine.cpp 2016-10-19 23:35:12.000000000 +0000 @@ -26,8 +26,10 @@ 30.0 * 24.0 * 3600.0 * 1000.0, 365.0 * 24.0 * 3600.0 * 1000.0, }; - - if ( type < 0 || type >= static_cast( sizeof( msecs ) / sizeof( msecs[0] ) ) ) +// eliminate compile time warning - JWH 9/16/2016 +// if ( type < 0 || type >= static_cast( sizeof( msecs ) / sizeof( msecs[0] ) ) ) + const int typeAsInt = static_cast(type); + if ( typeAsInt < 0 || typeAsInt >= static_cast( sizeof( msecs ) / sizeof( msecs[0] ) ) ) return 1.0; return msecs[ type ]; diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Qwt/qwt_plot_tradingcurve.cpp connectome-workbench-1.2.3+git41-gc4c6c90/src/Qwt/qwt_plot_tradingcurve.cpp --- connectome-workbench-1.2.3+git3-g7b83782/src/Qwt/qwt_plot_tradingcurve.cpp 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Qwt/qwt_plot_tradingcurve.cpp 2016-10-19 23:35:12.000000000 +0000 @@ -235,7 +235,11 @@ void QwtPlotTradingCurve::setSymbolBrush( Direction direction, const QBrush &brush ) { - if ( direction < 0 || direction >= 2 ) + +// eliminate compile time warning - JWH 9/16/2016 +// if ( direction < 0 || direction >= 2 ) + const int directionAsInt = static_cast(direction); + if ( directionAsInt < 0 || directionAsInt >= 2 ) return; if ( brush != d_data->symbolBrush[ direction ] ) @@ -256,7 +260,10 @@ */ QBrush QwtPlotTradingCurve::symbolBrush( Direction direction ) const { - if ( direction < 0 || direction >= 2 ) +// eliminate compile time warning - JWH 9/16/2016 +// if ( direction < 0 || direction >= 2 ) + const int directionAsInt = static_cast(direction); + if ( directionAsInt < 0 || directionAsInt >= 2 ) return QBrush(); return d_data->symbolBrush[ direction ]; Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/FtglFonts/VeraBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/FtglFonts/VeraBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/FtglFonts/VeraSe.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/FtglFonts/VeraSe.ttf differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/GPL.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/GPL.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/GPL.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/GPL.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,343 +0,0 @@ - GNU GENERAL PUBLIC LICENSE (with font exception) - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - -As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - 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; either version 2 of the License, or - (at your option) any later version. - - 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/LICENCE.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/LICENCE.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/LICENCE.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/LICENCE.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,7 +0,0 @@ -- Lizenz / Licence - - -Unsere Schriften sind frei im Sinne der GPL, d.h. (stark vereinfacht) dass Veränderungen an der Schriftart erlaubt sind unter der Bedingung, dass diese wieder der Öffentlichkeit unter gleicher Lizenz freigegeben werden. Querdenker behaupten oft, dass bei der Verwendung einer GPL-Schrift eingebettet in beispielsweise eine PDF auch diese freigestellt werden müsse. Deshalb gibt es die sogenannte "Font-exception" der GPL (welche diesem Lizenztext hinzugefügt wurde). Weitere Informationen zur GPL (Lizenztext mit Font-Exzeption als GPL.txt in diesem Paket). -Zusätzlich stehen die Schriften unter der Open Font License (siehe OFL.txt). - -Our fonts are free in the sense of the GPL. In short: Changing the font is allowed as long as the derivative work is published under the same licence again. Pedantics keep claiming that the embedded use of GPL-fonts in i.e. PDFs requires the free publication of the PDF as well. This is why our GPL contains the so called "font exception". Further information about the GPL (licence text with font exception see GPL.txt in this package). -Additionally our fonts are licensed under the Open Fonts License (see OFL.txt). \ No newline at end of file Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_Rah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_Rah.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_RBah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_RBah.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_RBIah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_RBIah.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_RIah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/LinLibertine_RIah.ttf differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/OFL-1.1.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/OFL-1.1.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/OFL-1.1.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/OFL-1.1.txt 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ -Copyright (c) 2003–2012, Philipp H. Poll (www.linuxlibertine.org | gillian at linuxlibertine.org), -with Reserved Font Name "Linux Libertine" and "Biolinum". - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/README connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/README --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/LinuxLibertine/README 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/LinuxLibertine/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -LOFP - Libertine Open Fonts Project - -1. OPEN FONTS PROJECT'S AIMS -We work on a serif and organic grotesque font-family for practical use in documents. Our project aims at creating a free alternative to the standard W*ndows Font (T*mes). -But neveretheless Libertine and Biolinum are not a clone of any common font! They have been developed from scratch and go different ways in typography than the Times or Arial. Just the useability and the dimensions shall be similar, Libertine should be even better for typical office use! If you want Times- and Arial-clones go elsewhere. If you just need reliable and good typography give our fonts a chance. If you want to know more about the design of Libertine and Biolinum, have a look at our website. - -2. LICENSE AND OPENSOURCE -We publish our fonts under the terms of the GPL (see GPL.txt) and OFL (OFL.txt) --> see also LICENCE.txt! -The OpenSource-tool Fontforge is used as font editor (see http://fontforge.sf.net). - -3. FONT FORMATS TTF VS. OTF -The font files are available as TTF (TrueType) and OTF (OpenType) fonts. The TTF-Family is called -"Linux Libertine" and "Linux Biolinum" -and the OTF -"LinuxLibertine O" and "Linux Biolinum O". - -So that both types can be installed and used parallely. -Most often TTF is the better supported format though OTF has advances in printing. Decide yourself what is better for your purpose. OpenType-features are equally available in both fonts. Note that OpenOffice doesn’t support OTFs, yet. - -4. THE LINUX BIOLINUM FONT FACE -Please note: The Biolinum is a very early version. While you use Libertine-Fonts without any warranty anyway, take special care with this young font face. - -5. HINTING -The TrueType-hinting is a complex technique and our editor FontForge doesn't support full possibilities (but it becomes alot better version by version)... -Since version 2.7 also the normal TTFs are hinted. If you don't like this, send me a mail. You may also try the OpenTypes (which contain PS-Hintings which are quite good supported by FontForge). - -6. DOWNLOAD AND CONTACT -We publish our fonts at http://www.linuxlibertine.org/. - -7. THE UNDERLINED VARIANT -Please note: The underlined variant is recently not being maintained because its concept doesn’t seem to be sofware-technically reliable and because of lack of interest. -The advantage of this font was that g, commas, cedillas... were not overprinted by the line anymore. For technical reasons the space was not underlined but you could use the _ instead. In this font it had the width of the space and the line was at hight of the underline. The underlined variant used an older font outline. - -Philipp Poll -- gillian at linuxlibertine.org - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/COPYRIGHT.TXT connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/COPYRIGHT.TXT --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/COPYRIGHT.TXT 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/COPYRIGHT.TXT 1970-01-01 00:00:00.000000000 +0000 @@ -1,124 +0,0 @@ -Bitstream Vera Fonts Copyright - -The fonts have a generous copyright, allowing derivative works (as -long as "Bitstream" or "Vera" are not in the names), and full -redistribution (so long as they are not *sold* by themselves). They -can be be bundled, redistributed and sold with any software. - -The fonts are distributed under the following copyright: - -Copyright -========= - -Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream -Vera is a trademark of Bitstream, Inc. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the fonts accompanying this license ("Fonts") and associated -documentation files (the "Font Software"), to reproduce and distribute -the Font Software, including without limitation the rights to use, -copy, merge, publish, distribute, and/or sell copies of the Font -Software, and to permit persons to whom the Font Software is furnished -to do so, subject to the following conditions: - -The above copyright and trademark notices and this permission notice -shall be included in all copies of one or more of the Font Software -typefaces. - -The Font Software may be modified, altered, or added to, and in -particular the designs of glyphs or characters in the Fonts may be -modified and additional glyphs or characters may be added to the -Fonts, only if the fonts are renamed to names not containing either -the words "Bitstream" or the word "Vera". - -This License becomes null and void to the extent applicable to Fonts -or Font Software that has been modified and is distributed under the -"Bitstream Vera" names. - -The Font Software may be sold as part of a larger software package but -no copy of one or more of the Font Software typefaces may be sold by -itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL -BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, -OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT -SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. - -Except as contained in this notice, the names of Gnome, the Gnome -Foundation, and Bitstream Inc., shall not be used in advertising or -otherwise to promote the sale, use or other dealings in this Font -Software without prior written authorization from the Gnome Foundation -or Bitstream Inc., respectively. For further information, contact: -fonts at gnome dot org. - -Copyright FAQ -============= - - 1. I don't understand the resale restriction... What gives? - - Bitstream is giving away these fonts, but wishes to ensure its - competitors can't just drop the fonts as is into a font sale system - and sell them as is. It seems fair that if Bitstream can't make money - from the Bitstream Vera fonts, their competitors should not be able to - do so either. You can sell the fonts as part of any software package, - however. - - 2. I want to package these fonts separately for distribution and - sale as part of a larger software package or system. Can I do so? - - Yes. A RPM or Debian package is a "larger software package" to begin - with, and you aren't selling them independently by themselves. - See 1. above. - - 3. Are derivative works allowed? - Yes! - - 4. Can I change or add to the font(s)? - Yes, but you must change the name(s) of the font(s). - - 5. Under what terms are derivative works allowed? - - You must change the name(s) of the fonts. This is to ensure the - quality of the fonts, both to protect Bitstream and Gnome. We want to - ensure that if an application has opened a font specifically of these - names, it gets what it expects (though of course, using fontconfig, - substitutions could still could have occurred during font - opening). You must include the Bitstream copyright. Additional - copyrights can be added, as per copyright law. Happy Font Hacking! - - 6. If I have improvements for Bitstream Vera, is it possible they might get - adopted in future versions? - - Yes. The contract between the Gnome Foundation and Bitstream has - provisions for working with Bitstream to ensure quality additions to - the Bitstream Vera font family. Please contact us if you have such - additions. Note, that in general, we will want such additions for the - entire family, not just a single font, and that you'll have to keep - both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add - glyphs to the font, they must be stylistically in keeping with Vera's - design. Vera cannot become a "ransom note" font. Jim Lyles will be - providing a document describing the design elements used in Vera, as a - guide and aid for people interested in contributing to Vera. - - 7. I want to sell a software package that uses these fonts: Can I do so? - - Sure. Bundle the fonts with your software and sell your software - with the fonts. That is the intent of the copyright. - - 8. If applications have built the names "Bitstream Vera" into them, - can I override this somehow to use fonts of my choosing? - - This depends on exact details of the software. Most open source - systems and software (e.g., Gnome, KDE, etc.) are now converting to - use fontconfig (see www.fontconfig.org) to handle font configuration, - selection and substitution; it has provisions for overriding font - names and subsituting alternatives. An example is provided by the - supplied local.conf file, which chooses the family Bitstream Vera for - "sans", "serif" and "monospace". Other software (e.g., the XFree86 - core server) has other mechanisms for font substitution. - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/local.conf connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/local.conf --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/local.conf 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/local.conf 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - - - - serif - - Bitstream Vera Serif - - - - sans-serif - - Bitstream Vera Sans - - - - monospace - - Bitstream Vera Sans Mono - - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/README.TXT connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/README.TXT --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/README.TXT 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/README.TXT 1970-01-01 00:00:00.000000000 +0000 @@ -1,11 +0,0 @@ -Contained herin is the Bitstream Vera font family. - -The Copyright information is found in the COPYRIGHT.TXT file (along -with being incoporated into the fonts themselves). - -The releases notes are found in the file "RELEASENOTES.TXT". - -We hope you enjoy Vera! - - Bitstream, Inc. - The Gnome Project diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/RELEASENOTES.TXT connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/RELEASENOTES.TXT --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/RELEASENOTES.TXT 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/RELEASENOTES.TXT 1970-01-01 00:00:00.000000000 +0000 @@ -1,162 +0,0 @@ -Bitstream Vera Fonts - April 16, 2003 -===================================== - -The version number of these fonts is 1.10 to distinguish them from the -beta test fonts. - -Note that the Vera copyright is incorporated in the fonts themselves. -The License field in the fonts contains the copyright license as it -appears below. The TrueType copyright field is not large enough to -contain the full license, so the license is incorporated (as you might -think if you thought about it) into the license field, which -unfortunately can be obscure to find. (In pfaedit, see: Element->Font -Info->TTFNames->License). - -Our apologies for it taking longer to complete the fonts than planned. -Beta testers requested a tighter line spacing (less leading) and Jim -Lyles redesigned Vera's accents to bring its line spacing to more -typical of other fonts. This took additional time and effort. Our -thanks to Jim for this effort above and beyond the call of duty. - -There are four monospace and sans faces (normal, oblique, bold, bold -oblique) and two serif faces (normal and bold). Fontconfig/Xft2 (see -www.fontconfig.org) can artificially oblique the serif faces for you: -this loses hinting and distorts the faces slightly, but is visibly -different than normal and bold, and reasonably pleasing. - -On systems with fontconfig 2.0 or 2.1 installed, making your sans, -serif and monospace fonts default to these fonts is very easy. Just -drop the file local.conf into your /etc/fonts directory. This will -make the Bitstream fonts your default fonts for all applications using -fontconfig (if sans, serif, or monospace names are used, as they often -are as default values in many desktops). The XML in local.conf may -need modification to enable subpixel decimation, if appropriate, -however, the commented out phrase does so for XFree86 4.3, in the case -that the server does not have sufficient information to identify the -use of a flat panel. Fontconfig 2.2 adds Vera to the list of font -families and will, by default use it as the default sans, serif and -monospace fonts. - -During the testing of the final Vera fonts, we learned that screen -fonts in general are only typically hinted to work correctly at -integer pixel sizes. Vera is coded internally for integer sizes only. -We need to investigate further to see if there are commonly used fonts -that are hinted to be rounded but are not rounded to integer sizes due -to oversights in their coding. - -Most fonts work best at 8 pixels and below if anti-aliased only, as -the amount of work required to hint well at smaller and smaller sizes -becomes astronomical. GASP tables are typically used to control -whether hinting is used or not, but Freetype/Xft does not currently -support GASP tables (which are present in Vera). - -To mitigate this problem, both for Vera and other fonts, there will be -(very shortly) a new fontconfig 2.2 release that will, by default not -apply hints if the size is below 8 pixels. if you should have a font -that in fact has been hinted more agressively, you can use fontconfig -to note this exception. We believe this should improve many hinted -fonts in addition to Vera, though implemeting GASP support is likely -the right long term solution. - -Font rendering in Gnome or KDE is the combination of algorithms in -Xft2 and Freetype, along with hinting in the fonts themselves. It is -vital to have sufficient information to disentangle problems that you -may observe. - -Note that having your font rendering system set up correctly is vital -to proper judgement of problems of the fonts: - - * Freetype may or may not be configured to in ways that may - implement execution of possibly patented (in some parts of the world) - TrueType hinting algorithms, particularly at small sizes. Best - results are obtained while using these algorithms. - - * The freetype autohinter (used when the possibly patented - algorithms are not used) continues to improve with each release. If - you are using the autohinter, please ensure you are using an up to - date version of freetype before reporting problems. - - * Please identify what version of freetype you are using in any - bug reports, and how your freetype is configured. - - * Make sure you are not using the freetype version included in - XFree86 4.3, as it has bugs that significantly degrade most fonts, - including Vera. if you build XFree86 4.3 from source yourself, you may - have installed this broken version without intending it (as I - did). Vera was verified with the recently released Freetype 2.1.4. On - many systems, 'ldd" can be used to see which freetype shared library - is actually being used. - - * Xft/X Render does not (yet) implement gamma correction. This - causes significant problems rendering white text on a black background - (causing partial pixels to be insufficiently shaded) if the gamma of - your monitor has not been compensated for, and minor problems with - black text on a while background. The program "xgamma" can be used to - set a gamma correction value in the X server's color pallette. Most - monitors have a gamma near 2. - - * Note that the Vera family uses minimal delta hinting. Your - results on other systems when not used anti-aliased may not be - entirely satisfying. We are primarily interested in reports of - problems on open source systems implementing Xft2/fontconfig/freetype - (which implements antialiasing and hinting adjustements, and - sophisticated subpixel decimation on flatpanels). Also, the - algorithms used by Xft2 adjust the hints to integer widths and the - results are crisper on open source systems than on Windows or - MacIntosh. - - * Your fontconfig may (probably does) predate the release of - fontconfig 2.2, and you may see artifacts not present when the font is - used at very small sizes with hinting enabled. "vc-list -V" can be - used to see what version you have installed. - -We believe and hope that these fonts will resolve the problems -reported during beta test. The largest change is the reduction of -leading (interline spacing), which had annoyed a number of people, and -reduced Vera's utility for some applcations. The Vera monospace font -should also now make '0' and 'O' and '1' and 'l' more clearly -distinguishable. - -The version of these fonts is version 1.10. Fontconfig should be -choosing the new version of the fonts if both the released fonts and -beta test fonts are installed (though please discard them: they have -names of form tt20[1-12]gn.ttf). Note that older versions of -fontconfig sometimes did not rebuild their cache correctly when new -fonts are installed: please upgrade to fontconfig 2.2. "fc-cache -f" -can be used to force rebuilding fontconfig's cache files. - -If you note problems, please send them to fonts at gnome dot org, with -exactly which face and size and unicode point you observe the problem -at. The xfd utility from XFree86 CVS may be useful for this (e.g. "xfd --fa sans"). A possibly more useful program to examine fonts at a -variety of sizes is the "waterfall" program found in Keith Packard's -CVS. - - $ cvs -d :pserver:anoncvs@keithp.com:/local/src/CVS login - Logging in to :pserver:anoncvs@keithp.com:2401/local/src/CVS - CVS password: - $ cvs -d :pserver:anoncvs@keithp.com:/local/src/CVS co waterfall - $ cd waterfall - $ xmkmf -a - $ make - # make install - # make install.man - -Again, please make sure you are running an up-to-date freetype, and -that you are only examining integer sizes. - -Reporting Problems -================== - -Please send problem reports to fonts at gnome org, with the following -information: - - 1. Version of Freetype, Xft2 and fontconfig - 2. Whether TT hinting is being used, or the autohinter - 3. Application being used - 4. Character/Unicode code point that has problems (if applicable) - 5. Version of which operating system - 6. Please include a screenshot, when possible. - -Please check the fonts list archives before reporting problems to cut -down on duplication. Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraBI.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraBI.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraIt.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraIt.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraMoBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraMoBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraMoBI.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraMoBI.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraMoIt.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraMoIt.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraMono.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraMono.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraSeBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraSeBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/VeraSe.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/VeraSe.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/Fonts/VeraFonts/Vera.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/Fonts/VeraFonts/Vera.ttf differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/general_resources.qrc connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/general_resources.qrc --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/General/general_resources.qrc 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/General/general_resources.qrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,29 +0,0 @@ - - -./Fonts/FtglFonts/VeraBd.ttf -./Fonts/FtglFonts/VeraSe.ttf -./Fonts/LinuxLibertine/GPL.txt -./Fonts/LinuxLibertine/LICENCE.txt -./Fonts/LinuxLibertine/LinLibertine_Rah.ttf -./Fonts/LinuxLibertine/LinLibertine_RBah.ttf -./Fonts/LinuxLibertine/LinLibertine_RBIah.ttf -./Fonts/LinuxLibertine/LinLibertine_RIah.ttf -./Fonts/LinuxLibertine/OFL-1.1.txt -./Fonts/LinuxLibertine/README -./Fonts/VeraFonts/COPYRIGHT.TXT -./Fonts/VeraFonts/local.conf -./Fonts/VeraFonts/README.TXT -./Fonts/VeraFonts/RELEASENOTES.TXT -./Fonts/VeraFonts/Vera.ttf -./Fonts/VeraFonts/VeraBd.ttf -./Fonts/VeraFonts/VeraBI.ttf -./Fonts/VeraFonts/VeraIt.ttf -./Fonts/VeraFonts/VeraMoBd.ttf -./Fonts/VeraFonts/VeraMoBI.ttf -./Fonts/VeraFonts/VeraMoIt.ttf -./Fonts/VeraFonts/VeraMono.ttf -./Fonts/VeraFonts/VeraSe.ttf -./Fonts/VeraFonts/VeraSeBd.ttf -./general_resources.qrc - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/About/hcp-logo.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/About/hcp-logo.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Cursor/pen_eraser.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Cursor/pen_eraser.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/FtglFonts/VeraBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/FtglFonts/VeraBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/FtglFonts/VeraSe.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/FtglFonts/VeraSe.ttf differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/GPL.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/GPL.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/GPL.txt 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/GPL.txt 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,343 @@ + GNU GENERAL PUBLIC LICENSE (with font exception) + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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; either version 2 of the License, or + (at your option) any later version. + + 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, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/LICENCE.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/LICENCE.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/LICENCE.txt 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/LICENCE.txt 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,7 @@ +- Lizenz / Licence - + +Unsere Schriften sind frei im Sinne der GPL, d.h. (stark vereinfacht) dass Veränderungen an der Schriftart erlaubt sind unter der Bedingung, dass diese wieder der Öffentlichkeit unter gleicher Lizenz freigegeben werden. Querdenker behaupten oft, dass bei der Verwendung einer GPL-Schrift eingebettet in beispielsweise eine PDF auch diese freigestellt werden müsse. Deshalb gibt es die sogenannte "Font-exception" der GPL (welche diesem Lizenztext hinzugefügt wurde). Weitere Informationen zur GPL (Lizenztext mit Font-Exzeption als GPL.txt in diesem Paket). +Zusätzlich stehen die Schriften unter der Open Font License (siehe OFL.txt). + +Our fonts are free in the sense of the GPL. In short: Changing the font is allowed as long as the derivative work is published under the same licence again. Pedantics keep claiming that the embedded use of GPL-fonts in i.e. PDFs requires the free publication of the PDF as well. This is why our GPL contains the so called "font exception". Further information about the GPL (licence text with font exception see GPL.txt in this package). +Additionally our fonts are licensed under the Open Fonts License (see OFL.txt). \ No newline at end of file Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_Rah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_Rah.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_RBah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_RBah.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_RBIah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_RBIah.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_RIah.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/LinLibertine_RIah.ttf differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/OFL-1.1.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/OFL-1.1.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/OFL-1.1.txt 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/OFL-1.1.txt 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,94 @@ +Copyright (c) 2003–2012, Philipp H. Poll (www.linuxlibertine.org | gillian at linuxlibertine.org), +with Reserved Font Name "Linux Libertine" and "Biolinum". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/README connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/README --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/LinuxLibertine/README 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/LinuxLibertine/README 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,36 @@ +LOFP - Libertine Open Fonts Project + +1. OPEN FONTS PROJECT'S AIMS +We work on a serif and organic grotesque font-family for practical use in documents. Our project aims at creating a free alternative to the standard W*ndows Font (T*mes). +But neveretheless Libertine and Biolinum are not a clone of any common font! They have been developed from scratch and go different ways in typography than the Times or Arial. Just the useability and the dimensions shall be similar, Libertine should be even better for typical office use! If you want Times- and Arial-clones go elsewhere. If you just need reliable and good typography give our fonts a chance. If you want to know more about the design of Libertine and Biolinum, have a look at our website. + +2. LICENSE AND OPENSOURCE +We publish our fonts under the terms of the GPL (see GPL.txt) and OFL (OFL.txt) +-> see also LICENCE.txt! +The OpenSource-tool Fontforge is used as font editor (see http://fontforge.sf.net). + +3. FONT FORMATS TTF VS. OTF +The font files are available as TTF (TrueType) and OTF (OpenType) fonts. The TTF-Family is called +"Linux Libertine" and "Linux Biolinum" +and the OTF +"LinuxLibertine O" and "Linux Biolinum O". + +So that both types can be installed and used parallely. +Most often TTF is the better supported format though OTF has advances in printing. Decide yourself what is better for your purpose. OpenType-features are equally available in both fonts. Note that OpenOffice doesn’t support OTFs, yet. + +4. THE LINUX BIOLINUM FONT FACE +Please note: The Biolinum is a very early version. While you use Libertine-Fonts without any warranty anyway, take special care with this young font face. + +5. HINTING +The TrueType-hinting is a complex technique and our editor FontForge doesn't support full possibilities (but it becomes alot better version by version)... +Since version 2.7 also the normal TTFs are hinted. If you don't like this, send me a mail. You may also try the OpenTypes (which contain PS-Hintings which are quite good supported by FontForge). + +6. DOWNLOAD AND CONTACT +We publish our fonts at http://www.linuxlibertine.org/. + +7. THE UNDERLINED VARIANT +Please note: The underlined variant is recently not being maintained because its concept doesn’t seem to be sofware-technically reliable and because of lack of interest. +The advantage of this font was that g, commas, cedillas... were not overprinted by the line anymore. For technical reasons the space was not underlined but you could use the _ instead. In this font it had the width of the space and the line was at hight of the underline. The underlined variant used an older font outline. + +Philipp Poll -- gillian at linuxlibertine.org + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/COPYRIGHT.TXT connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/COPYRIGHT.TXT --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/COPYRIGHT.TXT 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/COPYRIGHT.TXT 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,124 @@ +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + +Copyright FAQ +============= + + 1. I don't understand the resale restriction... What gives? + + Bitstream is giving away these fonts, but wishes to ensure its + competitors can't just drop the fonts as is into a font sale system + and sell them as is. It seems fair that if Bitstream can't make money + from the Bitstream Vera fonts, their competitors should not be able to + do so either. You can sell the fonts as part of any software package, + however. + + 2. I want to package these fonts separately for distribution and + sale as part of a larger software package or system. Can I do so? + + Yes. A RPM or Debian package is a "larger software package" to begin + with, and you aren't selling them independently by themselves. + See 1. above. + + 3. Are derivative works allowed? + Yes! + + 4. Can I change or add to the font(s)? + Yes, but you must change the name(s) of the font(s). + + 5. Under what terms are derivative works allowed? + + You must change the name(s) of the fonts. This is to ensure the + quality of the fonts, both to protect Bitstream and Gnome. We want to + ensure that if an application has opened a font specifically of these + names, it gets what it expects (though of course, using fontconfig, + substitutions could still could have occurred during font + opening). You must include the Bitstream copyright. Additional + copyrights can be added, as per copyright law. Happy Font Hacking! + + 6. If I have improvements for Bitstream Vera, is it possible they might get + adopted in future versions? + + Yes. The contract between the Gnome Foundation and Bitstream has + provisions for working with Bitstream to ensure quality additions to + the Bitstream Vera font family. Please contact us if you have such + additions. Note, that in general, we will want such additions for the + entire family, not just a single font, and that you'll have to keep + both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add + glyphs to the font, they must be stylistically in keeping with Vera's + design. Vera cannot become a "ransom note" font. Jim Lyles will be + providing a document describing the design elements used in Vera, as a + guide and aid for people interested in contributing to Vera. + + 7. I want to sell a software package that uses these fonts: Can I do so? + + Sure. Bundle the fonts with your software and sell your software + with the fonts. That is the intent of the copyright. + + 8. If applications have built the names "Bitstream Vera" into them, + can I override this somehow to use fonts of my choosing? + + This depends on exact details of the software. Most open source + systems and software (e.g., Gnome, KDE, etc.) are now converting to + use fontconfig (see www.fontconfig.org) to handle font configuration, + selection and substitution; it has provisions for overriding font + names and subsituting alternatives. An example is provided by the + supplied local.conf file, which chooses the family Bitstream Vera for + "sans", "serif" and "monospace". Other software (e.g., the XFree86 + core server) has other mechanisms for font substitution. + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/local.conf connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/local.conf --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/local.conf 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/local.conf 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,32 @@ + + + + + + + + serif + + Bitstream Vera Serif + + + + sans-serif + + Bitstream Vera Sans + + + + monospace + + Bitstream Vera Sans Mono + + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/README.TXT connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/README.TXT --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/README.TXT 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/README.TXT 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,11 @@ +Contained herin is the Bitstream Vera font family. + +The Copyright information is found in the COPYRIGHT.TXT file (along +with being incoporated into the fonts themselves). + +The releases notes are found in the file "RELEASENOTES.TXT". + +We hope you enjoy Vera! + + Bitstream, Inc. + The Gnome Project diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/RELEASENOTES.TXT connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/RELEASENOTES.TXT --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/RELEASENOTES.TXT 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/RELEASENOTES.TXT 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,162 @@ +Bitstream Vera Fonts - April 16, 2003 +===================================== + +The version number of these fonts is 1.10 to distinguish them from the +beta test fonts. + +Note that the Vera copyright is incorporated in the fonts themselves. +The License field in the fonts contains the copyright license as it +appears below. The TrueType copyright field is not large enough to +contain the full license, so the license is incorporated (as you might +think if you thought about it) into the license field, which +unfortunately can be obscure to find. (In pfaedit, see: Element->Font +Info->TTFNames->License). + +Our apologies for it taking longer to complete the fonts than planned. +Beta testers requested a tighter line spacing (less leading) and Jim +Lyles redesigned Vera's accents to bring its line spacing to more +typical of other fonts. This took additional time and effort. Our +thanks to Jim for this effort above and beyond the call of duty. + +There are four monospace and sans faces (normal, oblique, bold, bold +oblique) and two serif faces (normal and bold). Fontconfig/Xft2 (see +www.fontconfig.org) can artificially oblique the serif faces for you: +this loses hinting and distorts the faces slightly, but is visibly +different than normal and bold, and reasonably pleasing. + +On systems with fontconfig 2.0 or 2.1 installed, making your sans, +serif and monospace fonts default to these fonts is very easy. Just +drop the file local.conf into your /etc/fonts directory. This will +make the Bitstream fonts your default fonts for all applications using +fontconfig (if sans, serif, or monospace names are used, as they often +are as default values in many desktops). The XML in local.conf may +need modification to enable subpixel decimation, if appropriate, +however, the commented out phrase does so for XFree86 4.3, in the case +that the server does not have sufficient information to identify the +use of a flat panel. Fontconfig 2.2 adds Vera to the list of font +families and will, by default use it as the default sans, serif and +monospace fonts. + +During the testing of the final Vera fonts, we learned that screen +fonts in general are only typically hinted to work correctly at +integer pixel sizes. Vera is coded internally for integer sizes only. +We need to investigate further to see if there are commonly used fonts +that are hinted to be rounded but are not rounded to integer sizes due +to oversights in their coding. + +Most fonts work best at 8 pixels and below if anti-aliased only, as +the amount of work required to hint well at smaller and smaller sizes +becomes astronomical. GASP tables are typically used to control +whether hinting is used or not, but Freetype/Xft does not currently +support GASP tables (which are present in Vera). + +To mitigate this problem, both for Vera and other fonts, there will be +(very shortly) a new fontconfig 2.2 release that will, by default not +apply hints if the size is below 8 pixels. if you should have a font +that in fact has been hinted more agressively, you can use fontconfig +to note this exception. We believe this should improve many hinted +fonts in addition to Vera, though implemeting GASP support is likely +the right long term solution. + +Font rendering in Gnome or KDE is the combination of algorithms in +Xft2 and Freetype, along with hinting in the fonts themselves. It is +vital to have sufficient information to disentangle problems that you +may observe. + +Note that having your font rendering system set up correctly is vital +to proper judgement of problems of the fonts: + + * Freetype may or may not be configured to in ways that may + implement execution of possibly patented (in some parts of the world) + TrueType hinting algorithms, particularly at small sizes. Best + results are obtained while using these algorithms. + + * The freetype autohinter (used when the possibly patented + algorithms are not used) continues to improve with each release. If + you are using the autohinter, please ensure you are using an up to + date version of freetype before reporting problems. + + * Please identify what version of freetype you are using in any + bug reports, and how your freetype is configured. + + * Make sure you are not using the freetype version included in + XFree86 4.3, as it has bugs that significantly degrade most fonts, + including Vera. if you build XFree86 4.3 from source yourself, you may + have installed this broken version without intending it (as I + did). Vera was verified with the recently released Freetype 2.1.4. On + many systems, 'ldd" can be used to see which freetype shared library + is actually being used. + + * Xft/X Render does not (yet) implement gamma correction. This + causes significant problems rendering white text on a black background + (causing partial pixels to be insufficiently shaded) if the gamma of + your monitor has not been compensated for, and minor problems with + black text on a while background. The program "xgamma" can be used to + set a gamma correction value in the X server's color pallette. Most + monitors have a gamma near 2. + + * Note that the Vera family uses minimal delta hinting. Your + results on other systems when not used anti-aliased may not be + entirely satisfying. We are primarily interested in reports of + problems on open source systems implementing Xft2/fontconfig/freetype + (which implements antialiasing and hinting adjustements, and + sophisticated subpixel decimation on flatpanels). Also, the + algorithms used by Xft2 adjust the hints to integer widths and the + results are crisper on open source systems than on Windows or + MacIntosh. + + * Your fontconfig may (probably does) predate the release of + fontconfig 2.2, and you may see artifacts not present when the font is + used at very small sizes with hinting enabled. "vc-list -V" can be + used to see what version you have installed. + +We believe and hope that these fonts will resolve the problems +reported during beta test. The largest change is the reduction of +leading (interline spacing), which had annoyed a number of people, and +reduced Vera's utility for some applcations. The Vera monospace font +should also now make '0' and 'O' and '1' and 'l' more clearly +distinguishable. + +The version of these fonts is version 1.10. Fontconfig should be +choosing the new version of the fonts if both the released fonts and +beta test fonts are installed (though please discard them: they have +names of form tt20[1-12]gn.ttf). Note that older versions of +fontconfig sometimes did not rebuild their cache correctly when new +fonts are installed: please upgrade to fontconfig 2.2. "fc-cache -f" +can be used to force rebuilding fontconfig's cache files. + +If you note problems, please send them to fonts at gnome dot org, with +exactly which face and size and unicode point you observe the problem +at. The xfd utility from XFree86 CVS may be useful for this (e.g. "xfd +-fa sans"). A possibly more useful program to examine fonts at a +variety of sizes is the "waterfall" program found in Keith Packard's +CVS. + + $ cvs -d :pserver:anoncvs@keithp.com:/local/src/CVS login + Logging in to :pserver:anoncvs@keithp.com:2401/local/src/CVS + CVS password: + $ cvs -d :pserver:anoncvs@keithp.com:/local/src/CVS co waterfall + $ cd waterfall + $ xmkmf -a + $ make + # make install + # make install.man + +Again, please make sure you are running an up-to-date freetype, and +that you are only examining integer sizes. + +Reporting Problems +================== + +Please send problem reports to fonts at gnome org, with the following +information: + + 1. Version of Freetype, Xft2 and fontconfig + 2. Whether TT hinting is being used, or the autohinter + 3. Application being used + 4. Character/Unicode code point that has problems (if applicable) + 5. Version of which operating system + 6. Please include a screenshot, when possible. + +Please check the fonts list archives before reporting problems to cut +down on duplication. Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraBI.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraBI.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraIt.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraIt.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMoBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMoBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMoBI.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMoBI.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMoIt.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMoIt.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMono.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraMono.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraSeBd.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraSeBd.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/VeraSe.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/VeraSe.ttf differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Fonts/VeraFonts/Vera.ttf and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Fonts/VeraFonts/Vera.ttf differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/general_resources.qrc connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/general_resources.qrc --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/general_resources.qrc 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/general_resources.qrc 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,63 @@ + + +./About/hcp-logo.png +./Cursor/pen_eraser.png +./Fonts/FtglFonts/VeraBd.ttf +./Fonts/FtglFonts/VeraSe.ttf +./Fonts/LinuxLibertine/GPL.txt +./Fonts/LinuxLibertine/LICENCE.txt +./Fonts/LinuxLibertine/LinLibertine_Rah.ttf +./Fonts/LinuxLibertine/LinLibertine_RBah.ttf +./Fonts/LinuxLibertine/LinLibertine_RBIah.ttf +./Fonts/LinuxLibertine/LinLibertine_RIah.ttf +./Fonts/LinuxLibertine/OFL-1.1.txt +./Fonts/LinuxLibertine/README +./Fonts/VeraFonts/COPYRIGHT.TXT +./Fonts/VeraFonts/local.conf +./Fonts/VeraFonts/README.TXT +./Fonts/VeraFonts/RELEASENOTES.TXT +./Fonts/VeraFonts/Vera.ttf +./Fonts/VeraFonts/VeraBd.ttf +./Fonts/VeraFonts/VeraBI.ttf +./Fonts/VeraFonts/VeraIt.ttf +./Fonts/VeraFonts/VeraMoBd.ttf +./Fonts/VeraFonts/VeraMoBI.ttf +./Fonts/VeraFonts/VeraMoIt.ttf +./Fonts/VeraFonts/VeraMono.ttf +./Fonts/VeraFonts/VeraSe.ttf +./Fonts/VeraFonts/VeraSeBd.ttf +./general_resources.qrc +./LayersPanel/colorbar.png +./LayersPanel/construction.png +./LayersPanel/wrench.png +./PaletteSettings/chain_link_icon.png +./SpecFileDialog/delete_icon.png +./SpecFileDialog/load_icon.png +./SpecFileDialog/options_icon.png +./SpecFileDialog/reload_icon.png +./Splash/hcp.png +./Splash/startup_image.png +./Splash/twitter.png +./ToolBar/clapboard.png +./ToolBar/features_toolbox.png +./ToolBar/help.png +./ToolBar/identify.png +./ToolBar/info.png +./ToolBar/overlay_toolbox.png +./ToolBar/toolbar.png +./ToolBar/view-anterior.png +./ToolBar/view-dorsal.png +./ToolBar/view-left-lateral.png +./ToolBar/view-left-medial.png +./ToolBar/view-left.png +./ToolBar/view-plane-axial.png +./ToolBar/view-plane-coronal.png +./ToolBar/view-plane-parasagittal.png +./ToolBar/view-posterior.png +./ToolBar/view-right-lateral.png +./ToolBar/view-right-medial.png +./ToolBar/view-right.png +./ToolBar/view-ventral.png +./ToolBar/volume-crosshair-pointer.png + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/LayersPanel/colorbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/LayersPanel/colorbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/LayersPanel/construction.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/LayersPanel/construction.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/LayersPanel/wrench.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/LayersPanel/wrench.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/PaletteSettings/chain_link_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/PaletteSettings/chain_link_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/SpecFileDialog/delete_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/SpecFileDialog/delete_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/SpecFileDialog/load_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/SpecFileDialog/load_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/SpecFileDialog/options_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/SpecFileDialog/options_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/SpecFileDialog/reload_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/SpecFileDialog/reload_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Splash/hcp.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Splash/hcp.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Splash/startup_image.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Splash/startup_image.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/Splash/twitter.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/Splash/twitter.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/clapboard.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/clapboard.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/features_toolbox.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/features_toolbox.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/help.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/help.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/identify.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/identify.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/info.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/info.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/overlay_toolbox.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/overlay_toolbox.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/toolbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-anterior.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-anterior.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-dorsal.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-dorsal.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-left-lateral.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-left-lateral.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-left-medial.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-left-medial.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-left.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-left.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-plane-axial.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-plane-axial.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-plane-coronal.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-plane-coronal.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-plane-parasagittal.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-plane-parasagittal.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-posterior.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-posterior.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-right-lateral.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-right-lateral.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-right-medial.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-right-medial.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-right.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-right.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/view-ventral.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/view-ventral.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GeneralResources/ToolBar/volume-crosshair-pointer.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GeneralResources/ToolBar/volume-crosshair-pointer.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/About/hcp-logo.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/About/hcp-logo.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/Cursor/pen_eraser.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/Cursor/pen_eraser.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/gui_resources.qrc connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/gui_resources.qrc --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/gui_resources.qrc 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/gui_resources.qrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ - - -./About/hcp-logo.png -./Cursor/pen_eraser.png -./gui_resources.qrc -./LayersPanel/colorbar.png -./LayersPanel/construction.png -./LayersPanel/wrench.png -./PaletteSettings/chain_link_icon.png -./SpecFileDialog/delete_icon.png -./SpecFileDialog/load_icon.png -./SpecFileDialog/options_icon.png -./SpecFileDialog/reload_icon.png -./Splash/hcp.png -./Splash/startup_image.png -./Splash/twitter.png -./ToolBar/clapboard.png -./ToolBar/features_toolbox.png -./ToolBar/help.png -./ToolBar/identify.png -./ToolBar/info.png -./ToolBar/overlay_toolbox.png -./ToolBar/toolbar.png -./ToolBar/view-anterior.png -./ToolBar/view-dorsal.png -./ToolBar/view-left-lateral.png -./ToolBar/view-left-medial.png -./ToolBar/view-left.png -./ToolBar/view-plane-axial.png -./ToolBar/view-plane-coronal.png -./ToolBar/view-plane-parasagittal.png -./ToolBar/view-posterior.png -./ToolBar/view-right-lateral.png -./ToolBar/view-right-medial.png -./ToolBar/view-right.png -./ToolBar/view-ventral.png -./ToolBar/volume-crosshair-pointer.png - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/LayersPanel/colorbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/LayersPanel/colorbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/LayersPanel/construction.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/LayersPanel/construction.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/LayersPanel/wrench.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/LayersPanel/wrench.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/PaletteSettings/chain_link_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/PaletteSettings/chain_link_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/SpecFileDialog/delete_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/SpecFileDialog/delete_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/SpecFileDialog/load_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/SpecFileDialog/load_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/SpecFileDialog/options_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/SpecFileDialog/options_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/SpecFileDialog/reload_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/SpecFileDialog/reload_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/Splash/hcp.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/Splash/hcp.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/Splash/startup_image.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/Splash/startup_image.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/Splash/twitter.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/Splash/twitter.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/clapboard.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/clapboard.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/features_toolbox.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/features_toolbox.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/help.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/help.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/identify.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/identify.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/info.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/info.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/overlay_toolbox.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/overlay_toolbox.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/toolbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-anterior.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-anterior.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-dorsal.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-dorsal.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-left-lateral.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-left-lateral.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-left-medial.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-left-medial.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-left.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-left.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-plane-axial.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-plane-axial.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-plane-coronal.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-plane-coronal.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-plane-parasagittal.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-plane-parasagittal.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-posterior.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-posterior.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-right-lateral.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-right-lateral.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-right-medial.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-right-medial.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-right.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-right.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/view-ventral.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/view-ventral.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Gui/ToolBar/volume-crosshair-pointer.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Gui/ToolBar/volume-crosshair-pointer.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/gui_resources.qrc connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/gui_resources.qrc --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/gui_resources.qrc 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/gui_resources.qrc 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,249 @@ + + +./gui_resources.qrc +./HelpFiles/Annotations/Annotations.fld/image001.png +./HelpFiles/Annotations/Annotations.fld/image002.png +./HelpFiles/Annotations/Annotations.fld/image003.png +./HelpFiles/Annotations/Annotations.fld/image004.png +./HelpFiles/Annotations/Annotations.fld/image005.png +./HelpFiles/Annotations/Annotations.fld/image006.png +./HelpFiles/Annotations/Annotations.fld/image007.png +./HelpFiles/Annotations/Annotations.fld/image008.png +./HelpFiles/Annotations/Annotations.fld/image009.png +./HelpFiles/Annotations/Annotations.fld/image010.png +./HelpFiles/Annotations/Annotations.fld/image011.png +./HelpFiles/Annotations/Annotations.fld/image012.png +./HelpFiles/Annotations/Annotations.fld/image013.png +./HelpFiles/Annotations/Annotations.fld/image014.png +./HelpFiles/Annotations/Annotations.fld/image015.png +./HelpFiles/Annotations/Annotations.fld/image016.png +./HelpFiles/Annotations/Annotations.fld/image017.png +./HelpFiles/Annotations/Annotations.fld/image018.png +./HelpFiles/Annotations/Annotations.fld/image019.png +./HelpFiles/Annotations/Annotations.fld/image020.png +./HelpFiles/Annotations/Annotations.fld/image021.png +./HelpFiles/Annotations/Annotations.fld/image022.png +./HelpFiles/Annotations/Annotations.html +./HelpFiles/Features_Toolbox/Borders/Borders.html +./HelpFiles/Features_Toolbox/Borders/Borders_Attributes.png +./HelpFiles/Features_Toolbox/Borders/Borders_Selection.png +./HelpFiles/Features_Toolbox/Borders_Attributes.png +./HelpFiles/Features_Toolbox/Features_TB_icon.png +./HelpFiles/Features_Toolbox/Features_Toolbox.html +./HelpFiles/Features_Toolbox/Fibers/Fibers.html +./HelpFiles/Features_Toolbox/Foci/Foci.html +./HelpFiles/Features_Toolbox/Foci/Foci_Attributes.png +./HelpFiles/Features_Toolbox/Foci/Foci_Selection.png +./HelpFiles/Features_Toolbox/Images/Images.html +./HelpFiles/Features_Toolbox/Images/Images_Selection.png +./HelpFiles/Features_Toolbox/Labels/Labels.html +./HelpFiles/Features_Toolbox/Labels/Labels_Attributes.png +./HelpFiles/Features_Toolbox/Labels/Labels_Selection.png +./HelpFiles/Glossary/Brainordinate/Brainordinate.html +./HelpFiles/Glossary/CIFTI/CIFTI.html +./HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html +./HelpFiles/Glossary/ConnectomeDB/ConnectomeDB_login.png +./HelpFiles/Glossary/ConnectomeDB/Thumbs.db +./HelpFiles/Glossary/GIFTI/GIFTI.html +./HelpFiles/Glossary/Grayordinate/Grayordinate.html +./HelpFiles/Glossary/NIFTI/NIFTI.html +./HelpFiles/Glossary/Scene/Scene.html +./HelpFiles/Glossary/Specification_File/Spec_File.png +./HelpFiles/Glossary/Specification_File/Specification_File.html +./HelpFiles/Glossary/Specification_File/Thumbs.db +./HelpFiles/Glossary/Whiteordinate/Whiteordinate.html +./HelpFiles/Information_Window/Information_Window.html +./HelpFiles/Information_Window/Information_Window.png +./HelpFiles/Information_Window/Properties/Information_Properties.png +./HelpFiles/Information_Window/Properties/Properties.html +./HelpFiles/Menus/Data_Menu/Data_Menu.html +./HelpFiles/Menus/Data_Menu/Project_Foci_Dialog.png +./HelpFiles/Menus/Data_Menu/Thumbs.db +./HelpFiles/Menus/Develop_Menu/Develop_Menu.html +./HelpFiles/Menus/Edit_Menu/Edit_Menu.html +./HelpFiles/Menus/Edit_Menu/Edit_Menu.png +./HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html +./HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control_dialog.png +./HelpFiles/Menus/File_Menu/Animation_Control/Thumbs.db +./HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html +./HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image_dialog.png +./HelpFiles/Menus/File_Menu/Capture_Image/File_menu.png +./HelpFiles/Menus/File_Menu/Capture_Image/Thumbs.db +./HelpFiles/Menus/File_Menu/File_Menu.html +./HelpFiles/Menus/File_Menu/File_menu.png +./HelpFiles/Menus/File_Menu/Preferences/Preferences.html +./HelpFiles/Menus/File_Menu/Preferences/Preferences_Colors.png +./HelpFiles/Menus/File_Menu/Preferences/Preferences_ID.png +./HelpFiles/Menus/File_Menu/Preferences/Preferences_Misc.png +./HelpFiles/Menus/File_Menu/Preferences/Preferences_OpenGL.png +./HelpFiles/Menus/File_Menu/Preferences/Preferences_Vol.png +./HelpFiles/Menus/File_Menu/Preferences/Thumbs.db +./HelpFiles/Menus/File_Menu/Save-Manage_Files/Gear_symbol.png +./HelpFiles/Menus/File_Menu/Save-Manage_Files/Reload_symbol.png +./HelpFiles/Menus/File_Menu/Save-Manage_Files/Remove_symbol.png +./HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html +./HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files_dialog.png +./HelpFiles/Menus/File_Menu/Save-Manage_Files/Thumbs.db +./HelpFiles/Menus/File_Menu/Save-Manage_Files/Upload_symbol.png +./HelpFiles/Menus/File_Menu/Thumbs.db +./HelpFiles/Menus/Help_Menu/Bug_Report_box.png +./HelpFiles/Menus/Help_Menu/Help_box.png +./HelpFiles/Menus/Help_Menu/Help_button.png +./HelpFiles/Menus/Help_Menu/Help_Menu.html +./HelpFiles/Menus/Help_Menu/Help_Menu.png +./HelpFiles/Menus/Help_Menu/Help_Search.png +./HelpFiles/Menus/Help_Menu/Workbench_Help.png +./HelpFiles/Menus/Surface_Menu/Surface_Menu.html +./HelpFiles/Menus/Surface_Menu/Surface_Properties.png +./HelpFiles/Menus/Surface_Menu/Volume_Interaction_Surfaces.png +./HelpFiles/Menus/Thumbs.db +./HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html +./HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.png +./HelpFiles/Menus/View_Menu/Thumbs.db +./HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Thumbs.db +./HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html +./HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.png +./HelpFiles/Menus/View_Menu/View_Menu.html +./HelpFiles/Menus/View_Menu/View_Menu.png +./HelpFiles/Menus/wb_view_Menu/Thumbs.db +./HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html +./HelpFiles/Menus/wb_view_Menu/wb_view_Menu.png +./HelpFiles/Menus/Window_Menu/IdentifyBrainordinateDialog.png +./HelpFiles/Menus/Window_Menu/Rename_tab.png +./HelpFiles/Menus/Window_Menu/Thumbs.db +./HelpFiles/Menus/Window_Menu/Window_Menu.html +./HelpFiles/Menus/Window_Menu/Window_Menu.png +./HelpFiles/Mouse_Controls/Mouse_Controls.html +./HelpFiles/Mouse_Controls/RightClick_Surface.png +./HelpFiles/Mouse_Controls/RightClick_Volume.png +./HelpFiles/Mouse_Controls/Thumbs.db +./HelpFiles/Open_Spec_File_Dialog/gear-button.png +./HelpFiles/Open_Spec_File_Dialog/Open_Spec.png +./HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html +./HelpFiles/Open_Spec_File_Dialog/Thumbs.db +./HelpFiles/Overlay_Toolbox/Charting/Charting.html +./HelpFiles/Overlay_Toolbox/Charting/Charting_History.png +./HelpFiles/Overlay_Toolbox/Charting/Charting_Loading.png +./HelpFiles/Overlay_Toolbox/Charting/Thumbs.db +./HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html +./HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.png +./HelpFiles/Overlay_Toolbox/Layers/Add_Layer.png +./HelpFiles/Overlay_Toolbox/Layers/Colorbar.png +./HelpFiles/Overlay_Toolbox/Layers/Layers.html +./HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html +./HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Palette_Settings.png +./HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Settings_icon.png +./HelpFiles/Overlay_Toolbox/Layers/Overlay_Toolbox_horiz.png +./HelpFiles/Overlay_Toolbox/Layers/Settings_icon.png +./HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html +./HelpFiles/Overlay_Toolbox/Overlay_Toolbox_horiz.png +./HelpFiles/Overlay_Toolbox/Overlay_Toolbox_vert.png +./HelpFiles/Overlay_Toolbox/Thumbs.db +./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Color-Vol-Surf_Outline.png +./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Tab-Vol-Surf_Outline.png +./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html +./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.png +./HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene.png +./HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html +./HelpFiles/Scenes_Window/Create_New_Scene_File/Scenes button.png +./HelpFiles/Scenes_Window/Create_New_Scene_File/Thumbs.db +./HelpFiles/Scenes_Window/Scenes_Window.html +./HelpFiles/Scenes_Window/Scenes_Window.png +./HelpFiles/Scenes_Window/Thumbs.db +./HelpFiles/Select_Brainordinate_Window/CiftiFileRow.png +./HelpFiles/Select_Brainordinate_Window/Indentify_Brainordinate.png +./HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html +./HelpFiles/Splash_Screen/Splash_Screen.html +./HelpFiles/Splash_Screen/Splash_screen.png +./HelpFiles/Splash_Screen/Thumbs.db +./HelpFiles/Toolbar/All_View/All_Toolbar.png +./HelpFiles/Toolbar/All_View/All_View.html +./HelpFiles/Toolbar/All_View/All_view.png +./HelpFiles/Toolbar/All_View/Thumbs.db +./HelpFiles/Toolbar/All_View/Volume_ID_button.png +./HelpFiles/Toolbar/Chart_View/Chart_View.html +./HelpFiles/Toolbar/Chart_View/ChartView_dtseries_DataSeries.png +./HelpFiles/Toolbar/Chart_View/ChartView_pscalar_Matrix.png +./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartDataSeries.png +./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_DataSeries_Toolbar.png +./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_dtseries_DataSeries.png +./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_pscalar_Matrix.png +./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html +./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/ChartView_Matrix_Toolbar.png +./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html +./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pconn_matrix_montage.png +./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pscalar_matrix_surface.png +./HelpFiles/Toolbar/Chart_View/Montage_toolbar.png +./HelpFiles/Toolbar/Chart_View/Thumbs.db +./HelpFiles/Toolbar/Clipping/Clipping.html +./HelpFiles/Toolbar/Clipping/Clipping_Planes.png +./HelpFiles/Toolbar/Clipping/Thumbs.db +./HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html +./HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.png +./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html +./HelpFiles/Toolbar/Mode/Border_Drawing/Border_drawing.png +./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_edit.png +./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html +./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Edit_Border_Properties.png +./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Thumbs.db +./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Border_ROI.png +./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_Region_of_Interest.png +./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html +./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Thumbs.db +./HelpFiles/Toolbar/Mode/Border_Drawing/Thumbs.db +./HelpFiles/Toolbar/Mode/Border_Tools.png +./HelpFiles/Toolbar/Mode/Foci_Creation/Create_Focus.png +./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html +./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Edit_Focus_box.png +./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_edit.png +./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html +./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Thumbs.db +./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Tools.png +./HelpFiles/Toolbar/Mode/Foci_Creation/Thumbs.db +./HelpFiles/Toolbar/Mode/Foci_Tools.png +./HelpFiles/Toolbar/Mode/Mode.html +./HelpFiles/Toolbar/Mode/Thumbs.db +./HelpFiles/Toolbar/Mode/Volume_Tools.png +./HelpFiles/Toolbar/Montage_View/Montage_toolbar.png +./HelpFiles/Toolbar/Montage_View/Montage_View.html +./HelpFiles/Toolbar/Montage_View/Thumbs.db +./HelpFiles/Toolbar/Surface_View/Surface_View.html +./HelpFiles/Toolbar/Surface_View/SurfaceView.png +./HelpFiles/Toolbar/Surface_View/Thumbs.db +./HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html +./HelpFiles/Toolbar/Tab_Functions/Tab_Functions.png +./HelpFiles/Toolbar/Thumbs.db +./HelpFiles/Toolbar/Toolbar.html +./HelpFiles/Toolbar/Toolbar_icon.png +./HelpFiles/Toolbar/Volume_View/Thumbs.db +./HelpFiles/Toolbar/Volume_View/Volume_ID_button.png +./HelpFiles/Toolbar/Volume_View/Volume_View.html +./HelpFiles/Toolbar/Volume_View/VolumeView.png +./HelpFiles/Toolbar/VolumeView.png +./HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html +./HelpFiles/Workbench_Window/Active_Tab/Thumbs.db +./HelpFiles/Workbench_Window/Active_Tab/Viewing_Tabs.png +./HelpFiles/Workbench_Window/Thumbs.db +./HelpFiles/Workbench_Window/Tooltip/Thumbs.db +./HelpFiles/Workbench_Window/Tooltip/Tooltip.html +./HelpFiles/Workbench_Window/Tooltip/Tooltip.png +./HelpFiles/Workbench_Window/Viewing_Area/Thumbs.db +./HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html +./HelpFiles/Workbench_Window/Viewing_Area/WBwindow_Horiz_Labels.png +./HelpFiles/Workbench_Window/Viewing_Tabs/Thumbs.db +./HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html +./HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.png +./HelpFiles/Workbench_Window/WBwindow_Horiz_Labels.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Features_TB_icon.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Help_button.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_Brainordinate_Icon.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_icon.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Information_icon.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Overlay_TB_icon.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Scenes_icon.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Thumbs.db +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Toolbar_icon.png +./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html +./HelpFiles/Workbench_Window/Workbench_Window.html + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image001.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image001.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image002.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image002.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image003.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image003.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image004.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image004.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image005.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image005.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image006.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image006.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image007.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image007.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image008.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image008.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image009.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image009.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image010.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image010.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image011.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image011.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image012.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image012.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image013.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image013.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image014.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image014.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image015.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image015.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image016.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image016.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image017.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image017.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image018.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image018.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image019.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image019.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image020.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image020.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image021.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image021.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image022.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.fld/image022.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Annotations/Annotations.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,2081 @@ + + + + + + + + + + + + + +
+ +

Guide to WB Annotations

+ +

 

+ +

04 May 2016

+ +

 

+ +

+ +
+
+ +

 

+ +

Table of Contents

+ +

Annotation +Toolbar and Example Annotations. 4

+ +

Annotation +Coordinate Spaces. 5

+ +

Stereotaxic +Coordinate Space. 5

+ +

Surface +Coordinate Space. 5

+ +

Tab +Coordinate Space. 6

+ +

Window +Coordinate Space. 6

+ +

Types of +Annotations. 7

+ +

Box. 7

+ +

Color Bars. 7

+ +

Image. 7

+ +

Line. 7

+ +

Oval 7

+ +

Text. 8

+ +

Annotation +Properties. 8

+ +

Annotation +Line Width and Color. 8

+ +

Annotation +Fill Color. 9

+ +

Annotation +Line Arrow Tips. 9

+ +

Annotation +Text Characters. 10

+ +

Annotation +Text Font Property. 10

+ +

Annotation +Text Alignment Property. 10

+ +

Annotation +Text Orientation.. 11

+ +

Annotation +Coordinate Property. 11

+ +

Annotation +Width and Height. 12

+ +

Annotation +Rotation Property. 12

+ +

Annotation +Files. 13

+ +

Disk +Annotation File. 13

+ +

Scene +Annotation File. 13

+ +

Selecting +Annotations. 13

+ +

Editing +Annotation Position, Size, and Rotation. 14

+ +

Editing +(Redo and Undo). 15

+ +

Inserting +Annotations. 15

+ +

Deleting +Annotations. 17

+ +

Format 17

+ +

Context +Sensitive (Pop-up) Menu. 19

+ +

Edit Menu. 20

+ +

Display +Control of Annotations. 21

+ +

Options. 21

+ +

Selection of +Annotations in Features Toolbox. 22

+ +

Content of +Annotations Tab in Features Toolbox. 22

+ +

Annotation +Grouping. 23

+ +

Mouse +Selection of Annotations. 23

+ +

Creating a +User Group.. 23

+ +

Removing a +User Group.. 24

+ +

Recreating a +User Group.. 24

+ +

Color Bar +Editing. 24

+ +

Location and +Positioning. 25

+ +

Data +Numerics. 26

+ +

 

+ +
+
+ +

 

+ +

 

+ +

Annotation Toolbar and Example Annotations

+ +

 

+ +

 
+

+ +

 

+ +

Annotation Coordinate Spaces

+ +

 

+ +

Several coordinate spaces are +available for annotations.  The coordinate spaces control the movement of +placement of annotations.

+ +

 

+ +

Stereotaxic Coordinate Space

+ +

 

+ +

An annotation in stereotaxic +space will appear in any display of a surface or a volume.  A particular +annotation in stereotaxic space may appear in more than one location depending +upon the models being viewed.

+ +

 

+ +

Stereotaxic space is the +three-dimensional coordinate system in which surface and volume models are +displayed.  In Workbench, the stereotaxic space is in an LPI orientation (negative +X is Left, negative Y is Posterior, and negative Z is Inferior).  Annotations +in Stereotaxic Space will move as the viewed model is panned, rotated, or +zoomed.  At times, annotations in Stereotaxic Space may not be visible +when they are behind a model.  Annotations in Stereotaxic Space are always +drawn in a plane parallel to the screen.

+ +

 

+ +

Note that in a surface +montage, text annotations in stereotaxic space are sized using the height of +the tab, not the sub-region containing the surface.

+ +

 

+ +

Surface Coordinate Space

+ +

 

+ +

An annotation in surface +coordinate space will appear in any view of the surface to which the annotation +is attached.  When a surface space is used, the annotation is associated +with surface by the combination of a structure identifier, a vertex index, the +number of vertices in the surface, and a surface offset.  When an +annotation is drawn in Surface Coordinate Space, the annotation will maintain +its position relative to its surface vertex as the surface is panned, rotated, +or zoomed.  The surface offset allows one to move the annotation away from +the surface along the vertexÕs normal vector or a vector that originates and +the surface center and points to the surface vertex.  At times, +annotations in Surface Coordinate Space may not be visible when they are behind +a model.  Annotations in Surface Space are always drawn in a plane +parallel to the screen.  Width and Height properties are normalized to the +tab containing the Annotation in Surface Space. 

+ +

 

+ +

Two notes about annotations in +Surface Space.  First, when inserting a surface annotation, the new +annotation may move away from its location and the reason is explained in the +section for creating annotations.  Second in a surface montage, text +annotations in surface space are sized using the height of the tab not the +sub-region containing just the surface.

+ +

 

+ +

 

+ +

Tab Coordinate Space

+ +

 

+ +

An annotation in tab +coordinate space is displayed in one tab region and never more than once.  +Tab Coordinate Space is a two-dimensional space specified with the X- and +Y-coordinates that are a normalized within the tab.  The Z-coordinate can +be used to stack annotations (control the overlap of annotations).  A +normalized coordinate ranges from zero to one.  For the X-coordinate, zero +is at the left side of the tabÕs drawing region and one is at the right side of +the tabÕs drawing region.  For the Y-coordinate, zero is at the bottom of +the tabÕs drawing region and one is at the top of the tabÕs drawing +region.  Since the coordinate is ÒnormalizedÓ, the annotation will +maintain its relative position as the tabÕs region changes in size.  In +addition to the X- and Y-coordinate, the Tab Coordinate Space also contains a +tab number that indicates in which tab the annotation is drawn.  Thus, +annotations in Tab Coordinate Space are confined to one tab and may not span +into another tab.  Tab annotations cannot be placed in a tabÕs +margin.  If one desires annotations in a tabÕs margin, create the +annotation in Window Space.

+ +

 

+ +

Window Coordinate Space

+ +

 

+ +

The window coordinate space +is very similar to the Tab Coordinate Space except that the normalized +coordinate is for the window (graphics region).  In addition to the X- and +Y-coordinate, the Window Coordinate Space also contains a window number that +indicates in which window the annotation is drawn.

+ +

 

+ +

Types of Annotations

+ +

 

+ +

Box

+ +

 

+ +

A box annotation is +positioned with one coordinate located at the center of the box.  The +boxÕs width and height are ÔnormalizedÕ relative to the size of with and height +of the tab or window containing the box.  Thus a size of one will fill the +tab/window horizontally.  Boxes support all Coordinate Spaces.  Boxes +are colored with both a Line and/or a Fill color.

+ +

 

+ +

Color Bars

+ +

 

+ +

Color bars are a special case +of annotations that pictorially describe the mapping of numeric data into a +color palette.  Color bars are not created like other annotation types but +are enabled for display by pressing the color bar button for a row in the +Overlay ToolBoxÕs Layers tab.  Positioning of color bars is performed +automatically unless the user chooses to manually position them.  Editing +of color bars is described at the end of this document.

+ +

 

+ +

Image

+ +

 

+ +

An image annotation is +positioned with one coordinate located at the center of the image.  The +height of image is specified as a percentage of the region containing the +image.  As the region changes in height, a corresponding change will occur +in the height of the image.  The width of the image will scale with the +height of the image using the aspect ratio of the image when it was associated +with the orientation.

+ +

 

+ +

Line

+ +

 

+ +

A line annotation contains +two coordinates with one located at each end point.  Both coordinates are +always in the same Coordinate Space.  Support all coordinate spaces.  +Lines are colored using the Line Color.  Arrows may be added to each of +the end points.

+ +

 

+ +

Oval

+ +

 

+ +

With the exception of the its +shape, an oval is identical to a box.

+ +

 

+ +

Text

+ +

 

+ +

Text annotations contain one +coordinate and the text alignment properties control the location of the text +relative to the coordinate.  Text annotations support all Coordinate +Spaces.  Text characters are drawn in the Line Color.  If a Fill +Color is valid (not None), a rectangle is drawn behind the text in the Fill +Color.  The height of text is specified as a percentage of the region +containing the text.  As the region changes in height, a corresponding +change will occur in the size of the text.

+ +

 

+ +

Annotation Properties

+ +

 

+ +

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Property

+
+

Box

+
+

Color Bar

+
+

Image

+
+

Line

+
+

Oval

+
+

Text

+
+

Arrow Tips

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

 

+
+

 

+
+

Line Width

+
+

Y

+
+

 

+
+

 

+
+

Y

+
+

Y

+
+

Y

+
+

Line Color

+
+

Y

+
+

 

+
+

 

+
+

Y

+
+

Y

+
+

Y

+
+

Fill Color

+
+

Y

+
+

Y

+
+

 

+
+

 

+
+

Y

+
+

Y

+
+

Text Color

+
+

 

+
+

Y

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Text Characters

+
+

 

+
+

Y

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Font Name

+
+

 

+
+

Y

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Font Size

+
+

 

+
+

Y

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Font Style

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Horizontal Alignment

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Vertical Alignment

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Orientation

+
+

 

+
+

 

+
+

 

+
+

 

+
+

 

+
+

Y

+
+

Width

+
+

Y

+
+

Y

+
+

Y

+
+

 

+
+

Y

+
+

 

+
+

Height

+
+

Y

+
+

Y

+
+

Y

+
+

 

+
+

Y

+
+

 

+
+

Rotation

+
+

Y

+
+

Y

+
+

Y

+
+

Y

+
+

Y

+
+

Y

+
+ +

 

+ +

 

+ +

Annotation Line Width and Color

+ +

 

+ +

The Line Width Property controls +the line width of Line annotations and the outline width of Box and Oval +annotations.  The maximum line width may vary on different +computers.  When multiple annotations are selected with different line +widths, the smallest selected line width is displayed followed by a plus symbol +(+).

+ +

 

+ +

The Line Color Property +controls the outline color of a box or oval.  It is also used to draw a +box around text annotations.  To change the color, one presses the small +arrow to display a menu from which a named color or a special option is +selected.  The two special selections are Custom and None.  Choosing +Custom displays a dialog that allow the user to create a color by adjusting red, +green, and blue color components.  None inhibits the drawing of a lineÕs +or the box or ovalÕs outline.

+ +

 

+ +

Annotation Fill Color

+ +

 

+ +

The Fill Color Property +controls the color of a text background or the fill color for a box or +oval.  Like the Line Color Property there are both Custom and None +options.

+ +

 

+ +

+ +

 

+ +

Annotation Line Arrow Tips

+ +

 

+ +

+ +

 

+ +

The Annotation Line Arrow +Tips section allows the user to add arrow to tips to either or both end points +of a a line annotation.  The top arrow button adds an arrow to the lineÕs +start and the bottom arrow button adds an arrow to the lineÕs end.

+ +

Annotation Text Characters

+ +

 

+ +

The Text Edit Group allows +the user to edit the properties of the selected Text Annotation (when one and +only one annotation is selected).  Multiple lines of text are separated by +a Ò\nÓ character sequence.  One may double-click the text to edit the text +in a multi-line editor. In the second row is a combo box allows the user to +connect a text annotation in Surface Space to the surface vertex with a line or +an arrow.  When connecting a text annotation to the surface, the offset in +the surface coordinate will need adjustment.

+ +

 

+ +

+ +

 

+ +

Annotation Text Font Property

+ +

 

+ +

Font Properties associated +with Text Annotations include the Font Name, the Font Size, the Text Color and +options for Bold, Italic, and Underline.  When multiple annotations are +selected, the first matching font and smallest font size is selected.  The +Bold, Italic, and Underline buttons are selected only if all selected text +annotations have the attribute enabled.

+ +

 

+ +

+ +

 

+ +

Annotation Text Alignment Property

+ +

 

+ +

Text Alignment Properties are +available for both horizontal and vertical alignment. 

+ +

 

+ +

Horizontal Text Alignment +selections include Left, Center, and Right.  With Left, the annotationÕs X-coordinate +is on the left side of the text.  With Center, the annotationÕs +X-coordinate is in the horizontal center of the text.  With Right, the +annotationÕs X-coordinate is on the right side of the text.

+ +

 

+ +

Vertical Text Alignment +selections include Bottom, Middle, and Top.  With Bottom, the annotationÕs +Y-coordinate is located at the bottom of the text.  With Middle, the +annotationÕs Y-coordinate is located in the vertical center of the text.  +With Top, the annotationÕs Y-coordinate is located at the top of the text.

+ +

 

+ +

When there are multiple text +annotations selected with different alignments, none of the alignment buttons +are shown as selected.

+ +

 

+ +

+ +

 

+ +

Annotation Text Orientation

+ +

 

+ +

The text orientation property +includes two selections, Horizontal and Stacked.   Text characters +drawn in Horizontal Orientation are drawn in a left-to-right sequence.  +Text characters drawn in Stacked Orientation are drawn in a top-to-bottom +sequence.  If there are multiple text annotations selected with differing +orientations, neither of the orientation buttons is shown as selected.

+ +

 

+ +

+ +

 

+ +

 

+ +

Annotation Coordinate Property

+ +

 

+ +

The Coordinate Adjustment +Group allows the user to adjust the XYZ-coordinates of an annotation in Stereotaxic, +Tab, or Window Space.  If the annotation is in Surface Space, selections +are provided for the Structure, Vertex Index, and Offset.  The offset is +the distance of the annotation from its assigned surface vertex along the +surface vertexÕs normal vector.  Line annotations contain coordinates for +each endpoint and both sets of Coordinate controls are enabled.  Box, +Oval, and Text Annotations use one coordinate so only the first set of +coordinate controls is enabled.

+ +

 

+ +

+ +

 

+ +

+ +

 

+ +

Located on the left side of +the coordinate controls are several alphanumeric characters that indicate the +coordinate space of the selected annotation(s).  If all of the selected +annotations are in the same coordinate space, the letter will be Sf (Surface), St +(Stereotaxic) T (Tab, followed by tab numbers), and W (Window).  If +multiple annotations are selected and they are in different coordinate spaces, +a plus symbol (+) is displayed.  The coordinate controls are enabled only +when a single annotation is selected.

+ +

Annotation Width and Height

+ +

 

+ +

The Annotation Width and Height +Properties control the width and height of Box, Image, and Oval Annotations.   +Both the width and height are normalized values that range from zero to one +where one is the full width/height of the tab or window.  For image +annotations, adjusting the width (or height) will also change the height (or +width) of the image so that the imageÕs aspect ratio is preserved to prevent +distortion of the image.

+ +

 

+ +

+ +

 

+ +

Annotation Rotation Property

+ +

 

+ +

The Annotation Rotation +property controls the rotation annotations.  The rotation value is in +degrees and a positive value rotates clockwise.

+ +

 

+ +

+ +

 

+ +

 

+ +

 

+ +

Annotation Files

+ +

 

+ +

There two mechanisms for +saving annotations.

+ +

Disk Annotation File

+ +

 

+ +

Disk Annotation Files can be +opened, saved, added to a Spec File just like other Workbench data files.

+ +

 

+ +

Scene Annotation File

+ +

 

+ +

The Scene Annotation File is +maintained Òin memoryÓ and when the user creates a Scene, these annotations +become part of the scene.  Thus, these annotations can only be displayed +when the scene is loaded.  A special entry is provided on the Manage/Save +Files Window to remove all active Scene Annotations.

+ +

 

+ +

Selecting Annotations

+ +

 

+ +

To select a single annotation +while in Annotations mode, simply move the mouse over the annotation (the +cursor will become a Òfour arrowsÓ symbol) and click the mouse.

+ +

 

+ +

To select multiple +annotations, hold down the Shift Key while clicking the mouse over an +annotation.  When the mouse is clicked with the Shift Key down, any other +selected annotations remain selected. 

+ +


+If an annotation that is a member of a group is selected, all annotations in +the group become selected. 

+ +

 

+ +

To deselect all annotations, +click the mouse in a region where there is no annotation.  If there are +multiple annotations selected and one wants to deselect an annotation, click +the mouse over the annotation while holding down the Shift Key.

+ +

 

+ +

When an annotation is in the +selected state, sizing handles are displayed around the annotation.  For a +Line Annotation, sizing handle symbols are drawn at the end points with a +slightly larger square symbol at the first coordinate (head of the +arrow).  For a Box or Oval Annotation, a box is drawn in the foreground +color with sizing handles distributed about the box.  When the mouse is +moved over a sizing handle, the mouse cursor will change to a symbol that +indicates how moving the size handle with the mouse will change the shape of +the annotation.

+ +

 

+ +

Editing Annotation Position, Size, and Rotation

+ +

 

+ +

To move an annotation, first +select the annotation and move the mouse over the annotation so that the cursor +is the four arrows symbol.  Hold down the left mouse button and then drag +the mouse to move the annotation to its new location.

+ +

 

+ +

To resize a line annotation, +first select the line annotation.  Next, move the mouse over a sizing +handle at either end of the line so that the cursor becomes a Òtwo arrowÓ +symbol.  Now, hold down the left mouse button and drag the line end point +to its new location.

+ +

 

+ +

To resize a box or oval +annotation, first select the annotation.  Next, move the mouse over one of +the sizing symbols so that the cursor becomes a Òtwo arrowÓ symbol.  Now, +hold down the left mouse button and drag to change the width and/or height of +the shape.  Dragging the circular symbol at the corners changes both the +width and height of the shape.  Dragging the square symbol on a side +changes width or height but not both.

+ +

 

+ +

+ +

 

+ +

To rotate a box, image, oval, +or text annotation, first select the annotation.  Next, move the mouse +over the small rotation handle at the top of the shape (small black circle +attached to box around TEXT) at which time the cursor will become a rotation +symbol.  Now, to rotate the annotation, hold down the left mouse button +and drag the mouse away from the annotation to the desired orientation.  Think +of the rotation handle as a compass pointer and the the mouse pointer as +magnetic north.  The rotation handle will always point towards the mouse +pointer.

+ +

 

+ +

 

+ +

+ +

 

+ +

Annotations may also be +moved, resized, and rotated using the annotation toolbarÕs controls while a +shape is selected.

+ +

 

+ +

The text in a text annotation +may be edited by double-clicking the mouse over the text annotation.

+ +

 

+ +

Editing (Redo and Undo)

+ +

 

+ +

 

+ +

 

+ +

When editing annotations, the +user may mistakenly modify or delete an annotation.  For these instances, +pressing the Undo button will ÒundoÓ the last change to an annotation.  +Redo and Undo can also be used with grouping operations (described later in +this document).

+ +

Inserting Annotations

+ +

 

+ +

 

+ +

+ +

+ +

 

+ +

 

+ +

When creating annotations, +new annotations are placed in either ÒScene AnnotationsÓ or a Annotation File +stored to disk.  Scene Annotations are not saved to an annotation file +file but instead are added to a scene when a a new scene is created.  Note +that the user will need to save the scene file.  Disk annotation files are +saved and opened like other data files.

+ +

 

+ +

To create a new annotation, +user must first choose the file that will contain the newly created +annotation.  Second, the user user must choose the Space from the top row +of buttons (the selected space is highlighted).  Third, the user must +press on of the Type buttons in the bottom row to choose the type of annotation +that is created.  Lastly, the user moves the mouse into the graphics +region and the mouse pointer will be a small ÔplusÕ symbol.  The user must +either click the mouse in the graphics region to insert a default annotation +for the type or drag the mouse to create a rectangular region that bounds the +new annotation.  If the location of the new annotation is incompatible +with the selected annotation space, a dialog pops up that allows the user to +choose a different space or to cancel creation of the annotation. When entering +a text annotation, a dialog will always pop-up for entry of the text.

+ +

 

+ +

BEWARE that when drawing +annotations in surface space, the annotation may move a short distance from +where it was drawn.  This is caused by the surface offset attribute of the +surface coordinate.  While the annotation is attached to the surface +vertex closest to the mouse click, the annotation is offset by a vector.  +It is this offset vector that causes the annotation to move.  Without the +offset vector, surface annotations may be partially or even fully obscured by +the surface.

+ +

Deleting Annotations

+ +

 

+ +

+ +

 

+ +

Individual annotations are +deleted while in Annotation Mode by clicking the Trash Can Icon in the +Annotation Toolbar.  One may remove an entire file of Annotations on the +Manage/Save Files window.

+ +

 

+ +

Format

+ +

 

+ +

+ +

 

+ +

The arrange menu is used to +arrange and format multiple annotations.  At least two annotations must be +selected for an alignment operation.  At least three annotations must be +selected for a distribute operation.  Alignment and Distribution +operations may only be performed on annotations in Tab or Window space.

+ +

 

+ +

á      +Align Left Ð The selected +annotations are moved so that the left edge of each annotation is at the same +X-coordinate as the left-most annotation.

+ +

á      +Align Center Ð The selected +annotations are moved so that center X-coordinate of each annotation is at the +average X-coordinate of the annotations.

+ +

á      +Align Right Ð The selected +annotations are moved so that the right edge of each annotation is at the same +X-coordinate as the right-most annotation.

+ +

á      +Align Top - The selected +annotations are moved so that the top edge of each annotation is at the same Y-coordinate +as the top-most annotation.

+ +

á      +Align Middle Ð The selected +annotations are moved so that the center Y-coordinate of each annotation is at +the average Y-coordinate of the annotations.

+ +

á      +Align Bottom - The selected +annotations are moved so that the bottom edge of each annotation is at the same +Y-coordinate as the bottom-most annotation.

+ +

á      +Distribute Horizontally Ð The +left-most and right-most annotations do not move.  The other annotations +are moved so there is equal horizontal spacing between adjacent annotations.

+ +

á      +Distribute Vertically - The +top-most and bottom-most annotations do not move.  The other annotations +are moved so there is equal vertical spacing between adjacent annotations.

+ +

á      +Group - See the description in +Annotation Grouping.

+ +

á      +Regroup - See the description in +Annotation Grouping.

+ +

á      +Ungroup - See the description in +Annotation Grouping.

+ +

 

+ +

Context Sensitive (Pop-up) Menu

+ +

 

+ +

A pop-up menu is available +when the Mode (mouse) is set to Annotate.  Items in the menu are enabled +only in certain conditions.

+ +

 

+ +

Items in the pop-up menu are:

+ +

á      +Cut Ð Removes the annotation under +the mouse and places it onto the annotation clipboard.

+ +

á      +Copy Ð Copies the annotation under +the mouse and places it onto the annotation clipboard.

+ +

á      +Delete Ð Deletes the annotation +under the mouse.

+ +

á      +Paste Ð Inserts a copy of the +annotation on the clipboard at the mouse location.  If the mouse location +is incompatible with the annotationÕs space, a dialog is pops up to change the +space or cancel the paste operation.

+ +

á      +Paste and Change Space Ð Pops up a +dialog to choose the space and then pastes a copy of the annotation from the +clipboard in the selected space.

+ +

á      +Edit Text Ð Pops up a dialog for +changing the text in a text annotation.

+ +

á      +Group Ð See the description in +Annotation Grouping.

+ +

á      +Ungroup Ð See the description in +Annotation Grouping.

+ +

á      +Regroup Ð See the description in +Annotation Grouping.

+ +

 

+ +

Edit Menu

+ +

 

+ +

The WindowÕs Edit Menu is available +for some operations.

+ +

 

+ +

á      +Undo Ð Rolls back the last +annotation modification (additional text is added to the Undo item providing +information about the modification).

+ +

á      +Redo Ð Rolls back the last ÒundoÓ +(additional text is added to the Redo item providing information about the +modification).

+ +

á      +Cut Ð See Cut under Context +Sensitive (Pop-up) Menu.

+ +

á      +Copy Ð See Copy under Context +Sensitive (Pop-up) Menu.

+ +

á      +Paste Ð See Paste under Context +Sensitive (Pop-up) Menu.

+ +

á      +Paste Special Ð See Paste and +Change Space under Context Sensitive (Pop-up) Menu.

+ +

á      +Delete Ð See Delete under Context +Sensitive (Pop-up) Menu.

+ +
+
+ +

 

+ +

Display Control of Annotations

+ +

 

+ +

+ +

 

+ +

Controlling the display of +annotation is performed using the Annot section in the Features Toolbox.

+ +

 

+ +

Options

+ +

 

+ +

Display Annotations Ð Enables +and disables the display of annotations in all open windows.

+ +

 

+ +

Show Window Annotations in +Single Tab View Ð When checked, annotations in Window space are always +displayed.  When unchecked, annotations in Window space are only displayed +when Tile Tabs is enabled.

+ +

 

+ +

Group Ð Group allows the user +to easily switch between several different display selections of +annotations. 

+ +

 

+ +

The display selections for +annotations in window space function different than other spaces.  Because +the ÔGroupÕ selection is a property of each browser window ÒtabÓ, it is not +available when drawing Window annotations.  Therefore, there is only one +display selection for annotations in window space.

+ +

 

+ +

Selection of Annotations in Features Toolbox

+ +

 

+ +

To select an annotation in +the Features Toolbox, the user clicks the mouse over the name of the +annotation.  The annotation name is selected and all other annotations are +deselected.  The selected annotation is highlighted in the graphics +region.  The user may select multiple annotations in the features toolbox +by holding down the CTRL (Apple) key or the Shift key.  If the CTRL key is +held down while the mouse is clicked, the annotation under the mouse is added +to the selected annotations.  If the Shift key is held down while the +mouse is clicked, all annotation from the last selected annotation to the +annotations under the mouse are selected.

+ +

 

+ +

If the user clicks the name +of either group type, Space or User, all annotations in the group are selected. + If the user selects the name of annotation that is in a User Group, all +annotations in the User Group are selected.

+ +

 

+ +

 

+ +

Content of Annotations Tab in Features Toolbox

+ +

 

+ +

In the Features Toolbox, +annotations are grouped into a hierarchy of File, Group, and Annotations. + The hierarchy is collapsed and expanded using the small triangles on the +left side of the annotation listing.  There are three checkbox states, +unchecked, partially checked, and checked.  An annotation is either +unchecked (not displayed) or checked (is displayed).  An Annotation Group +(and File) is unchecked when all annotations in the group (file) are unchecked +(not displayed); partially checked when some, but not all annotations in the +group are checked (displayed), and the group (file) is checked when all +annotations in the group are checked (displayed).

+ +

 

+ +

For each annotation in the +features toolbox, an icon (small image) is displayed between the checkbox and +the annotationÕs name.  This icon may consist of several colors.  If +the annotation's ÔFill ColorÕ is enabled, the background of the icon is the +fill color.  If the annotationÕs line color is enabled, the edges of the +icon are drawn in the line color.  If the annotation is a text annotation, +a small square consisting of the text characterÕs color is in the center of +icon.

+ +

 

+ +

Annotation Grouping

+ +

 

+ +

Annotations are organized +into a hierarchy consisting of File->Group->Annotation.  The are two +types of groups: Space Groups and User Groups.  By default, an annotation +is assigned to a Space Group.  The user may move annotations from a Space +Group to a User Group by performing a ÔGroupÕ operation.  Annotations may +also be moved from a User Group to a Space Group by performing an ÔUngroupÕ +operation. 

+ +

 

+ +

Both types of groups may only +contain annotations that are in the same coordinate space.  Stereotaxic +annotations are assigned to one group.  Surface annotations are also in +one group.  There is a group for each tab and a group for each window.

+ +

 

+ +

Mouse Selection of Annotations

+ +

 

+ +

To select an annotation with +the mouse, the user simply clicks the mouse over an annotation.  The +annotation under the mouse is selected and any other annotations are +deselected.  To select multiple annotations the user clicks the annotation +with the mouse while the Shift key is held down.  To deselect all annotations, +the user clicks the mouse in an empty region (not over an annotation).

+ +

 

+ +

If the user selects an +annotation with the mouse and the annotation is in a User Group, all +annotations in the User Group are selected.

+ +

 

+ +

 

+ +

Creating a User Group

+ +

 

+ +

Creation of a user group is +allowed when two or more annotations are selected and all of the selected +annotations are in the same Space Group.  If these conditions are met, the +user may create a User Group by selected Group from the Annotation ToolbarÕs +Format->Arrange Menu.  The user may also right click the mouse and +select Group from the pop-up menu.

+ +

 

+ +

Removing a User Group

+ +

 

+ +

To remove a User Group, the +annotations in the User Group must be selected (recall that clicking any +annotation in a User Group selects all annotations in the User Group). + The annotations are returned to a Space Group by selecting +Ungroup from the Annotation ToolbarÕs Format->Arrange Menu.  The +user may also right click the mouse and select Ungroup from the pop-up menu.

+ +

 

+ +

 

+ +

Recreating a User Group

+ +

 

+ +

To recreate a User Group, the +user must select at least one annotation that is currently in a Space Group but +was previously in a User Group.  If these conditions are met, the user may +recreate the User Group by selected Regroup from the Annotation ToolbarÕs +Format->Arrange Menu.  The user may also right click the mouse and +select Regroup from the pop-up menu.  All annotations that were previously +in the User Group are moved back to the User Group.

+ +

 

+ +

 

+ +

Color Bar Editing

+ +

 

+ +

Each overlay contains one +color bar that is available when the selected overlay is mapped using a color +palette (typically for floating point data).  To show a color bar, press +the rainbow button under Settings in Overlay ToolBox->Layers.  To Edit +the color bar, press the wrench icon.

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ +

+ +

 

+ +

Location and Positioning

+ +

 

+ +

This section controls the +coordinate space and location within the space for the color bar.

+ +

 

+ +

Show Color Bar in Sets the allowable space for the color bar.

+ +


+Tab Ð Color bar is restricted to the region in which the tabÕs +data is drawn.

+ +

 

+ +

Window Ð +Color bar may be anywhere in the window.

+ +

 

+ +

Positioning

+ +

 

+ +

Auto Ð Colorbar is automatically positioned in the bottom +left corner of the tab/window. If there is more than one color bar, they are +vertically stacked.

+ +

 

+ +

Manual Ð Allows the user to manually position the color bar +by selected the color bar (click it in Annotations Editing Mode) and dragging +it with the mouse or using the coordinate controls in the annotationÕs editing +toolbar.  It is not necessary to switch the Positioning Mode to Manual to +move the color bar.  Simply select the color bar and drag it with the +mouse and the Positioning will immediately change to Manual.

+ +

 

+ +

Data Numerics

+ +

 

+ +

Data Mode Controls format of numeric above color bar

+ +

 

+ +

Data Numeric text above the color bar reflect values +within the data.

+ +

 

+ +

Percentile Numeric text above the color bar reflect the +percentiles within the data.

+ +

 

+ +

Sign Only Numeric text above the color bar simply indicate the +sign (negative/positive of the data).

+ +

 

+ +

Numeric Format Controls the formatting of numeric text above the +color bar.

+ +

 

+ +

Auto Numeric text will automatically choose decimal or +scientific notation and digits right of the decimal point to best represent the +data values.

+ +

 

+ +

Decimal Numeric text will be in decimal format.

+ +

 

+ +

Scientific Numeric text will be in scientific notation.

+ +

 

+ +

Dec/Sci Decimals Enabled when Numeric Format is Decimal or Scientific +and controls the number of digits right of the decimal point.

+ +

 

+ +

Subdivisions By default, the numeric text above the color bar +consists of a negative value, zero, and a positive value.  Subdivisions is +used to add additional values between zero and negative/positive.

+ +

 

+ +

Show Tick Marks If checked, a small tick mark is displayed below each +numeric text value to indicate its exact position in the color bar.

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +
+ + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders_Attributes.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,109 @@ + + + + + Borders + + + + + Borders
+ The Borders Tab in the Features Toolbox + contains options for display and selection of loaded and newly + created borders on brain surfaces. +
    +
  • Display Borders toggles border + display on and off. When Border Mode + is turned on, Display Borders is turned on by default.
  • +
+
    +
  • Group: identifies the Border + group for the Active Tab. Tabs assigned to the same Group will + display the same borders with the same attributes.
  • +
+ +
    +
  • Borders Attributes contains + options for viewing borders.
  • +
+
    +
      +
    • Contralateral check box toggles + on display of borders that are currently being displayed on + one hemisphere to be displayed on the contralateral + hemisphere (on top of that hemisphere's own displayed + borders, if any).
      +
    • +
    +
+
    +
      +
    • Draw As sets the shape of the + border components (Lines, Spheres, Squares, Spheres and + Lines).
      +
    • +
    +
+
    +
      +
    • Coloring sets the Class, Name, or Standard Color + as the border color source.
      +
    • +
    +
+
    +
      +
    • Standard ColorSelects the color when Coloring is set to Standard Color.
      +
    • +
    +
+
    +
      +
    • Line Diameter controls the + border thickness if line is selected as the border + component.
      +
    • +
    +
+
    +
      +
    • Symbol Diameter controls the + size of the sphere or square symbol border components.
      +
    • +
    +
+
    +
      +
    • Unstretched Lines is used + to correctly display a border from a 3D surface on a flat + surface when the border crosses a surface cut from + flattening. The distance indicates the limit for how much a + border can be stretched across a cut surface before it is + NOT displayed. Specifically, if the value of [(length of + border on flat surface) / (length of border of 3d + volume-interaction surface)] exceeds the Unstretched Lines + value then the border is NOT displayed.
      +
    • +
    +
+
    +
+
+
+ +
    +
  • Borders Selection controls group + and individual display selection for borders. If a higher + level group is selected on or off, all borders below that + level will be similarly selected on/off. The All On/Off + buttons allow for quick toggling of all borders on or off.
    +
  • +
+
+
+ + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders/Borders_Selection.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Borders_Attributes.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Features_TB_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Features_TB_icon.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Features_Toolbox.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Features_Toolbox.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Features_Toolbox.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Features_Toolbox.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,90 @@ + + + + + Features Toolbox + + + Features Toolbox
+ The Features Toolbox contains controls for + displaying features including Annotations, Borders, + Fibers, Foci, Images, and Labels onto the data + being displayed on structures.
+  
+ The Features Toolbox is not displayed by default, but is turned on + with the button (or with View + > Features Toolbox) and attached to the right side of + the Viewing + + + + + + + + + + + + Area. It can also be
detached from the Workbench Window by left click + + drag on the top of the + Features Toolbox. To reattach, double click on the + top of the + Features Toolbox.
+
+ There are 6 tabs in the Features Toolbox, each controlling a + different kind of feature's display:
+
    +
  • Annotations
  • +
+
    +
  • Borders controls + attributes and selection of borders on surfaces.
  • +
+
    +
  • Fibers controls attributes, selection, and samples of fibers on + surfaces and in volumes.
  • +
+
    +
  • Foci + controls attributes and selection + of foci on surfaces and in volumes.
  • +
+
    +
  • Images + controls selection + of images in the background.
  • +
+
    +
  • Labels controls attributes and selection + of labels on surfaces and in + volumes.
    +
  • +
    +
+ These tabs are inactive (grayed-out) if no + files are loaded containing a particular Feature.
+
+
    +
    +

    + +
      +
    +
+ + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Fibers/Fibers.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Fibers/Fibers.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Fibers/Fibers.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Fibers/Fibers.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + Fibers + + + Fibers
+ The Fibers Tab in the Features Toolbox + contains options for display, selection, and samples of white + matter fibers derived from diffusion imaging analysis. Currently, + HCP has not released fiber data that can be viewed using options + in this Tab. Stay tuned to the hcp-users@humanconnectome.org + email list (sign up here) + for future release information of this type of data.
+ + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci_Attributes.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,64 @@ + + + + + Foci + + + Foci
+ The Foci Tab in the Features Toolbox + contains options for display and selection of loaded and newly + created foci on brain surfaces and in volumes. +
    +
  • Display Foci toggles foci + display on and off. When Foci Mode + is turned on, Display Foci is NOT turned on by default.
  • +
+
    +
  • Group: identifies the Foci group + for the Active Tab. Tabs assigned to the same Group will + display the same foci with the same attributes.
  • +
+ +
    +
  • Foci Attributes contains options + for viewing foci.
  • +
+
    +
      +
    • Contralateral check box toggles + on display of foci that are currently being displayed on one + hemisphere to be displayed on the contralateral hemisphere + (on top of that hemisphere's own displayed foci, if any).
      +
    • +
    • Paste Onto Surface moves the + foci from their coordinate space to the nearest point + directly on the surface displayed.
      +
    • +
    • Coloring sets the Class, Name or Standard Color + as the foci color source.
      +
    • +
    • Standard Color selects the color when Coloring is set to Standard Color.
      +
    • +
    • Draw As sets the shape of the + foci to Spheres or Squares.
      +
    • +
    • Symbol Diameter sets the size of + the foci symbols.
      +
    • +
    +
    +
    +
  • Foci Selection controls group and + individual display selection for foci. If a higher level group + is selected on or off, all foci below that level will be + similarly selected on/off. The All On/Off buttons + allow for quick toggling of all foci on or off.
    +
  • +
+
+ + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Foci/Foci_Selection.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Images/Images.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Images/Images.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Images/Images.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Images/Images.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,31 @@ + + + + + Borders + + + + + Images
+ The Images Tab in the Features Toolbox + contains options for display and selection of images in the background. +
    +
  • Group: identifies the Image + group for the Active Tab. Tabs assigned to the same Group will + display the same images with the same attributes.
  • +
+ +
    +
  • Display Image toggles image + display on and off.
  • +
+
    +
  • Images Selection Chooses image displayed in the background. +
+
+ + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Images/Images_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Images/Images_Selection.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels_Attributes.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,27 @@ + + + + + Labels + + + Labels
+ The Labels Tab in the Features Toolbox + contains options for display and selection of loaded labels (named + colored regions) on brain surfaces and in volumes.  When + labels are displayed, labelled regions appear painted on the brain + surface/volume.  +
    +
  • Group: identifies the Label group + for the Active Tab. Tabs assigned to the same Group will + display the same labels with the same attributes.
  • +
+
    +
  • All On Off: quickly turn all labels on or off. +
    +
    +  
    + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Features_Toolbox/Labels/Labels_Selection.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Brainordinate/Brainordinate.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Brainordinate/Brainordinate.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Brainordinate/Brainordinate.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Brainordinate/Brainordinate.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,35 @@ + + + + + Brainordinate + + + Brainordinate
    + Brainordinate + is a brain location that is + specified by either a surface vertex (node) or a volume + voxel.  Brainordinates include grayordinates (gray-matter + vertices or voxels) and whiteordinates (white-matter + voxels).  CIFTI + files contain a list of selected brainordinates and can handle + combined surface/volume representations.
    +
    +
    + + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/CIFTI/CIFTI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/CIFTI/CIFTI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/CIFTI/CIFTI.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/CIFTI/CIFTI.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,43 @@ + + + + + CIFTI file + + + CIFTI
    +
    CIFTI is a file format that + stores data from surfaces (vertices) and volumes (voxels) + concurrently in a single file comprising a listed set of brainordinates. A + + CIFTI file can contain multiple non-overlapping volume + components with different structures, where each volume + component is any selected list of voxels (e.g., only left thalamus + voxels).  These components need not fill the entire grid of + ‘N x M x O’ volumetric dimensions.  A CIFTI file can also + include multiple surface components with different structures + (most commonly, the left and right cerebral cortex), but the + surface geometry is not specified in the CIFTI file (commonly, the + geometry is in a separate GIFTI + surface file). See http://www.nitrc.org/projects/cifti/ + for a detailed exposition of the CIFTI-2 file format.
    +
    + CIFTI files are based on the NIFTI-2 file format + and therefore have a filename extension ending in .nii. +  Workbench currently supports many types of CIFTI files, + including dense scalar (*.dscalar.nii), dense data series + (*.dtseries.nii), dense connectome (*.dconn.nii), and dense label + (*.dlabel.nii), where the term 'dense' refers to having a value at + each listed brainordinate (as opposed to a parcellated file such + as *.ptseries.nii, where each value is shared across many + brainordinates). Files in the now-deprecated CIFTI-1 format are + still supported by Workbench and can be converted to CIFTI-2 + using: wb_command -file-convert -cifti-version-convert.
    + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,24 @@ + + + + + ConnectomeDB + + + ConnectomeDB
    +
    ConnectomeDB is the + web-accessible database for HCP data.  To get an account for + ConnectomeDB, go to http://humanconnectome.org/data + and register for access.
    +

    +
    +
    +
    +
    +
    + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB_login.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB_login.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/ConnectomeDB/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/GIFTI/GIFTI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/GIFTI/GIFTI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/GIFTI/GIFTI.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/GIFTI/GIFTI.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,32 @@ + + + + + GIFTI file + + + GIFTI
    +
    GIFTI + is + + + + + a file format for surface representations that is supported by + many major brain mapping visualization platforms (http://www.nitric.org/projects/gifti).
    + + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Grayordinate/Grayordinate.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Grayordinate/Grayordinate.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Grayordinate/Grayordinate.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Grayordinate/Grayordinate.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,32 @@ + + + + + Grayordinate + + + Grayordinate
    + Grayordinate + is a brain gray matter + location that is represented by either a surface vertex (node) or + a volume voxel.  Grayordinates represent a subset of all brainordinates.
    +
    +
    + + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/NIFTI/NIFTI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/NIFTI/NIFTI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/NIFTI/NIFTI.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/NIFTI/NIFTI.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,18 @@ + + + + + NIFTI file + + + NIFTI
    +
    NIFTI (*.nii and *nii.gz) is + standard file format for volumetric data that is widely used in + neuroimaging.  The original NIFTI-1 file format was based on + 16-bit signed integers and was limited to 32,767 in each + dimension.  The NIFTI-2 format (http://www.nitric.org/forum/message.php?msg_id=3738) + is based on 64-bit integers and can handle very large volumes and + matrices.
    + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Scene/Scene.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Scene/Scene.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Scene/Scene.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Scene/Scene.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + Scene + + + Scene
    +
    Scene refers to the current state + (settings and files being visualized) within Workbench.  These settings can be + saved globally, in a scene file, which allows the user to + re-access the current Workbench session at a later time.  + Several scenes can be saved within a scenes file. By reopening a + saved scene file into Workbench, the user can "pick up where they + left off." For more information on creating, using, and editing + scenes, see Scenes + Window.
    + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Spec_File.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Spec_File.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Specification_File.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Specification_File.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Specification_File.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Specification_File.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,19 @@ + + + + + Specification File + + + Specification File
    +
    Specification File (commonly + called "Spec File") is a file used to organize a set of data files + (such as volume, surface, and label files) to be loaded into + Workbench. The Open + Spec File dialog is shown listing the contents + of a spec file.
    +

    +
    + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Specification_File/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,35 @@ + + + + + Whiteordinate + + + Whiteordinate
    + Whiteordinate + is a brain white matter + location.  It is generally represented by a white matter + voxel, though in principle, it can also be represented by a + surface vertex (node).  Whiteordinates represent a subset of + all brainordinates.  + + In a CIFTI file, + a list of whiteordinates need not fill the entire grid of the 'N x + M x O' volumetric dimensions.
    + + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Information_Window/Information_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Information_Window/Information_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Information_Window/Information_Window.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Information_Window/Information_Window.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,71 @@ + + + + + Information Window + + + Information Window
    + The Information Window provides information on
    identified locations (left click on surface + or volume in the Viewing + + + + Area).
    +
    + Information provided for surface ordinates includes the vertex + number, surface name, x, y, z coordinates on the surface being + displayed, and data values/label names
    at that ordinate available + from all files currently loaded. For volume ordinates, voxel + coordinates in stereotactic space and slice indices for the + loaded volume are given, along with values for data loaded that + displays in volumes. +
      +
    • Clear: clears + + + + + + + all information in the Info Window.
    • +
    + +
      +
    • Copy: copies all + highlighted text (left click +drag) in the Info Window for + pasting outside of wb_view.
    • +
    +
      +
    • RID: Removes all ID symbols off + surfaces in all Viewing + Tabs/Windows, but all + Information displayed in the Information Window is retained. +
    • +
    +
      +
    • Contra ID: Identifies the + corresponding location on the hemisphere contralateral to + the one clicked. Display of contralateral IDs is not + retroactive.
    • +
    + +
      +
    • Properties: + opens a box of settings for ID and Contra ID display + attributes.
    • +
    +
      +
    +
    +
    + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Information_Window/Information_Window.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Information_Window/Information_Window.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Information_Window/Properties/Information_Properties.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Information_Window/Properties/Information_Properties.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Information_Window/Properties/Properties.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Information_Window/Properties/Properties.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Information_Window/Properties/Properties.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Information_Window/Properties/Properties.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,66 @@ + + + + + Properties + + + Properties
    + Properties, within the Information Window, + contains display settings for the Identification symbols. +
      +
    • ID Symbol Color: + sets color of ID symbols that appear on the surface upon + + + + + + + + + location identification (left click on surface or volume in the + Viewing + + + + + + Area).
    • +
    +
      +
    • ID Contralateral Symbol Color: + sets the color of contralateral ID location symbols displayed + when Contra ID is active. +
    • +
    +
      +
    • Symbol Diameter: sets the size of + the ID symbols that appear on the surface, except the most + recently identified location.
    • +
    +
      +
    • Most Recent ID Symbol Diameter: sets + + + + + + + + + the size of the most recently identified location. The default + is a setting to a size slightly larger than the Symbol + Diameter to distinguish the current location from previously + identified locations.   +  
    • +
    +
    +
    +
    + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Data_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Data_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Data_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Data_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,25 @@ + + + + + Data Menu + + + Data Menu
    +
      +
    • Split Multi-Structure Border Files Older border files + may contain borders for more than one surface structure. This menu item allows the user + split the old border file into single structure border files.
    • +
    +
      +
    • Project fixed distance above + surface(s) option allows the user to project foci a + fixed distance above or below the volume interaction surface. + Any offset of the foci from the surface is NOT preserved.
      +
    • +
    +
    +
    + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Project_Foci_Dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Project_Foci_Dialog.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Data_Menu/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Develop_Menu/Develop_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Develop_Menu/Develop_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Develop_Menu/Develop_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Develop_Menu/Develop_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,20 @@ + + + + + Develop Menu + + + Develop Menu
    + The Develop Menu will only appear in the Menu + bar when Show Develop Menu in Menu Bar is selected On in + the Preferences Misc tab.  Currently the Develop Menu + only contains Time Graphics Update, which is used + by Workbench developers to gauge graphics performance.
    + + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Edit_Menu/Edit_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Edit_Menu/Edit_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Edit_Menu/Edit_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Edit_Menu/Edit_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,23 @@ + + + + + Window Menu + + + Edit Menu
    + Items on the Edit Menu and their text will vary depending upon the state of wb_view. +
    +
      +
    • Undo Undo a previous operation.
    • +
    • Redo Redo an operation that was undone.
    • +
    • Cut Remove and place the selected item onto the clipboard.
    • +
    • Copy Place a copy of the selected item onto the clipboard.
    • +
    • Paste Paste the item from the clipboard at the mouse cursor location.
    • +
    • Paste Special A special mode to paste the item from the clipboard at the mouse cursor location.
    • +
    • Delete Delete the selected item
    • +
    +  
    +  
    + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Edit_Menu/Edit_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Edit_Menu/Edit_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control_dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control_dialog.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,134 @@ + + + + + Animation Control + + + Animation Control
    +
    Animation Control is used + to set controls for animating frames and recording movies in + Workbench. Note: the speed of real time animation in Workbench is + largely dependent on your computer's processing speed. + +
      +
    • Recording Control contains + settings for:
    • +
    +
    +
      +
    • Repeat Frames, which + allows one to set a number of + frames to be replicated per rotation/slice advancing step, + this allows one to control how slowly the movie advances, + e.g. if set to 0 the image rotates/slices advances quickly, + if 5 or 10 it rotates more slowly.
    • +
    +
      +
    • Record button which + starts/stops recording of the movie. Upon stopping the + recording, the user is prompted to save the .mpg movie file. +
      +
    • +
    +
    +
      +
    • Rotation Control (for surfaces) + to set:
    • +
    +
    +
      +
    • X, Y, Z rotation of the + animation, which is applied per frame.
    • +
    +
    +
    +
      +
    • Rotation Frame Count sets the + number of frames to which the set rotation will be applied + in the animation.
    • +
    +
    +
    +
      +
    • Reverse Direction to set + whether a rotation of an equal number of frames in the + reverse direction will be applied in the animation.
      +
    • +
    +
    +
      +
    • Slice Control (for volumes) to + set:
    • +
    +
    +
      +
    • Slice Increment Count sets the + number of volume slices the animation advances through in + the forward direction.
    • +
    +
      +
    • Reverse direction sets whether + an animation that advances an equal number of slices in the + opposite direction will be applied.
      +
    • +
    +
    +
      +
    • Interpolate Surfaces + to set whether the surface in Tab 1 of the source Workbench + Window will be interpolated (morphed) into the surface in Tab + 2. This function only works for Tab 1 and Tab 2, so one must + set up the tabs accordingly.
    • +
    +
    +
      +
    • Interpolation Steps sets the + number of frames used to accomplish the interpolation. The + higher the number of steps the smoother the interpolation + will appear.
      +
    • +
    +
    +
      +
    • Image Size to set the dimensions + of the animated image to the size of the viewing window of the + active tab or to custom dimensions (in pixels).
      +
    • +
    +
      +
    • Image Options to set a margin + around the image to be animated in the recorded movie.
      +
    • +
    +
    +
    +
      +
    +
    + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Animation_Control/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image_dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image_dialog.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,89 @@ + + + + + Capture Image + + + Capture Image
    + Capture Image contains settings for capturing + and saving images from wb_view. +
      +
    • Source sets the Workbench + + + + + + Window to use for capturing the image. An + image will only be captured for the currently active tab + within the set Workbench Window.
      +
    • +
    +
      +
    • Crop to Tab/Window Lock Aspect Ration if the window or + tab has its aspect locked, image capture will exclude regions outside of the window or + tab locked region.
    • +
    +
      +
    • Dimensions sets the size of the + image to be captured.
    • +
    +
    +
      +
    • The default is the current size of the + Workbench Window set in Source.
    • +
    +
    +
    +
      +
    • Custom allows setting of the + dimensions of the image to be captured by pixels (absolute + or scaled proportionally to the window size) or by width and + height (in inches, cm, or mm) and resolution + (pixels/dimension).
      +
    • +
    +
    +
      +
    • Image Options contains settings + for automatically cropping an image and the background margin + (in pixels) to apply around the image.
      +
    • +
    +
      +
    • Destination contains settings + for copying the captured image to the clipboard or saving the + image to a file.
    • +
    +
    +
      +
    • Copy to Clipboard and Save + to File can each be selected or both may be selected. +
    • +
    +
      +
    • When save to file is checked, images + are saved by default to the folder wb_view was launched from + (or the folder containing the currently opened spec file). + To change the destination of the file, click the Choose + File… button.
      +
    • +
    +
    +
      +
    • Capture performs the capture + image operation.
      +
    • +
    +
    +
    +
      +
    + Capture_Image_dialog
    +
    +
    + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/File_menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/File_menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Capture_Image/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/File_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/File_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/File_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/File_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,213 @@ + + + + + File Menu + + + File Menu
    + The File Menu appears slightly differently in + the Mac version and PC/Linux versions due to Mac-exclusive wb_view Menu + (contains About wb_view..., Preferences, and Quit + + + + + + wb_view options). On PC/Linux the File Menu contains: +
      +
    • About wb_view... (on Mac's wb_view Menu) to view WB + version, compiling, OpenGL and operating system information.
    • +
    +
      +
    +
      +
    • Preferences + (on Mac's wb_view Menu) to set user specific Workbench configurations.
    • +
    + + +
      +
    • Duplicate Tab to open a new + Viewing Tab that duplicates the settings for the Active + + + + + + + + + + + Tab. The + shortcut for Duplicate Tab is Command/Ctrl + D.
    • +
    +
      +
    +
      +
    • Open File... to open any file in + a Workbench readable format. The + shortcut for Open File is Command/Ctrl + + + + + + + + + + + + + + + + + + O.
    • +
    +
      +
    • Open Location... to open + Workbench-readable files that are located remotely via a URL + that the user sets (custom) or standard files through + connection to ConnectomeDB (with login). The shortcut for Open Location is Command/Ctrl + L.
    • +
    +
      +
    • Open Recent Spec File... to open + a previously opened specification file from a dropdown list.
    • +
    +
      +
    • Open Recent Scene File... to open + a previously opened scene file from a dropdown list.
    • +
    +
      +
    • Save/Manage + + + + + + Files... to save and/or manage options for + all loaded files within one dialog. The shortcut for Save/Manage Files is Command/Ctrl + S.
    • +
    +
      +
    • Close All Files to close all + currently loaded files, without closing Workbench.
    • +
    +
      +
    + +
      +
    • Capture + Image... controls for capturing and saving + images from the Workbench window.
    • +
    + +
      +
    • Close Window to close the + currently active Workbench Window. The shortcut for Close Window is Shift + Command/Ctrl + W.
    • +
    +
      +
    • Exit (on Mac's wb_view Menu) to close the program.  + The shortcut for Exit is Command/Ctrl + Q.
      +
    • +
    +
    +
    +
      +
    +
    +
    +
    + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/File_menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/File_menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/._~$imation_Control.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/._~$imation_Control.docx differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/._~$le_Menu.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/._~$le_Menu.docx differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_Colors.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_Colors.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,126 @@ + + + + + Preferences + + + Preferences
    + Preferences, accessible under the wb_view menu + (Mac) or File menu + (PC or Linux), allows one to tailor the Workbench viewing + environment to one's preference. Changes to Preferences are saved + between Workbench sessions. Options include:
    + +
    Colors   + + + +  
    +
      +
    • Buttons to set the Foreground + (chart axes, colorbar labels, etc.) and Background + colors for All types of views, or Chart, Surface, or Volume + views separately.
      +
    • +
    +
    +  
    +
    +

    + + ID     +
      +
    • Show Surface ID Symbols to enable display of + identification symbols on surfaces. +
    • +
    • Show Volume ID Symbols to enable display of + identification symbols on volume slices. +
    • +
      +  
      + + Misc     +
        +
      • Logging Level to set the logging + default for + the terminal window (sometimes useful for examining + bugs).
        +
      • +
      • Save/Manage View Files to set + which files are listed upon opening the Save/Manage + + + + + + Files dialog (in the File Menu): All, + Loaded, Loaded:Modified, Loaded:Not Modified, Not Loaded.
        +
      • +
      • New Tabs Yoked to Group A to set + On/Off whether newly created tabs are by default Yoked + to the Group A yoking group.
        +
      • +
      • Settings to show/hide the Develop + Menu and show/not show the Splash + + + + + Screen at Startup. 
        +
      • +
      +
      +
      +  
      +
      + OpenGL  
       
      +
        +
      • Setting for the Image Capture + Method (OpenGL computer code) used by wb_view to + capture an image of the Viewing Window. Changing this setting + might resolve problems with image capturing on your system.
        +
      • +
      +
      +  
      +
      +
      + Volume 
         
      +
        +
      • Volume Axes Crosshairs to set + On/Off display of axes lines in all Volume views.
        +
      • +
      • Volume Axes Labels to set On/Off + display of superior (S)/inferior (I) and left (L)/right (R) + axes in all Volume views. 
        +
      • +
      • Volume Identification for New Tabs, + to set in newly created Tabs, On/Off movement of the volume slice/crosshairs + displayed to the same plane as the brainordinate selected in + that tab (or a yoked surface/volume tab).
        +
      • +
      • Volume Montage Slice Coord to + set On/Off display of x, y, or z coordinate slice position in + all Volume slice plane views.
        +
      • +
      • Volume Montage Precision to set + the decimal point precision of x, y, or z coordinate slice + position values in all Volume slice plane views.
        +
      • +
      +
      +  
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_ID.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_ID.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_Misc.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_Misc.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_OpenGL.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_OpenGL.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_Vol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Preferences_Vol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Preferences/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/._~$pture_Image.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/._~$pture_Image.docx differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Gear_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Gear_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Reload_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Reload_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Remove_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Remove_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files_dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files_dialog.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + Save/Manage Files + + + Save/Manage Files
      + Save/Manage Files contains save and/or manage + options for all loaded files/files within the loaded specification + + file within a single dialog. +
        +
      • Filter buttons at the top of the dialog + may be used to filter which files are listed by type, brain + structure, files currently loaded, or files currently + modified. One may set a Preference + (Misc tab) for which type of files one would like to typically + view (All, Loaded, Modified, etc.). The default is All files. +
      • +
      +
        +
      • Click the Save checkboxes to + select files to be saved (only modified files need to be + saved).
      • +
      +
        +
      • A red YES + in the Modified column warns you that a file has been + modified and may need to be saved.
      • +
      +
        +
      • A YES in the Displayed column + indicates that the file is currently being displayed in one of + the tabs of the Viewing Window.
      • +
      +
        +
      • The checkboxes in the In Spec + column may be deselected/selected to modify the contents of a + spec file. Remember to click the Save checkbox next to + the Spec file to save these changes.
      • +
      +
        +
      • Files with a  button in + the Read column are currently loaded into memory. Click the + button to reload the file.
      • +
      +
        +
      • Files with a  button in + the Read column are NOT currently loaded into memory. Click to + load the file.
      • +
      +
        +
      • Clicking the  button in + the Close column removes the file from memory.
      • +
      +
        +
      • Clicking the  button in the + More column shows options to view/edit metadata and change the + name of the file.
      • +
      +
        +
      • All changes made in the Save/Manage Files + dialog must be confirmed by clicking the Save Checked + Files button at the bottom right.
        +
      • +
      +
      +
      +
        +
      +
        +
      +
      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Upload_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Save-Manage_Files/Upload_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/File_Menu/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Bug_Report_box.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Bug_Report_box.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_box.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_box.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_button.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + Help Menu + + + Help Menu
      + The Help Menu contains information about using + wb_view functionality/GUI features and wb_command utilities. +
        +
      • Search (Mac version only) allows + one to search for keywords in the wb_view Menus(only).  + For example, type in "tool" and a list of Menu items that + include the word tool appear. The Help Topics listed below + wb_view Menu Items are general Mac help topics that include + "tool".
      • +
      +
        +
      • Workbench Help... Opens the Help + Window containing information on functions and features.  + The Help Window is also accessible through the + button in the top right of the Workbench + Window
      • +
      +
        +
          +
        • The branched list links to information + about each Workbench component.
          +
        • +
        • Open branches by clicking the triangles + to the left.
          +
        • +
        • Click on a topic to show information on + the right. 
          +
        • +
        • The open field above the list allows + searching for keywords within all Help entries.
          +
        • +
        • Collapse All and Expand All + buttons collapse and expand the branches on the list for + ease in finding topics. By default, items in the Glossary + and wb_command are collapsed, while topics for wb_view are + expanded.
          +
        • +
        +
      + +
        +
      • Report a Workbench Bug... pops up + a form that outlines information needed to investigate bugs + found by users. Please upload relevant data and send an email + to workbench_bugs@brainvis.wustl.edu + with this information if you encounter a bug.
        +
        +
      • +
          +
        +
      +
      +
      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Search.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Help_Search.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Workbench_Help.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Help_Menu/Workbench_Help.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Surface_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Surface_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Surface_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Surface_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,94 @@ + + + + + Surface Menu + + + Surface Menu
      + The Surface Menu allows one to find information + and set parameters for surfaces viewed in Workbench. +
        +
      • Information... will open a popup + that shows geometric information on the surface being viewed + in the current Active + + + + Tab. If the active tab does not contain a + surface, this option is inactive.
      • +
      +
        +
      • Surface Properties sets display + options for all surfaces across a Workbench session.
      • +
      +
      +
        +
      • Display Normal Vectors sets + whether vectors at 90 degrees to the surface will be shown + for each vertex.
      • +
      +
      +
      +
        +
      • Drawing Type sets how the + surface mesh is drawn in wb_view.
      • +
      +
        +
          +
        • Hide hides the surface and + all layers drawn on it.
          +
        • +
        • Links (Edges) + shows the links between surface vertices giving a mesh + appearance.
          +
        • +
        • Vertices shows only the vertex + points across the surface.
          +
        • +
        • Triangles shows the + full surface (mesh filled in with interpolated information + between the vertices).
        • +
        +
      +
      +
      +
        +
      • Link Diameter sets the diameter + of the links when in Links (Edges) drawing mode.
      • +
      +
      +
      +
        +
      • Vertex diameter sets the + diameter of vertices when in Vertices drawing mode.
      • +
      +
        +
      • Opacity sets the opacity of the + surface when in Triangles drawing mode. Opacity in the Overlay + Toolbox sets layer opacity.
        +
      • +
      +
      +
      +
      +
        +
      • Volume interaction sets the + surface used for mapping to volume voxels. This is used in + the Volume/Surface Outline feature and for volume to vertex + identification. 
        +
      • +
      +
      +

      +
      +
      +
      +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Surface_Properties.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Surface_Properties.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Volume_Interaction_Surfaces.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Surface_Menu/Volume_Interaction_Surfaces.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,35 @@ + + + + + Gaps and Margins + + + Gaps and Margins
      + Gaps and Margins contains controls for adjusting + margins in a surface or volume montage and margins around tab content. + All gaps and margins are specified as a percentage of the width or + height. + +
        +
      • Window selects the window to which the + gaps and margins are applied.
      • +
      +
        +
      • Montage Gaps sets gaps in surface or + volume montages.
      • +
      +
        +
      • Tab Margins sets margins around the + edges of tabs.
      • +
      +
        +
      • Match Pixel Size to TopWill adjust the + percentage width so that the actual pixel width of left/right margins is + the same as the pixel height of top/bottom margins.
      • +
      + + +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,91 @@ + + + + + Tile Tabs Configuration + + + Tile Tabs Configuration
      + Tile Tabs Configuration contains options for + different ways to display Viewing + + + + + + Tabs in the Viewing + + + + + + + + + + + + + + + Area.   +
        +
      • Create and Edit...  allows + the user to save preferred tab configurations. These are saved + locally and can be opened between Workbench sessions (as long + as the same system is used). The + shortcut for Create and Edit... Tile Tabs Configuration + is Shift + Command/Ctrl + M. +
      • +
      +
      +
        +
      • Select New... to create a new + configuration. Once the new configuration is named, it is + added to the bottom of the list of options under the Tile + Tabs Configuration menu. One can interactively adjust the + configuration and see the results (if in Tile Tabs viewing). + To edit previously created configurations, select the + desired configuration from the selection box.
      • +
      +
      +
      +
        +
      • Rename... and Delete... + allow the user to curate the list of Tile Tab + configurations.
      • +
      +
        +
      • Select/Edit the number of rows and + columns the tabs will be placed in.  Stretch + Factors allows for adjustment of the relative size of + the Tile Tabs panes for each row and column of panes. When + entered, the values are automatically saved locally as + preferences.
        +
      • +
      +
      +
      +
        +
      +
      +
      +
        +
      • All Tabs (Default) will put all + opened Viewing Tabs into the viewing area with the default + settings being equally sized partitions. (i.e. 3-4 tabs = 2 + rows 2 columns, 5-6 tabs = 2 rows 3 columns; 7-9 tabs = 3 rows + 3 columns).
      • +
      +
        +
      • From Scene: is automatically + selected when a scene + that has Tile Tabs utilized, is opened.  This option can + be selected/deselected but not edited.
        +
      • +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/View_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/View_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/View_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/View_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,134 @@ + + + + + View Menu + + + View Menu
      + The View Menu + controls display options for the Workbench + + + + + + Window (Toolbar, Toolboxes, Tabs): + + + +
        +
      • Enter Full Screen expands the + Viewing Area to take up the entire screen. All Toolbars, + Toolboxes, etc. are hidden. The Esc key exits Full + Screen. The shortcut for Enter + + + Full Screen is Command/Ctrl + + + + + + + + + + + + F.
      • +
      +
        +
      • Enter Tile Tabs switches the + Viewing Area from displaying one Viewing Tab at a time to a + configuration that can display multiple Viewing Tabs at once. + Viewing Tabs are shown in Tile Tabs left to right, and in one + or more rows, in the order of their arrangement in normal + viewing configuration. See Viewing + + + + + + Tabs to learn how to change the order of the + tabs. The Esc key exits Tile TabsThe shortcut for Enter Tile Tabs is Command/Ctrl + M.
      • +
      +
        +
      • + Gaps and Margins > Enables adjustment of gaps in a surface + or volume montage and margins around tab regions. +
      • +
      + +
      +
      +
        +
      +
      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/View_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/View_Menu/View_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/._~$_view_Menu.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/._~$_view_Menu.docx differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,53 @@ + + + + + wb_view Menu + + + wb_view Menu
      + The wb_view Menu is exclusive to the Mac + version and contains: +
        +
      • About wb_view... (Workbench + version, compiling, operating system, and OpenGL information). +
      • +
      +
        +
      • Preferences User settings for the wb_view UI. The shortcut for Preferences is Command/Ctrl + , (comma).
      • +
      +
        +
      • Mac-specific options that are available + in all applications (Services, Hide wb_view, Hide + + Others, Show All). The + + shortcut for Hide wb_view is Command/Ctrl + H; shortcut for Hide + Others is alt/option + Command/Ctrl + H.
      • +
      +
        +
      • Quit wb_view (to close the + program). The shortcut for Quit + + + wb_view is Command/Ctrl + + Q.
        +
      • +
      +
      +  

      +
      + In the PC and Linux versions, About wb_view..., + Preferences, and Exit (to close the program) + options appear in the File + menu.
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/IdentifyBrainordinateDialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/IdentifyBrainordinateDialog.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Rename_tab.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Rename_tab.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Window_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Window_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Window_Menu.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Window_Menu.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,139 @@ + + + + + Window Menu + + + Window Menu
      + The Window Menu contains options for viewing Viewing + + + + + + + + Tabs and Workbench + + + + + Windows. +
        +
      • Next Tab switches to the Viewing + Tab to the right of the currently displayed tab.  The + shortcut for Next Tab is Command/Ctrl + right + arrow.
      • +
      + +
        +
      • Lock Window Aspect locks the aspect ratio + for the entire graphics region in the window.
      • +
      +
        +
      • Lock Tab Aspect locks the aspect ratio + for the graphics region in the selected tab.
      • +
      +
        +
      • Lock Aspect Ratio for All Tabs locks the aspect ratio + for the graphics region in each tab in the window.
      • +
      +
        +
      • Unlock Aspect Ratio for All Tabs unlocks the aspect ratio + for the graphics region for each tab in the window.
      • +
      + + +
        +
      • Next Tab switches to the Viewing Tab to the right of the + currently displayed tab.  The shortcut for Previous Tab is + Command/Ctrl + right arrow.
      • +
      +
        +
      • Previous Tab switches to the Viewing Tab to the left of the + currently displayed tab.  The shortcut for Previous Tab is + Command/Ctrl + left arrow.
      • +
      +
        +
      • Rename Selected Tab... allows + the user to rename the Viewing Tab with any name or descriptor + they choose.
        +

        +
      • +
      +
      +
        +
      • Move All Tabs in Current Window to + New Windows separates all of the Viewing Tabs out into + individual Workbench Windows.
      • +
      +
        +
      • Move All Tabs From All Windows Into + Selected Window takes all individual Workbench Windows + and turns them into Viewing Tabs within a single Window.
      • +
      +
        +
      • Move Selected Tab to Window > moves + + + + + + + + + the active Viewing Tab into a new Window (if there are no + other Windows open) or into another existing Window.
      • +
      + +
        +
      • Information + + + + + Window opens the Information + Window.  When the user clicks on a surface or volume in + the viewing area, this is where the information for that + location is displayed.
      • +
      +
        +
      • Scenes... + opens the Scenes Window.  When there + is a check mark in front of this option (as shown below), it + means the Scene box is open.  Click this option again and + it will close the Scenes Window.
      • +
      +
        +
      • Bring All To Front pulls all of + the Workbench elements (Windows, Toolboxes, etc.) that are + opened, out in front of all other displays (Terminal windows, + browsers, applications, etc.).
      • +
      +
        +
      • Tile Windows organizes all open + Workbench Windows into columns and rows.
        +
      • +
      +  
      +  
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Window_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Menus/Window_Menu/Window_Menu.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Mouse_Controls/Mouse_Controls.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Mouse_Controls/Mouse_Controls.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Mouse_Controls/Mouse_Controls.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Mouse_Controls/Mouse_Controls.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,96 @@ + + + + + Mouse Controls + + + Mouse Controls
      + Several basic surface and volume viewing and + navigation functions are controlled with the mouse and are only + active when the mouse cursor is within the Viewing + + + + + Area +
        +
      • Rotate: hold down the left + mouse button and move the mouse back and forth and up + and down. Note that the rotation function is not active in Volume + View. All other mouse controls are active in + all views.
      • +
      +
        +
      • Zoom: press the + Command/Ctrl key + the left mouse button + and move the mouse up and down. If you have a mouse wheel, you + can also scroll up to zoom out or scroll down to zoom in. +
      • +
      +
        +
      • Pan: (move the brain + surface to a different part of the Viewing Area), press + the shift key + the left mouse button + and move the mouse left, right, up, or down.
      • +
      +
        +
      • ID: To identify a brainordinate, + click on the brain surface or volume slice. A sphere will + appear where the surface was clicked. Also, the Information + + + + + + + + + + + window will pop up, showing information on + the particular vertex/voxel that was clicked.
        +
      • +
          +
        +
      +
        +
          +
        • The color and size of the ID sphere can + be adjusted using the Properties + button in the Information window.  
          +
        • +
        +
      +
        +
          +
        • Reclicking on the sphere deselects that + brainordinate and the sphere will disappear.
        • +
        +
      +
        +
      • Right clicking on a + surface or volume slice, brings up a menu of + options depending on what is loaded (see images).
      • +
      +
        +
      • Right clicking in the Viewing Area, + but not on a surface or volume, pops up the single option to + Remove All Vertex Identification Symbols.
        +
      • +
      +
      +
      +
        +
      +
      +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Mouse_Controls/RightClick_Surface.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Mouse_Controls/RightClick_Surface.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Mouse_Controls/RightClick_Volume.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Mouse_Controls/RightClick_Volume.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Mouse_Controls/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Mouse_Controls/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/gear-button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/gear-button.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + Open Spec File Dialog + + + Open Spec File Dialog
      + The Open Spec File Dialog lists all the files + contained in the Specification + + + + file, organized by file type.  +
        +
      • The tabs in the View File Types: + and View Structures: bars at the top of the dialog + allow the user to view a subset of the data files by clicking + on a specific file or structure type.
      • +
      +
        +
      • Checkboxes on the left indicate which + files will be loaded once the Load button, in the + lower right, is pressed. All files are selected by default. + Toggle off a checkbox to keep those files from being + loaded.  To check or uncheck all the files, click All + or None in the Select Files: bar near the top + of the dialog.
      • +
      +
        +
      • The Data Type, Structure, + and Data File Name headers can also be clicked to sort + the list of files by these attributes.
      • +
      +
        +
      • The More  + gear buttons to the right of each checkbox will, once + implemented, allow the user to select options to Set the + Structure for a file (e.g. Cerebellum, Cortex Left, + etc.) or to View Metadata associated with the file. + Clicking on these buttons now,  will display these + options as greyed out, indicating that this feature is not yet + implemented.
        +
      • +
      +
      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Open_Spec.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Open_Spec.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Open_Spec_File_Dialog/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting_History.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting_History.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,114 @@ + + + + + Charting + + + Charting
      + The Charting tab in the Overlay Toolbox + contains controls for display of data graphs and matrices. The Active + + + + + + + + + + Tab must be in Chart + + + + View in order for this tab to be active (not + grayed-out). For Data/Time Series chart type, Select checkboxes + indicate whether file(s) will be charted when a brainordinate is + identified (in another Viewing Tab).  +
        +
      • Loading shows loaded Data + Series, Matrix, OR Time Series files to select for charting, + depending on which Chart Type is selected in the Toolbar.
      • +
      +
        +
          +
        • For Data/Time Series + chart type, Select checkboxes indicate whether + file(s) will be charted when a brainordinate + is identified (in another Viewing Tab).
          +
        • +
        • For Matrix chart type, + select a loaded file from the dropdown (only one matrix file + can be shown at a time). As in the Layers tab, wrench and + colorbar settings buttons allow one to set the palette for + the data displayed in the matrix and display a colorbar of + the palette spectrum, respectively.
          +
        • +
          +
        +
        +
          +
        +
      • History shows a list and line + color for each identified vertex that has been charted. + History is only active for + Data/Time Series chart types.
      • +
      +
        +
          +
        • The chart displays + a data + value (y-axis) for each Map Index/unit of time (x-axis). + The color of the selected brainordinate will match the + color of (one of) the chart(s) graphed for that + brainordinate.
          +
        • + +
        • Each charted + graph can be turned on/off of the display with the + checkboxes. Most recent charts are listed at the top of + the history.
          +
        • + +
        • Show Average displays an + averaged chart for all of the data displayed on + the chart (charts graphed from different files will be + averaged together). If displayed charts have differing + numbers of data points, the average will have the same + number of datapoints as the last graphed chart (listed + at top).
          +
        • +
        • Show last selects the total + number of charts to be displayed both in the Viewing + Area and in the History. This setting is not retroactive + and one may want to set this for a high value if + multiple files are being charted at once. If a + brainordinate "falls out" of the listed history/display, + it will be displayed as the brainordinate ID symbol + color set in Information + + + + + + + + Window > Properties.
          +
        • +
          +
          +
        +
        +
        +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting_Loading.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Charting_Loading.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Charting/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,69 @@ + + + + + Connectivity + + + Connectivity
      + The Connectivity tab in the Overlay Toolbox + contains a listing of loaded Connectivity and Fiber Orientation + files and links.
      +
      + URL links (loaded using Open Location... in File Menu) + to remotely stored files are often used to access large (>30 + GB) connectivity matrix files, loading one row of the matrix at a + time as needed, rather than having to locally store and load the + whole 90,000 x 90,000 matrix into memory.
      +
        +
      • On + checkboxes toggle on/off data loading from the listed + connectivity file for identified brainordinates (selected + by left clicking on surfaces or volumes). If checked, every + time a brainordinate is selected, data will be + loaded into memory from that file for that brainordinate, + regardless of whether it is displayed in any viewing tab. + For best performance, toggle off connectivity loading for + files not currently in use.
      • + +
      + +
        +
      • Copy + copies the data from the currently loaded matrix row + (for the currently selected brainordinate) and creates a + new *.dscalar file containing this map data. The new + file(s) created this way will appear and can be saved + (and renamed, if desired) in the Save/Manage + + + + + Files Dialog.
      • + +
      + +
        +
      • Connectivity File + lists links or paths to loaded dense or + parcellated connectivity matrix files. For dMRI-based + tractography connectivity (trajectory or *.traj*) + files, an associated Fiber Orientation File + must also be loaded for display and is listed to the + right.
        +

        +
      • +
      +
      +
        +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Add_Layer.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Add_Layer.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Colorbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Colorbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Layers.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Layers.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Layers.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Layers.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,84 @@ + + + + + Layers + + + Layers
      + The Layers tab in the Overlay Toolbox + contains controls for display of data maps on surfaces or in volumes. + +
        +
      • By default, 3 layers are loaded into the + Layers tab. The top layer of displayed data is listed as the + first row, the second layer below that, etc., like a layer + cake.
      • +
      +
        +
      • Checkboxes under On at the left + indicate whether the data listed for that layer is being + displayed. When a top layer is unchecked, the layers + underneath that layer are visible.
      • +
      +
        +
      • The File pulldown sets the file + to display on that layer. Only loaded files that can be + displayed in the type of view set for the Active + + + + Tab will be options. Files can + contain one or more brain Maps that may be selected by + number or name in the pulldowns to the right.
      • +
      +
        +
      • Clicking the + button opens the Overlay + + + + and Map Settings box that contains several + tabs for setting display options for the different types of + Layers data: Labels, Layer (volume layer settings), Metadata, + Palette, Parcels, Trajectory.
      • +
      +
        +
      • Clicking the + button toggles on the colorbar for the displayed layer's + palette. The values at the top of the colorbar change with + each map to match the range of data displayed.
      • +
      +
        +
      • Clicking the + button shows options for moving, adding and removing layers + relative to the layer in which this button was selected. +
      • +
      +
        +
      • Opacity sets the opacity of the + layer. 1.0 is 100% opaque. If the opacity is set to a low + value, layers under the selected layer will show through. +
      • +
      +
        +
      • Yoke sets map yoking between + layers to a map yoking group denoted by a Roman numeral. + Navigation between maps of layers in the same map yoking group + will be yoked (move together). If files with differing numbers + of maps are set to the same map yoking group, a warning will + appear before yoking is activated. 
        +
      • +
      +
      +
      +
      + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,150 @@ + + + + + Overlay and Map Settings + + + Overlay and Map Settings
      + Overlay and Map Settings sets display options for layer + data selected in the Overlay Toolbox + Layers tab. +
        +
      + To open these settings, click the  button for a selected layer.
      +
        +
      +
        +
      • The box contains + tabs with options for different types of Layers data: Labels, + Layer (volume layer settings), Metadata, Palette, + Parcels, Trajectory. Tabs will be + active (not grayed-out), depending on the data in the File + selected for that layer.
      • +
      +
        +
      • The Do Not + Replace option at the bottom of the box allows more + than one Settings box to be open at a time. Otherwise, if + settings for another layer is selected the contents of the + box will switch to options for that most recently selected + layer.
      • + +
      + +
        +
      • Color Bar contains controls for + the adjustment of color bar attributes. Fine tuning of the color + bar is performed using the annotation editing features.
      • +
      +
        +
      • Labels contains an Edit + button used for modifying the color and name of labels in + a  *.label or *.dlabel file. Edits are applied within + the session when the Apply or OK buttons are + clicked. The edits are not written to the label file until + saved in Save/Manage + + + + + + + + + + + Files.
      • +
      +
        +
      • Layer contains voxel drawing + settings for files containing volume data. The 3D options to + draw voxels as cubes or rounded cubes are only active in All view. + These options should only be used for files with a + limited number of voxels to draw (*.dscalar files that + contain only subcortical voxels, low resolution volumes, or + highly thresholded higher resolution volumes) because + wb_view attempts to draw all voxels in the volume, causing + the program to hang when large numbers of voxels are + drawn.
      • +
      +
        +
      • Metadata will allow + creation/editing of map metadata for each layer file. This + option is not active currently.
      • +
      +
        +
      • Palette (see image) contains + settings for adjusting the type and range of the data color + palette, setting thresholds on displayed data, and shows a + histogram/basic statistics on the data distribution. +
      • +
      +
      +
        +
      • Thresholds set by the sliders + or entered values in the toggle box are shown by the + shading in the histogram and can be applied inside or + outside the set values.
      • +
      +
      +
      +
        +
      • Palette spectrum is set for + the Full range of the map data, a Percent + range of the full data, or a Fixed range of the full data + values. Positive, zero, or negative values may be toggled + on/off for display with the checkboxes.
      • +
      +
      +
      + +
      +
      +
        +
      • Data Options + allow a palette setting to be applied to all maps in a + data file and/or to multiple data files.
      • +
      +
      +
        +
      • Parcels + sets the mode and color for which an identified parcel is + indicated on the surface. Color Mode: Outline + indicates the selected parcel's boundary with a highlight + color, Fill shows the entire selected parcel with + the highlight color, and Off turns off the parcel + indication altogether.
      • +
      +
        +
      • Trajectory + sets Attributes, Display Mode, and Data Mapping for + display of tractography trajectory files. This tab is + currently inactive pending the release of tractography + data.
        +
      • +
      +
      +
      +

      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Palette_Settings.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Palette_Settings.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Settings_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Settings_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_Toolbox_horiz.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Overlay_Toolbox_horiz.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Settings_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Layers/Settings_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_horiz.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_horiz.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,70 @@ + + + + + Overlay Toolbox + + + Overlay Toolbox
      + The Overlay Toolbox contains controls for + setting the data to be displayed on structures and in charts.
      +  
      + By default, the Overlay Toolbox is attached to the bottom of the Workbench + Window, under the Viewing + + Area, in a horizontal configuration (top image). +
      It can also be attached to the left side + of the Viewing Area, in a vertical configuration (bottom image, + set in View + menu >  Overlay Toolbox). Either + configuration can be detached from the Workbench Window by left + click + drag on the top of the + Overlay Toolbox. To reattach, double click on the top of the Overlay + Toolbox.
      +
      + There are 4 tabs in the Overlay Toolbox, each controlling a + different type of data viewing:
      +
        +
      • Layers + controls display of data maps on surfaces or in volumes.
      • +
      +
        +
      • Charting + controls which files are charted and, for data series/time + series, which data for identified vertices is being displayed + on a chart. 
      • +
      +
        +
      • Connectivity + controls which Connectivity and Fiber orientation files, data + is being loaded from for display.
      • +
      +
        +
      • Vol/Surf + Outline controls display of surface contours + on volume slices/planes.
        +
      • +
      + Tabs and files available for viewing change + depending on whether you are in Chart view, + Montage + view, Volume view, + All view, + or Surface + + view
      +
      +
        +
      +
      +
      +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_vert.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_vert.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Color-Vol-Surf_Outline.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Color-Vol-Surf_Outline.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Tab-Vol-Surf_Outline.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Tab-Vol-Surf_Outline.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,61 @@ + + + + + Vol/Surf Outline + + + Vol/Surf Outline
      +
      The Volume Surface + Outline tab (Vol/Surf Outline for short) in the Overlay Toolbox + allows one to set parameters for viewing brain surface + outlines on volume slices in the Volume or All (Whole Brain) Viewing + + + + Tabs (inactive in all other Views). 
      +
      + This is useful for comparing Freesurfer, or otherwise + reconstructed, surfaces with volume slices, as a check of the + quality of the surface.  It is also useful for viewing + Connectivity data (dense connectivity and BOLD dense data series + files) on both the cortical ribbon and in subcortical voxels.
      +
        +
      • On checkbox toggles on/off a brain surface outlined + on a volume slice view.
      • +
      +
        +
      +
        +
      • Color Source sets the coloring of + the outline as provided by either (A) the displayed overlays + from another Tab, or (B) from a list of default solid colors.
      • +
      +
        +
      • Thickness sets the width of the + lines.
      • +
      +
        +
      • File selects which surface will be + used for the outline display.
        +
      • +
      +
      +
      +
        +
      + A
      +
      +
      + B
      +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,66 @@ + + + + + Create New Scene File + + + Create New Scene File
      + To create a new Scene File, open + the Scenes Window + by clicking the button in the top right corner of the Workbench + + + + + Window
      +
        +
      • Click the New... button.  + Set the Scene File name and location (default location is the + directory where wb_view was launched). 
      • +
      + +
        +
      • To add to an existing Scene File, select + the desired file from the Scene File selection pull-down. If + the desired file is not an option here, load the file using + File>Open File... and it should appear. +
      • +
      +
        +
      • Once one has set up the display of data + as desired, use the Add... button to add a scene. Enter + the Scene Name and any additional Description + to the basic information added by default about what is being + displayed in the Active + + + + + Tab
      • +
      +
        +
      • The BALSA Scene ID will be + provided by the BALSA Database when the Scene File is uploaded. + This feature is still in development at this time.
      • +
      +
        +
      • Toggling off the Options at the + bottom may be particularly useful when many files are loaded, + but only a few are displayed, or if one wants to create a + scene that displays only the Active Tab, for clarity.
      • +
      +
        +
      • Click OK. The new scene will be + added to the list of scenes in the Scenes Window, along with a + thumbnail image of the scene's Active Tab.
        +
      • +
      +
      +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Scenes button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Scenes button.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Create_New_Scene_File/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Scenes_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Scenes_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Scenes_Window.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Scenes_Window.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,111 @@ + + + + + Scenes Window + + + Scenes Window
      + The Scenes Window is the interface to + save the current Workbench session (loaded files and settings) as + a Scene + (in a .scene file).  Scenes allow one to save a snapshot of a + Workbench session that contains a record of all of the files + loaded and view settings, making it easy to get to a specific + display.  Using scenes, one can "pick up where they left off" + when reopening Workbench. +
        +
      • Scene File selection is used to + choose among loaded Scene files. Use File>Open + File... to load an existing scene file and have it + show up in this selector.
      • +
      +
        +
      • BALSA Study ID contains the + Study ID that is provided when uploading the scene file to + the BALSA Database (currently in development). Press the + Edit button to change this value.
      • +
      +
        +
      • New... button creates a new + Scene File.  A new Scene File is created with no scenes + within it. Add any number of scenes with the Add + button.
      • +
      +
        +
      • Show + loads the active (highlighted in blue) scene.  Double + clicking on a scene's title/description will also show the + scene.
      • +
      +
        +
      • Preview... opens a separate window with an enlarged + display of the highlighted scene's thumbnail along with the + name and description.
      • +
      +
        +
      • Add... creates a new scene + within the current Scene File and adds it to the bottom of + the list of scenes.  The scene needs to be set up + before clicking this button.
      • +
      +
        +
      • Insert... creates a new scene + that is added to the scene list above the currently + highlighted scene.
      • +
      +
        +
      • Replace... is used to modify an existing scene.  The highlighted scene + will be overwritten at the time the Replace button + is clicked, therefore make scene changes before clicking + this button.   When a scene is replaced, the + name/description of the scene can also be edited. 
      • +
      +
        +
      • Move Up moves the selected scene + up one position in the list of scenes.
      • +
      +
        +
      • Move Down moves the selected scene + down one position in the list of scenes.
      • +
      +
        +
      • Delete... allows one to delete a + highlighted scene from the Scene File.
      • +
      +
        +
      • Show Scene Options
      • +
          +
        • Use background and foreground colors from scene when + a scene is created, the + foreground and background colors are added to the scene and will be used when the + scene is displayed. Note that the background and foreground colors are adjusted + using the Preferences Dialog. When a scene is loaded that contains background and + foreground colors, they will override the user's Preferences colors until a + different scene is loaded, a spec file is loaded, or this checkbox is unchecked. +
        • +
        +
      + Note: All additions and modifications to a + scene file are not ultimately saved (to disk) until one clicks Save + + + + + + checked files in Save/Manage + + files (accessed from the File menu).
      +
      +
      +
      +
        +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Scenes_Window.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Scenes_Window.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Scenes_Window/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Scenes_Window/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/CiftiFileRow.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/CiftiFileRow.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/Indentify_Brainordinate.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/Indentify_Brainordinate.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,65 @@ + + + + + Select Brainordinate + + + Identify Brainordinate
      + Allows one to identify a brainordinate by its CIFTI file row, + CIFTI parcel membership, Label, or by it Surface vertex. +
        +
      • Surface Vertex
        +
      • +
          +
        • Structure sets the hemisphere + on which the vertex will be identified. 
          +
        • +
        • Vertex Index sets the vertex + number to be identified. 
          +
        • +
        +
      +
        +
      • Cifti File Row is only an active + option when a Dense Connectome, Dense Parcel or Trajectory + file is loaded (only dense CIFTI files activate this + selection).
        +
      • +
          +
        • File selects the file from + which a particular row will be viewed.
          +
        • +
        • Row Index sets the matrix row number to be mapped (also + + + + + + + + + identifies the corresponding vertex, which is not the + same as the row index). The Row index + will be displayed as the Map selection in the Overlay + + + + + + + Toolbox: Layers + tab.
        • +
        +
      +
      +
      +
      + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Splash_Screen/Splash_Screen.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Splash_Screen/Splash_Screen.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Splash_Screen/Splash_Screen.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Splash_Screen/Splash_Screen.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,75 @@ + + + + + Splash Screen + + + + Splash + + + + + + + + + Screen
      + The Splash Screen opens by default upon launching wb_view and + contains: +
        +
      • Workbench version information
      • +
      + +
      +
        + +
      • Shortcut list for + opening Specification + + + + + + + + + + + + + + files (spec files) and scene files in the current + directory or those that have been recently opened.
        +
        + To select and open + a Spec file listed, select its title and click the Open + button, or double click on its title.
        +
        + To turn off the default opening of the + Splash Screen at startup, turn off this option in Preferences + (File menu + or wb_view + + menu [Mac]).
        + +
          +
          +
          +
        +
        +
        +
      • +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Splash_Screen/Splash_screen.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Splash_Screen/Splash_screen.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Splash_Screen/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Splash_Screen/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_Toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_Toolbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_View.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_View.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,184 @@ + + + + + All View + + + All View
      + All View displays the left and right hemisphere surfaces (and + cerebellum if loaded) and all 3 volume planes in one Viewing + + + + + + + + + + + + + + + Tab. In All View, the Toolbar looks like this:
      +
      + +
        +
      • Orientation contains buttons to + set orthogonal and User-defined views of the brain + surfaces/volume displayed.
      • +
      +
        +
      +
      +
        +
      • Orthogonal view buttons are labeled: + L (left), R (right), D (dorsal), V + (ventral), A (anterior), and P + (posterior). 
      • +
      +
      +
        +
          +
        +
      +
      +
        +
      +
      +
      +
        +
      • The Reset button resets the + orientation/zoom to the default.
      • +
      +
      +
      + +
      +
        +
      • Surface Viewing contains + pull-downs and check-boxes to set the surfaces to view: L + (left hemisphere), R (right hemisphere), C + (cerebellum).
      • +
      +
        +
      +
      +
        +
      • The top pull-down menu changes the + type of surface: Anatomical, Inflated or Very Inflated.
      • +
      +
      +
      +
        +
      • The check-boxes to the left of the L, + R and C turn on/off the display of that structure.
      • +
      +
      +
      +
        +
      • To change the structure's surface + file, click on the L, R or C button and a list of loaded + files will appear for selection.
      • +
      +
      +
      +
        +
      • The scroll boxes + to the right, control the spacing between left and right + hemispheres (relative to anatomical spacing = 0) and the + spacing of the cerebellum away from the cortex.
      • + +
      +
      + +
        +
      • Slice Indices/Coords + contains toggles to turn off/on volume planes (P = + parasagittal, C = coronal, A = axial) and + settings for the slice index and stereotaxic (Talairach) + coordinate to be viewed. 
      • +
      +
        +
      +
      +
        +
      • The vertical Origin button + rests the slice indices to the default (centered at the + AC).
      • +
      +
      +
      +
      +
        + +
      • The  button (default + on) activates movement of the crosshairs/volume slice to the + same plane as the brainordinate selected in any of the + Viewing Tabs in the same yoking group as the All tab.
      • +
      +
      +
      +
        +
      • The pull-down at the bottom toggles + between Orthogonal and Oblique + volume viewing.
      • +
      +
      + +
        +
      • Clipping + contains settings for cutting down Surface, Volume, or + Features data to be viewed.
      • +
      +
        +
      • Tab + contains cross-tab functions for yoking the display of + two or more Viewing Tabs.
        +
      • +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_view.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/All_view.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/Volume_ID_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/All_View/Volume_ID_button.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/ChartView_dtseries_DataSeries.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/ChartView_dtseries_DataSeries.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Chart_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Chart_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Chart_View.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Chart_View.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,93 @@ + + + + + Chart View + + + + Chart View
      + Chart View displays 2-dimensional graphs or + matrices of Workbench-chartable files.
      +
      + Chart Type, determines which kind of + graph is viewed. If one or more Workbench-chartable files are + loaded, one or more Chart Types will be available for selection. + Chartable files for the selected Chart Type are listed and can be + selected for display in the Overlay Toolbox Charting + tab.
      +  
      + Chart Types currently available:
      + Data/Time + + Series (top image) chartable files are graphed + for a brainordinate identified in a non-Chart view Viewing Tab, + showing a data value (y-axis) for each Map Index/unit of time + (x-axis). The following file types are available for Data/Time + Series charting, as long as they contain more than one + map: +
      +
      + * CIFTI + Data Series (.dtseries.nii)
      + * + CIFTI Parcel Scalar (.pscalar.nii)
      + * + CIFTI Parcel Series (.ptseries.nii)
      + * + CIFTI Scalar (.dscalar.nii)
      + * + Metric (.func.gii, .shape.gii)
      + * + Volume (.nii, .nii.gz)
      +
      + Matrix + (bottom image) chartable files:
      +
      + * + CIFTI Parcel to + parcel connectivity (.pconn.nii) -- matrix + + + + + with parcels as the y-axis rows, parcels as the x-axis columns, + and the colored cells indicate the correlation (connectivity) + values between the parcel pair.
      + * + CIFTI Parcel Scalar (.pscalar.nii) -- matrix + + + + with parcels as the y-axis rows, map indices as the x-axis + columns, and the colored cells indicate the scalar data value + for a parcel/map pair in a particular parcel + (identified in a non-Chart view Viewing Tab). 
      +
      +
      +
      +  
      +
      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/ChartView_pscalar_Matrix.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/ChartView_pscalar_Matrix.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartDataSeries.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartDataSeries.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_DataSeries_Toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_DataSeries_Toolbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_dtseries_DataSeries.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_dtseries_DataSeries.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_pscalar_Matrix.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_pscalar_Matrix.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,61 @@ + + + + + Data/Time Series Chart View + + + Data/Time Series Chart View
      + When Data Series or Time Series is selected as + the Chart Type, the Toolbar + appears like this:
      +
      +
      +
        +
      • The only difference between a Data Series + or Time Series file is that in a Time Series, the Map Index is + a unit of time (each map in the series shows data at a + particular timepoint).
      • +
      +
        +
      • Select a Data/Time Series chartable + file in the Overlay Toolbox Charting + tab.
      • +
      +
        +
      • Charts are viewed for a particular + brainordinate, therefore you must click on a grayordinate in a + volume or surface Viewing + + + + Tab, then click back to the Chart tab to + view the graph for that location. The color of the graph + should match the color of the brainordinate ID sphere, as + shown in the image:
        +
      • +
      +
      +
      +
        +
      • Chart Axes:  Allows + adjustment of the minimum and maximum values for each axis. + The Auto checkboxes indicate that the range for the + axis is automatically set to the min and max of the data being + displayed.
      • +
      +
        +
      • Chart Attributes: To adjust + attributes of the chart display, such as the width of the + graph line.
      • +
      +
        +
      • Tab: These across Tab + functions do not affect Chart View.
        +
      • +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/ChartView_Matrix_Toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/ChartView_Matrix_Toolbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,97 @@ + + + + + Matrix Chart View + + + Matrix Chart View
      + When Matrix is selected as the Chart Type, the + Toolbar appears + like this:
      +
      +
      +
        +
      • Select a Matrix chartable file in the Overlay Toolbox Charting + tab.
      • +
      +
        +
      • Matrix charts do not dynamically change, + instead they show data that is dynamically accessible for + viewing on the surface/volume in other viewing tabs.
      • +
      +
        +
      +
        +
      • When viewing a CIFTI + Parcel to parcel connectivity (.pconn.nii) file matrix, left + click on a row to select a parcel (will be outlined with a horizontal box + in the matrix). Parcel connectivity for + the selected parcel will be displayed on Viewing + + + + + + Tabs that are showing the parcel + connectivity file as a layer.
      • +
      +
        +
      • A parcel can also be + selected by clicking on a surface/volume in another + Viewing Tab and the corresponding parcel row will be + outlined in the matrix.
        +
      • + +
      +
      + +
      + + +
        +
      • When viewing a CIFTI Parcel Scalar (.pscalar.nii) file + matrix, the y-axis rows are parcels and the x-axis columns + are Map indices. When the map index is set in Overlay + + + + + Toolbox: Layers for any non-Chart + Viewing Tab, a vertical box appears in the matrix around + the column for the selected map index.
        +
      • +
      +
      +
      +
        +
      • Chart Attributes: To adjust + attributes of the matrix chart display, such as the cell + width and cell height. The default setting fills the + Viewing Area with the matrix cells. The Reset + button resets the cell size to the default.
      • +
      +
        +
      • Tab: These across Tab + functions do not affect Chart View.
        +

        +
      • +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pconn_matrix_montage.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pconn_matrix_montage.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pscalar_matrix_surface.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pscalar_matrix_surface.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Montage_toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Montage_toolbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Chart_View/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Clipping.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Clipping.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Clipping.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Clipping.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,34 @@ + + + + + Clipping + + + Clipping
      + Clipping contains controls for clipping the + view in the X, Y, and Z planes for Surface, Volume, and Features + structures in Montage, + Volume, + All, and Surface + Views. +
        +
      • Checkbox toggles turn the clipping + off/on in each plane and for Surface, Volume, or Features + structures.
      • +
      +
        +
      • The Setup button opens the + Clipping Planes settings box that contains options for + panning, rotating, and setting the thickness for the + clipping box. The Show Clipping Box Outline toggle + is useful for seeing exactly what will be clipped when + clipping planes are turned on.
        +
      • +
      +
      +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Clipping_Planes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Clipping_Planes.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Clipping/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,72 @@ + + + + + Custom Orientation + + + Custom Orientation
      +
      The Custom button + in the Orientation/Slice Plane sections of the Toolbar allows the user + to set, save, edit, or access custom orientations for Montage, + Volume, All, and Surface Views.  + +
        +
      • Click Custom and Create and + Edit... to open the Custom Orientation settings box:
        +
      • +
      +
        +
      +  
      + +
        +
      • Workbench Window sets the Workbench + Window to which the orientation transform + will be applied. Note: All tabs will have the transform + applied.
      • +
      +
        +
      • Pan (X, Y) sets the + amount of X, Y, Z offset from the center.
      • +
      +
        +
      • Rotate (X, Y, Z) sets the + rotation about the x-, y-, and z-axes.
      • +
      +
        +
      • Oblique Rotate (X, Y, Z) + sets the rotation about the oblique x-, y-, and z-axes in Volume + or All + views-- only active when Oblique is selected in Slice + Indices/Coords.
      • +
      +
        +
      • Zoom sets zoom factor relative + to the default of 1.
      • +
      +
        +
      • Copy copies the settings from + the Transform fields to the selected (highlighted) Custom + Orientation file listed on the right.
      • +
      +
        +
      • Load takes the settings from the + selected (highlighted) Custom Orientation file listed on the + right and applies them to the structures in the selected + Window.
      • +
      +
        +
      • New.. and Delete... + allow one to create or delete Custom Orientations from the + list. The listed saved orientations are saved locally and will + be available every time Workbench is opened on the same + system.
        +
      • +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,100 @@ + + + + + Border Drawing + + + Border drawing
      + When Border Mode + is activated, Draw + tools are selected by default and displayed at the bottom of the Toolbar. Border + drawing is currently only active on surface structures in Montage, + All, or + Surface + views.
      +
        +
      • By default, any loaded border files are + automatically displayed on the surface. To turn borders off + before drawing a new border, toggle off Display Borders + in the Features + + + Toolbox Borders tab.  +
      • +
      +
        +
      • Draw by holding down the alt/option + key and the left mouse button while dragging the mouse. + Red border points will appear where the border is drawn.
      • +
      +
        +
      • Draw a single, continuous line or draw multiple short sections + or points (all need to be drawn in the same direction). +
      • +
      +
        +
      • The Undo + button removes the last section drawn, the Reset + button erases all the drawing that has not been + saved/finished.
      • +
      +
        +
      • Mouse and key strokes used to draw a new + border, or erase, extend, or replace a border already drawn + are available as Tooltips.
      • +
      +
        +
      • When done drawing the border, click the Finish + button and a popup box will appear to save and classify the + new border in a new or an existing loaded border file.
      • +
      +
        +
      +
      + +
        +
      +
        +
      • A Name must be created for each + border (click Add/Edit button), the color may be set with the + sliders or RGB code, the default is black.
      • +
      +
        +
      • A Class for the border may be + similarly set, otherwise the default is '???'.
      • +
      +
        +
      • If you click the Closed Border + checkbox, the first and last border point will be joined.
      • +
      +
        +
      • The finished border will change from red + to the border color set and the new border file and class will + show up in the Features Toolbox. The start point and end point + of the border are marked as green points on the border for + reference.
      • +
      + +
        +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_drawing.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_drawing.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + Border Editing + + + Border editing
      + In Border Mode, + select Edit from the + pulldown displayed at the left bottom of the Toolbar. Border + editing is only active on surface structures in Montage, + All, + or Surface + views.
      +
      +
      +
        +
      • Any Borders to be edited must be displayed. If they are off, + toggle Display Borders on in the Features + + + + Toolbox Borders tab and make sure the + specific borders that will be edited are toggled on in Borders: + Selection.
      • +
      +
        +
      • By default, the Properties + button is activated. If a displayed border is + clicked, the Edit Border Properties box will pop up + and a border's Name, Class, or Point Order can be + edited. 
        +

        +
      • +
      + +
        +
      • If the Delete button is + clicked, each border clicked on in the display will be + deleted.
      • +
      + +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_edit.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_edit.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Edit_Border_Properties.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Edit_Border_Properties.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Border_ROI.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Border_ROI.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_Region_of_Interest.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_Region_of_Interest.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,103 @@ + + + + + Create ROI + + + Create ROI
      + Create ROI creates a region of interest map from the vertices + within or outside a border. Currently, one can only create an ROI + map containing a single region of interest.
      +
      + In Border Mode, + select ROI from the pulldown + displayed at the left bottom of the Toolbar. Create + ROI is only active on surface structures in Montage, + All, + or Surface + views. (wb_command also has operations for creating ROIs both on + the surface and in volumes).
      +
      +
      +
        +
      +
        +
      • Any Borders used to Create an ROI must be + displayed. If they are off, toggle Display Borders on in the Features + + + + + + Toolbox Borders tab, specific borders + can be toggled on/off in Borders: + Selection.
      • +
      +
        +
      • When a displayed border is clicked, the Create + + + + + + + + Region of Interest box will pop up for creating and + saving an ROI consisting of all the vertices within the + selected border. An ROI can be saved as a Dense Label or + Label, with a label name and color, or as a Dense Scalar or + Metric, with a numeric map value.
      • +
      + +
        +
      • Create ROI assumes that a border you + choose to create an ROI from is a closed border. Border points + are moved to the vertices nearest to them and these vertices + are NOT considered to be part of the ROI to be created inside + the border. Note: If an open border is selected, the program + will automatically "close" the border by drawing a line from + the first point in the border to the last point in the border. +
      • +
      + +
        +
      • Fields of the Create Region of + Interest box are automatically filled to create label or + scalar/metric ROIs with loaded file and map names. Use the New + buttons to create new Maps/Files. If you do + not change the File and Map names, the Map listed will be + overwritten, redrawn with the one new ROI for the + selected structure. 
      • +
      + +
        +
      • Invert Selected Nodes option + selects all vertices WITHOUT (not inside) the selected border + to be part of the ROI. In this case, vertices nearest the + border points are included in the inverted nodes.
      • +
      + + + +
        +
      +
      +

      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Drawing/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Border_Tools.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Create_Focus.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Create_Focus.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,95 @@ + + + + + Foci creation + + + Foci creation
      + When Foci Mode + is activated, Create tools are selected by default and displayed at + the bottom of the Toolbar. +
      +
      +
      +
        +
      • Loaded foci files are NOT automatically + displayed. To turn Foci on before creating a new focus, toggle + on Display Foci in the Features + + + + + + Toolbox Foci tab. Display of specific foci + can be selected in Foci: + Selection.
      • +
      +
        +
      • There are 3 ways to identify a location + for focus creation:
      • +
      +
        +
          +
        • Left click on the surface or volume. + The coordinates for the location selected will populate the + Create Focus box.
          +
        • +
        • Click the New button and enter + XYZ coordinates.
          +
        • +
        • Click on the Last ID + button and the coordinates for the location last identified + in View mode will populate the Create Focus + box.
        • +
        +
      +
        +
      • If a new foci file is not created, newly + created foci will be added to a loaded foci file.
      • +
      +
        +
      • Use the Add/Edit buttons to + select a Name, Color, + and Class + (optional) for the created focus. + A Name must be created for each focus, the color may be set + with the sliders, otherwise the default is black. The default + for Name and Class is the name/class one last used or '???'. + Creation of 2 or more foci with the same Name, Color, and + Class is allowed. 
      • +
      + +
        +
      • The Project to Surface toggle + will project the focus at any location to the nearest location + on the surface being viewed.
      • +
      +
        +
      • The finished focus will appear on the + surface/volume and the new focus name and class will show up + in the Features Toolbox Foci:Selection + tab.
      • +
      + + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Edit_Focus_box.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Edit_Focus_box.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,51 @@ + + + + + Foci editing + + + Foci editing
      + When Foci Mode + is activated, select Edit tools in the dropdown displayed at the bottom of + the Toolbar. +
      +
      + +
        +
      • By + + + + + default, the Properties button is activated. If + + + + + a displayed focus is clicked, the Edit Foci box will + pop up and a focus's Name, Class, or XYZ location can be + edited.
      • +
      +
        +
      • When the Delete button is activated, + clicking on a focus will delete it from display and from its + foci file.
      • +
      +
        +
      • When you are done editing/deleting foci, + remember to save your changes using Save/Manage + + Files.
        +
      • +
      +
      +

      + +
        +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_edit.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_edit.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Tools.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Creation/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Foci_Tools.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Mode.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Mode.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Mode.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Mode.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + Mode + + + Mode
      + Mode contains buttons for switching between Mouse + Controls used for viewing mode (View, on + by default) and those for performing actions including Border drawing + and Foci + creation.  The mouse controls for rotating, + panning and zooming a structure in the Viewing + + + + + + + Area are still active in Border and Foci modes. + Information on mouse and key strokes for using the mode tools are + available as Tooltips. +
      Border + button opens the border drawing, editing, and ROI tools at the + bottom of the Toolbar:
      +
      +
        +
      • Border tools are only active for surface + structures in Montage, + All, or + Surface + views.
      • +
      +
        +
      • When Border mode is activated, any loaded + border files are automatically displayed on the surface. To + turn them off before Border drawing, toggle off Display + Borders in the Features + + + + + + + Toolbox Borders tab.
      • +
      +
        +
      • Draw tools are selected by + default. Draw by holding down the alt/option key and the left + mouse button while dragging your mouse where you want the + border.
      • +
      + + Foci button opens + the focus creation and editing tools at the bottom of the Toolbar:
      + +
        +
      • Foci tools are active for surfaces and in + volumes (all views but Chart).
      • +
      +
        +
      • When Foci mode is activated, foci from + any loaded foci files are NOT automatically displayed. If you + want to turn them on before creating/editing a focus, toggle + on Display Foci in the Features Toolbox Foci + tab.
      • +
      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Volume_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Mode/Volume_Tools.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Montage_toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Montage_toolbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Montage_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Montage_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Montage_View.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Montage_View.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,99 @@ + + + + + Montage View + + + Montage View
      + Montage View displays the medial and lateral sides of left and + right hemisphere surfaces in one
      Viewing Tab. + In Montage View the Toolbar looks like this:
      +
      +
      +
        +
      • Orientation contains buttons to + set orthogonal and User-defined views of the brain surface + displayed.
      • +
      +
        +
          +
        • Orthogonal view buttons are labeled: LM + (lateral-medial), DV (dorsal-ventral), AP + (anterior-posterior). 
          +
        • +
        • Using the Mouse + + + + Controls, in Montage view, rotation is + mirrored between hemisphere lateral/medial sides and panning + moves hemisphere sides together or away from each other.
          +
        • +
        • The Reset button resets the + orientation/zoom to the default.
          +
        • +
        • Custom + + + + Orientation allows one to set and save (or + not) a specific transform (pan, rotate, oblique rotate, + zoom) for a surface or volume.
        • +
        +
      +
        +
      • Montage Selection contains + pull-downs and checkboxes to set the surface montage to view.
      • +
      +
        +
          +
        • Top Left pull-down sets the montage + structure: Cerebral Cortex, Cerebellar Cortex, or Flat. A + structure is only viewable if the appropriate surface is + loaded.
          +
        • +
        • Top Right pull-down sets the page + orientation of the surfaces displayed. Pull-downs in the + middle set the surface file for each hemisphere from the + list of loaded files. Up to 2 left and 2 right surfaces can + be displayed at once. The checkboxes indicate if the set + surfaces are being displayed.
          +
        • +
        • Left, Lateral, Medial, + and Right checkboxes indicate if these structures + are being displayed.
        • +
        +
      + +
        +
      • Clipping + contains settings for cutting down Surface, Volume, or + Features data to be viewed.
      • +
      +
        +
      • Tab + contains cross-tab functions for yoking the display of two or + more Viewing Tabs.
        +
      • +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Montage_View/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/Surface_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/Surface_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/Surface_View.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/Surface_View.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,67 @@ + + + + + Surface View + + + Surface View
      + Surface View displays the medial and lateral sides of left and + right hemisphere surfaces in one
      Viewing + Tab. + In Surface View the Toolbar looks like this:
      +
      +
      +
        +
      • Orientation contains buttons to + set orthogonal and User-defined views of the brain surface + displayed: L (lateral), M (medial), D (dorsal), + V (ventral), A + (anterior), and P (posterior). 
      • +
      +
        +
          +
        • The Reset button resets the + orientation/zoom to the default.
          +
        • +
        • Custom + + Orientation allows one to set and save (or + not) a specific transform (pan, rotate, oblique rotate, + zoom) for a surface or volume.
        • +
        +
      +
        +
      • Selection contains pull-downs to + set the brain structure (top) and surface (bottom) to view.
      • +
      + +
        +
      • Clipping + contains settings for cutting down Surface, Volume, or + Features data to be viewed.
      • +
      +
        +
      • Tab + contains cross-tab functions for yoking the display of two or + more Viewing Tabs.
        +
      • +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/SurfaceView.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/SurfaceView.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Surface_View/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,55 @@ + + + + + Tab Functions + + + Tab Functions
      + The Tab section of the Toolbar contains controls + for functions that are active across Viewing + Tabs. Tab Functions are not active + in Chart View. +
      + Yoking + allows one to define groups of tabs or windows that will have + linked rotation, panning, and zooming. +
        +
      +
      +
        +
      +
      +
        +
      • Yoking Groups are defined between Surface, + Montage, + and All + Views OR between Volume + and All views (yoking is not applied between surfaces and + volumes).
      • +
      +
      +
        +
      +
      +
      +
        +
      +
      +
        +
      • Surfaces are yoked so that the + corresponding lateral or medial contralateral hemispheres can + be viewed at the same time (e.g. superior temporal gyrus on + the lateral surface can be viewed on the right and left + hemisphere simultaneously). 
      • +
      +
      +
      + +
        +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Toolbar.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Toolbar.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Toolbar.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Toolbar.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,73 @@ + + + + + Toolbar + + + Toolbar
      + Toolbar is the section at the top of the Workbench + Window that contains viewing settings for the + structure you are displaying in the Active + Tab and access to + Workbench functional modes (border drawing, region of interest + definition, etc.). + +
      +
        + +
          +
        • The Toolbar can be hidden or shown + using the button at the top + right of the Workbench Window or by clicking on Toolbar in + the View Menu.
          +
        • +
        • Tooltips + (available by hovering mouse over buttons/elements) are an + easy way to see information on the buttons and functions + on the Toolbar (or throughout wb_view).
          +
        • +
        +  
        +

        +
        +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Toolbar_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Toolbar_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Volume_ID_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Volume_ID_button.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Volume_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Volume_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Volume_View.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/Volume_View.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,132 @@ + + + + + Volume View + + + Volume View
      + Volume View displays brain volume slices. In + Volume View the Toolbar looks like this:
      +
      +
      +
      +
        +
      • Slice + + + + + + Plane contains buttons to set which volume slice planes + are displayed: P (parasagittal), C (coronal), + A (axial), All (all 3 planes). 
      • +
      +
      +
        +
          +
        +
      +
      +
        +
      +
      +
      +
        +
      • The Reset button resets the + orientation/zoom to the default.
      • +
      +
      +
      +
        +
      • Custom + + + + + Orientation allows one to set and save (or + not) a specific transform (pan, rotate, oblique rotate, + zoom) for a surface or volume.
      • +
      +
      +
        +
      • Montage contains settings for + viewing multiple volume slices from a single slice plane at + once. Rows/Cols set the number of Rows or + Columns of slices to display. Step sets the index + spacing between slices in the volume slice montage. 
      • +
      +

      +
        + +
      • Slice Indices/Coords + contains + settings for the slice index and stereotaxic (Talairach) + coordinate to be viewed for each slice plane.  +
      • +
        +
      + +
      +
        +
      • The vertical Origin button + rests the slice indices to the default (centered at the + AC).
      • +
      +
      +
      +
      +
        + +
      • The  button (default on) + activates movement of the crosshairs/volume slice to the same + plane as the brainordinate selected in any of the Viewing + Tabs in the same yoking group as the Volume tab.
      • +
      +
      +
      +
        +
      • The pull-down at the bottom toggles + between Orthogonal and Oblique volume + viewing.
      • +
      +
      +
        +
      +
      +
        +
      +
      + +
        +
      • Clipping + contains settings for cutting down Surface, Volume, or + Features data to be viewed.
      • +
      +
        +
      • Tab + contains cross-tab functions for yoking the display of two or + more Viewing Tabs.
      • +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/VolumeView.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/Volume_View/VolumeView.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Toolbar/VolumeView.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Toolbar/VolumeView.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,59 @@ + + + + + Active Tab + + + Active Tab
      + Active tab is the currently selected Viewing + + + + + + + + Tab at the top of the + Workbench Window. + The title of the Active tab is shown in bold, unitalicized font, + e.g., (1) Montage in the image. + +
        +
      • To select a tab to be the Active Tab, + click on the tab title.
      • +
      +
        +
      • To set + tab-specific display options, first select a + particular tab as the Active tab, then make your selections.
      • +
      +
        +
      • To rename the Active tab, select the Rename + Selected Tab... option in the Window + Menu. Tab numbers can not be edited by the + user.
      • +
      +
        +
      • To reorder the tabs, click and drag the + tab title to the desired position. The tab numbers will not + change.
        +
      • +
      +
      +

      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Viewing_Tabs.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Active_Tab/Viewing_Tabs.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Tooltip.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Tooltip.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Tooltip.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Tooltip.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,25 @@ + + + + + Tooltip + + + Tooltip
      +
      A Tooltip is + pop-up information on Workbench functions that appears as a yellow + box of text when you hover your cursor over a button or pull-down + menu.  These are found throughout wb_view for easy access to + functional explanations of buttons and options. The image below + shows a tooltip for the Custom + Orientation button in the Toolbar.
      +

      +

      +  
      +
      +
      +
      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Tooltip.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Tooltip/Tooltip.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,110 @@ + + + + + Viewing Area + + + Viewing Area
      + Viewing Area is the field of the Workbench Window + where images of the surface, volume or whole brain are displayed, + or in Chart + + + + + View, where chart data is + displayed.   +
        +
      • The image or chart displayed is set for + each Viewing + + + + + Tab, unless Tile Tabs view is on (see View Menu), + + + + + which displays images/charts for all tabs within a single + viewing area.
      • +
      +
        +
      • The default placement of the surface or + volume is in the center of the viewing area and, in Surface + + + + + + + + + + View, rotation is about the center of + gravity of the surface.
      • +
      + +
        +
      • Use the Reset button in the Toolbar + to return to the default zoom, pan, and orientation. 
      • +
      +
        +
      • The default background is set to black, + but this can be changed to any color in the Preferences: + Color tab.
      • +
      + +
        +
          +
        • Click on the tab names or press + Command/Ctrl + left and right arrow buttons to switch the + Toolbar and Overlay Toolbox to control each tab's display + options. A box will appear briefly around the Active Tab + "tile" in the viewing area.
          +
        • +
        +
      + + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/WBwindow_Horiz_Labels.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Area/WBwindow_Horiz_Labels.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,54 @@ + + + + + Viewing Tabs + + + Viewing Tabs
      + Viewing Tabs refer to the set of viewing + workspaces within a Workbench + + + Window. + +
        +
      • The Active Tab + is the workspace currently being displayed.
      • +
      +
        +
      • To navigate between Viewing Tabs, click + on one of the other tab names or press Command/Ctrl + left and + right arrow buttons.
      • +
      +
        +
      • To remove a tab, click on the X + button to the right of the tab name. Further tab options are + available in the Window + menu.
      • +
      +
        +
      • To reorder the tabs, click and drag the + tab title to the desired position. The tab numbers will not + change.
        +
      • +
      +
      +

      + + Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/WBwindow_Horiz_Labels.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/WBwindow_Horiz_Labels.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Features_TB_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Features_TB_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Help_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Help_button.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_Brainordinate_Icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_Brainordinate_Icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Information_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Information_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Overlay_TB_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Overlay_TB_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Scenes_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Scenes_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Toolbar_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Toolbar_icon.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,62 @@ + + + + + Window Elements Hide/Show Buttons + + + + Window Elements Hide/Show + Buttons
      + The Hide/Show buttons for the Workbench Window + elements (Help + Window, Information + + + + Window, Scenes + Window, Toolbar, + Overlay + Toolbox, and Features + + + Toolbox) are located in the upper right corner + of the Workbench Window. These buttons turn the display of these + elements on and off. The buttons are shaded gray (as in the images + below) to indicate that the element is on, and are unshaded when + the element is off. +
         Help + Window button
      +
      +
          Information + + + + + + + Window button
      +
      +     Identify Brainordinate button
      +
      +     Scenes Window button
      +
      +     Toolbar button
      +
      +     Overlay Toolbox button
      +
      +     Features Toolbox + button
      + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Workbench_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Workbench_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/HelpFiles/Workbench_Window/Workbench_Window.html 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/HelpFiles/Workbench_Window/Workbench_Window.html 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,41 @@ + + + + + Workbench Window + + + Workbench Window
      + Workbench Window refers to the main interface + of wb_view, containing the Viewing Tabs, + Toolbar, Viewing Area, + Overlay + Toolbox, Features + Toolbox and Window + + Elements Hide/Show buttons as shown. +
        +
      • In PC/Linux, the Workbench Window also + includes the Menu bar.
      • +
      +
        +
      • More than one Workbench Window can be + opened at one time, either by selecting New Window + from the File + + menu or from selections made from the Window + menu.
      • +
      +
      +
      +
        +
      + + diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/update_resources.sh connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/update_resources.sh --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/GuiResources/update_resources.sh 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/GuiResources/update_resources.sh 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,17 @@ +#!/bin/sh + +mv HelpFiles OLD_HelpFiles + +cp -r /mnt/myelin/shared/WB_Tutorial/WB_1.2_Help ./HelpFiles + +rm -rf OLD_HelpFiles + +rcc -project -o gui_resources.qrc + +echo "" +echo "You now need to:" +echo " 1) Run CMake in the build directory" +echo " 2) Compile" +echo " 3) Commit changes to GIT repository" +echo " 4) Push source code to master repository" +echo "" Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image001.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image001.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image002.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image002.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image003.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image003.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image004.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image004.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image005.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image005.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image006.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image006.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image007.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image007.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image008.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image008.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image009.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image009.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image010.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image010.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image011.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image011.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image012.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image012.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image013.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image013.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image014.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image014.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image015.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image015.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image016.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image016.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image017.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image017.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image018.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image018.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image019.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image019.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image020.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image020.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image021.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image021.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image022.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.fld/image022.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Annotations/Annotations.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Annotations/Annotations.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,2081 +0,0 @@ - - - - - - - - - - - - - -
      - -

      Guide to WB Annotations

      - -

       

      - -

      04 May 2016

      - -

       

      - -

      - -
      -
      - -

       

      - -

      Table of Contents

      - -

      Annotation -Toolbar and Example Annotations. 4

      - -

      Annotation -Coordinate Spaces. 5

      - -

      Stereotaxic -Coordinate Space. 5

      - -

      Surface -Coordinate Space. 5

      - -

      Tab -Coordinate Space. 6

      - -

      Window -Coordinate Space. 6

      - -

      Types of -Annotations. 7

      - -

      Box. 7

      - -

      Color Bars. 7

      - -

      Image. 7

      - -

      Line. 7

      - -

      Oval 7

      - -

      Text. 8

      - -

      Annotation -Properties. 8

      - -

      Annotation -Line Width and Color. 8

      - -

      Annotation -Fill Color. 9

      - -

      Annotation -Line Arrow Tips. 9

      - -

      Annotation -Text Characters. 10

      - -

      Annotation -Text Font Property. 10

      - -

      Annotation -Text Alignment Property. 10

      - -

      Annotation -Text Orientation.. 11

      - -

      Annotation -Coordinate Property. 11

      - -

      Annotation -Width and Height. 12

      - -

      Annotation -Rotation Property. 12

      - -

      Annotation -Files. 13

      - -

      Disk -Annotation File. 13

      - -

      Scene -Annotation File. 13

      - -

      Selecting -Annotations. 13

      - -

      Editing -Annotation Position, Size, and Rotation. 14

      - -

      Editing -(Redo and Undo). 15

      - -

      Inserting -Annotations. 15

      - -

      Deleting -Annotations. 17

      - -

      Format 17

      - -

      Context -Sensitive (Pop-up) Menu. 19

      - -

      Edit Menu. 20

      - -

      Display -Control of Annotations. 21

      - -

      Options. 21

      - -

      Selection of -Annotations in Features Toolbox. 22

      - -

      Content of -Annotations Tab in Features Toolbox. 22

      - -

      Annotation -Grouping. 23

      - -

      Mouse -Selection of Annotations. 23

      - -

      Creating a -User Group.. 23

      - -

      Removing a -User Group.. 24

      - -

      Recreating a -User Group.. 24

      - -

      Color Bar -Editing. 24

      - -

      Location and -Positioning. 25

      - -

      Data -Numerics. 26

      - -

       

      - -
      -
      - -

       

      - -

       

      - -

      Annotation Toolbar and Example Annotations

      - -

       

      - -

       
      -

      - -

       

      - -

      Annotation Coordinate Spaces

      - -

       

      - -

      Several coordinate spaces are -available for annotations.  The coordinate spaces control the movement of -placement of annotations.

      - -

       

      - -

      Stereotaxic Coordinate Space

      - -

       

      - -

      An annotation in stereotaxic -space will appear in any display of a surface or a volume.  A particular -annotation in stereotaxic space may appear in more than one location depending -upon the models being viewed.

      - -

       

      - -

      Stereotaxic space is the -three-dimensional coordinate system in which surface and volume models are -displayed.  In Workbench, the stereotaxic space is in an LPI orientation (negative -X is Left, negative Y is Posterior, and negative Z is Inferior).  Annotations -in Stereotaxic Space will move as the viewed model is panned, rotated, or -zoomed.  At times, annotations in Stereotaxic Space may not be visible -when they are behind a model.  Annotations in Stereotaxic Space are always -drawn in a plane parallel to the screen.

      - -

       

      - -

      Note that in a surface -montage, text annotations in stereotaxic space are sized using the height of -the tab, not the sub-region containing the surface.

      - -

       

      - -

      Surface Coordinate Space

      - -

       

      - -

      An annotation in surface -coordinate space will appear in any view of the surface to which the annotation -is attached.  When a surface space is used, the annotation is associated -with surface by the combination of a structure identifier, a vertex index, the -number of vertices in the surface, and a surface offset.  When an -annotation is drawn in Surface Coordinate Space, the annotation will maintain -its position relative to its surface vertex as the surface is panned, rotated, -or zoomed.  The surface offset allows one to move the annotation away from -the surface along the vertexÕs normal vector or a vector that originates and -the surface center and points to the surface vertex.  At times, -annotations in Surface Coordinate Space may not be visible when they are behind -a model.  Annotations in Surface Space are always drawn in a plane -parallel to the screen.  Width and Height properties are normalized to the -tab containing the Annotation in Surface Space. 

      - -

       

      - -

      Two notes about annotations in -Surface Space.  First, when inserting a surface annotation, the new -annotation may move away from its location and the reason is explained in the -section for creating annotations.  Second in a surface montage, text -annotations in surface space are sized using the height of the tab not the -sub-region containing just the surface.

      - -

       

      - -

       

      - -

      Tab Coordinate Space

      - -

       

      - -

      An annotation in tab -coordinate space is displayed in one tab region and never more than once.  -Tab Coordinate Space is a two-dimensional space specified with the X- and -Y-coordinates that are a normalized within the tab.  The Z-coordinate can -be used to stack annotations (control the overlap of annotations).  A -normalized coordinate ranges from zero to one.  For the X-coordinate, zero -is at the left side of the tabÕs drawing region and one is at the right side of -the tabÕs drawing region.  For the Y-coordinate, zero is at the bottom of -the tabÕs drawing region and one is at the top of the tabÕs drawing -region.  Since the coordinate is ÒnormalizedÓ, the annotation will -maintain its relative position as the tabÕs region changes in size.  In -addition to the X- and Y-coordinate, the Tab Coordinate Space also contains a -tab number that indicates in which tab the annotation is drawn.  Thus, -annotations in Tab Coordinate Space are confined to one tab and may not span -into another tab.  Tab annotations cannot be placed in a tabÕs -margin.  If one desires annotations in a tabÕs margin, create the -annotation in Window Space.

      - -

       

      - -

      Window Coordinate Space

      - -

       

      - -

      The window coordinate space -is very similar to the Tab Coordinate Space except that the normalized -coordinate is for the window (graphics region).  In addition to the X- and -Y-coordinate, the Window Coordinate Space also contains a window number that -indicates in which window the annotation is drawn.

      - -

       

      - -

      Types of Annotations

      - -

       

      - -

      Box

      - -

       

      - -

      A box annotation is -positioned with one coordinate located at the center of the box.  The -boxÕs width and height are ÔnormalizedÕ relative to the size of with and height -of the tab or window containing the box.  Thus a size of one will fill the -tab/window horizontally.  Boxes support all Coordinate Spaces.  Boxes -are colored with both a Line and/or a Fill color.

      - -

       

      - -

      Color Bars

      - -

       

      - -

      Color bars are a special case -of annotations that pictorially describe the mapping of numeric data into a -color palette.  Color bars are not created like other annotation types but -are enabled for display by pressing the color bar button for a row in the -Overlay ToolBoxÕs Layers tab.  Positioning of color bars is performed -automatically unless the user chooses to manually position them.  Editing -of color bars is described at the end of this document.

      - -

       

      - -

      Image

      - -

       

      - -

      An image annotation is -positioned with one coordinate located at the center of the image.  The -height of image is specified as a percentage of the region containing the -image.  As the region changes in height, a corresponding change will occur -in the height of the image.  The width of the image will scale with the -height of the image using the aspect ratio of the image when it was associated -with the orientation.

      - -

       

      - -

      Line

      - -

       

      - -

      A line annotation contains -two coordinates with one located at each end point.  Both coordinates are -always in the same Coordinate Space.  Support all coordinate spaces.  -Lines are colored using the Line Color.  Arrows may be added to each of -the end points.

      - -

       

      - -

      Oval

      - -

       

      - -

      With the exception of the its -shape, an oval is identical to a box.

      - -

       

      - -

      Text

      - -

       

      - -

      Text annotations contain one -coordinate and the text alignment properties control the location of the text -relative to the coordinate.  Text annotations support all Coordinate -Spaces.  Text characters are drawn in the Line Color.  If a Fill -Color is valid (not None), a rectangle is drawn behind the text in the Fill -Color.  The height of text is specified as a percentage of the region -containing the text.  As the region changes in height, a corresponding -change will occur in the size of the text.

      - -

       

      - -

      Annotation Properties

      - -

       

      - -

       

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      -

      Property

      -
      -

      Box

      -
      -

      Color Bar

      -
      -

      Image

      -
      -

      Line

      -
      -

      Oval

      -
      -

      Text

      -
      -

      Arrow Tips

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

      Line Width

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      -

      Line Color

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      -

      Fill Color

      -
      -

      Y

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Y

      -
      -

      Text Color

      -
      -

       

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Text Characters

      -
      -

       

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Font Name

      -
      -

       

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Font Size

      -
      -

       

      -
      -

      Y

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Font Style

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Horizontal Alignment

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Vertical Alignment

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Orientation

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

       

      -
      -

      Y

      -
      -

      Width

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      -

       

      -
      -

      Y

      -
      -

       

      -
      -

      Height

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      -

       

      -
      -

      Y

      -
      -

       

      -
      -

      Rotation

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      -

      Y

      -
      - -

       

      - -

       

      - -

      Annotation Line Width and Color

      - -

       

      - -

      The Line Width Property controls -the line width of Line annotations and the outline width of Box and Oval -annotations.  The maximum line width may vary on different -computers.  When multiple annotations are selected with different line -widths, the smallest selected line width is displayed followed by a plus symbol -(+).

      - -

       

      - -

      The Line Color Property -controls the outline color of a box or oval.  It is also used to draw a -box around text annotations.  To change the color, one presses the small -arrow to display a menu from which a named color or a special option is -selected.  The two special selections are Custom and None.  Choosing -Custom displays a dialog that allow the user to create a color by adjusting red, -green, and blue color components.  None inhibits the drawing of a lineÕs -or the box or ovalÕs outline.

      - -

       

      - -

      Annotation Fill Color

      - -

       

      - -

      The Fill Color Property -controls the color of a text background or the fill color for a box or -oval.  Like the Line Color Property there are both Custom and None -options.

      - -

       

      - -

      - -

       

      - -

      Annotation Line Arrow Tips

      - -

       

      - -

      - -

       

      - -

      The Annotation Line Arrow -Tips section allows the user to add arrow to tips to either or both end points -of a a line annotation.  The top arrow button adds an arrow to the lineÕs -start and the bottom arrow button adds an arrow to the lineÕs end.

      - -

      Annotation Text Characters

      - -

       

      - -

      The Text Edit Group allows -the user to edit the properties of the selected Text Annotation (when one and -only one annotation is selected).  Multiple lines of text are separated by -a Ò\nÓ character sequence.  One may double-click the text to edit the text -in a multi-line editor. In the second row is a combo box allows the user to -connect a text annotation in Surface Space to the surface vertex with a line or -an arrow.  When connecting a text annotation to the surface, the offset in -the surface coordinate will need adjustment.

      - -

       

      - -

      - -

       

      - -

      Annotation Text Font Property

      - -

       

      - -

      Font Properties associated -with Text Annotations include the Font Name, the Font Size, the Text Color and -options for Bold, Italic, and Underline.  When multiple annotations are -selected, the first matching font and smallest font size is selected.  The -Bold, Italic, and Underline buttons are selected only if all selected text -annotations have the attribute enabled.

      - -

       

      - -

      - -

       

      - -

      Annotation Text Alignment Property

      - -

       

      - -

      Text Alignment Properties are -available for both horizontal and vertical alignment. 

      - -

       

      - -

      Horizontal Text Alignment -selections include Left, Center, and Right.  With Left, the annotationÕs X-coordinate -is on the left side of the text.  With Center, the annotationÕs -X-coordinate is in the horizontal center of the text.  With Right, the -annotationÕs X-coordinate is on the right side of the text.

      - -

       

      - -

      Vertical Text Alignment -selections include Bottom, Middle, and Top.  With Bottom, the annotationÕs -Y-coordinate is located at the bottom of the text.  With Middle, the -annotationÕs Y-coordinate is located in the vertical center of the text.  -With Top, the annotationÕs Y-coordinate is located at the top of the text.

      - -

       

      - -

      When there are multiple text -annotations selected with different alignments, none of the alignment buttons -are shown as selected.

      - -

       

      - -

      - -

       

      - -

      Annotation Text Orientation

      - -

       

      - -

      The text orientation property -includes two selections, Horizontal and Stacked.   Text characters -drawn in Horizontal Orientation are drawn in a left-to-right sequence.  -Text characters drawn in Stacked Orientation are drawn in a top-to-bottom -sequence.  If there are multiple text annotations selected with differing -orientations, neither of the orientation buttons is shown as selected.

      - -

       

      - -

      - -

       

      - -

       

      - -

      Annotation Coordinate Property

      - -

       

      - -

      The Coordinate Adjustment -Group allows the user to adjust the XYZ-coordinates of an annotation in Stereotaxic, -Tab, or Window Space.  If the annotation is in Surface Space, selections -are provided for the Structure, Vertex Index, and Offset.  The offset is -the distance of the annotation from its assigned surface vertex along the -surface vertexÕs normal vector.  Line annotations contain coordinates for -each endpoint and both sets of Coordinate controls are enabled.  Box, -Oval, and Text Annotations use one coordinate so only the first set of -coordinate controls is enabled.

      - -

       

      - -

      - -

       

      - -

      - -

       

      - -

      Located on the left side of -the coordinate controls are several alphanumeric characters that indicate the -coordinate space of the selected annotation(s).  If all of the selected -annotations are in the same coordinate space, the letter will be Sf (Surface), St -(Stereotaxic) T (Tab, followed by tab numbers), and W (Window).  If -multiple annotations are selected and they are in different coordinate spaces, -a plus symbol (+) is displayed.  The coordinate controls are enabled only -when a single annotation is selected.

      - -

      Annotation Width and Height

      - -

       

      - -

      The Annotation Width and Height -Properties control the width and height of Box, Image, and Oval Annotations.   -Both the width and height are normalized values that range from zero to one -where one is the full width/height of the tab or window.  For image -annotations, adjusting the width (or height) will also change the height (or -width) of the image so that the imageÕs aspect ratio is preserved to prevent -distortion of the image.

      - -

       

      - -

      - -

       

      - -

      Annotation Rotation Property

      - -

       

      - -

      The Annotation Rotation -property controls the rotation annotations.  The rotation value is in -degrees and a positive value rotates clockwise.

      - -

       

      - -

      - -

       

      - -

       

      - -

       

      - -

      Annotation Files

      - -

       

      - -

      There two mechanisms for -saving annotations.

      - -

      Disk Annotation File

      - -

       

      - -

      Disk Annotation Files can be -opened, saved, added to a Spec File just like other Workbench data files.

      - -

       

      - -

      Scene Annotation File

      - -

       

      - -

      The Scene Annotation File is -maintained Òin memoryÓ and when the user creates a Scene, these annotations -become part of the scene.  Thus, these annotations can only be displayed -when the scene is loaded.  A special entry is provided on the Manage/Save -Files Window to remove all active Scene Annotations.

      - -

       

      - -

      Selecting Annotations

      - -

       

      - -

      To select a single annotation -while in Annotations mode, simply move the mouse over the annotation (the -cursor will become a Òfour arrowsÓ symbol) and click the mouse.

      - -

       

      - -

      To select multiple -annotations, hold down the Shift Key while clicking the mouse over an -annotation.  When the mouse is clicked with the Shift Key down, any other -selected annotations remain selected. 

      - -


      -If an annotation that is a member of a group is selected, all annotations in -the group become selected. 

      - -

       

      - -

      To deselect all annotations, -click the mouse in a region where there is no annotation.  If there are -multiple annotations selected and one wants to deselect an annotation, click -the mouse over the annotation while holding down the Shift Key.

      - -

       

      - -

      When an annotation is in the -selected state, sizing handles are displayed around the annotation.  For a -Line Annotation, sizing handle symbols are drawn at the end points with a -slightly larger square symbol at the first coordinate (head of the -arrow).  For a Box or Oval Annotation, a box is drawn in the foreground -color with sizing handles distributed about the box.  When the mouse is -moved over a sizing handle, the mouse cursor will change to a symbol that -indicates how moving the size handle with the mouse will change the shape of -the annotation.

      - -

       

      - -

      Editing Annotation Position, Size, and Rotation

      - -

       

      - -

      To move an annotation, first -select the annotation and move the mouse over the annotation so that the cursor -is the four arrows symbol.  Hold down the left mouse button and then drag -the mouse to move the annotation to its new location.

      - -

       

      - -

      To resize a line annotation, -first select the line annotation.  Next, move the mouse over a sizing -handle at either end of the line so that the cursor becomes a Òtwo arrowÓ -symbol.  Now, hold down the left mouse button and drag the line end point -to its new location.

      - -

       

      - -

      To resize a box or oval -annotation, first select the annotation.  Next, move the mouse over one of -the sizing symbols so that the cursor becomes a Òtwo arrowÓ symbol.  Now, -hold down the left mouse button and drag to change the width and/or height of -the shape.  Dragging the circular symbol at the corners changes both the -width and height of the shape.  Dragging the square symbol on a side -changes width or height but not both.

      - -

       

      - -

      - -

       

      - -

      To rotate a box, image, oval, -or text annotation, first select the annotation.  Next, move the mouse -over the small rotation handle at the top of the shape (small black circle -attached to box around TEXT) at which time the cursor will become a rotation -symbol.  Now, to rotate the annotation, hold down the left mouse button -and drag the mouse away from the annotation to the desired orientation.  Think -of the rotation handle as a compass pointer and the the mouse pointer as -magnetic north.  The rotation handle will always point towards the mouse -pointer.

      - -

       

      - -

       

      - -

      - -

       

      - -

      Annotations may also be -moved, resized, and rotated using the annotation toolbarÕs controls while a -shape is selected.

      - -

       

      - -

      The text in a text annotation -may be edited by double-clicking the mouse over the text annotation.

      - -

       

      - -

      Editing (Redo and Undo)

      - -

       

      - -

       

      - -

       

      - -

      When editing annotations, the -user may mistakenly modify or delete an annotation.  For these instances, -pressing the Undo button will ÒundoÓ the last change to an annotation.  -Redo and Undo can also be used with grouping operations (described later in -this document).

      - -

      Inserting Annotations

      - -

       

      - -

       

      - -

      - -

      - -

       

      - -

       

      - -

      When creating annotations, -new annotations are placed in either ÒScene AnnotationsÓ or a Annotation File -stored to disk.  Scene Annotations are not saved to an annotation file -file but instead are added to a scene when a a new scene is created.  Note -that the user will need to save the scene file.  Disk annotation files are -saved and opened like other data files.

      - -

       

      - -

      To create a new annotation, -user must first choose the file that will contain the newly created -annotation.  Second, the user user must choose the Space from the top row -of buttons (the selected space is highlighted).  Third, the user must -press on of the Type buttons in the bottom row to choose the type of annotation -that is created.  Lastly, the user moves the mouse into the graphics -region and the mouse pointer will be a small ÔplusÕ symbol.  The user must -either click the mouse in the graphics region to insert a default annotation -for the type or drag the mouse to create a rectangular region that bounds the -new annotation.  If the location of the new annotation is incompatible -with the selected annotation space, a dialog pops up that allows the user to -choose a different space or to cancel creation of the annotation. When entering -a text annotation, a dialog will always pop-up for entry of the text.

      - -

       

      - -

      BEWARE that when drawing -annotations in surface space, the annotation may move a short distance from -where it was drawn.  This is caused by the surface offset attribute of the -surface coordinate.  While the annotation is attached to the surface -vertex closest to the mouse click, the annotation is offset by a vector.  -It is this offset vector that causes the annotation to move.  Without the -offset vector, surface annotations may be partially or even fully obscured by -the surface.

      - -

      Deleting Annotations

      - -

       

      - -

      - -

       

      - -

      Individual annotations are -deleted while in Annotation Mode by clicking the Trash Can Icon in the -Annotation Toolbar.  One may remove an entire file of Annotations on the -Manage/Save Files window.

      - -

       

      - -

      Format

      - -

       

      - -

      - -

       

      - -

      The arrange menu is used to -arrange and format multiple annotations.  At least two annotations must be -selected for an alignment operation.  At least three annotations must be -selected for a distribute operation.  Alignment and Distribution -operations may only be performed on annotations in Tab or Window space.

      - -

       

      - -

      á      -Align Left Ð The selected -annotations are moved so that the left edge of each annotation is at the same -X-coordinate as the left-most annotation.

      - -

      á      -Align Center Ð The selected -annotations are moved so that center X-coordinate of each annotation is at the -average X-coordinate of the annotations.

      - -

      á      -Align Right Ð The selected -annotations are moved so that the right edge of each annotation is at the same -X-coordinate as the right-most annotation.

      - -

      á      -Align Top - The selected -annotations are moved so that the top edge of each annotation is at the same Y-coordinate -as the top-most annotation.

      - -

      á      -Align Middle Ð The selected -annotations are moved so that the center Y-coordinate of each annotation is at -the average Y-coordinate of the annotations.

      - -

      á      -Align Bottom - The selected -annotations are moved so that the bottom edge of each annotation is at the same -Y-coordinate as the bottom-most annotation.

      - -

      á      -Distribute Horizontally Ð The -left-most and right-most annotations do not move.  The other annotations -are moved so there is equal horizontal spacing between adjacent annotations.

      - -

      á      -Distribute Vertically - The -top-most and bottom-most annotations do not move.  The other annotations -are moved so there is equal vertical spacing between adjacent annotations.

      - -

      á      -Group - See the description in -Annotation Grouping.

      - -

      á      -Regroup - See the description in -Annotation Grouping.

      - -

      á      -Ungroup - See the description in -Annotation Grouping.

      - -

       

      - -

      Context Sensitive (Pop-up) Menu

      - -

       

      - -

      A pop-up menu is available -when the Mode (mouse) is set to Annotate.  Items in the menu are enabled -only in certain conditions.

      - -

       

      - -

      Items in the pop-up menu are:

      - -

      á      -Cut Ð Removes the annotation under -the mouse and places it onto the annotation clipboard.

      - -

      á      -Copy Ð Copies the annotation under -the mouse and places it onto the annotation clipboard.

      - -

      á      -Delete Ð Deletes the annotation -under the mouse.

      - -

      á      -Paste Ð Inserts a copy of the -annotation on the clipboard at the mouse location.  If the mouse location -is incompatible with the annotationÕs space, a dialog is pops up to change the -space or cancel the paste operation.

      - -

      á      -Paste and Change Space Ð Pops up a -dialog to choose the space and then pastes a copy of the annotation from the -clipboard in the selected space.

      - -

      á      -Edit Text Ð Pops up a dialog for -changing the text in a text annotation.

      - -

      á      -Group Ð See the description in -Annotation Grouping.

      - -

      á      -Ungroup Ð See the description in -Annotation Grouping.

      - -

      á      -Regroup Ð See the description in -Annotation Grouping.

      - -

       

      - -

      Edit Menu

      - -

       

      - -

      The WindowÕs Edit Menu is available -for some operations.

      - -

       

      - -

      á      -Undo Ð Rolls back the last -annotation modification (additional text is added to the Undo item providing -information about the modification).

      - -

      á      -Redo Ð Rolls back the last ÒundoÓ -(additional text is added to the Redo item providing information about the -modification).

      - -

      á      -Cut Ð See Cut under Context -Sensitive (Pop-up) Menu.

      - -

      á      -Copy Ð See Copy under Context -Sensitive (Pop-up) Menu.

      - -

      á      -Paste Ð See Paste under Context -Sensitive (Pop-up) Menu.

      - -

      á      -Paste Special Ð See Paste and -Change Space under Context Sensitive (Pop-up) Menu.

      - -

      á      -Delete Ð See Delete under Context -Sensitive (Pop-up) Menu.

      - -
      -
      - -

       

      - -

      Display Control of Annotations

      - -

       

      - -

      - -

       

      - -

      Controlling the display of -annotation is performed using the Annot section in the Features Toolbox.

      - -

       

      - -

      Options

      - -

       

      - -

      Display Annotations Ð Enables -and disables the display of annotations in all open windows.

      - -

       

      - -

      Show Window Annotations in -Single Tab View Ð When checked, annotations in Window space are always -displayed.  When unchecked, annotations in Window space are only displayed -when Tile Tabs is enabled.

      - -

       

      - -

      Group Ð Group allows the user -to easily switch between several different display selections of -annotations. 

      - -

       

      - -

      The display selections for -annotations in window space function different than other spaces.  Because -the ÔGroupÕ selection is a property of each browser window ÒtabÓ, it is not -available when drawing Window annotations.  Therefore, there is only one -display selection for annotations in window space.

      - -

       

      - -

      Selection of Annotations in Features Toolbox

      - -

       

      - -

      To select an annotation in -the Features Toolbox, the user clicks the mouse over the name of the -annotation.  The annotation name is selected and all other annotations are -deselected.  The selected annotation is highlighted in the graphics -region.  The user may select multiple annotations in the features toolbox -by holding down the CTRL (Apple) key or the Shift key.  If the CTRL key is -held down while the mouse is clicked, the annotation under the mouse is added -to the selected annotations.  If the Shift key is held down while the -mouse is clicked, all annotation from the last selected annotation to the -annotations under the mouse are selected.

      - -

       

      - -

      If the user clicks the name -of either group type, Space or User, all annotations in the group are selected. - If the user selects the name of annotation that is in a User Group, all -annotations in the User Group are selected.

      - -

       

      - -

       

      - -

      Content of Annotations Tab in Features Toolbox

      - -

       

      - -

      In the Features Toolbox, -annotations are grouped into a hierarchy of File, Group, and Annotations. - The hierarchy is collapsed and expanded using the small triangles on the -left side of the annotation listing.  There are three checkbox states, -unchecked, partially checked, and checked.  An annotation is either -unchecked (not displayed) or checked (is displayed).  An Annotation Group -(and File) is unchecked when all annotations in the group (file) are unchecked -(not displayed); partially checked when some, but not all annotations in the -group are checked (displayed), and the group (file) is checked when all -annotations in the group are checked (displayed).

      - -

       

      - -

      For each annotation in the -features toolbox, an icon (small image) is displayed between the checkbox and -the annotationÕs name.  This icon may consist of several colors.  If -the annotation's ÔFill ColorÕ is enabled, the background of the icon is the -fill color.  If the annotationÕs line color is enabled, the edges of the -icon are drawn in the line color.  If the annotation is a text annotation, -a small square consisting of the text characterÕs color is in the center of -icon.

      - -

       

      - -

      Annotation Grouping

      - -

       

      - -

      Annotations are organized -into a hierarchy consisting of File->Group->Annotation.  The are two -types of groups: Space Groups and User Groups.  By default, an annotation -is assigned to a Space Group.  The user may move annotations from a Space -Group to a User Group by performing a ÔGroupÕ operation.  Annotations may -also be moved from a User Group to a Space Group by performing an ÔUngroupÕ -operation. 

      - -

       

      - -

      Both types of groups may only -contain annotations that are in the same coordinate space.  Stereotaxic -annotations are assigned to one group.  Surface annotations are also in -one group.  There is a group for each tab and a group for each window.

      - -

       

      - -

      Mouse Selection of Annotations

      - -

       

      - -

      To select an annotation with -the mouse, the user simply clicks the mouse over an annotation.  The -annotation under the mouse is selected and any other annotations are -deselected.  To select multiple annotations the user clicks the annotation -with the mouse while the Shift key is held down.  To deselect all annotations, -the user clicks the mouse in an empty region (not over an annotation).

      - -

       

      - -

      If the user selects an -annotation with the mouse and the annotation is in a User Group, all -annotations in the User Group are selected.

      - -

       

      - -

       

      - -

      Creating a User Group

      - -

       

      - -

      Creation of a user group is -allowed when two or more annotations are selected and all of the selected -annotations are in the same Space Group.  If these conditions are met, the -user may create a User Group by selected Group from the Annotation ToolbarÕs -Format->Arrange Menu.  The user may also right click the mouse and -select Group from the pop-up menu.

      - -

       

      - -

      Removing a User Group

      - -

       

      - -

      To remove a User Group, the -annotations in the User Group must be selected (recall that clicking any -annotation in a User Group selects all annotations in the User Group). - The annotations are returned to a Space Group by selecting -Ungroup from the Annotation ToolbarÕs Format->Arrange Menu.  The -user may also right click the mouse and select Ungroup from the pop-up menu.

      - -

       

      - -

       

      - -

      Recreating a User Group

      - -

       

      - -

      To recreate a User Group, the -user must select at least one annotation that is currently in a Space Group but -was previously in a User Group.  If these conditions are met, the user may -recreate the User Group by selected Regroup from the Annotation ToolbarÕs -Format->Arrange Menu.  The user may also right click the mouse and -select Regroup from the pop-up menu.  All annotations that were previously -in the User Group are moved back to the User Group.

      - -

       

      - -

       

      - -

      Color Bar Editing

      - -

       

      - -

      Each overlay contains one -color bar that is available when the selected overlay is mapped using a color -palette (typically for floating point data).  To show a color bar, press -the rainbow button under Settings in Overlay ToolBox->Layers.  To Edit -the color bar, press the wrench icon.

      - -

       

      - -

       

      - -

      - -

       

      - -

       

      - -

      - -

       

      - -

      Location and Positioning

      - -

       

      - -

      This section controls the -coordinate space and location within the space for the color bar.

      - -

       

      - -

      Show Color Bar in Sets the allowable space for the color bar.

      - -


      -Tab Ð Color bar is restricted to the region in which the tabÕs -data is drawn.

      - -

       

      - -

      Window Ð -Color bar may be anywhere in the window.

      - -

       

      - -

      Positioning

      - -

       

      - -

      Auto Ð Colorbar is automatically positioned in the bottom -left corner of the tab/window. If there is more than one color bar, they are -vertically stacked.

      - -

       

      - -

      Manual Ð Allows the user to manually position the color bar -by selected the color bar (click it in Annotations Editing Mode) and dragging -it with the mouse or using the coordinate controls in the annotationÕs editing -toolbar.  It is not necessary to switch the Positioning Mode to Manual to -move the color bar.  Simply select the color bar and drag it with the -mouse and the Positioning will immediately change to Manual.

      - -

       

      - -

      Data Numerics

      - -

       

      - -

      Data Mode Controls format of numeric above color bar

      - -

       

      - -

      Data Numeric text above the color bar reflect values -within the data.

      - -

       

      - -

      Percentile Numeric text above the color bar reflect the -percentiles within the data.

      - -

       

      - -

      Sign Only Numeric text above the color bar simply indicate the -sign (negative/positive of the data).

      - -

       

      - -

      Numeric Format Controls the formatting of numeric text above the -color bar.

      - -

       

      - -

      Auto Numeric text will automatically choose decimal or -scientific notation and digits right of the decimal point to best represent the -data values.

      - -

       

      - -

      Decimal Numeric text will be in decimal format.

      - -

       

      - -

      Scientific Numeric text will be in scientific notation.

      - -

       

      - -

      Dec/Sci Decimals Enabled when Numeric Format is Decimal or Scientific -and controls the number of digits right of the decimal point.

      - -

       

      - -

      Subdivisions By default, the numeric text above the color bar -consists of a negative value, zero, and a positive value.  Subdivisions is -used to add additional values between zero and negative/positive.

      - -

       

      - -

      Show Tick Marks If checked, a small tick mark is displayed below each -numeric text value to indicate its exact position in the color bar.

      - -

       

      - -

       

      - -

       

      - -

       

      - -

       

      - -
      - - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders_Attributes.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,109 +0,0 @@ - - - - - Borders - - - - - Borders
      - The Borders Tab in the Features Toolbox - contains options for display and selection of loaded and newly - created borders on brain surfaces. -
        -
      • Display Borders toggles border - display on and off. When Border Mode - is turned on, Display Borders is turned on by default.
      • -
      -
        -
      • Group: identifies the Border - group for the Active Tab. Tabs assigned to the same Group will - display the same borders with the same attributes.
      • -
      - -
        -
      • Borders Attributes contains - options for viewing borders.
      • -
      -
        -
          -
        • Contralateral check box toggles - on display of borders that are currently being displayed on - one hemisphere to be displayed on the contralateral - hemisphere (on top of that hemisphere's own displayed - borders, if any).
          -
        • -
        -
      -
        -
          -
        • Draw As sets the shape of the - border components (Lines, Spheres, Squares, Spheres and - Lines).
          -
        • -
        -
      -
        -
          -
        • Coloring sets the Class, Name, or Standard Color - as the border color source.
          -
        • -
        -
      -
        -
          -
        • Standard ColorSelects the color when Coloring is set to Standard Color.
          -
        • -
        -
      -
        -
          -
        • Line Diameter controls the - border thickness if line is selected as the border - component.
          -
        • -
        -
      -
        -
          -
        • Symbol Diameter controls the - size of the sphere or square symbol border components.
          -
        • -
        -
      -
        -
          -
        • Unstretched Lines is used - to correctly display a border from a 3D surface on a flat - surface when the border crosses a surface cut from - flattening. The distance indicates the limit for how much a - border can be stretched across a cut surface before it is - NOT displayed. Specifically, if the value of [(length of - border on flat surface) / (length of border of 3d - volume-interaction surface)] exceeds the Unstretched Lines - value then the border is NOT displayed.
          -
        • -
        -
      -
        -
      -
      -
      - -
        -
      • Borders Selection controls group - and individual display selection for borders. If a higher - level group is selected on or off, all borders below that - level will be similarly selected on/off. The All On/Off - buttons allow for quick toggling of all borders on or off.
        -
      • -
      -
      -
      - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Borders/Borders_Selection.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Borders_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Borders_Attributes.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Features_TB_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Features_TB_icon.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Features_Toolbox.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Features_Toolbox.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Features_Toolbox.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Features_Toolbox.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,90 +0,0 @@ - - - - - Features Toolbox - - - Features Toolbox
      - The Features Toolbox contains controls for - displaying features including Annotations, Borders, - Fibers, Foci, Images, and Labels onto the data - being displayed on structures.
      -  
      - The Features Toolbox is not displayed by default, but is turned on - with the button (or with View - > Features Toolbox) and attached to the right side of - the Viewing - - - - - - - - - - - - Area. It can also be
      detached from the Workbench Window by left click - + drag on the top of the - Features Toolbox. To reattach, double click on the - top of the - Features Toolbox.
      -
      - There are 6 tabs in the Features Toolbox, each controlling a - different kind of feature's display:
      -
        -
      • Annotations
      • -
      -
        -
      • Borders controls - attributes and selection of borders on surfaces.
      • -
      -
        -
      • Fibers controls attributes, selection, and samples of fibers on - surfaces and in volumes.
      • -
      -
        -
      • Foci - controls attributes and selection - of foci on surfaces and in volumes.
      • -
      -
        -
      • Images - controls selection - of images in the background.
      • -
      -
        -
      • Labels controls attributes and selection - of labels on surfaces and in - volumes.
        -
      • -
        -
      - These tabs are inactive (grayed-out) if no - files are loaded containing a particular Feature.
      -
      -
        -
        -

        - -
          -
        -
      - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Fibers/Fibers.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Fibers/Fibers.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Fibers/Fibers.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Fibers/Fibers.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - Fibers - - - Fibers
      - The Fibers Tab in the Features Toolbox - contains options for display, selection, and samples of white - matter fibers derived from diffusion imaging analysis. Currently, - HCP has not released fiber data that can be viewed using options - in this Tab. Stay tuned to the hcp-users@humanconnectome.org - email list (sign up here) - for future release information of this type of data.
      - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci_Attributes.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,64 +0,0 @@ - - - - - Foci - - - Foci
      - The Foci Tab in the Features Toolbox - contains options for display and selection of loaded and newly - created foci on brain surfaces and in volumes. -
        -
      • Display Foci toggles foci - display on and off. When Foci Mode - is turned on, Display Foci is NOT turned on by default.
      • -
      -
        -
      • Group: identifies the Foci group - for the Active Tab. Tabs assigned to the same Group will - display the same foci with the same attributes.
      • -
      - -
        -
      • Foci Attributes contains options - for viewing foci.
      • -
      -
        -
          -
        • Contralateral check box toggles - on display of foci that are currently being displayed on one - hemisphere to be displayed on the contralateral hemisphere - (on top of that hemisphere's own displayed foci, if any).
          -
        • -
        • Paste Onto Surface moves the - foci from their coordinate space to the nearest point - directly on the surface displayed.
          -
        • -
        • Coloring sets the Class, Name or Standard Color - as the foci color source.
          -
        • -
        • Standard Color selects the color when Coloring is set to Standard Color.
          -
        • -
        • Draw As sets the shape of the - foci to Spheres or Squares.
          -
        • -
        • Symbol Diameter sets the size of - the foci symbols.
          -
        • -
        -
        -
        -
      • Foci Selection controls group and - individual display selection for foci. If a higher level group - is selected on or off, all foci below that level will be - similarly selected on/off. The All On/Off buttons - allow for quick toggling of all foci on or off.
        -
      • -
      -
      - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Foci/Foci_Selection.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Images/Images.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Images/Images.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Images/Images.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Images/Images.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ - - - - - Borders - - - - - Images
      - The Images Tab in the Features Toolbox - contains options for display and selection of images in the background. -
        -
      • Group: identifies the Image - group for the Active Tab. Tabs assigned to the same Group will - display the same images with the same attributes.
      • -
      - -
        -
      • Display Image toggles image - display on and off.
      • -
      -
        -
      • Images Selection Chooses image displayed in the background. -
      -
      - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Images/Images_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Images/Images_Selection.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels_Attributes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels_Attributes.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ - - - - - Labels - - - Labels
      - The Labels Tab in the Features Toolbox - contains options for display and selection of loaded labels (named - colored regions) on brain surfaces and in volumes.  When - labels are displayed, labelled regions appear painted on the brain - surface/volume.  -
        -
      • Group: identifies the Label group - for the Active Tab. Tabs assigned to the same Group will - display the same labels with the same attributes.
      • -
      -
        -
      • All On Off: quickly turn all labels on or off. -
        -
        -  
        - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels_Selection.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Features_Toolbox/Labels/Labels_Selection.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Brainordinate/Brainordinate.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Brainordinate/Brainordinate.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Brainordinate/Brainordinate.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Brainordinate/Brainordinate.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - - Brainordinate - - - Brainordinate
        - Brainordinate - is a brain location that is - specified by either a surface vertex (node) or a volume - voxel.  Brainordinates include grayordinates (gray-matter - vertices or voxels) and whiteordinates (white-matter - voxels).  CIFTI - files contain a list of selected brainordinates and can handle - combined surface/volume representations.
        -
        -
        - - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/CIFTI/CIFTI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/CIFTI/CIFTI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/CIFTI/CIFTI.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/CIFTI/CIFTI.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ - - - - - CIFTI file - - - CIFTI
        -
        CIFTI is a file format that - stores data from surfaces (vertices) and volumes (voxels) - concurrently in a single file comprising a listed set of brainordinates. A - - CIFTI file can contain multiple non-overlapping volume - components with different structures, where each volume - component is any selected list of voxels (e.g., only left thalamus - voxels).  These components need not fill the entire grid of - ‘N x M x O’ volumetric dimensions.  A CIFTI file can also - include multiple surface components with different structures - (most commonly, the left and right cerebral cortex), but the - surface geometry is not specified in the CIFTI file (commonly, the - geometry is in a separate GIFTI - surface file). See http://www.nitrc.org/projects/cifti/ - for a detailed exposition of the CIFTI-2 file format.
        -
        - CIFTI files are based on the NIFTI-2 file format - and therefore have a filename extension ending in .nii. -  Workbench currently supports many types of CIFTI files, - including dense scalar (*.dscalar.nii), dense data series - (*.dtseries.nii), dense connectome (*.dconn.nii), and dense label - (*.dlabel.nii), where the term 'dense' refers to having a value at - each listed brainordinate (as opposed to a parcellated file such - as *.ptseries.nii, where each value is shared across many - brainordinates). Files in the now-deprecated CIFTI-1 format are - still supported by Workbench and can be converted to CIFTI-2 - using: wb_command -file-convert -cifti-version-convert.
        - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,24 +0,0 @@ - - - - - ConnectomeDB - - - ConnectomeDB
        -
        ConnectomeDB is the - web-accessible database for HCP data.  To get an account for - ConnectomeDB, go to http://humanconnectome.org/data - and register for access.
        -

        -
        -
        -
        -
        -
        - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB_login.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/ConnectomeDB_login.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/ConnectomeDB/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/GIFTI/GIFTI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/GIFTI/GIFTI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/GIFTI/GIFTI.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/GIFTI/GIFTI.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - GIFTI file - - - GIFTI
        -
        GIFTI - is - - - - - a file format for surface representations that is supported by - many major brain mapping visualization platforms (http://www.nitric.org/projects/gifti).
        - - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Grayordinate/Grayordinate.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Grayordinate/Grayordinate.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Grayordinate/Grayordinate.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Grayordinate/Grayordinate.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,32 +0,0 @@ - - - - - Grayordinate - - - Grayordinate
        - Grayordinate - is a brain gray matter - location that is represented by either a surface vertex (node) or - a volume voxel.  Grayordinates represent a subset of all brainordinates.
        -
        -
        - - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/NIFTI/NIFTI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/NIFTI/NIFTI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/NIFTI/NIFTI.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/NIFTI/NIFTI.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ - - - - - NIFTI file - - - NIFTI
        -
        NIFTI (*.nii and *nii.gz) is - standard file format for volumetric data that is widely used in - neuroimaging.  The original NIFTI-1 file format was based on - 16-bit signed integers and was limited to 32,767 in each - dimension.  The NIFTI-2 format (http://www.nitric.org/forum/message.php?msg_id=3738) - is based on 64-bit integers and can handle very large volumes and - matrices.
        - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Scene/Scene.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Scene/Scene.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Scene/Scene.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Scene/Scene.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ - - - - - Scene - - - Scene
        -
        Scene refers to the current state - (settings and files being visualized) within Workbench.  These settings can be - saved globally, in a scene file, which allows the user to - re-access the current Workbench session at a later time.  - Several scenes can be saved within a scenes file. By reopening a - saved scene file into Workbench, the user can "pick up where they - left off." For more information on creating, using, and editing - scenes, see Scenes - Window.
        - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Specification_File/Spec_File.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Specification_File/Spec_File.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Specification_File/Specification_File.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Specification_File/Specification_File.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Specification_File/Specification_File.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Specification_File/Specification_File.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,19 +0,0 @@ - - - - - Specification File - - - Specification File
        -
        Specification File (commonly - called "Spec File") is a file used to organize a set of data files - (such as volume, surface, and label files) to be loaded into - Workbench. The Open - Spec File dialog is shown listing the contents - of a spec file.
        -

        -
        - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Specification_File/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Specification_File/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Glossary/Whiteordinate/Whiteordinate.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - - Whiteordinate - - - Whiteordinate
        - Whiteordinate - is a brain white matter - location.  It is generally represented by a white matter - voxel, though in principle, it can also be represented by a - surface vertex (node).  Whiteordinates represent a subset of - all brainordinates.  - - In a CIFTI file, - a list of whiteordinates need not fill the entire grid of the 'N x - M x O' volumetric dimensions.
        - - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Information_Window/Information_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Information_Window/Information_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Information_Window/Information_Window.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Information_Window/Information_Window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ - - - - - Information Window - - - Information Window
        - The Information Window provides information on
        identified locations (left click on surface - or volume in the Viewing - - - - Area).
        -
        - Information provided for surface ordinates includes the vertex - number, surface name, x, y, z coordinates on the surface being - displayed, and data values/label names
        at that ordinate available - from all files currently loaded. For volume ordinates, voxel - coordinates in stereotactic space and slice indices for the - loaded volume are given, along with values for data loaded that - displays in volumes. -
          -
        • Clear: clears - - - - - - - all information in the Info Window.
        • -
        - -
          -
        • Copy: copies all - highlighted text (left click +drag) in the Info Window for - pasting outside of wb_view.
        • -
        -
          -
        • RID: Removes all ID symbols off - surfaces in all Viewing - Tabs/Windows, but all - Information displayed in the Information Window is retained. -
        • -
        -
          -
        • Contra ID: Identifies the - corresponding location on the hemisphere contralateral to - the one clicked. Display of contralateral IDs is not - retroactive.
        • -
        - -
          -
        • Properties: - opens a box of settings for ID and Contra ID display - attributes.
        • -
        -
          -
        -
        -
        - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Information_Window/Information_Window.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Information_Window/Information_Window.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Information_Window/Properties/Information_Properties.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Information_Window/Properties/Information_Properties.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Information_Window/Properties/Properties.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Information_Window/Properties/Properties.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Information_Window/Properties/Properties.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Information_Window/Properties/Properties.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ - - - - - Properties - - - Properties
        - Properties, within the Information Window, - contains display settings for the Identification symbols. -
          -
        • ID Symbol Color: - sets color of ID symbols that appear on the surface upon - - - - - - - - - location identification (left click on surface or volume in the - Viewing - - - - - - Area).
        • -
        -
          -
        • ID Contralateral Symbol Color: - sets the color of contralateral ID location symbols displayed - when Contra ID is active. -
        • -
        -
          -
        • Symbol Diameter: sets the size of - the ID symbols that appear on the surface, except the most - recently identified location.
        • -
        -
          -
        • Most Recent ID Symbol Diameter: sets - - - - - - - - - the size of the most recently identified location. The default - is a setting to a size slightly larger than the Symbol - Diameter to distinguish the current location from previously - identified locations.   -  
        • -
        -
        -
        -
        - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Data_Menu/Data_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Data_Menu/Data_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Data_Menu/Data_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Data_Menu/Data_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ - - - - - Data Menu - - - Data Menu
        -
          -
        • Split Multi-Structure Border Files Older border files - may contain borders for more than one surface structure. This menu item allows the user - split the old border file into single structure border files.
        • -
        -
          -
        • Project fixed distance above - surface(s) option allows the user to project foci a - fixed distance above or below the volume interaction surface. - Any offset of the foci from the surface is NOT preserved.
          -
        • -
        -
        -
        - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Data_Menu/Project_Foci_Dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Data_Menu/Project_Foci_Dialog.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Data_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Data_Menu/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Develop_Menu/Develop_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Develop_Menu/Develop_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Develop_Menu/Develop_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Develop_Menu/Develop_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ - - - - - Develop Menu - - - Develop Menu
        - The Develop Menu will only appear in the Menu - bar when Show Develop Menu in Menu Bar is selected On in - the Preferences Misc tab.  Currently the Develop Menu - only contains Time Graphics Update, which is used - by Workbench developers to gauge graphics performance.
        - - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Edit_Menu/Edit_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Edit_Menu/Edit_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Edit_Menu/Edit_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Edit_Menu/Edit_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,23 +0,0 @@ - - - - - Window Menu - - - Edit Menu
        - Items on the Edit Menu and their text will vary depending upon the state of wb_view. -
        -
          -
        • Undo Undo a previous operation.
        • -
        • Redo Redo an operation that was undone.
        • -
        • Cut Remove and place the selected item onto the clipboard.
        • -
        • Copy Place a copy of the selected item onto the clipboard.
        • -
        • Paste Paste the item from the clipboard at the mouse cursor location.
        • -
        • Paste Special A special mode to paste the item from the clipboard at the mouse cursor location.
        • -
        • Delete Delete the selected item
        • -
        -  
        -  
        - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Edit_Menu/Edit_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Edit_Menu/Edit_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control_dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control_dialog.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,134 +0,0 @@ - - - - - Animation Control - - - Animation Control
        -
        Animation Control is used - to set controls for animating frames and recording movies in - Workbench. Note: the speed of real time animation in Workbench is - largely dependent on your computer's processing speed. - -
          -
        • Recording Control contains - settings for:
        • -
        -
        -
          -
        • Repeat Frames, which - allows one to set a number of - frames to be replicated per rotation/slice advancing step, - this allows one to control how slowly the movie advances, - e.g. if set to 0 the image rotates/slices advances quickly, - if 5 or 10 it rotates more slowly.
        • -
        -
          -
        • Record button which - starts/stops recording of the movie. Upon stopping the - recording, the user is prompted to save the .mpg movie file. -
          -
        • -
        -
        -
          -
        • Rotation Control (for surfaces) - to set:
        • -
        -
        -
          -
        • X, Y, Z rotation of the - animation, which is applied per frame.
        • -
        -
        -
        -
          -
        • Rotation Frame Count sets the - number of frames to which the set rotation will be applied - in the animation.
        • -
        -
        -
        -
          -
        • Reverse Direction to set - whether a rotation of an equal number of frames in the - reverse direction will be applied in the animation.
          -
        • -
        -
        -
          -
        • Slice Control (for volumes) to - set:
        • -
        -
        -
          -
        • Slice Increment Count sets the - number of volume slices the animation advances through in - the forward direction.
        • -
        -
          -
        • Reverse direction sets whether - an animation that advances an equal number of slices in the - opposite direction will be applied.
          -
        • -
        -
        -
          -
        • Interpolate Surfaces - to set whether the surface in Tab 1 of the source Workbench - Window will be interpolated (morphed) into the surface in Tab - 2. This function only works for Tab 1 and Tab 2, so one must - set up the tabs accordingly.
        • -
        -
        -
          -
        • Interpolation Steps sets the - number of frames used to accomplish the interpolation. The - higher the number of steps the smoother the interpolation - will appear.
          -
        • -
        -
        -
          -
        • Image Size to set the dimensions - of the animated image to the size of the viewing window of the - active tab or to custom dimensions (in pixels).
          -
        • -
        -
          -
        • Image Options to set a margin - around the image to be animated in the recorded movie.
          -
        • -
        -
        -
        -
          -
        -
        - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Animation_Control/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image_dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image_dialog.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,89 +0,0 @@ - - - - - Capture Image - - - Capture Image
        - Capture Image contains settings for capturing - and saving images from wb_view. -
          -
        • Source sets the Workbench - - - - - - Window to use for capturing the image. An - image will only be captured for the currently active tab - within the set Workbench Window.
          -
        • -
        -
          -
        • Crop to Tab/Window Lock Aspect Ration if the window or - tab has its aspect locked, image capture will exclude regions outside of the window or - tab locked region.
        • -
        -
          -
        • Dimensions sets the size of the - image to be captured.
        • -
        -
        -
          -
        • The default is the current size of the - Workbench Window set in Source.
        • -
        -
        -
        -
          -
        • Custom allows setting of the - dimensions of the image to be captured by pixels (absolute - or scaled proportionally to the window size) or by width and - height (in inches, cm, or mm) and resolution - (pixels/dimension).
          -
        • -
        -
        -
          -
        • Image Options contains settings - for automatically cropping an image and the background margin - (in pixels) to apply around the image.
          -
        • -
        -
          -
        • Destination contains settings - for copying the captured image to the clipboard or saving the - image to a file.
        • -
        -
        -
          -
        • Copy to Clipboard and Save - to File can each be selected or both may be selected. -
        • -
        -
          -
        • When save to file is checked, images - are saved by default to the folder wb_view was launched from - (or the folder containing the currently opened spec file). - To change the destination of the file, click the Choose - File… button.
          -
        • -
        -
        -
          -
        • Capture performs the capture - image operation.
          -
        • -
        -
        -
        -
          -
        - Capture_Image_dialog
        -
        -
        - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/File_menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/File_menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Capture_Image/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/File_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/File_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/File_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/File_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,213 +0,0 @@ - - - - - File Menu - - - File Menu
        - The File Menu appears slightly differently in - the Mac version and PC/Linux versions due to Mac-exclusive wb_view Menu - (contains About wb_view..., Preferences, and Quit - - - - - - wb_view options). On PC/Linux the File Menu contains: -
          -
        • About wb_view... (on Mac's wb_view Menu) to view WB - version, compiling, OpenGL and operating system information.
        • -
        -
          -
        -
          -
        • Preferences - (on Mac's wb_view Menu) to set user specific Workbench configurations.
        • -
        - - -
          -
        • Duplicate Tab to open a new - Viewing Tab that duplicates the settings for the Active - - - - - - - - - - - Tab. The - shortcut for Duplicate Tab is Command/Ctrl + D.
        • -
        -
          -
        -
          -
        • Open File... to open any file in - a Workbench readable format. The - shortcut for Open File is Command/Ctrl - - - - - - - - - - - - - - - - - + O.
        • -
        -
          -
        • Open Location... to open - Workbench-readable files that are located remotely via a URL - that the user sets (custom) or standard files through - connection to ConnectomeDB (with login). The shortcut for Open Location is Command/Ctrl + L.
        • -
        -
          -
        • Open Recent Spec File... to open - a previously opened specification file from a dropdown list.
        • -
        -
          -
        • Open Recent Scene File... to open - a previously opened scene file from a dropdown list.
        • -
        -
          -
        • Save/Manage - - - - - - Files... to save and/or manage options for - all loaded files within one dialog. The shortcut for Save/Manage Files is Command/Ctrl + S.
        • -
        -
          -
        • Close All Files to close all - currently loaded files, without closing Workbench.
        • -
        -
          -
        - -
          -
        • Capture - Image... controls for capturing and saving - images from the Workbench window.
        • -
        - -
          -
        • Close Window to close the - currently active Workbench Window. The shortcut for Close Window is Shift + Command/Ctrl + W.
        • -
        -
          -
        • Exit (on Mac's wb_view Menu) to close the program.  - The shortcut for Exit is Command/Ctrl + Q.
          -
        • -
        -
        -
        -
          -
        -
        -
        -
        - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/File_menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/File_menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/._~$imation_Control.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/._~$imation_Control.docx differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/._~$le_Menu.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/._~$le_Menu.docx differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_Colors.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_Colors.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,126 +0,0 @@ - - - - - Preferences - - - Preferences
        - Preferences, accessible under the wb_view menu - (Mac) or File menu - (PC or Linux), allows one to tailor the Workbench viewing - environment to one's preference. Changes to Preferences are saved - between Workbench sessions. Options include:
        - -
        Colors   - - - -  
        -
          -
        • Buttons to set the Foreground - (chart axes, colorbar labels, etc.) and Background - colors for All types of views, or Chart, Surface, or Volume - views separately.
          -
        • -
        -
        -  
        -
        -

        - - ID     -
          -
        • Show Surface ID Symbols to enable display of - identification symbols on surfaces. -
        • -
        • Show Volume ID Symbols to enable display of - identification symbols on volume slices. -
        • -
          -  
          - - Misc     -
            -
          • Logging Level to set the logging - default for - the terminal window (sometimes useful for examining - bugs).
            -
          • -
          • Save/Manage View Files to set - which files are listed upon opening the Save/Manage - - - - - - Files dialog (in the File Menu): All, - Loaded, Loaded:Modified, Loaded:Not Modified, Not Loaded.
            -
          • -
          • New Tabs Yoked to Group A to set - On/Off whether newly created tabs are by default Yoked - to the Group A yoking group.
            -
          • -
          • Settings to show/hide the Develop - Menu and show/not show the Splash - - - - - Screen at Startup. 
            -
          • -
          -
          -
          -  
          -
          - OpenGL  
           
          -
            -
          • Setting for the Image Capture - Method (OpenGL computer code) used by wb_view to - capture an image of the Viewing Window. Changing this setting - might resolve problems with image capturing on your system.
            -
          • -
          -
          -  
          -
          -
          - Volume 
             
          -
            -
          • Volume Axes Crosshairs to set - On/Off display of axes lines in all Volume views.
            -
          • -
          • Volume Axes Labels to set On/Off - display of superior (S)/inferior (I) and left (L)/right (R) - axes in all Volume views. 
            -
          • -
          • Volume Identification for New Tabs, - to set in newly created Tabs, On/Off movement of the volume slice/crosshairs - displayed to the same plane as the brainordinate selected in - that tab (or a yoked surface/volume tab).
            -
          • -
          • Volume Montage Slice Coord to - set On/Off display of x, y, or z coordinate slice position in - all Volume slice plane views.
            -
          • -
          • Volume Montage Precision to set - the decimal point precision of x, y, or z coordinate slice - position values in all Volume slice plane views.
            -
          • -
          -
          -  
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_ID.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_ID.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_Misc.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_Misc.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_OpenGL.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_OpenGL.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_Vol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Preferences_Vol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Preferences/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/._~$pture_Image.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/._~$pture_Image.docx differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Gear_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Gear_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Reload_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Reload_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Remove_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Remove_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files_dialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files_dialog.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - Save/Manage Files - - - Save/Manage Files
          - Save/Manage Files contains save and/or manage - options for all loaded files/files within the loaded specification - - file within a single dialog. -
            -
          • Filter buttons at the top of the dialog - may be used to filter which files are listed by type, brain - structure, files currently loaded, or files currently - modified. One may set a Preference - (Misc tab) for which type of files one would like to typically - view (All, Loaded, Modified, etc.). The default is All files. -
          • -
          -
            -
          • Click the Save checkboxes to - select files to be saved (only modified files need to be - saved).
          • -
          -
            -
          • A red YES - in the Modified column warns you that a file has been - modified and may need to be saved.
          • -
          -
            -
          • A YES in the Displayed column - indicates that the file is currently being displayed in one of - the tabs of the Viewing Window.
          • -
          -
            -
          • The checkboxes in the In Spec - column may be deselected/selected to modify the contents of a - spec file. Remember to click the Save checkbox next to - the Spec file to save these changes.
          • -
          -
            -
          • Files with a  button in - the Read column are currently loaded into memory. Click the - button to reload the file.
          • -
          -
            -
          • Files with a  button in - the Read column are NOT currently loaded into memory. Click to - load the file.
          • -
          -
            -
          • Clicking the  button in - the Close column removes the file from memory.
          • -
          -
            -
          • Clicking the  button in the - More column shows options to view/edit metadata and change the - name of the file.
          • -
          -
            -
          • All changes made in the Save/Manage Files - dialog must be confirmed by clicking the Save Checked - Files button at the bottom right.
            -
          • -
          -
          -
          -
            -
          -
            -
          -
          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Upload_symbol.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Save-Manage_Files/Upload_symbol.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/File_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/File_Menu/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Bug_Report_box.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Bug_Report_box.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_box.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_box.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_button.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,82 +0,0 @@ - - - - - Help Menu - - - Help Menu
          - The Help Menu contains information about using - wb_view functionality/GUI features and wb_command utilities. -
            -
          • Search (Mac version only) allows - one to search for keywords in the wb_view Menus(only).  - For example, type in "tool" and a list of Menu items that - include the word tool appear. The Help Topics listed below - wb_view Menu Items are general Mac help topics that include - "tool".
          • -
          -
            -
          • Workbench Help... Opens the Help - Window containing information on functions and features.  - The Help Window is also accessible through the - button in the top right of the Workbench - Window
          • -
          -
            -
              -
            • The branched list links to information - about each Workbench component.
              -
            • -
            • Open branches by clicking the triangles - to the left.
              -
            • -
            • Click on a topic to show information on - the right. 
              -
            • -
            • The open field above the list allows - searching for keywords within all Help entries.
              -
            • -
            • Collapse All and Expand All - buttons collapse and expand the branches on the list for - ease in finding topics. By default, items in the Glossary - and wb_command are collapsed, while topics for wb_view are - expanded.
              -
            • -
            -
          - -
            -
          • Report a Workbench Bug... pops up - a form that outlines information needed to investigate bugs - found by users. Please upload relevant data and send an email - to workbench_bugs@brainvis.wustl.edu - with this information if you encounter a bug.
            -
            -
          • -
              -
            -
          -
          -
          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Search.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Help_Search.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Help_Menu/Workbench_Help.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Help_Menu/Workbench_Help.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Surface_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Surface_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Surface_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Surface_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,94 +0,0 @@ - - - - - Surface Menu - - - Surface Menu
          - The Surface Menu allows one to find information - and set parameters for surfaces viewed in Workbench. -
            -
          • Information... will open a popup - that shows geometric information on the surface being viewed - in the current Active - - - - Tab. If the active tab does not contain a - surface, this option is inactive.
          • -
          -
            -
          • Surface Properties sets display - options for all surfaces across a Workbench session.
          • -
          -
          -
            -
          • Display Normal Vectors sets - whether vectors at 90 degrees to the surface will be shown - for each vertex.
          • -
          -
          -
          -
            -
          • Drawing Type sets how the - surface mesh is drawn in wb_view.
          • -
          -
            -
              -
            • Hide hides the surface and - all layers drawn on it.
              -
            • -
            • Links (Edges) - shows the links between surface vertices giving a mesh - appearance.
              -
            • -
            • Vertices shows only the vertex - points across the surface.
              -
            • -
            • Triangles shows the - full surface (mesh filled in with interpolated information - between the vertices).
            • -
            -
          -
          -
          -
            -
          • Link Diameter sets the diameter - of the links when in Links (Edges) drawing mode.
          • -
          -
          -
          -
            -
          • Vertex diameter sets the - diameter of vertices when in Vertices drawing mode.
          • -
          -
            -
          • Opacity sets the opacity of the - surface when in Triangles drawing mode. Opacity in the Overlay - Toolbox sets layer opacity.
            -
          • -
          -
          -
          -
          -
            -
          • Volume interaction sets the - surface used for mapping to volume voxels. This is used in - the Volume/Surface Outline feature and for volume to vertex - identification. 
            -
          • -
          -
          -

          -
          -
          -
          -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Surface_Properties.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Surface_Properties.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Volume_Interaction_Surfaces.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Surface_Menu/Volume_Interaction_Surfaces.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,35 +0,0 @@ - - - - - Gaps and Margins - - - Gaps and Margins
          - Gaps and Margins contains controls for adjusting - margins in a surface or volume montage and margins around tab content. - All gaps and margins are specified as a percentage of the width or - height. - -
            -
          • Window selects the window to which the - gaps and margins are applied.
          • -
          -
            -
          • Montage Gaps sets gaps in surface or - volume montages.
          • -
          -
            -
          • Tab Margins sets margins around the - edges of tabs.
          • -
          -
            -
          • Match Pixel Size to TopWill adjust the - percentage width so that the actual pixel width of left/right margins is - the same as the pixel height of top/bottom margins.
          • -
          - - -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ - - - - - Tile Tabs Configuration - - - Tile Tabs Configuration
          - Tile Tabs Configuration contains options for - different ways to display Viewing - - - - - - Tabs in the Viewing - - - - - - - - - - - - - - - Area.   -
            -
          • Create and Edit...  allows - the user to save preferred tab configurations. These are saved - locally and can be opened between Workbench sessions (as long - as the same system is used). The - shortcut for Create and Edit... Tile Tabs Configuration - is Shift + Command/Ctrl + M. -
          • -
          -
          -
            -
          • Select New... to create a new - configuration. Once the new configuration is named, it is - added to the bottom of the list of options under the Tile - Tabs Configuration menu. One can interactively adjust the - configuration and see the results (if in Tile Tabs viewing). - To edit previously created configurations, select the - desired configuration from the selection box.
          • -
          -
          -
          -
            -
          • Rename... and Delete... - allow the user to curate the list of Tile Tab - configurations.
          • -
          -
            -
          • Select/Edit the number of rows and - columns the tabs will be placed in.  Stretch - Factors allows for adjustment of the relative size of - the Tile Tabs panes for each row and column of panes. When - entered, the values are automatically saved locally as - preferences.
            -
          • -
          -
          -
          -
            -
          -
          -
          -
            -
          • All Tabs (Default) will put all - opened Viewing Tabs into the viewing area with the default - settings being equally sized partitions. (i.e. 3-4 tabs = 2 - rows 2 columns, 5-6 tabs = 2 rows 3 columns; 7-9 tabs = 3 rows - 3 columns).
          • -
          -
            -
          • From Scene: is automatically - selected when a scene - that has Tile Tabs utilized, is opened.  This option can - be selected/deselected but not edited.
            -
          • -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/View_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/View_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/View_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/View_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,134 +0,0 @@ - - - - - View Menu - - - View Menu
          - The View Menu - controls display options for the Workbench - - - - - - Window (Toolbar, Toolboxes, Tabs): - - - -
            -
          • Enter Full Screen expands the - Viewing Area to take up the entire screen. All Toolbars, - Toolboxes, etc. are hidden. The Esc key exits Full - Screen. The shortcut for Enter - - - Full Screen is Command/Ctrl - - - - - - - - - - - + F.
          • -
          -
            -
          • Enter Tile Tabs switches the - Viewing Area from displaying one Viewing Tab at a time to a - configuration that can display multiple Viewing Tabs at once. - Viewing Tabs are shown in Tile Tabs left to right, and in one - or more rows, in the order of their arrangement in normal - viewing configuration. See Viewing - - - - - - Tabs to learn how to change the order of the - tabs. The Esc key exits Tile TabsThe shortcut for Enter Tile Tabs is Command/Ctrl + M.
          • -
          -
            -
          • - Gaps and Margins > Enables adjustment of gaps in a surface - or volume montage and margins around tab regions. -
          • -
          - -
          -
          -
            -
          -
          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/View_Menu/View_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/View_Menu/View_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/._~$_view_Menu.docx and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/._~$_view_Menu.docx differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,53 +0,0 @@ - - - - - wb_view Menu - - - wb_view Menu
          - The wb_view Menu is exclusive to the Mac - version and contains: -
            -
          • About wb_view... (Workbench - version, compiling, operating system, and OpenGL information). -
          • -
          -
            -
          • Preferences User settings for the wb_view UI. The shortcut for Preferences is Command/Ctrl + , (comma).
          • -
          -
            -
          • Mac-specific options that are available - in all applications (Services, Hide wb_view, Hide - - Others, Show All). The - - shortcut for Hide wb_view is Command/Ctrl + H; shortcut for Hide - Others is alt/option + Command/Ctrl + H.
          • -
          -
            -
          • Quit wb_view (to close the - program). The shortcut for Quit - - - wb_view is Command/Ctrl - + Q.
            -
          • -
          -
          -  

          -
          - In the PC and Linux versions, About wb_view..., - Preferences, and Exit (to close the program) - options appear in the File - menu.
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/wb_view_Menu/wb_view_Menu.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Window_Menu/IdentifyBrainordinateDialog.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Window_Menu/IdentifyBrainordinateDialog.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Window_Menu/Rename_tab.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Window_Menu/Rename_tab.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Window_Menu/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Window_Menu/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Window_Menu/Window_Menu.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Window_Menu/Window_Menu.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Window_Menu/Window_Menu.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Window_Menu/Window_Menu.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,139 +0,0 @@ - - - - - Window Menu - - - Window Menu
          - The Window Menu contains options for viewing Viewing - - - - - - - - Tabs and Workbench - - - - - Windows. -
            -
          • Next Tab switches to the Viewing - Tab to the right of the currently displayed tab.  The - shortcut for Next Tab is Command/Ctrl + right - arrow.
          • -
          - -
            -
          • Lock Window Aspect locks the aspect ratio - for the entire graphics region in the window.
          • -
          -
            -
          • Lock Tab Aspect locks the aspect ratio - for the graphics region in the selected tab.
          • -
          -
            -
          • Lock Aspect Ratio for All Tabs locks the aspect ratio - for the graphics region in each tab in the window.
          • -
          -
            -
          • Unlock Aspect Ratio for All Tabs unlocks the aspect ratio - for the graphics region for each tab in the window.
          • -
          - - -
            -
          • Next Tab switches to the Viewing Tab to the right of the - currently displayed tab.  The shortcut for Previous Tab is - Command/Ctrl + right arrow.
          • -
          -
            -
          • Previous Tab switches to the Viewing Tab to the left of the - currently displayed tab.  The shortcut for Previous Tab is - Command/Ctrl + left arrow.
          • -
          -
            -
          • Rename Selected Tab... allows - the user to rename the Viewing Tab with any name or descriptor - they choose.
            -

            -
          • -
          -
          -
            -
          • Move All Tabs in Current Window to - New Windows separates all of the Viewing Tabs out into - individual Workbench Windows.
          • -
          -
            -
          • Move All Tabs From All Windows Into - Selected Window takes all individual Workbench Windows - and turns them into Viewing Tabs within a single Window.
          • -
          -
            -
          • Move Selected Tab to Window > moves - - - - - - - - - the active Viewing Tab into a new Window (if there are no - other Windows open) or into another existing Window.
          • -
          - -
            -
          • Information - - - - - Window opens the Information - Window.  When the user clicks on a surface or volume in - the viewing area, this is where the information for that - location is displayed.
          • -
          -
            -
          • Scenes... - opens the Scenes Window.  When there - is a check mark in front of this option (as shown below), it - means the Scene box is open.  Click this option again and - it will close the Scenes Window.
          • -
          -
            -
          • Bring All To Front pulls all of - the Workbench elements (Windows, Toolboxes, etc.) that are - opened, out in front of all other displays (Terminal windows, - browsers, applications, etc.).
          • -
          -
            -
          • Tile Windows organizes all open - Workbench Windows into columns and rows.
            -
          • -
          -  
          -  
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Menus/Window_Menu/Window_Menu.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Menus/Window_Menu/Window_Menu.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Mouse_Controls/Mouse_Controls.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Mouse_Controls/Mouse_Controls.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Mouse_Controls/Mouse_Controls.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Mouse_Controls/Mouse_Controls.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,96 +0,0 @@ - - - - - Mouse Controls - - - Mouse Controls
          - Several basic surface and volume viewing and - navigation functions are controlled with the mouse and are only - active when the mouse cursor is within the Viewing - - - - - Area -
            -
          • Rotate: hold down the left - mouse button and move the mouse back and forth and up - and down. Note that the rotation function is not active in Volume - View. All other mouse controls are active in - all views.
          • -
          -
            -
          • Zoom: press the - Command/Ctrl key + the left mouse button - and move the mouse up and down. If you have a mouse wheel, you - can also scroll up to zoom out or scroll down to zoom in. -
          • -
          -
            -
          • Pan: (move the brain - surface to a different part of the Viewing Area), press - the shift key + the left mouse button - and move the mouse left, right, up, or down.
          • -
          -
            -
          • ID: To identify a brainordinate, - click on the brain surface or volume slice. A sphere will - appear where the surface was clicked. Also, the Information - - - - - - - - - - - window will pop up, showing information on - the particular vertex/voxel that was clicked.
            -
          • -
              -
            -
          -
            -
              -
            • The color and size of the ID sphere can - be adjusted using the Properties - button in the Information window.  
              -
            • -
            -
          -
            -
              -
            • Reclicking on the sphere deselects that - brainordinate and the sphere will disappear.
            • -
            -
          -
            -
          • Right clicking on a - surface or volume slice, brings up a menu of - options depending on what is loaded (see images).
          • -
          -
            -
          • Right clicking in the Viewing Area, - but not on a surface or volume, pops up the single option to - Remove All Vertex Identification Symbols.
            -
          • -
          -
          -
          -
            -
          -
          -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Mouse_Controls/RightClick_Surface.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Mouse_Controls/RightClick_Surface.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Mouse_Controls/RightClick_Volume.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Mouse_Controls/RightClick_Volume.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Mouse_Controls/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Mouse_Controls/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/gear-button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/gear-button.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ - - - - - Open Spec File Dialog - - - Open Spec File Dialog
          - The Open Spec File Dialog lists all the files - contained in the Specification - - - - file, organized by file type.  -
            -
          • The tabs in the View File Types: - and View Structures: bars at the top of the dialog - allow the user to view a subset of the data files by clicking - on a specific file or structure type.
          • -
          -
            -
          • Checkboxes on the left indicate which - files will be loaded once the Load button, in the - lower right, is pressed. All files are selected by default. - Toggle off a checkbox to keep those files from being - loaded.  To check or uncheck all the files, click All - or None in the Select Files: bar near the top - of the dialog.
          • -
          -
            -
          • The Data Type, Structure, - and Data File Name headers can also be clicked to sort - the list of files by these attributes.
          • -
          -
            -
          • The More  - gear buttons to the right of each checkbox will, once - implemented, allow the user to select options to Set the - Structure for a file (e.g. Cerebellum, Cortex Left, - etc.) or to View Metadata associated with the file. - Clicking on these buttons now,  will display these - options as greyed out, indicating that this feature is not yet - implemented.
            -
          • -
          -
          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Open_Spec.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Open_Spec.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Open_Spec_File_Dialog/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting_History.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting_History.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ - - - - - Charting - - - Charting
          - The Charting tab in the Overlay Toolbox - contains controls for display of data graphs and matrices. The Active - - - - - - - - - - Tab must be in Chart - - - - View in order for this tab to be active (not - grayed-out). For Data/Time Series chart type, Select checkboxes - indicate whether file(s) will be charted when a brainordinate is - identified (in another Viewing Tab).  -
            -
          • Loading shows loaded Data - Series, Matrix, OR Time Series files to select for charting, - depending on which Chart Type is selected in the Toolbar.
          • -
          -
            -
              -
            • For Data/Time Series - chart type, Select checkboxes indicate whether - file(s) will be charted when a brainordinate - is identified (in another Viewing Tab).
              -
            • -
            • For Matrix chart type, - select a loaded file from the dropdown (only one matrix file - can be shown at a time). As in the Layers tab, wrench and - colorbar settings buttons allow one to set the palette for - the data displayed in the matrix and display a colorbar of - the palette spectrum, respectively.
              -
            • -
              -
            -
            -
              -
            -
          • History shows a list and line - color for each identified vertex that has been charted. - History is only active for - Data/Time Series chart types.
          • -
          -
            -
              -
            • The chart displays - a data - value (y-axis) for each Map Index/unit of time (x-axis). - The color of the selected brainordinate will match the - color of (one of) the chart(s) graphed for that - brainordinate.
              -
            • - -
            • Each charted - graph can be turned on/off of the display with the - checkboxes. Most recent charts are listed at the top of - the history.
              -
            • - -
            • Show Average displays an - averaged chart for all of the data displayed on - the chart (charts graphed from different files will be - averaged together). If displayed charts have differing - numbers of data points, the average will have the same - number of datapoints as the last graphed chart (listed - at top).
              -
            • -
            • Show last selects the total - number of charts to be displayed both in the Viewing - Area and in the History. This setting is not retroactive - and one may want to set this for a high value if - multiple files are being charted at once. If a - brainordinate "falls out" of the listed history/display, - it will be displayed as the brainordinate ID symbol - color set in Information - - - - - - - - Window > Properties.
              -
            • -
              -
              -
            -
            -
            -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting_Loading.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Charting_Loading.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Charting/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,69 +0,0 @@ - - - - - Connectivity - - - Connectivity
          - The Connectivity tab in the Overlay Toolbox - contains a listing of loaded Connectivity and Fiber Orientation - files and links.
          -
          - URL links (loaded using Open Location... in File Menu) - to remotely stored files are often used to access large (>30 - GB) connectivity matrix files, loading one row of the matrix at a - time as needed, rather than having to locally store and load the - whole 90,000 x 90,000 matrix into memory.
          -
            -
          • On - checkboxes toggle on/off data loading from the listed - connectivity file for identified brainordinates (selected - by left clicking on surfaces or volumes). If checked, every - time a brainordinate is selected, data will be - loaded into memory from that file for that brainordinate, - regardless of whether it is displayed in any viewing tab. - For best performance, toggle off connectivity loading for - files not currently in use.
          • - -
          - -
            -
          • Copy - copies the data from the currently loaded matrix row - (for the currently selected brainordinate) and creates a - new *.dscalar file containing this map data. The new - file(s) created this way will appear and can be saved - (and renamed, if desired) in the Save/Manage - - - - - Files Dialog.
          • - -
          - -
            -
          • Connectivity File - lists links or paths to loaded dense or - parcellated connectivity matrix files. For dMRI-based - tractography connectivity (trajectory or *.traj*) - files, an associated Fiber Orientation File - must also be loaded for display and is listed to the - right.
            -

            -
          • -
          -
          -
            -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Add_Layer.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Add_Layer.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Colorbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Colorbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Layers.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Layers.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Layers.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Layers.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,84 +0,0 @@ - - - - - Layers - - - Layers
          - The Layers tab in the Overlay Toolbox - contains controls for display of data maps on surfaces or in volumes. - -
            -
          • By default, 3 layers are loaded into the - Layers tab. The top layer of displayed data is listed as the - first row, the second layer below that, etc., like a layer - cake.
          • -
          -
            -
          • Checkboxes under On at the left - indicate whether the data listed for that layer is being - displayed. When a top layer is unchecked, the layers - underneath that layer are visible.
          • -
          -
            -
          • The File pulldown sets the file - to display on that layer. Only loaded files that can be - displayed in the type of view set for the Active - - - - Tab will be options. Files can - contain one or more brain Maps that may be selected by - number or name in the pulldowns to the right.
          • -
          -
            -
          • Clicking the - button opens the Overlay - - - - and Map Settings box that contains several - tabs for setting display options for the different types of - Layers data: Labels, Layer (volume layer settings), Metadata, - Palette, Parcels, Trajectory.
          • -
          -
            -
          • Clicking the - button toggles on the colorbar for the displayed layer's - palette. The values at the top of the colorbar change with - each map to match the range of data displayed.
          • -
          -
            -
          • Clicking the - button shows options for moving, adding and removing layers - relative to the layer in which this button was selected. -
          • -
          -
            -
          • Opacity sets the opacity of the - layer. 1.0 is 100% opaque. If the opacity is set to a low - value, layers under the selected layer will show through. -
          • -
          -
            -
          • Yoke sets map yoking between - layers to a map yoking group denoted by a Roman numeral. - Navigation between maps of layers in the same map yoking group - will be yoked (move together). If files with differing numbers - of maps are set to the same map yoking group, a warning will - appear before yoking is activated. 
            -
          • -
          -
          -
          -
          - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,150 +0,0 @@ - - - - - Overlay and Map Settings - - - Overlay and Map Settings
          - Overlay and Map Settings sets display options for layer - data selected in the Overlay Toolbox - Layers tab. -
            -
          - To open these settings, click the  button for a selected layer.
          -
            -
          -
            -
          • The box contains - tabs with options for different types of Layers data: Labels, - Layer (volume layer settings), Metadata, Palette, - Parcels, Trajectory. Tabs will be - active (not grayed-out), depending on the data in the File - selected for that layer.
          • -
          -
            -
          • The Do Not - Replace option at the bottom of the box allows more - than one Settings box to be open at a time. Otherwise, if - settings for another layer is selected the contents of the - box will switch to options for that most recently selected - layer.
          • - -
          - -
            -
          • Color Bar contains controls for - the adjustment of color bar attributes. Fine tuning of the color - bar is performed using the annotation editing features.
          • -
          -
            -
          • Labels contains an Edit - button used for modifying the color and name of labels in - a  *.label or *.dlabel file. Edits are applied within - the session when the Apply or OK buttons are - clicked. The edits are not written to the label file until - saved in Save/Manage - - - - - - - - - - - Files.
          • -
          -
            -
          • Layer contains voxel drawing - settings for files containing volume data. The 3D options to - draw voxels as cubes or rounded cubes are only active in All view. - These options should only be used for files with a - limited number of voxels to draw (*.dscalar files that - contain only subcortical voxels, low resolution volumes, or - highly thresholded higher resolution volumes) because - wb_view attempts to draw all voxels in the volume, causing - the program to hang when large numbers of voxels are - drawn.
          • -
          -
            -
          • Metadata will allow - creation/editing of map metadata for each layer file. This - option is not active currently.
          • -
          -
            -
          • Palette (see image) contains - settings for adjusting the type and range of the data color - palette, setting thresholds on displayed data, and shows a - histogram/basic statistics on the data distribution. -
          • -
          -
          -
            -
          • Thresholds set by the sliders - or entered values in the toggle box are shown by the - shading in the histogram and can be applied inside or - outside the set values.
          • -
          -
          -
          -
            -
          • Palette spectrum is set for - the Full range of the map data, a Percent - range of the full data, or a Fixed range of the full data - values. Positive, zero, or negative values may be toggled - on/off for display with the checkboxes.
          • -
          -
          -
          - -
          -
          -
            -
          • Data Options - allow a palette setting to be applied to all maps in a - data file and/or to multiple data files.
          • -
          -
          -
            -
          • Parcels - sets the mode and color for which an identified parcel is - indicated on the surface. Color Mode: Outline - indicates the selected parcel's boundary with a highlight - color, Fill shows the entire selected parcel with - the highlight color, and Off turns off the parcel - indication altogether.
          • -
          -
            -
          • Trajectory - sets Attributes, Display Mode, and Data Mapping for - display of tractography trajectory files. This tab is - currently inactive pending the release of tractography - data.
            -
          • -
          -
          -
          -

          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Palette_Settings.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Palette_Settings.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Settings_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Settings_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_Toolbox_horiz.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Overlay_Toolbox_horiz.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Settings_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Layers/Settings_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_horiz.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_horiz.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,70 +0,0 @@ - - - - - Overlay Toolbox - - - Overlay Toolbox
          - The Overlay Toolbox contains controls for - setting the data to be displayed on structures and in charts.
          -  
          - By default, the Overlay Toolbox is attached to the bottom of the Workbench - Window, under the Viewing - - Area, in a horizontal configuration (top image). -
          It can also be attached to the left side - of the Viewing Area, in a vertical configuration (bottom image, - set in View - menu >  Overlay Toolbox). Either - configuration can be detached from the Workbench Window by left - click + drag on the top of the - Overlay Toolbox. To reattach, double click on the top of the Overlay - Toolbox.
          -
          - There are 4 tabs in the Overlay Toolbox, each controlling a - different type of data viewing:
          -
            -
          • Layers - controls display of data maps on surfaces or in volumes.
          • -
          -
            -
          • Charting - controls which files are charted and, for data series/time - series, which data for identified vertices is being displayed - on a chart. 
          • -
          -
            -
          • Connectivity - controls which Connectivity and Fiber orientation files, data - is being loaded from for display.
          • -
          -
            -
          • Vol/Surf - Outline controls display of surface contours - on volume slices/planes.
            -
          • -
          - Tabs and files available for viewing change - depending on whether you are in Chart view, - Montage - view, Volume view, - All view, - or Surface - - view
          -
          -
            -
          -
          -
          -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_vert.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Overlay_Toolbox_vert.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Color-Vol-Surf_Outline.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Color-Vol-Surf_Outline.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Tab-Vol-Surf_Outline.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Tab-Vol-Surf_Outline.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ - - - - - Vol/Surf Outline - - - Vol/Surf Outline
          -
          The Volume Surface - Outline tab (Vol/Surf Outline for short) in the Overlay Toolbox - allows one to set parameters for viewing brain surface - outlines on volume slices in the Volume or All (Whole Brain) Viewing - - - - Tabs (inactive in all other Views). 
          -
          - This is useful for comparing Freesurfer, or otherwise - reconstructed, surfaces with volume slices, as a check of the - quality of the surface.  It is also useful for viewing - Connectivity data (dense connectivity and BOLD dense data series - files) on both the cortical ribbon and in subcortical voxels.
          -
            -
          • On checkbox toggles on/off a brain surface outlined - on a volume slice view.
          • -
          -
            -
          -
            -
          • Color Source sets the coloring of - the outline as provided by either (A) the displayed overlays - from another Tab, or (B) from a list of default solid colors.
          • -
          -
            -
          • Thickness sets the width of the - lines.
          • -
          -
            -
          • File selects which surface will be - used for the outline display.
            -
          • -
          -
          -
          -
            -
          - A
          -
          -
          - B
          -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,66 +0,0 @@ - - - - - Create New Scene File - - - Create New Scene File
          - To create a new Scene File, open - the Scenes Window - by clicking the button in the top right corner of the Workbench - - - - - Window
          -
            -
          • Click the New... button.  - Set the Scene File name and location (default location is the - directory where wb_view was launched). 
          • -
          - -
            -
          • To add to an existing Scene File, select - the desired file from the Scene File selection pull-down. If - the desired file is not an option here, load the file using - File>Open File... and it should appear. -
          • -
          -
            -
          • Once one has set up the display of data - as desired, use the Add... button to add a scene. Enter - the Scene Name and any additional Description - to the basic information added by default about what is being - displayed in the Active - - - - - Tab
          • -
          -
            -
          • The BALSA Scene ID will be - provided by the BALSA Database when the Scene File is uploaded. - This feature is still in development at this time.
          • -
          -
            -
          • Toggling off the Options at the - bottom may be particularly useful when many files are loaded, - but only a few are displayed, or if one wants to create a - scene that displays only the Active Tab, for clarity.
          • -
          -
            -
          • Click OK. The new scene will be - added to the list of scenes in the Scenes Window, along with a - thumbnail image of the scene's Active Tab.
            -
          • -
          -
          -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Scenes button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Scenes button.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Create_New_Scene_File/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Scenes_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Scenes_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Scenes_Window.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Scenes_Window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,111 +0,0 @@ - - - - - Scenes Window - - - Scenes Window
          - The Scenes Window is the interface to - save the current Workbench session (loaded files and settings) as - a Scene - (in a .scene file).  Scenes allow one to save a snapshot of a - Workbench session that contains a record of all of the files - loaded and view settings, making it easy to get to a specific - display.  Using scenes, one can "pick up where they left off" - when reopening Workbench. -
            -
          • Scene File selection is used to - choose among loaded Scene files. Use File>Open - File... to load an existing scene file and have it - show up in this selector.
          • -
          -
            -
          • BALSA Study ID contains the - Study ID that is provided when uploading the scene file to - the BALSA Database (currently in development). Press the - Edit button to change this value.
          • -
          -
            -
          • New... button creates a new - Scene File.  A new Scene File is created with no scenes - within it. Add any number of scenes with the Add - button.
          • -
          -
            -
          • Show - loads the active (highlighted in blue) scene.  Double - clicking on a scene's title/description will also show the - scene.
          • -
          -
            -
          • Preview... opens a separate window with an enlarged - display of the highlighted scene's thumbnail along with the - name and description.
          • -
          -
            -
          • Add... creates a new scene - within the current Scene File and adds it to the bottom of - the list of scenes.  The scene needs to be set up - before clicking this button.
          • -
          -
            -
          • Insert... creates a new scene - that is added to the scene list above the currently - highlighted scene.
          • -
          -
            -
          • Replace... is used to modify an existing scene.  The highlighted scene - will be overwritten at the time the Replace button - is clicked, therefore make scene changes before clicking - this button.   When a scene is replaced, the - name/description of the scene can also be edited. 
          • -
          -
            -
          • Move Up moves the selected scene - up one position in the list of scenes.
          • -
          -
            -
          • Move Down moves the selected scene - down one position in the list of scenes.
          • -
          -
            -
          • Delete... allows one to delete a - highlighted scene from the Scene File.
          • -
          -
            -
          • Show Scene Options
          • -
              -
            • Use background and foreground colors from scene when - a scene is created, the - foreground and background colors are added to the scene and will be used when the - scene is displayed. Note that the background and foreground colors are adjusted - using the Preferences Dialog. When a scene is loaded that contains background and - foreground colors, they will override the user's Preferences colors until a - different scene is loaded, a spec file is loaded, or this checkbox is unchecked. -
            • -
            -
          - Note: All additions and modifications to a - scene file are not ultimately saved (to disk) until one clicks Save - - - - - - checked files in Save/Manage - - files (accessed from the File menu).
          -
          -
          -
          -
            -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Scenes_Window.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Scenes_Window.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Scenes_Window/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Scenes_Window/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/CiftiFileRow.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/CiftiFileRow.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/Indentify_Brainordinate.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/Indentify_Brainordinate.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,65 +0,0 @@ - - - - - Select Brainordinate - - - Identify Brainordinate
          - Allows one to identify a brainordinate by its CIFTI file row, - CIFTI parcel membership, Label, or by it Surface vertex. -
            -
          • Surface Vertex
            -
          • -
              -
            • Structure sets the hemisphere - on which the vertex will be identified. 
              -
            • -
            • Vertex Index sets the vertex - number to be identified. 
              -
            • -
            -
          -
            -
          • Cifti File Row is only an active - option when a Dense Connectome, Dense Parcel or Trajectory - file is loaded (only dense CIFTI files activate this - selection).
            -
          • -
              -
            • File selects the file from - which a particular row will be viewed.
              -
            • -
            • Row Index sets the matrix row number to be mapped (also - - - - - - - - - identifies the corresponding vertex, which is not the - same as the row index). The Row index - will be displayed as the Map selection in the Overlay - - - - - - - Toolbox: Layers - tab.
            • -
            -
          -
          -
          -
          - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Splash_Screen/Splash_Screen.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Splash_Screen/Splash_Screen.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Splash_Screen/Splash_Screen.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Splash_Screen/Splash_Screen.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,75 +0,0 @@ - - - - - Splash Screen - - - - Splash - - - - - - - - - Screen
          - The Splash Screen opens by default upon launching wb_view and - contains: -
            -
          • Workbench version information
          • -
          - -
          -
            - -
          • Shortcut list for - opening Specification - - - - - - - - - - - - - - files (spec files) and scene files in the current - directory or those that have been recently opened.
            -
            - To select and open - a Spec file listed, select its title and click the Open - button, or double click on its title.
            -
            - To turn off the default opening of the - Splash Screen at startup, turn off this option in Preferences - (File menu - or wb_view - - menu [Mac]).
            - -
              -
              -
              -
            -
            -
            -
          • -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Splash_Screen/Splash_screen.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Splash_Screen/Splash_screen.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Splash_Screen/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Splash_Screen/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/All_View/All_Toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/All_View/All_Toolbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/All_View/All_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/All_View/All_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/All_View/All_View.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/All_View/All_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,184 +0,0 @@ - - - - - All View - - - All View
          - All View displays the left and right hemisphere surfaces (and - cerebellum if loaded) and all 3 volume planes in one Viewing - - - - - - - - - - - - - - - Tab. In All View, the Toolbar looks like this:
          -
          - -
            -
          • Orientation contains buttons to - set orthogonal and User-defined views of the brain - surfaces/volume displayed.
          • -
          -
            -
          -
          -
            -
          • Orthogonal view buttons are labeled: - L (left), R (right), D (dorsal), V - (ventral), A (anterior), and P - (posterior). 
          • -
          -
          -
            -
              -
            -
          -
          -
            -
          -
          -
          -
            -
          • The Reset button resets the - orientation/zoom to the default.
          • -
          -
          -
          - -
          -
            -
          • Surface Viewing contains - pull-downs and check-boxes to set the surfaces to view: L - (left hemisphere), R (right hemisphere), C - (cerebellum).
          • -
          -
            -
          -
          -
            -
          • The top pull-down menu changes the - type of surface: Anatomical, Inflated or Very Inflated.
          • -
          -
          -
          -
            -
          • The check-boxes to the left of the L, - R and C turn on/off the display of that structure.
          • -
          -
          -
          -
            -
          • To change the structure's surface - file, click on the L, R or C button and a list of loaded - files will appear for selection.
          • -
          -
          -
          -
            -
          • The scroll boxes - to the right, control the spacing between left and right - hemispheres (relative to anatomical spacing = 0) and the - spacing of the cerebellum away from the cortex.
          • - -
          -
          - -
            -
          • Slice Indices/Coords - contains toggles to turn off/on volume planes (P = - parasagittal, C = coronal, A = axial) and - settings for the slice index and stereotaxic (Talairach) - coordinate to be viewed. 
          • -
          -
            -
          -
          -
            -
          • The vertical Origin button - rests the slice indices to the default (centered at the - AC).
          • -
          -
          -
          -
          -
            - -
          • The  button (default - on) activates movement of the crosshairs/volume slice to the - same plane as the brainordinate selected in any of the - Viewing Tabs in the same yoking group as the All tab.
          • -
          -
          -
          -
            -
          • The pull-down at the bottom toggles - between Orthogonal and Oblique - volume viewing.
          • -
          -
          - -
            -
          • Clipping - contains settings for cutting down Surface, Volume, or - Features data to be viewed.
          • -
          -
            -
          • Tab - contains cross-tab functions for yoking the display of - two or more Viewing Tabs.
            -
          • -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/All_View/All_view.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/All_View/All_view.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/All_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/All_View/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/All_View/Volume_ID_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/All_View/Volume_ID_button.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/ChartView_dtseries_DataSeries.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/ChartView_dtseries_DataSeries.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Chart_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Chart_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Chart_View.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Chart_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ - - - - - Chart View - - - - Chart View
          - Chart View displays 2-dimensional graphs or - matrices of Workbench-chartable files.
          -
          - Chart Type, determines which kind of - graph is viewed. If one or more Workbench-chartable files are - loaded, one or more Chart Types will be available for selection. - Chartable files for the selected Chart Type are listed and can be - selected for display in the Overlay Toolbox Charting - tab.
          -  
          - Chart Types currently available:
          - Data/Time - - Series (top image) chartable files are graphed - for a brainordinate identified in a non-Chart view Viewing Tab, - showing a data value (y-axis) for each Map Index/unit of time - (x-axis). The following file types are available for Data/Time - Series charting, as long as they contain more than one - map: -
          -
          - * CIFTI - Data Series (.dtseries.nii)
          - * - CIFTI Parcel Scalar (.pscalar.nii)
          - * - CIFTI Parcel Series (.ptseries.nii)
          - * - CIFTI Scalar (.dscalar.nii)
          - * - Metric (.func.gii, .shape.gii)
          - * - Volume (.nii, .nii.gz)
          -
          - Matrix - (bottom image) chartable files:
          -
          - * - CIFTI Parcel to - parcel connectivity (.pconn.nii) -- matrix - - - - - with parcels as the y-axis rows, parcels as the x-axis columns, - and the colored cells indicate the correlation (connectivity) - values between the parcel pair.
          - * - CIFTI Parcel Scalar (.pscalar.nii) -- matrix - - - - with parcels as the y-axis rows, map indices as the x-axis - columns, and the colored cells indicate the scalar data value - for a parcel/map pair in a particular parcel - (identified in a non-Chart view Viewing Tab). 
          -
          -
          -
          -  
          -
          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/ChartView_pscalar_Matrix.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/ChartView_pscalar_Matrix.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartDataSeries.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartDataSeries.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_DataSeries_Toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_DataSeries_Toolbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_dtseries_DataSeries.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_dtseries_DataSeries.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_pscalar_Matrix.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_pscalar_Matrix.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ - - - - - Data/Time Series Chart View - - - Data/Time Series Chart View
          - When Data Series or Time Series is selected as - the Chart Type, the Toolbar - appears like this:
          -
          -
          -
            -
          • The only difference between a Data Series - or Time Series file is that in a Time Series, the Map Index is - a unit of time (each map in the series shows data at a - particular timepoint).
          • -
          -
            -
          • Select a Data/Time Series chartable - file in the Overlay Toolbox Charting - tab.
          • -
          -
            -
          • Charts are viewed for a particular - brainordinate, therefore you must click on a grayordinate in a - volume or surface Viewing - - - - Tab, then click back to the Chart tab to - view the graph for that location. The color of the graph - should match the color of the brainordinate ID sphere, as - shown in the image:
            -
          • -
          -
          -
          -
            -
          • Chart Axes:  Allows - adjustment of the minimum and maximum values for each axis. - The Auto checkboxes indicate that the range for the - axis is automatically set to the min and max of the data being - displayed.
          • -
          -
            -
          • Chart Attributes: To adjust - attributes of the chart display, such as the width of the - graph line.
          • -
          -
            -
          • Tab: These across Tab - functions do not affect Chart View.
            -
          • -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/ChartView_Matrix_Toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/ChartView_Matrix_Toolbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,97 +0,0 @@ - - - - - Matrix Chart View - - - Matrix Chart View
          - When Matrix is selected as the Chart Type, the - Toolbar appears - like this:
          -
          -
          -
            -
          • Select a Matrix chartable file in the Overlay Toolbox Charting - tab.
          • -
          -
            -
          • Matrix charts do not dynamically change, - instead they show data that is dynamically accessible for - viewing on the surface/volume in other viewing tabs.
          • -
          -
            -
          -
            -
          • When viewing a CIFTI - Parcel to parcel connectivity (.pconn.nii) file matrix, left - click on a row to select a parcel (will be outlined with a horizontal box - in the matrix). Parcel connectivity for - the selected parcel will be displayed on Viewing - - - - - - Tabs that are showing the parcel - connectivity file as a layer.
          • -
          -
            -
          • A parcel can also be - selected by clicking on a surface/volume in another - Viewing Tab and the corresponding parcel row will be - outlined in the matrix.
            -
          • - -
          -
          - -
          - - -
            -
          • When viewing a CIFTI Parcel Scalar (.pscalar.nii) file - matrix, the y-axis rows are parcels and the x-axis columns - are Map indices. When the map index is set in Overlay - - - - - Toolbox: Layers for any non-Chart - Viewing Tab, a vertical box appears in the matrix around - the column for the selected map index.
            -
          • -
          -
          -
          -
            -
          • Chart Attributes: To adjust - attributes of the matrix chart display, such as the cell - width and cell height. The default setting fills the - Viewing Area with the matrix cells. The Reset - button resets the cell size to the default.
          • -
          -
            -
          • Tab: These across Tab - functions do not affect Chart View.
            -

            -
          • -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pconn_matrix_montage.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pconn_matrix_montage.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pscalar_matrix_surface.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pscalar_matrix_surface.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Montage_toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Montage_toolbar.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Chart_View/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Clipping/Clipping.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Clipping/Clipping.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Clipping/Clipping.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Clipping/Clipping.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,34 +0,0 @@ - - - - - Clipping - - - Clipping
          - Clipping contains controls for clipping the - view in the X, Y, and Z planes for Surface, Volume, and Features - structures in Montage, - Volume, - All, and Surface - Views. -
            -
          • Checkbox toggles turn the clipping - off/on in each plane and for Surface, Volume, or Features - structures.
          • -
          -
            -
          • The Setup button opens the - Clipping Planes settings box that contains options for - panning, rotating, and setting the thickness for the - clipping box. The Show Clipping Box Outline toggle - is useful for seeing exactly what will be clipped when - clipping planes are turned on.
            -
          • -
          -
          -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Clipping/Clipping_Planes.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Clipping/Clipping_Planes.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Clipping/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Clipping/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,72 +0,0 @@ - - - - - Custom Orientation - - - Custom Orientation
          -
          The Custom button - in the Orientation/Slice Plane sections of the Toolbar allows the user - to set, save, edit, or access custom orientations for Montage, - Volume, All, and Surface Views.  - -
            -
          • Click Custom and Create and - Edit... to open the Custom Orientation settings box:
            -
          • -
          -
            -
          -  
          - -
            -
          • Workbench Window sets the Workbench - Window to which the orientation transform - will be applied. Note: All tabs will have the transform - applied.
          • -
          -
            -
          • Pan (X, Y) sets the - amount of X, Y, Z offset from the center.
          • -
          -
            -
          • Rotate (X, Y, Z) sets the - rotation about the x-, y-, and z-axes.
          • -
          -
            -
          • Oblique Rotate (X, Y, Z) - sets the rotation about the oblique x-, y-, and z-axes in Volume - or All - views-- only active when Oblique is selected in Slice - Indices/Coords.
          • -
          -
            -
          • Zoom sets zoom factor relative - to the default of 1.
          • -
          -
            -
          • Copy copies the settings from - the Transform fields to the selected (highlighted) Custom - Orientation file listed on the right.
          • -
          -
            -
          • Load takes the settings from the - selected (highlighted) Custom Orientation file listed on the - right and applies them to the structures in the selected - Window.
          • -
          -
            -
          • New.. and Delete... - allow one to create or delete Custom Orientations from the - list. The listed saved orientations are saved locally and will - be available every time Workbench is opened on the same - system.
            -
          • -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ - - - - - Border Drawing - - - Border drawing
          - When Border Mode - is activated, Draw - tools are selected by default and displayed at the bottom of the Toolbar. Border - drawing is currently only active on surface structures in Montage, - All, or - Surface - views.
          -
            -
          • By default, any loaded border files are - automatically displayed on the surface. To turn borders off - before drawing a new border, toggle off Display Borders - in the Features - - - Toolbox Borders tab.  -
          • -
          -
            -
          • Draw by holding down the alt/option - key and the left mouse button while dragging the mouse. - Red border points will appear where the border is drawn.
          • -
          -
            -
          • Draw a single, continuous line or draw multiple short sections - or points (all need to be drawn in the same direction). -
          • -
          -
            -
          • The Undo - button removes the last section drawn, the Reset - button erases all the drawing that has not been - saved/finished.
          • -
          -
            -
          • Mouse and key strokes used to draw a new - border, or erase, extend, or replace a border already drawn - are available as Tooltips.
          • -
          -
            -
          • When done drawing the border, click the Finish - button and a popup box will appear to save and classify the - new border in a new or an existing loaded border file.
          • -
          -
            -
          -
          - -
            -
          -
            -
          • A Name must be created for each - border (click Add/Edit button), the color may be set with the - sliders or RGB code, the default is black.
          • -
          -
            -
          • A Class for the border may be - similarly set, otherwise the default is '???'.
          • -
          -
            -
          • If you click the Closed Border - checkbox, the first and last border point will be joined.
          • -
          -
            -
          • The finished border will change from red - to the border color set and the new border file and class will - show up in the Features Toolbox. The start point and end point - of the border are marked as green points on the border for - reference.
          • -
          - -
            -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_drawing.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_drawing.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - Border Editing - - - Border editing
          - In Border Mode, - select Edit from the - pulldown displayed at the left bottom of the Toolbar. Border - editing is only active on surface structures in Montage, - All, - or Surface - views.
          -
          -
          -
            -
          • Any Borders to be edited must be displayed. If they are off, - toggle Display Borders on in the Features - - - - Toolbox Borders tab and make sure the - specific borders that will be edited are toggled on in Borders: - Selection.
          • -
          -
            -
          • By default, the Properties - button is activated. If a displayed border is - clicked, the Edit Border Properties box will pop up - and a border's Name, Class, or Point Order can be - edited. 
            -

            -
          • -
          - -
            -
          • If the Delete button is - clicked, each border clicked on in the display will be - deleted.
          • -
          - -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_edit.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_edit.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Edit_Border_Properties.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Edit_Border_Properties.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Border_ROI.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Border_ROI.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_Region_of_Interest.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_Region_of_Interest.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,103 +0,0 @@ - - - - - Create ROI - - - Create ROI
          - Create ROI creates a region of interest map from the vertices - within or outside a border. Currently, one can only create an ROI - map containing a single region of interest.
          -
          - In Border Mode, - select ROI from the pulldown - displayed at the left bottom of the Toolbar. Create - ROI is only active on surface structures in Montage, - All, - or Surface - views. (wb_command also has operations for creating ROIs both on - the surface and in volumes).
          -
          -
          -
            -
          -
            -
          • Any Borders used to Create an ROI must be - displayed. If they are off, toggle Display Borders on in the Features - - - - - - Toolbox Borders tab, specific borders - can be toggled on/off in Borders: - Selection.
          • -
          -
            -
          • When a displayed border is clicked, the Create - - - - - - - - Region of Interest box will pop up for creating and - saving an ROI consisting of all the vertices within the - selected border. An ROI can be saved as a Dense Label or - Label, with a label name and color, or as a Dense Scalar or - Metric, with a numeric map value.
          • -
          - -
            -
          • Create ROI assumes that a border you - choose to create an ROI from is a closed border. Border points - are moved to the vertices nearest to them and these vertices - are NOT considered to be part of the ROI to be created inside - the border. Note: If an open border is selected, the program - will automatically "close" the border by drawing a line from - the first point in the border to the last point in the border. -
          • -
          - -
            -
          • Fields of the Create Region of - Interest box are automatically filled to create label or - scalar/metric ROIs with loaded file and map names. Use the New - buttons to create new Maps/Files. If you do - not change the File and Map names, the Map listed will be - overwritten, redrawn with the one new ROI for the - selected structure. 
          • -
          - -
            -
          • Invert Selected Nodes option - selects all vertices WITHOUT (not inside) the selected border - to be part of the ROI. In this case, vertices nearest the - border points are included in the inverted nodes.
          • -
          - - - -
            -
          -
          -

          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Drawing/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Border_Tools.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Create_Focus.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Create_Focus.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,95 +0,0 @@ - - - - - Foci creation - - - Foci creation
          - When Foci Mode - is activated, Create tools are selected by default and displayed at - the bottom of the Toolbar. -
          -
          -
          -
            -
          • Loaded foci files are NOT automatically - displayed. To turn Foci on before creating a new focus, toggle - on Display Foci in the Features - - - - - - Toolbox Foci tab. Display of specific foci - can be selected in Foci: - Selection.
          • -
          -
            -
          • There are 3 ways to identify a location - for focus creation:
          • -
          -
            -
              -
            • Left click on the surface or volume. - The coordinates for the location selected will populate the - Create Focus box.
              -
            • -
            • Click the New button and enter - XYZ coordinates.
              -
            • -
            • Click on the Last ID - button and the coordinates for the location last identified - in View mode will populate the Create Focus - box.
            • -
            -
          -
            -
          • If a new foci file is not created, newly - created foci will be added to a loaded foci file.
          • -
          -
            -
          • Use the Add/Edit buttons to - select a Name, Color, - and Class - (optional) for the created focus. - A Name must be created for each focus, the color may be set - with the sliders, otherwise the default is black. The default - for Name and Class is the name/class one last used or '???'. - Creation of 2 or more foci with the same Name, Color, and - Class is allowed. 
          • -
          - -
            -
          • The Project to Surface toggle - will project the focus at any location to the nearest location - on the surface being viewed.
          • -
          -
            -
          • The finished focus will appear on the - surface/volume and the new focus name and class will show up - in the Features Toolbox Foci:Selection - tab.
          • -
          - - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Edit_Focus_box.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Edit_Focus_box.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,51 +0,0 @@ - - - - - Foci editing - - - Foci editing
          - When Foci Mode - is activated, select Edit tools in the dropdown displayed at the bottom of - the Toolbar. -
          -
          - -
            -
          • By - - - - - default, the Properties button is activated. If - - - - - a displayed focus is clicked, the Edit Foci box will - pop up and a focus's Name, Class, or XYZ location can be - edited.
          • -
          -
            -
          • When the Delete button is activated, - clicking on a focus will delete it from display and from its - foci file.
          • -
          -
            -
          • When you are done editing/deleting foci, - remember to save your changes using Save/Manage - - Files.
            -
          • -
          -
          -

          - -
            -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_edit.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_edit.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Tools.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Creation/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Foci_Tools.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Mode.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Mode.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Mode.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Mode.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,113 +0,0 @@ - - - - - Mode - - - Mode
          - Mode contains buttons for switching between Mouse - Controls used for viewing mode (View, on - by default) and those for performing actions including Border drawing - and Foci - creation.  The mouse controls for rotating, - panning and zooming a structure in the Viewing - - - - - - - Area are still active in Border and Foci modes. - Information on mouse and key strokes for using the mode tools are - available as Tooltips. -
          Border - button opens the border drawing, editing, and ROI tools at the - bottom of the Toolbar:
          -
          -
            -
          • Border tools are only active for surface - structures in Montage, - All, or - Surface - views.
          • -
          -
            -
          • When Border mode is activated, any loaded - border files are automatically displayed on the surface. To - turn them off before Border drawing, toggle off Display - Borders in the Features - - - - - - - Toolbox Borders tab.
          • -
          -
            -
          • Draw tools are selected by - default. Draw by holding down the alt/option key and the left - mouse button while dragging your mouse where you want the - border.
          • -
          - - Foci button opens - the focus creation and editing tools at the bottom of the Toolbar:
          - -
            -
          • Foci tools are active for surfaces and in - volumes (all views but Chart).
          • -
          -
            -
          • When Foci mode is activated, foci from - any loaded foci files are NOT automatically displayed. If you - want to turn them on before creating/editing a focus, toggle - on Display Foci in the Features Toolbox Foci - tab.
          • -
          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Mode/Volume_Tools.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Mode/Volume_Tools.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Montage_toolbar.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Montage_toolbar.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Montage_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Montage_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Montage_View.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Montage_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ - - - - - Montage View - - - Montage View
          - Montage View displays the medial and lateral sides of left and - right hemisphere surfaces in one
          Viewing Tab. - In Montage View the Toolbar looks like this:
          -
          -
          -
            -
          • Orientation contains buttons to - set orthogonal and User-defined views of the brain surface - displayed.
          • -
          -
            -
              -
            • Orthogonal view buttons are labeled: LM - (lateral-medial), DV (dorsal-ventral), AP - (anterior-posterior). 
              -
            • -
            • Using the Mouse - - - - Controls, in Montage view, rotation is - mirrored between hemisphere lateral/medial sides and panning - moves hemisphere sides together or away from each other.
              -
            • -
            • The Reset button resets the - orientation/zoom to the default.
              -
            • -
            • Custom - - - - Orientation allows one to set and save (or - not) a specific transform (pan, rotate, oblique rotate, - zoom) for a surface or volume.
            • -
            -
          -
            -
          • Montage Selection contains - pull-downs and checkboxes to set the surface montage to view.
          • -
          -
            -
              -
            • Top Left pull-down sets the montage - structure: Cerebral Cortex, Cerebellar Cortex, or Flat. A - structure is only viewable if the appropriate surface is - loaded.
              -
            • -
            • Top Right pull-down sets the page - orientation of the surfaces displayed. Pull-downs in the - middle set the surface file for each hemisphere from the - list of loaded files. Up to 2 left and 2 right surfaces can - be displayed at once. The checkboxes indicate if the set - surfaces are being displayed.
              -
            • -
            • Left, Lateral, Medial, - and Right checkboxes indicate if these structures - are being displayed.
            • -
            -
          - -
            -
          • Clipping - contains settings for cutting down Surface, Volume, or - Features data to be viewed.
          • -
          -
            -
          • Tab - contains cross-tab functions for yoking the display of two or - more Viewing Tabs.
            -
          • -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Montage_View/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Surface_View/Surface_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Surface_View/Surface_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Surface_View/Surface_View.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Surface_View/Surface_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ - - - - - Surface View - - - Surface View
          - Surface View displays the medial and lateral sides of left and - right hemisphere surfaces in one
          Viewing - Tab. - In Surface View the Toolbar looks like this:
          -
          -
          -
            -
          • Orientation contains buttons to - set orthogonal and User-defined views of the brain surface - displayed: L (lateral), M (medial), D (dorsal), - V (ventral), A - (anterior), and P (posterior). 
          • -
          -
            -
              -
            • The Reset button resets the - orientation/zoom to the default.
              -
            • -
            • Custom - - Orientation allows one to set and save (or - not) a specific transform (pan, rotate, oblique rotate, - zoom) for a surface or volume.
            • -
            -
          -
            -
          • Selection contains pull-downs to - set the brain structure (top) and surface (bottom) to view.
          • -
          - -
            -
          • Clipping - contains settings for cutting down Surface, Volume, or - Features data to be viewed.
          • -
          -
            -
          • Tab - contains cross-tab functions for yoking the display of two or - more Viewing Tabs.
            -
          • -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Surface_View/SurfaceView.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Surface_View/SurfaceView.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Surface_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Surface_View/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,55 +0,0 @@ - - - - - Tab Functions - - - Tab Functions
          - The Tab section of the Toolbar contains controls - for functions that are active across Viewing - Tabs. Tab Functions are not active - in Chart View. -
          - Yoking - allows one to define groups of tabs or windows that will have - linked rotation, panning, and zooming. -
            -
          -
          -
            -
          -
          -
            -
          • Yoking Groups are defined between Surface, - Montage, - and All - Views OR between Volume - and All views (yoking is not applied between surfaces and - volumes).
          • -
          -
          -
            -
          -
          -
          -
            -
          -
          -
            -
          • Surfaces are yoked so that the - corresponding lateral or medial contralateral hemispheres can - be viewed at the same time (e.g. superior temporal gyrus on - the lateral surface can be viewed on the right and left - hemisphere simultaneously). 
          • -
          -
          -
          - -
            -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Tab_Functions/Tab_Functions.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Toolbar.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Toolbar.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Toolbar.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Toolbar.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ - - - - - Toolbar - - - Toolbar
          - Toolbar is the section at the top of the Workbench - Window that contains viewing settings for the - structure you are displaying in the Active - Tab and access to - Workbench functional modes (border drawing, region of interest - definition, etc.). - -
          -
            - -
              -
            • The Toolbar can be hidden or shown - using the button at the top - right of the Workbench Window or by clicking on Toolbar in - the View Menu.
              -
            • -
            • Tooltips - (available by hovering mouse over buttons/elements) are an - easy way to see information on the buttons and functions - on the Toolbar (or throughout wb_view).
              -
            • -
            -  
            -

            -
            -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Toolbar_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Toolbar_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Volume_ID_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Volume_ID_button.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Volume_View.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Volume_View.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Volume_View.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Volume_View/Volume_View.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,132 +0,0 @@ - - - - - Volume View - - - Volume View
          - Volume View displays brain volume slices. In - Volume View the Toolbar looks like this:
          -
          -
          -
          -
            -
          • Slice - - - - - - Plane contains buttons to set which volume slice planes - are displayed: P (parasagittal), C (coronal), - A (axial), All (all 3 planes). 
          • -
          -
          -
            -
              -
            -
          -
          -
            -
          -
          -
          -
            -
          • The Reset button resets the - orientation/zoom to the default.
          • -
          -
          -
          -
            -
          • Custom - - - - - Orientation allows one to set and save (or - not) a specific transform (pan, rotate, oblique rotate, - zoom) for a surface or volume.
          • -
          -
          -
            -
          • Montage contains settings for - viewing multiple volume slices from a single slice plane at - once. Rows/Cols set the number of Rows or - Columns of slices to display. Step sets the index - spacing between slices in the volume slice montage. 
          • -
          -

          -
            - -
          • Slice Indices/Coords - contains - settings for the slice index and stereotaxic (Talairach) - coordinate to be viewed for each slice plane.  -
          • -
            -
          - -
          -
            -
          • The vertical Origin button - rests the slice indices to the default (centered at the - AC).
          • -
          -
          -
          -
          -
            - -
          • The  button (default on) - activates movement of the crosshairs/volume slice to the same - plane as the brainordinate selected in any of the Viewing - Tabs in the same yoking group as the Volume tab.
          • -
          -
          -
          -
            -
          • The pull-down at the bottom toggles - between Orthogonal and Oblique volume - viewing.
          • -
          -
          -
            -
          -
          -
            -
          -
          - -
            -
          • Clipping - contains settings for cutting down Surface, Volume, or - Features data to be viewed.
          • -
          -
            -
          • Tab - contains cross-tab functions for yoking the display of two or - more Viewing Tabs.
          • -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/Volume_View/VolumeView.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/Volume_View/VolumeView.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Toolbar/VolumeView.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Toolbar/VolumeView.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,59 +0,0 @@ - - - - - Active Tab - - - Active Tab
          - Active tab is the currently selected Viewing - - - - - - - - Tab at the top of the - Workbench Window. - The title of the Active tab is shown in bold, unitalicized font, - e.g., (1) Montage in the image. - -
            -
          • To select a tab to be the Active Tab, - click on the tab title.
          • -
          -
            -
          • To set - tab-specific display options, first select a - particular tab as the Active tab, then make your selections.
          • -
          -
            -
          • To rename the Active tab, select the Rename - Selected Tab... option in the Window - Menu. Tab numbers can not be edited by the - user.
          • -
          -
            -
          • To reorder the tabs, click and drag the - tab title to the desired position. The tab numbers will not - change.
            -
          • -
          -
          -

          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Viewing_Tabs.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Active_Tab/Viewing_Tabs.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Tooltip.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Tooltip.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Tooltip.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Tooltip.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,25 +0,0 @@ - - - - - Tooltip - - - Tooltip
          -
          A Tooltip is - pop-up information on Workbench functions that appears as a yellow - box of text when you hover your cursor over a button or pull-down - menu.  These are found throughout wb_view for easy access to - functional explanations of buttons and options. The image below - shows a tooltip for the Custom - Orientation button in the Toolbar.
          -

          -

          -  
          -
          -
          -
          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Tooltip.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Tooltip/Tooltip.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,110 +0,0 @@ - - - - - Viewing Area - - - Viewing Area
          - Viewing Area is the field of the Workbench Window - where images of the surface, volume or whole brain are displayed, - or in Chart - - - - - View, where chart data is - displayed.   -
            -
          • The image or chart displayed is set for - each Viewing - - - - - Tab, unless Tile Tabs view is on (see View Menu), - - - - - which displays images/charts for all tabs within a single - viewing area.
          • -
          -
            -
          • The default placement of the surface or - volume is in the center of the viewing area and, in Surface - - - - - - - - - - View, rotation is about the center of - gravity of the surface.
          • -
          - -
            -
          • Use the Reset button in the Toolbar - to return to the default zoom, pan, and orientation. 
          • -
          -
            -
          • The default background is set to black, - but this can be changed to any color in the Preferences: - Color tab.
          • -
          - -
            -
              -
            • Click on the tab names or press - Command/Ctrl + left and right arrow buttons to switch the - Toolbar and Overlay Toolbox to control each tab's display - options. A box will appear briefly around the Active Tab - "tile" in the viewing area.
              -
            • -
            -
          - - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/WBwindow_Horiz_Labels.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Area/WBwindow_Horiz_Labels.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Thumbs.db differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ - - - - - Viewing Tabs - - - Viewing Tabs
          - Viewing Tabs refer to the set of viewing - workspaces within a Workbench - - - Window. - -
            -
          • The Active Tab - is the workspace currently being displayed.
          • -
          -
            -
          • To navigate between Viewing Tabs, click - on one of the other tab names or press Command/Ctrl + left and - right arrow buttons.
          • -
          -
            -
          • To remove a tab, click on the X - button to the right of the tab name. Further tab options are - available in the Window - menu.
          • -
          -
            -
          • To reorder the tabs, click and drag the - tab title to the desired position. The tab numbers will not - change.
            -
          • -
          -
          -

          - - Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/WBwindow_Horiz_Labels.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/WBwindow_Horiz_Labels.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Features_TB_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Features_TB_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Help_button.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Help_button.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_Brainordinate_Icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_Brainordinate_Icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Information_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Information_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Overlay_TB_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Overlay_TB_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Scenes_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Scenes_icon.png differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Thumbs.db and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Thumbs.db differ Binary files /tmp/tmpdo0WtN/aZjrO8oAEa/connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Toolbar_icon.png and /tmp/tmpdo0WtN/h4nIHLGCDZ/connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Toolbar_icon.png differ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,62 +0,0 @@ - - - - - Window Elements Hide/Show Buttons - - - - Window Elements Hide/Show - Buttons
          - The Hide/Show buttons for the Workbench Window - elements (Help - Window, Information - - - - Window, Scenes - Window, Toolbar, - Overlay - Toolbox, and Features - - - Toolbox) are located in the upper right corner - of the Workbench Window. These buttons turn the display of these - elements on and off. The buttons are shaded gray (as in the images - below) to indicate that the element is on, and are unshaded when - the element is off. -
             Help - Window button
          -
          -
              Information - - - - - - - Window button
          -
          -     Identify Brainordinate button
          -
          -     Scenes Window button
          -
          -     Toolbar button
          -
          -     Overlay Toolbox button
          -
          -     Features Toolbox - button
          - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Workbench_Window.html connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Workbench_Window.html --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/HelpFiles/Workbench_Window/Workbench_Window.html 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/HelpFiles/Workbench_Window/Workbench_Window.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,41 +0,0 @@ - - - - - Workbench Window - - - Workbench Window
          - Workbench Window refers to the main interface - of wb_view, containing the Viewing Tabs, - Toolbar, Viewing Area, - Overlay - Toolbox, Features - Toolbox and Window - - Elements Hide/Show buttons as shown. -
            -
          • In PC/Linux, the Workbench Window also - includes the Menu bar.
          • -
          -
            -
          • More than one Workbench Window can be - opened at one time, either by selecting New Window - from the File - - menu or from selections made from the Window - menu.
          • -
          -
          -
          -
            -
          - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/help_resources.qrc connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/help_resources.qrc --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/help_resources.qrc 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/help_resources.qrc 1970-01-01 00:00:00.000000000 +0000 @@ -1,250 +0,0 @@ - - -./help_resources.qrc -./HelpFiles/Annotations/Annotations.fld/image001.png -./HelpFiles/Annotations/Annotations.fld/image002.png -./HelpFiles/Annotations/Annotations.fld/image003.png -./HelpFiles/Annotations/Annotations.fld/image004.png -./HelpFiles/Annotations/Annotations.fld/image005.png -./HelpFiles/Annotations/Annotations.fld/image006.png -./HelpFiles/Annotations/Annotations.fld/image007.png -./HelpFiles/Annotations/Annotations.fld/image008.png -./HelpFiles/Annotations/Annotations.fld/image009.png -./HelpFiles/Annotations/Annotations.fld/image010.png -./HelpFiles/Annotations/Annotations.fld/image011.png -./HelpFiles/Annotations/Annotations.fld/image012.png -./HelpFiles/Annotations/Annotations.fld/image013.png -./HelpFiles/Annotations/Annotations.fld/image014.png -./HelpFiles/Annotations/Annotations.fld/image015.png -./HelpFiles/Annotations/Annotations.fld/image016.png -./HelpFiles/Annotations/Annotations.fld/image017.png -./HelpFiles/Annotations/Annotations.fld/image018.png -./HelpFiles/Annotations/Annotations.fld/image019.png -./HelpFiles/Annotations/Annotations.fld/image020.png -./HelpFiles/Annotations/Annotations.fld/image021.png -./HelpFiles/Annotations/Annotations.fld/image022.png -./HelpFiles/Annotations/Annotations.html -./HelpFiles/Features_Toolbox/Borders/Borders.html -./HelpFiles/Features_Toolbox/Borders/Borders_Attributes.png -./HelpFiles/Features_Toolbox/Borders/Borders_Selection.png -./HelpFiles/Features_Toolbox/Borders_Attributes.png -./HelpFiles/Features_Toolbox/Features_TB_icon.png -./HelpFiles/Features_Toolbox/Features_Toolbox.html -./HelpFiles/Features_Toolbox/Fibers/Fibers.html -./HelpFiles/Features_Toolbox/Foci/Foci.html -./HelpFiles/Features_Toolbox/Foci/Foci_Attributes.png -./HelpFiles/Features_Toolbox/Foci/Foci_Selection.png -./HelpFiles/Features_Toolbox/Images/Images.html -./HelpFiles/Features_Toolbox/Images/Images_Selection.png -./HelpFiles/Features_Toolbox/Labels/Labels.html -./HelpFiles/Features_Toolbox/Labels/Labels_Attributes.png -./HelpFiles/Features_Toolbox/Labels/Labels_Selection.png -./HelpFiles/Glossary/Brainordinate/Brainordinate.html -./HelpFiles/Glossary/CIFTI/CIFTI.html -./HelpFiles/Glossary/ConnectomeDB/ConnectomeDB.html -./HelpFiles/Glossary/ConnectomeDB/ConnectomeDB_login.png -./HelpFiles/Glossary/ConnectomeDB/Thumbs.db -./HelpFiles/Glossary/GIFTI/GIFTI.html -./HelpFiles/Glossary/Grayordinate/Grayordinate.html -./HelpFiles/Glossary/NIFTI/NIFTI.html -./HelpFiles/Glossary/Scene/Scene.html -./HelpFiles/Glossary/Specification_File/Spec_File.png -./HelpFiles/Glossary/Specification_File/Specification_File.html -./HelpFiles/Glossary/Specification_File/Thumbs.db -./HelpFiles/Glossary/Whiteordinate/Whiteordinate.html -./HelpFiles/Information_Window/Information_Window.html -./HelpFiles/Information_Window/Information_Window.png -./HelpFiles/Information_Window/Properties/Information_Properties.png -./HelpFiles/Information_Window/Properties/Properties.html -./HelpFiles/Menus/Data_Menu/Data_Menu.html -./HelpFiles/Menus/Data_Menu/Project_Foci_Dialog.png -./HelpFiles/Menus/Data_Menu/Thumbs.db -./HelpFiles/Menus/Develop_Menu/Develop_Menu.html -./HelpFiles/Menus/Edit_Menu/Edit_Menu.html -./HelpFiles/Menus/Edit_Menu/Edit_Menu.png -./HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control.html -./HelpFiles/Menus/File_Menu/Animation_Control/Animation_Control_dialog.png -./HelpFiles/Menus/File_Menu/Animation_Control/Thumbs.db -./HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image.html -./HelpFiles/Menus/File_Menu/Capture_Image/Capture_Image_dialog.png -./HelpFiles/Menus/File_Menu/Capture_Image/File_menu.png -./HelpFiles/Menus/File_Menu/Capture_Image/Thumbs.db -./HelpFiles/Menus/File_Menu/File_Menu.html -./HelpFiles/Menus/File_Menu/File_menu.png -./HelpFiles/Menus/File_Menu/Preferences/Preferences.html -./HelpFiles/Menus/File_Menu/Preferences/Preferences_Colors.png -./HelpFiles/Menus/File_Menu/Preferences/Preferences_ID.png -./HelpFiles/Menus/File_Menu/Preferences/Preferences_Misc.png -./HelpFiles/Menus/File_Menu/Preferences/Preferences_OpenGL.png -./HelpFiles/Menus/File_Menu/Preferences/Preferences_Vol.png -./HelpFiles/Menus/File_Menu/Preferences/Thumbs.db -./HelpFiles/Menus/File_Menu/Save-Manage_Files/Gear_symbol.png -./HelpFiles/Menus/File_Menu/Save-Manage_Files/Reload_symbol.png -./HelpFiles/Menus/File_Menu/Save-Manage_Files/Remove_symbol.png -./HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files.html -./HelpFiles/Menus/File_Menu/Save-Manage_Files/Save-Manage_Files_dialog.png -./HelpFiles/Menus/File_Menu/Save-Manage_Files/Thumbs.db -./HelpFiles/Menus/File_Menu/Save-Manage_Files/Upload_symbol.png -./HelpFiles/Menus/File_Menu/Thumbs.db -./HelpFiles/Menus/Help_Menu/Bug_Report_box.png -./HelpFiles/Menus/Help_Menu/Help_box.png -./HelpFiles/Menus/Help_Menu/Help_button.png -./HelpFiles/Menus/Help_Menu/Help_Menu.html -./HelpFiles/Menus/Help_Menu/Help_Menu.png -./HelpFiles/Menus/Help_Menu/Help_Search.png -./HelpFiles/Menus/Help_Menu/Workbench_Help.png -./HelpFiles/Menus/Surface_Menu/Surface_Menu.html -./HelpFiles/Menus/Surface_Menu/Surface_Properties.png -./HelpFiles/Menus/Surface_Menu/Volume_Interaction_Surfaces.png -./HelpFiles/Menus/Thumbs.db -./HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.html -./HelpFiles/Menus/View_Menu/Gaps_And_Margins/Gaps_And_Margins.png -./HelpFiles/Menus/View_Menu/Thumbs.db -./HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Thumbs.db -./HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.html -./HelpFiles/Menus/View_Menu/Tile_Tabs_Configuration/Tile_Tabs_Configuration.png -./HelpFiles/Menus/View_Menu/View_Menu.html -./HelpFiles/Menus/View_Menu/View_Menu.png -./HelpFiles/Menus/wb_view_Menu/Thumbs.db -./HelpFiles/Menus/wb_view_Menu/wb_view_Menu.html -./HelpFiles/Menus/wb_view_Menu/wb_view_Menu.png -./HelpFiles/Menus/Window_Menu/IdentifyBrainordinateDialog.png -./HelpFiles/Menus/Window_Menu/Rename_tab.png -./HelpFiles/Menus/Window_Menu/Thumbs.db -./HelpFiles/Menus/Window_Menu/Window_Menu.html -./HelpFiles/Menus/Window_Menu/Window_Menu.png -./HelpFiles/Mouse_Controls/Mouse_Controls.html -./HelpFiles/Mouse_Controls/RightClick_Surface.png -./HelpFiles/Mouse_Controls/RightClick_Volume.png -./HelpFiles/Mouse_Controls/Thumbs.db -./HelpFiles/Open_Spec_File_Dialog/gear-button.png -./HelpFiles/Open_Spec_File_Dialog/Open_Spec.png -./HelpFiles/Open_Spec_File_Dialog/Open_Spec_File_Dialog.html -./HelpFiles/Open_Spec_File_Dialog/Thumbs.db -./HelpFiles/Overlay_Toolbox/Charting/Charting.html -./HelpFiles/Overlay_Toolbox/Charting/Charting_History.png -./HelpFiles/Overlay_Toolbox/Charting/Charting_Loading.png -./HelpFiles/Overlay_Toolbox/Charting/Thumbs.db -./HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.html -./HelpFiles/Overlay_Toolbox/Connectivity/Connectivity.png -./HelpFiles/Overlay_Toolbox/Layers/Add_Layer.png -./HelpFiles/Overlay_Toolbox/Layers/Colorbar.png -./HelpFiles/Overlay_Toolbox/Layers/Layers.html -./HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Overlay_and_Map_Settings.html -./HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Palette_Settings.png -./HelpFiles/Overlay_Toolbox/Layers/Overlay_and_Map_Settings/Settings_icon.png -./HelpFiles/Overlay_Toolbox/Layers/Overlay_Toolbox_horiz.png -./HelpFiles/Overlay_Toolbox/Layers/Settings_icon.png -./HelpFiles/Overlay_Toolbox/Overlay_Toolbox.html -./HelpFiles/Overlay_Toolbox/Overlay_Toolbox_horiz.png -./HelpFiles/Overlay_Toolbox/Overlay_Toolbox_vert.png -./HelpFiles/Overlay_Toolbox/Thumbs.db -./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Color-Vol-Surf_Outline.png -./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Tab-Vol-Surf_Outline.png -./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.html -./HelpFiles/Overlay_Toolbox/Vol-Surf_Outline/Vol-Surf_Outline.png -./HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene.png -./HelpFiles/Scenes_Window/Create_New_Scene_File/Create_New_Scene_File.html -./HelpFiles/Scenes_Window/Create_New_Scene_File/Scenes button.png -./HelpFiles/Scenes_Window/Create_New_Scene_File/Thumbs.db -./HelpFiles/Scenes_Window/Scenes_Window.html -./HelpFiles/Scenes_Window/Scenes_Window.png -./HelpFiles/Scenes_Window/Thumbs.db -./HelpFiles/Select_Brainordinate_Window/CiftiFileRow.png -./HelpFiles/Select_Brainordinate_Window/Indentify_Brainordinate.png -./HelpFiles/Select_Brainordinate_Window/Select_Brainordinate_Window.html -./HelpFiles/Splash_Screen/Splash_Screen.html -./HelpFiles/Splash_Screen/Splash_screen.png -./HelpFiles/Splash_Screen/Thumbs.db -./HelpFiles/Toolbar/All_View/All_Toolbar.png -./HelpFiles/Toolbar/All_View/All_View.html -./HelpFiles/Toolbar/All_View/All_view.png -./HelpFiles/Toolbar/All_View/Thumbs.db -./HelpFiles/Toolbar/All_View/Volume_ID_button.png -./HelpFiles/Toolbar/Chart_View/Chart_View.html -./HelpFiles/Toolbar/Chart_View/ChartView_dtseries_DataSeries.png -./HelpFiles/Toolbar/Chart_View/ChartView_pscalar_Matrix.png -./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartDataSeries.png -./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_DataSeries_Toolbar.png -./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_dtseries_DataSeries.png -./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/ChartView_pscalar_Matrix.png -./HelpFiles/Toolbar/Chart_View/Data-Time_Series_Chart_View/Data-Time_Series_Chart_View.html -./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/ChartView_Matrix_Toolbar.png -./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/Matrix_Chart_View.html -./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pconn_matrix_montage.png -./HelpFiles/Toolbar/Chart_View/Matrix_Chart_View/pscalar_matrix_surface.png -./HelpFiles/Toolbar/Chart_View/Montage_toolbar.png -./HelpFiles/Toolbar/Chart_View/Thumbs.db -./HelpFiles/Toolbar/Clipping/Clipping.html -./HelpFiles/Toolbar/Clipping/Clipping_Planes.png -./HelpFiles/Toolbar/Clipping/Thumbs.db -./HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.html -./HelpFiles/Toolbar/Custom_Orientation/Custom_Orientation.png -./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Drawing.html -./HelpFiles/Toolbar/Mode/Border_Drawing/Border_drawing.png -./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_edit.png -./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Border_Editing.html -./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Edit_Border_Properties.png -./HelpFiles/Toolbar/Mode/Border_Drawing/Border_Editing/Thumbs.db -./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Border_ROI.png -./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_Region_of_Interest.png -./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Create_ROI.html -./HelpFiles/Toolbar/Mode/Border_Drawing/Create_ROI/Thumbs.db -./HelpFiles/Toolbar/Mode/Border_Drawing/Thumbs.db -./HelpFiles/Toolbar/Mode/Border_Tools.png -./HelpFiles/Toolbar/Mode/Foci_Creation/Create_Focus.png -./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Creation.html -./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Edit_Focus_box.png -./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_edit.png -./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Foci_Editing.html -./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Editing/Thumbs.db -./HelpFiles/Toolbar/Mode/Foci_Creation/Foci_Tools.png -./HelpFiles/Toolbar/Mode/Foci_Creation/Thumbs.db -./HelpFiles/Toolbar/Mode/Foci_Tools.png -./HelpFiles/Toolbar/Mode/Mode.html -./HelpFiles/Toolbar/Mode/Thumbs.db -./HelpFiles/Toolbar/Mode/Volume_Tools.png -./HelpFiles/Toolbar/Montage_View/Montage_toolbar.png -./HelpFiles/Toolbar/Montage_View/Montage_View.html -./HelpFiles/Toolbar/Montage_View/Thumbs.db -./HelpFiles/Toolbar/Surface_View/Surface_View.html -./HelpFiles/Toolbar/Surface_View/SurfaceView.png -./HelpFiles/Toolbar/Surface_View/Thumbs.db -./HelpFiles/Toolbar/Tab_Functions/Tab_Functions.html -./HelpFiles/Toolbar/Tab_Functions/Tab_Functions.png -./HelpFiles/Toolbar/Thumbs.db -./HelpFiles/Toolbar/Toolbar.html -./HelpFiles/Toolbar/Toolbar_icon.png -./HelpFiles/Toolbar/Volume_View/Thumbs.db -./HelpFiles/Toolbar/Volume_View/Volume_ID_button.png -./HelpFiles/Toolbar/Volume_View/Volume_View.html -./HelpFiles/Toolbar/Volume_View/VolumeView.png -./HelpFiles/Toolbar/VolumeView.png -./HelpFiles/Workbench_Window/Active_Tab/Active_Tab.html -./HelpFiles/Workbench_Window/Active_Tab/Thumbs.db -./HelpFiles/Workbench_Window/Active_Tab/Viewing_Tabs.png -./HelpFiles/Workbench_Window/Thumbs.db -./HelpFiles/Workbench_Window/Tooltip/Thumbs.db -./HelpFiles/Workbench_Window/Tooltip/Tooltip.html -./HelpFiles/Workbench_Window/Tooltip/Tooltip.png -./HelpFiles/Workbench_Window/Viewing_Area/Thumbs.db -./HelpFiles/Workbench_Window/Viewing_Area/Viewing_Area.html -./HelpFiles/Workbench_Window/Viewing_Area/WBwindow_Horiz_Labels.png -./HelpFiles/Workbench_Window/Viewing_Tabs/Thumbs.db -./HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.html -./HelpFiles/Workbench_Window/Viewing_Tabs/Viewing_Tabs.png -./HelpFiles/Workbench_Window/WBwindow_Horiz_Labels.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Features_TB_icon.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Help_button.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_Brainordinate_Icon.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Identify_icon.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Information_icon.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Overlay_TB_icon.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Scenes_icon.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Thumbs.db -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Toolbar_icon.png -./HelpFiles/Workbench_Window/Window_Elements_Hide-Show_Buttons/Window_Elements_Hide-Show_Buttons.html -./HelpFiles/Workbench_Window/Workbench_Window.html -./update_resources.sh - - diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/update_resources.sh connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/update_resources.sh --- connectome-workbench-1.2.3+git3-g7b83782/src/Resources/Help/update_resources.sh 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Resources/Help/update_resources.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,17 +0,0 @@ -#!/bin/sh - -mv HelpFiles OLD_HelpFiles - -cp -r /mnt/myelin/shared/WB_Tutorial/WB_1.2_Help ./HelpFiles - -rm -rf OLD_HelpFiles - -rcc -project -o help_resources.qrc - -echo "" -echo "You now need to:" -echo " 1) Run CMake in the build directory" -echo " 2) Compile" -echo " 3) Commit changes to GIT repository" -echo " 4) Push source code to master repository" -echo "" diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Tests/CMakeLists.txt connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/CMakeLists.txt --- connectome-workbench-1.2.3+git3-g7b83782/src/Tests/CMakeLists.txt 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/CMakeLists.txt 2016-10-19 23:35:12.000000000 +0000 @@ -20,6 +20,7 @@ # ADD_LIBRARY(Tests CiftiFileTest.h +DotTest.h GeodesicHelperTest.h HttpTest.h HeapTest.h @@ -38,6 +39,7 @@ XnatTest.h CiftiFileTest.cxx +DotTest.cxx GeodesicHelperTest.cxx HttpTest.cxx HeapTest.cxx @@ -150,3 +152,18 @@ ${CMAKE_SOURCE_DIR}/Xml ${CMAKE_SOURCE_DIR}/Common ) + +ENABLE_TESTING() + +ADD_TEST(timer test_driver timer) +ADD_TEST(progress test_driver progress) +ADD_TEST(volumefile test_driver volumefile) +#debian build machines don't have internet access +#ADD_TEST(http test_driver http) +ADD_TEST(heap test_driver heap) +ADD_TEST(pointer test_driver pointer) +ADD_TEST(statistics test_driver statistics) +ADD_TEST(quaternion test_driver quaternion) +ADD_TEST(mathexpression test_driver mathexpression) +ADD_TEST(lookup test_driver lookup) +ADD_TEST(dotsimd test_driver dotsimd) diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Tests/DotTest.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/DotTest.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Tests/DotTest.cxx 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/DotTest.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,172 @@ +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ +#include "DotTest.h" + +#include "CaretAssert.h" +#include "dot_wrapper.h" + +#include +#include +#include + +using namespace caret; +using namespace std; + +DotTest::DotTest(const AString& identifier) : TestInterface(identifier) +{ +} + +namespace +{ + vector randVector01(const int& size) + { + vector ret(size); + for (int i = 0; i < size; ++i) + { + ret[i] = ((float)rand()) / RAND_MAX; + } + return ret; + } + + vector vectorMult(const vector& vec, const float& scalar) + { + vector ret(vec.size()); + for (int i = 0; i < (int)ret.size(); ++i) + { + ret[i] = vec[i] * scalar; + } + return ret; + } + + vector vectorAdd(const vector& vec, const float& scalar) + { + vector ret(vec.size()); + for (int i = 0; i < (int)ret.size(); ++i) + { + ret[i] = vec[i] + scalar; + } + return ret; + } + + vector vectorAdd(const vector& vec1, const vector& vec2) + { + CaretAssert(vec1.size() == vec2.size()); + vector ret(vec1.size()); + for (int i = 0; i < (int)ret.size(); ++i) + { + ret[i] = vec1[i] + vec2[i]; + } + return ret; + } + + //we need to mean-center the inputs, so copy them on call + float correlate(vector vec1, vector vec2) + {//three-pass - mean, stdev, then dot function (under test) + CaretAssert(vec1.size() == vec2.size()); + const int length = (int)vec1.size(); + double accum1 = 0.0, accum2 = 0.0; + for (int i = 0; i < length; ++i) + { + accum1 += vec1[i]; + accum2 += vec2[i]; + } + float mean1 = accum1 / length; + float mean2 = accum2 / length; + accum1 = 0.0; + accum2 = 0.0; + for (int i = 0; i < length; ++i) + { + vec1[i] -= mean1; + vec2[i] -= mean2; + accum1 += vec1[i] * vec1[i];//we don't do this with dot on other implementations currently, so do it naively here too + accum2 += vec2[i] * vec2[i]; + } + float stdev1 = sqrt(accum1); + float stdev2 = sqrt(accum2); + double dotval = sddot(vec1.data(), vec2.data(), length);//function under test + return dotval / (stdev1 * stdev2); + } + +} + +void DotTest::checkVal(const float& correct, const float& test, const AString& descrip) +{ + const float TOLER_RATIO = 0.00001f;//6 digits, seems to work, probably due to accumulation in double before cast to float + const float TOLER_ABS = 0.0000001f;//for near-zero results, need some wiggle room, which a ratio won't work for + if (!(abs(test - correct) < TOLER_ABS + TOLER_RATIO * abs(correct))) setFailed(descrip + " got " + AString::number(test) + ", expected " + AString::number(correct)); +}//use "not less than" in order to catch NaNs + +void DotTest::execute() +{ + dot_flags impl_in_use = dot_set_impl(DOT_NAIVE); + if (impl_in_use != DOT_NAIVE) setFailed("failed to set implementation to NAIVE"); + const int ROWSIZE = 100000;//400KB per vector shouldn't be too bad + vector rand1 = randVector01(ROWSIZE), rand2 = randVector01(ROWSIZE), rand3 = randVector01(ROWSIZE); + vector lowsnrA = vectorAdd(rand1, vectorMult(rand2, 20.0f)), lowsnrB = vectorAdd(rand1, vectorMult(rand3, 20.0f)); + vector midsnrA = vectorAdd(rand1, vectorMult(rand2, 2.0f)), midsnrB = vectorAdd(rand1, vectorMult(rand3, 2.0f)); + vector highsnrA = vectorAdd(rand1, vectorMult(rand2, 0.2f)), highsnrB = vectorAdd(rand1, vectorMult(rand3, 0.2f)); + //compute all by naive first + const float self_naive = correlate(rand1, rand1); + checkVal(1.0f, self_naive, "naive self-correlation");//sanity check + const float unrelated_naive = correlate(rand1, rand2); + const float lowsnr_naive = correlate(lowsnrA, lowsnrB); + const float midsnr_naive = correlate(midsnrA, midsnrB); + const float highsnr_naive = correlate(highsnrA, highsnrB); + const float cross_snr_naive = correlate(lowsnrA, highsnrB); + //sse2 + impl_in_use = dot_set_impl(DOT_SSE2); + if (impl_in_use == DOT_SSE2) + { + checkVal(self_naive, correlate(rand1, rand1), "sse2 self-correlation"); + checkVal(unrelated_naive, correlate(rand1, rand2), "sse2 unrelated correlation"); + checkVal(lowsnr_naive, correlate(lowsnrA, lowsnrB), "sse2 low snr correlation"); + checkVal(midsnr_naive, correlate(midsnrA, midsnrB), "sse2 mid snr correlation"); + checkVal(highsnr_naive, correlate(highsnrA, highsnrB), "sse2 high snr correlation"); + checkVal(cross_snr_naive, correlate(lowsnrA, highsnrB), "sse2 cross snr correlation"); + } else { + cout << "skipping SSE2, not supported" << endl; + } + //avx + impl_in_use = dot_set_impl(DOT_AVX); + if (impl_in_use == DOT_AVX) + { + checkVal(self_naive, correlate(rand1, rand1), "avx self-correlation"); + checkVal(unrelated_naive, correlate(rand1, rand2), "avx unrelated correlation"); + checkVal(lowsnr_naive, correlate(lowsnrA, lowsnrB), "avx low snr correlation"); + checkVal(midsnr_naive, correlate(midsnrA, midsnrB), "avx mid snr correlation"); + checkVal(highsnr_naive, correlate(highsnrA, highsnrB), "avx high snr correlation"); + checkVal(cross_snr_naive, correlate(lowsnrA, highsnrB), "avx cross snr correlation"); + } else { + cout << "skipping AVX, not supported" << endl; + } + //avx + impl_in_use = dot_set_impl(DOT_AVXFMA); + if (impl_in_use == DOT_AVXFMA) + { + checkVal(self_naive, correlate(rand1, rand1), "avxfma self-correlation"); + checkVal(unrelated_naive, correlate(rand1, rand2), "avxfma unrelated correlation"); + checkVal(lowsnr_naive, correlate(lowsnrA, lowsnrB), "avxfma low snr correlation"); + checkVal(midsnr_naive, correlate(midsnrA, midsnrB), "avxfma mid snr correlation"); + checkVal(highsnr_naive, correlate(highsnrA, highsnrB), "avxfma high snr correlation"); + checkVal(cross_snr_naive, correlate(lowsnrA, highsnrB), "avxfma cross snr correlation"); + } else { + cout << "skipping AVXFMA, not supported" << endl; + } +} diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Tests/DotTest.h connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/DotTest.h --- connectome-workbench-1.2.3+git3-g7b83782/src/Tests/DotTest.h 1970-01-01 00:00:00.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/DotTest.h 2016-10-19 23:35:12.000000000 +0000 @@ -0,0 +1,36 @@ +#ifndef __DOT_TEST_H__ +#define __DOT_TEST_H__ + +/*LICENSE_START*/ +/* + * Copyright (C) 2014 Washington University School of Medicine + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * 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, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +/*LICENSE_END*/ +#include "TestInterface.h" + +namespace caret { + + class DotTest : public TestInterface + { + void checkVal(const float& correct, const float& test, const AString& descrip); + public: + DotTest(const AString& identifier); + virtual void execute(); + }; + +} +#endif //__DOT_TEST_H__ diff -Nru connectome-workbench-1.2.3+git3-g7b83782/src/Tests/test_driver.cxx connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/test_driver.cxx --- connectome-workbench-1.2.3+git3-g7b83782/src/Tests/test_driver.cxx 2016-12-01 01:05:59.000000000 +0000 +++ connectome-workbench-1.2.3+git41-gc4c6c90/src/Tests/test_driver.cxx 2016-10-19 23:35:12.000000000 +0000 @@ -34,6 +34,7 @@ //tests #include "CiftiFileTest.h" +#include "DotTest.h" #include "GeodesicHelperTest.h" #include "HttpTest.h" #include "HeapTest.h" @@ -69,6 +70,7 @@ SessionManager::createSessionManager(ApplicationTypeEnum::APPLICATION_TYPE_COMMAND_LINE); vector mytests; mytests.push_back(new CiftiFileTest("ciftifile")); + mytests.push_back(new DotTest("dotsimd")); mytests.push_back(new GeodesicHelperTest("geohelp")); mytests.push_back(new HeapTest("heap")); mytests.push_back(new HttpTest("http"));