Commit afac3e3d authored by Mark Hymers's avatar Mark Hymers

import ifrit 3.3.2

Signed-off-by: Mark Hymers's avatarMark Hymers <mhy@debian.org>
parent 78d77389
This diff is collapsed.
Install Other Packages
Before you can compile IFrIT, you need to install other packages that
IFrIT uses:
* Required: Kitware VTK (Visualization Toolkit for 3D
visualizations, public domain). IFrIT has been ported to VTK
version 4.4 to VTK 5.0. Version 5 is still somewhat buggy, but
it adds capabilities to create movies directly and to use 3D
textures for volume rendering. Do not download later versions
(so-called Nightly releases), they might not compile or function
properly.
Installation Notes:
o VTK must be compiled with Hybrid and Parallel classes (set
both to ON when configuring VTK with cmake).
o I suggest you compile VTK with shared libraries (that is
not the default option in VTK). Compiling with static libraries
may require editing Makefiles manually (but, hopefully, will
not).
o MacOS: users may try to include X11 classes in the VTK
installations (VTK option VTK_USE_X) if they have problems with
the VTK installation. If you compile VTK with shared libraries,
make sure to add the VTK library directoriy ($VTKDIR/bin) to the
environment variable DYLD_LIBRARY_PATH prior to installing
VTK. Otherwise, you will get errors of libraries not being
found.
o Cygwin: make sure to set VTK_USE_X during VTK
installation, otherwise cmake will create a Windows VTK version.
* Optional: Trolltech Qt (a multi-platform GUI library, open
source). IFrIT has been ported to Qt versions from 3.0.4 to
4.1.4 (I recommend using Qt 3, version 4 does not add any new
capabilities that I use, and is somewhat slower than version 3).
Mac users should get a free Mac version of Qt, do not use the
X11 version.
Important: Qt is needed for GUI support. Without Qt, only the
command-line version of IFrIT will be available.
Installation Notes:
o Qt must be compiled with thread support (use option
-thread when configuring Qt prior to compiling).
o MacOS: If you compile Qt with shared libraries (default
option), make sure to add the Qt library directory ($QTDIR/lib)
to the environment variable DYLD_LIBRARY_PATH prior to
installing Qt. Otherwise, you will get errors of libraries not
being found.
o Cygwin: Good luck with compiling Qt under cygwin - it is
possible, but requires editing source files (search for helpful
tricks on IFrIT website). Keep in mind that neither Trolltech
nor I support Qt under cygwin. After IFrIT is ported to Qt 4.0,
there will be a Windows native free version of IFrIT.
Compile IFrIT
To compile IFrIT, follow the steps:
* Untar IFrIT source file, and place it in a temporary directory.
* Set the environment variables VTKDIR to point to the VTK root
directory. If you use Qt, the environment variable QTDIR should
also be defined (it is defined automatically, if Qt is installed
correctly), and Qt bin directory ($QTDIR/bin) should be in your
path.
* Switch to ifrit-NNN/build directory (where NNN is the version of
IFrIT).
* Use CMake to configure IFrIT - since you installed VTK, you
should have a working version of CMake too. The simplest way to
configure IFrIT is to run non-interactive CMake:
% cmake .
If you would like to use CMake options to disable some of the
components or need more control over the build process (if, for
example, some of the standard libraries are not in standard
places), you can run CMake interactively:
% cmake -i .
(in the command-line mode) or
% ccmake .
for the GUI mode (ccmake is called CMakeSetup.exe under
Windows). In most cases configuring in GUI mode reduces to
pressing "c" a few times, and then pressing "g". If CMake
complains about VTK changing compiler switches, accept VTK
choice. If completed successfully, CMake will create a Makefile
in the current directory.
* Compile IFrIT by executing
% make
(or gmake). It will take some time to compile. The executable is
called "ifrit" and is located in the main source directory (one
level above build). Move it into your personal bin
directory. The executable is self-containing, it does not need
any other files to run (but you can use external files to modify
IFrIT behavior).
Install Other Packages
Before you can compile IFrIT, you need to install other packages that
IFrIT uses:
* Required: Kitware VTK (Visualization Toolkit for 3D
visualizations, public domain). IFrIT has been ported to VTK
version 4.4 to VTK 5.0. Version 5 is still somewhat buggy, but
it adds capabilities to create movies directly and to use 3D
textures for volume rendering. Do not download later versions
(so-called Nightly releases), they might not compile or function
properly.
Installation Notes:
o VTK must be compiled with Hybrid and Parallel classes (set
both to ON when configuring VTK with cmake).
o I suggest you compile VTK with shared libraries (that is
not the default option in VTK). Compiling with static libraries
may require editing Makefiles manually (but, hopefully, will
not).
o MacOS: users may try to include X11 classes in the VTK
installations (VTK option VTK_USE_X) if they have problems with
the VTK installation. If you compile VTK with shared libraries,
make sure to add the VTK library directoriy ($VTKDIR/bin) to the
environment variable DYLD_LIBRARY_PATH prior to installing
VTK. Otherwise, you will get errors of libraries not being
found.
o Cygwin: make sure to set VTK_USE_X during VTK
installation, otherwise cmake will create a Windows VTK version.
* Optional: Trolltech Qt (a multi-platform GUI library, open
source). IFrIT has been ported to Qt versions from 3.0.4 to
4.1.4 (I recommend using Qt 3, version 4 does not add any new
capabilities that I use, and is somewhat slower than version 3).
Mac users should get a free Mac version of Qt, do not use the
X11 version.
Important: Qt is needed for GUI support. Without Qt, only the
command-line version of IFrIT will be available.
Installation Notes:
o Qt must be compiled with thread support (use option
-thread when configuring Qt prior to compiling).
o MacOS: If you compile Qt with shared libraries (default
option), make sure to add the Qt library directory ($QTDIR/lib)
to the environment variable DYLD_LIBRARY_PATH prior to
installing Qt. Otherwise, you will get errors of libraries not
being found.
o Cygwin: Good luck with compiling Qt under cygwin - it is
possible, but requires editing source files (search for helpful
tricks on IFrIT website). Keep in mind that neither Trolltech
nor I support Qt under cygwin. After IFrIT is ported to Qt 4.0,
there will be a Windows native free version of IFrIT.
Compile IFrIT
To compile IFrIT, follow the steps:
* Untar IFrIT source file, and place it in a temporary directory.
* Set the environment variables VTKDIR to point to the VTK root
directory. If you use Qt, the environment variable QTDIR should
also be defined (it is defined automatically, if Qt is installed
correctly), and Qt bin directory ($QTDIR/bin) should be in your
path.
* Switch to ifrit-NNN/build directory (where NNN is the version of
IFrIT).
* Use CMake to configure IFrIT - since you installed VTK, you
should have a working version of CMake too. The simplest way to
configure IFrIT is to run non-interactive CMake:
% cmake .
If you would like to use CMake options to disable some of the
components or need more control over the build process (if, for
example, some of the standard libraries are not in standard
places), you can run CMake interactively:
% cmake -i .
(in the command-line mode) or
% ccmake .
for the GUI mode (ccmake is called CMakeSetup.exe under
Windows). In most cases configuring in GUI mode reduces to
pressing "c" a few times, and then pressing "g". If CMake
complains about VTK changing compiler switches, accept VTK
choice. If completed successfully, CMake will create a Makefile
in the current directory.
* Compile IFrIT by executing
% make
(or gmake). It will take some time to compile. The executable is
called "ifrit" and is located in the main source directory (one
level above build). Move it into your personal bin
directory. The executable is self-containing, it does not need
any other files to run (but you can use external files to modify
IFrIT behavior).
Enjoy! Do not forget to glance through the User Guide!
\ No newline at end of file
......@@ -23,6 +23,15 @@ SET(AddX11 0 CACHE BOOL "Add X11 manualy")
SET(UseOffScreen 0 CACHE BOOL "Compile IFrIT for off-screen rendering (needs VTK with Mesa libraries)")
MARK_AS_ADVANCED(AddOGL AddX11 UseOffScreen)
SET(StereoSupport 1 CACHE BOOL "Enable OpenGL support for displaying stereo (disable this option if you see flicker)")
#
# Portability options
#
SET(Port:NoLongLong 0 CACHE BOOL "Do not use long long type")
SET(Port:NoConsoleIO 0 CACHE BOOL "Disable console IO (must be set if conio.h include is not available)")
MARK_AS_ADVANCED(Port:NoLongLong Port:NoConsoleIO)
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None(CMAKE_CXX_FLAGS or CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel." FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
......@@ -164,7 +173,7 @@ IF(Shell:QT)
INCLUDE(${CMAKE_ROOT}/Modules/FindQt.cmake)
INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR})
IF(QT4_INSTALLED)
INCLUDE_DIRECTORIES(${QT_QT_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${QT_INCLUDE_DIR}/Qt ${QT_QTCORE_INCLUDE_DIR})
ENDIF(QT4_INSTALLED)
ADD_DEFINITIONS(${QT_DEFINITIONS})
ENDIF(Shell:QT)
......@@ -269,6 +278,21 @@ ENDIF(tmp)
FILE(GLOB tmp ${src}/configure/iconfiguresettings.ext)
CONFIGURE_FILE(${tmp} ${tmp}.h @ONLY)
IF(NOT StereoSupport)
ADD_DEFINITIONS(-DI_NO_STEREO)
ENDIF(NOT StereoSupport)
#
# Portability
#
IF(Port:NoLongLong)
ADD_DEFINITIONS(-DI_NO_LONG_LONG)
ENDIF(Port:NoLongLong)
IF(Port:NoConsoleIO)
ADD_DEFINITIONS(-DI_NO_CONSOLE_IO)
ENDIF(Port:NoConsoleIO)
#
# Add libraries
#
......
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================*/
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================*/
//
// Main configuration parameters and macros for working with them
......@@ -82,10 +82,4 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
!TERMINATE!
#endif
//
// Additional defines that control styles but not operations
//
//#undef I_NO_CONSOLEIO
//#undef I_OFFSCREEN
#endif // ICONFIGURE_H
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================*/
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================*/
#define IEXTENSION @exten@
#define ISHELL @shell@
......
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================*/
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================*/
#include "iconfigure.h"
......
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================*/
/*=========================================================================
Program: Ionization FRont Interactive Tool (IFRIT)
Language: C++
Copyright (c) 2002-2006 Nick Gnedin
All rights reserved.
This file may be distributed and/or modified under the terms of the
GNU General Public License version 2 as published by the Free Software
Foundation and appearing in the file LICENSE.GPL included in the
packaging of this file.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE