Commit 299648e7 authored by Sebastian Eichelbaum's avatar Sebastian Eichelbaum

[MERGE] merged default and release branch

parents 73c4219c 2f2cb379
artwork/Splash/splash.png

151 KB | W: | H:

artwork/Splash/splash.png

206 KB | W: | H:

artwork/Splash/splash.png
artwork/Splash/splash.png
artwork/Splash/splash.png
artwork/Splash/splash.png
  • 2-up
  • Swipe
  • Onion skin
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="splash.svg"
inkscape:export-filename="/home/ebaum/Projekte/OpenWalnut Artwork/Logo/Splash.png"
inkscape:export-xdpi="300"
inkscape:export-ydpi="300">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="526.31812"
inkscape:cy="840.19624"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1918"
inkscape:window-height="1179"
inkscape:window-x="0"
inkscape:window-y="19"
inkscape:window-maximized="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<image
sodipodi:absref="../Logo/Logo.png"
xlink:href="../Logo/Logo.png"
width="461.49246"
height="358.86551"
id="image2998"
x="142.48244"
y="4.5902638" />
<g
id="g3804"
transform="translate(-4.0406102,0)">
<rect
ry="0.10187878"
y="370.76334"
x="5.2717924"
height="147.43407"
width="742.87225"
id="rect3753"
style="fill:#507aaa;fill-opacity:1;stroke:none" />
<g
id="g3798">
<text
xml:space="preserve"
style="font-size:15px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.0999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="115.12345"
y="448.94727"
id="text3766"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3768"
x="115.12345"
y="448.94727"
style="font-size:75px;font-weight:bold;stroke:#000000;stroke-width:2.0999999;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Bitstream Vera Sans Bold">OpenWalnut</tspan></text>
<text
xml:space="preserve"
style="font-size:15px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.29999995;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Bitstream Vera Sans"
x="142.30167"
y="490.50095"
id="text3770"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3772"
x="142.30167"
y="490.50095"
style="font-size:32px;font-weight:bold;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.29999995;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Bitstream Vera Sans Bold">Visualization in a Nutshell</tspan></text>
</g>
</g>
</g>
</svg>
......@@ -9,14 +9,14 @@ to be easily extended and used in a large variety of application
and using a number of portable libraries (e.g. OpenSceneGraph and Qt)
it runs on all Windows platforms, OSX and GNU/Linux operating systems. <br />
<br />
Copyright 2009-2013 OpenWalnut community, BSV@Uni-Leipzig, and
Copyright 2009-2014 OpenWalnut community, Sebastian Eichelbaum, Nemtics, BSV@Uni-Leipzig, and
CNCF@MPI-CBS. For more information see
<a href="http://www.openwalnut.org/copying">http://www.openwalnut.org/copying</a>.<br><br>
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under the terms of the GNU Lesser General Public License.
You should have received a copy of the GNU Lesser General Public License
along with OpenWalnut. If not, see
along with OpenWalnut. If not, see
&lt;<a href="http://www.gnu.org/licenses">http://www.gnu.org/licenses</a>&gt;.
<h4>Contact</h4>
......
<h1>Need Support?</h1>
<p>
Do you need professional support? We can provide training, development courses, and contract-based feature implementations.
<br/><br/>
Get in touch with us!
</p>
<h4>Contact</h4>
Website: <a href="http://www.nemtics.com">http://www.nemtics.com</a><br>
Email: <a href="mailto:openwalnut@nemtics.com">openwalnut@nemtics.com</a>
<br><br>
<i>Thank you for using OpenWalnut!</i>
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
libdir=${exec_prefix}/@OW_LIBRARY_DIR_RELATIVE@
Name: openwalnut
Description: The OpenWalnut core library -- OpenWalnut is a tool for multi-modal medical and brain data visualization.
......
......@@ -2,32 +2,44 @@
# get path of this script
BINDIR=`dirname "$0"`
###################################################################################################
# IMPORTANT: The following code is not compatible with many specifics of certain Linux Distros.
# We disable it. If you having trouble running multiple locally installed versions of OW, you can use
# this code again.
#
# You might need to adapt the LIBDIR variable. Some systems use "lib32", "lib64" and similar. Debian
# uses lib/x86_64-linux-gnu for amd64 systems.
# strip "bin" to get base directory
BASEDIR=`dirname "$BINDIR"`
LIBDIR=$BASEDIR/lib
# BASEDIR=`dirname "$BINDIR"`
# LIBDIR=$BASEDIR/lib
# We want to avoid that multiple system installations of OpenWalnut cause some weird loading of libs. We want ours (relative to our executable) to be loaded:
Libs="libopenwalnut_biosig.so.1 libopenwalnut_eep.so.1 libopenwalnut_niftiio.so.1 libopenwalnut_niftiznz.so.1"
#Libs="libopenwalnut_biosig.so.1 libopenwalnut_eep.so.1 libopenwalnut_niftiio.so.1 libopenwalnut_niftiznz.so.1"
# Well, this one needs to be there! If not, your installation is wrong.
Preloads="$LIBDIR/libopenwalnut.so.1"
#Preloads="$LIBDIR/libopenwalnut.so.1"
# We need to ensure the libs are there. If not, do not add them to the preloads variable
for lib in $Libs
do
libfile=$LIBDIR/$lib
if [ -e "$libfile" ]; then
Preloads=$Preloads:$libfile
fi
done
#for lib in $Libs
#do
# libfile=$LIBDIR/$lib
# if [ -e "$libfile" ]; then
# Preloads=$Preloads:$libfile
# fi
#done
# Finally, export it
export LD_PRELOAD=$Preloads
# Force C locale. This fixes an issue with newer boost versions. See ticket #130.
export LC_ALL=C
#export LD_PRELOAD=$Preloads
# If the user has installed OSG manually into a non-standard location, we need to set some OSG paths.
# This command uses libopenwalnuts dependencies to find the libosgDB directory.
# NOTE: if this command fails, script will continue execution
export OSG_LIBRARY_PATH=$(dirname `ldd lib/libopenwalnut.so | grep "libosgDB" | awk '{print $3;}'` 2> /dev/null)
#export OSG_LIBRARY_PATH=$(dirname `ldd lib/libopenwalnut.so | grep "libosgDB" | awk '{print $3;}'` 2> /dev/null)
# Force C locale. This fixes an issue with newer boost versions. See ticket #130.
# Do you experience problems with commas and dots mixing up? Try setting this.
# export LC_ALL=C
# Check if the user has set $OPENWALNUT_USEOPTIMUS to an executable
runner=
......@@ -37,4 +49,4 @@ if [ -x "$OPENWALNUT_USEOPTIMUS" ]; then
fi
# Run OpenWalnut
$runner $BINDIR/openwalnut-qt4 "$@"
$runner $BINDIR/openwalnut-qt5 "$@"
:: Add lib and bin to PATH to allow all the libs to be found properly
set PATH=./lib/;./bin/;%PATH%
:: Add externals to PATH
set PATH=./ext;%PATH%
set PATH=./lib/;./bin/;./libExt/;%PATH%
:: Finally, run OpenWalnut
openwalnut-qt4.exe
openwalnut-qt5.exe
......@@ -92,7 +92,7 @@ ADD_CUSTOM_TARGET( list_install_tarets
# install targets for different parts
ADD_CUSTOM_TARGET( install_runtime
${CMAKE_COMMAND}
-DCOMPONENT=QT4GUI
-DCOMPONENT=QT5GUI
-P ${CMAKE_BINARY_DIR}/cmake_install.cmake
)
ADD_CUSTOM_TARGET( install_lib
......@@ -137,14 +137,15 @@ ADD_DEPENDENCIES( install_devdoc core_devdoc )
ADD_SUBDIRECTORY( core )
# -----------------------------------------------------------------------------------------------------------------------------------------------
# QT4 GUI
# QT5 GUI
OPTION( OW_GUI_QT4 "Enable this to build the QT4-based OpenWalnut GUI." ON )
IF( OW_GUI_QT4 )
OPTION( OW_GUI_QT5 "Enable this to build the QT5-based OpenWalnut GUI." ON )
IF( OW_GUI_QT5 )
# build
ADD_SUBDIRECTORY( qt4gui )
ADD_SUBDIRECTORY( qt5gui )
ENDIF()
# -----------------------------------------------------------------------------------------------------------------------------------------------
# Scripting UI
......
......@@ -35,6 +35,10 @@ SET( LibName ${OW_LIB_OPENWALNUT} )
ADD_DEFINITIONS( '-DW_LIB_PREFIX="${CMAKE_SHARED_LIBRARY_PREFIX}"' )
ADD_DEFINITIONS( '-DW_LIB_SUFFIX="${CMAKE_SHARED_LIBRARY_SUFFIX}"' )
# Set the library path. It might be different from the expected "lib" path, especially when using multiarch or similar.
# This definition is used by WPathHelper internally.
ADD_DEFINITIONS( '-DW_LIB_DIR_RELATIVE="${OW_LIBRARY_DIR_RELATIVE}"' )
OPTION( OW_STATIC_BUILD "Enable this to build the core library as static library." OFF )
# the files to link against if we found the necessary libs for a script interpreter
......@@ -66,7 +70,16 @@ ELSE()
ADD_LIBRARY( ${LibName} SHARED ${TARGET_CPP_FILES} ${TARGET_H_FILES} ${OW_VERSION_HEADER} )
ENDIF()
TARGET_LINK_LIBRARIES( ${LibName} ${Boost_LIBRARIES} ${CMAKE_STANDARD_LIBRARIES} ${CMAKE_DL_LIBS} ${OPENGL_gl_LIBRARY} ${OPENSCENEGRAPH_LIBRARIES} ${INTERPRETER_LINK_LIBRARIES}
# Some Linux distributions need to explicitly link against X11. We add this lib here.
IF( CMAKE_HOST_SYSTEM MATCHES "Linux" )
SET( ADDITIONAL_TARGET_LINK_LIBRARIES "X11" )
ENDIF()
TARGET_LINK_LIBRARIES( ${LibName} ${Boost_LIBRARIES} ${CMAKE_STANDARD_LIBRARIES} ${CMAKE_DL_LIBS}
${OPENGL_gl_LIBRARY}
${OPENSCENEGRAPH_LIBRARIES}
${INTERPRETER_LINK_LIBRARIES}
${ADDITIONAL_TARGET_LINK_LIBRARIES}
)
# Tell CMake that someone creates this file for us. See doc of SETUP_VERSION_HEADER for details why this is needed.
......@@ -92,7 +105,7 @@ INSTALL( FILES ${OW_VERSION_HEADER}
)
# The core does also provide some nice pkg-config file. Set this up and configure it to contain the correct install prefix
SETUP_CONFIGURED_FILE( "core-dev" "lib/pkgconfig/openwalnut.pc" "CORE_DEV" )
SETUP_CONFIGURED_FILE_TO( "core-dev" "lib/pkgconfig/openwalnut.pc" "CORE_DEV" "${OW_LIBRARY_DIR_RELATIVE}/pkgconfig" )
# ---------------------------------------------------------------------------------------------------------------------------------------------------
# Test Setup
......
......@@ -92,7 +92,6 @@ namespace defaultColor
static const WColor GRAY50( 0.5, 0.5, 0.5, 1.0 ); //!< Default for gray
static const WColor GRAY75( 0.75, 0.75, 0.75, 1.0 ); //!< Default for gray
static const WColor WHITE( 1.0, 1.0, 1.0, 1.0 ); //!< Default for white
static const WColor TRANSPARENT( 1.0, 1.0, 1.0, 0.0 ); //!< Completely transparent -- NOTE: this does not belong to the default palette
// \endcond
/**
......
......@@ -31,6 +31,10 @@
#include "WPathHelper.h"
#ifndef W_LIB_DIR_RELATIVE
#define W_LIB_DIR_RELATIVE "lib"
#endif
// path helper instance as singleton
boost::shared_ptr< WPathHelper > WPathHelper::m_instance = boost::shared_ptr< WPathHelper >();
......@@ -61,8 +65,10 @@ void WPathHelper::setBasePaths( boost::filesystem::path appPath, boost::filesyst
m_sharePath = m_appPath / "../share/openwalnut";
m_docPath = m_appPath / "../share/doc";
m_configPath = m_appPath / "../share/openwalnut";
m_libPath = m_appPath / "../lib";
m_modulePath = m_libPath / "openwalnut";
m_libPath = m_appPath / ".." / W_LIB_DIR_RELATIVE; // NOTE: this variable is set by CMake.
// This is the default search path. Use getAllModulePaths for finding all modules, including those whose
// directories where defined by the user.
m_modulePath = m_libPath / "openwalnut"; // This is the default search path.
// this is the relative path for module resources. It is relative to the path of the lib containing the module.
// Our build system places modules in lib/openwalnut/packagename/. The relative path needs to go out of the lib directory to a share
......@@ -78,7 +84,9 @@ void WPathHelper::setBasePathsOSXBundle( boost::filesystem::path appPath, boost:
m_sharePath = m_appPath / "../Resources/openwalnut";
m_docPath = m_appPath / "../Resources/doc";
m_configPath = m_appPath / "../Resources/openwalnut";
m_libPath = m_appPath / "../lib"; // TODO(mario): what is this for?
m_libPath = m_appPath / ".." / W_LIB_DIR_RELATIVE; // NOTE: this variable is set by CMake.
// This is the default search path. Use getAllModulePaths for finding all modules, including those whose
// directories where defined by the user.
m_modulePath = m_appPath / "../Resources/modules";
// this is the relative path for module resources. It is relative to the path of the lib containing the module.
......@@ -147,8 +155,23 @@ boost::filesystem::path WPathHelper::getModuleResourcePath( boost::filesystem::p
// relative path to the resources
boost::filesystem::path resRel = getPathHelper()->m_moduleResourcePathRelative / packageName;
// return absolute paths
return moduleLibPath / resRel;
// This is related to issue #378, the multiarch support. For modules build with multiarch support, the lib dir is one step
// deeper nested -> hence we need to go up one more step. The resource path is always created, even if empty.
//
// If you encounter any problems, please report them to the openwalnut-dev@lists.informatik.uni-leipzig.de.
if( boost::filesystem::exists( moduleLibPath / resRel ) )
{
return moduleLibPath / resRel;
}
else if( boost::filesystem::exists( moduleLibPath / ".." / resRel ) )
{
return moduleLibPath / ".." / resRel;
}
else
{
// Lets hope this works ... as both paths are not found, there probably is none.
return moduleLibPath / resRel;
}
}
std::vector< boost::filesystem::path > WPathHelper::getAllModulePaths()
......
......@@ -44,7 +44,8 @@ const std::string WPropertyGroupBase::separator = "/";
WPropertyGroupBase::WPropertyGroupBase( std::string name, std::string description ):
WPropertyBase( name, description ),
m_properties()
m_properties(),
m_autoHideEmpty( true )
{
// this groups update condition also fires upon group modification -> add WSharedObject condition
m_updateCondition->add( m_properties.getChangeCondition() );
......@@ -241,3 +242,13 @@ WPropertyGroupBase::PropertySharedContainerType::ReadTicket WPropertyGroupBase::
return m_properties.getReadTicket();
}
bool WPropertyGroupBase::autoHideEmpty() const
{
return m_autoHideEmpty;
}
void WPropertyGroupBase::setAutoHideEmpty( bool autoHide )
{
m_autoHideEmpty = autoHide;
}
......@@ -182,6 +182,21 @@ public:
*/
virtual void visitAsString( PropertyStringVisitor visitor, std::string pathPrefix = "" ) const;
/**
* Checks whether the property group should be hidden if it is empty.
*
* \return true if it should be hidden if empty.
*/
bool autoHideEmpty() const;
/**
* Should the property group be hidden automatically if it is empty? By default, this is true.
*
* \note this does not trigger an update. You should use this setting before adding this property to a parent group.
*
* \param autoHide true if it should be hidden automatically if empty.
*/