HTTPS clone URL
Subversion checkout URL
A parametric aircraft geometry tool
Build and Installation Instructions for OpenVSP INTRODUCTION OpenVSP is a parametric aircraft geometry tool. OpenVSP allows the user to create a 3D model of an aircraft defined by common engineering parameters. This model can be processed into formats suitable for engineering analysis. The predecessors to OpenVSP have been developed by JR Gloudemans and others for NASA since the early 1990's. In January 2012, OpenVSP was released as an open source project under the NOSA 1.3 license. LICENSE OpenVSP is available under the terms of the NASA Open Source Agreement (NOSA) version 1.3. The complete terms of the license are specified in the LICENSE file. DEPENDENCIES -OpenVSP relies on a variety of libraries and code made available by other authors. These libraries are not included with VSP and must be obtained in order to build OpenVSP. -CMake (www.cmake.org) Cross-platform build system. CMake generates platform-native build files which control compilation of OpenVSP. CMake is available as a standard package on most Linux systems and binary installers are available for many other platforms including Windows and Mac OS X. -OpenGL (www.opengl.org) 3D graphics library. OpenGL should be available on any platform capable of displaying 3D graphics. The OpenGL development tools must be installed on your computer to build OpenVSP. -glext.h (www.opengl.org/registry) Extension header for OpenGL. This header provides access to OpenGL extensions which are not a part of the core standard. A copy of this header is included for systems which do not provide it. -FLTK (www.fltk.org) Cross-platform windowing library. FLTK should be available as a standard package on most Linux systems and can be installed from source on Windows and Mac OS X according to the FLTK instructions. -Libxml2 (www.xmlsoft.org) XML parser and toolkit. Libxml2 most likely comes pre-installed with most Linux distributions and Mac OS X systems. Windows users must download the source and build this library following the Libxml2 instructions. -libjpeg (www.ijg.org) JPEG compression library. Like Libxml2, libjpeg is likely to be pre-installed with most Linux distributions and Mac OS X systems. Windows users must download the source and build this library following the libjpeg instructions. -OpenNURBS (www.opennurbs.org) Rhino 3DM file I/O library. Download the C++ toolkit from the OpenNURBS web site and extract the files into the 'openvsp/src' directory creating the directory 'openvsp/src/opennurbs'. OpenNURBS is built according to the instructions that come with it. -Triangle by Jonathan Shewchuk (www.cs.cmu.edu/~quake/triangle.html) 2D Delaunay triangulator. This routine has been included in this distribution. -triInt by Tomas Moller (jgt.akpeters.com/papers/Moller97) Fast triangle-triangle intersection test. This code comes from two sources. The routines are included in this distribution. jgt.akpeters.com/papers/Moller97/tritri.html jgt.akpeters.com/papers/MollerTrumbore97/code.html -glFont2 by Brad Fish (students.cs.byu.edu/~bfish/glfont2.php) 2D OpenGL font tool. glFont2 has been included in this source distribution. -trackball Virtual trackball code for intuitive 3D rotations. Gavin Bell's trackball code is included in an example program distributed with the GLUT library which accompanies OpenGL. If the OpenGL development files are installed on your system, then trackball may be included. Otherwise, the source and header files are available from the following URLs: www.opengl.org/resources/code/samples/glut_examples/ examples/trackball.c www.opengl.org/resources/code/samples/glut_examples/ examples/trackball.h Place 'trackball.c' and 'trackball.h' in the 'openvsp/src/vsp' directory. BUILD INSTRUCTIONS -Linux / Mac OS X All of the supporting libraries and code described above in DEPENDENCIES must be properly installed. The OpenNURBS library must be compiled before OpenVSP can be built. Change to the 'openvsp/src/opennurbs' directory and type 'make'. Next, CMake is used to construct the build files. CMake supports out-of-tree builds which keep the source tree free of generated files. Create a build directory to contain the generated files, say 'openvsp/build'. Then, change to the build directory and run CMake - passing a relative path to 'openvsp/src', say 'cmake ../src'. CMake will search for Libxml2, libjpeg, and FLTK in their default installation locations. If CMake does not find the libraries, then edit the '/openvsp/src/CMakeLists.txt' file and modify the 'CMAKE_PREFIX_PATH' list of directories to include the locations of the installed libraries. If Libxml2, libjpeg, or FLTK are not installed on the system and root/administrator access is not available to install the libraries, the libraries can be installed in a non-standard location in the user's directory. In that situation, the 'CMAKE_PREFIX_PATH' list of directories should be modified to include the locations of the installed libraries. When CMake successfully finds all of the libraries, it will write Makefiles to the build directory. When CMake completes, execute 'make' in the build directory to compile OpenVSP. -Windows / Visual Studio All of the supporting libraries and code described above in DEPENDENCIES must be properly installed. The OpenNURBS library must be compiled before OpenVSP can be built. OpenNURBS comes with Visual Studio solution files ('opennurbs.sln' or 'opennurbs_vs2005.sln') which are used to build the library. In Visual Studio, build the 'staticlib' project. The libjpeg source should be unzipped into a convienent location such as 'openvsp/src' creating the 'openvsp/src/jpeg-8c' directory. Edit the 'CMAKE_PREFIX_PATH' list in 'openvsp/src/CMakeLists.txt' to include the paths to the libjpeg library. Libjpeg is configured from the Visual Studio command prompt according to the instructions supplied with it. It can be built at the command prompt or from Visual Studio. The Visual Studio project generally creates 'jpeg.lib' while the nmake Makefile creates 'libjpeg.lib'. The CMake search will look for 'jpeg.lib', so be sure the result is properly named. Building FLTK with project files generated by CMake (rather than those distributed with FLTK) allows better integration with the OpenVSP build system. Follow the FLTK instructions to build FLTK according to the CMake instructions. Once FLTK is built, use the 'INSTALL' project to install FLTK to 'C:\Program Files\FLTK'. If an alternate directory is desired, it can be entered in the CMake GUI when the build files are created. Edit the 'openvsp/vsp/CMakeLists.txt' to ensure that the FLTK install path is included in the 'CMAKE_PREFIX_PATH' list. The Libxml2 source should be unzipped somewhere outside the OpenVSP source tree. Follow the supplied instructions to build Libxml2. Edit the 'openvsp/src/CMakeLists.txt' file and modify the directory list 'CMAKE_PREFIX_PATH' to include the libxml install destination. The 2.7.8 version of the build files contain a small error. Remove the leading '+' characters from lines 74-76 of the 'libxml/win32/Makefile.msvc' file. If you are using Visual Studio 2010 or newer, remove the '/OPT:NOWIN98' from line 97 of the 'libxml/win32/Makefile.msvc' file. The iconv option must be disabled when building Libxml2. This is done by passing 'iconv=no' to the 'cscript' command when you configure Libxml2. Do not use the pre-compiled Libxml2 libraries available online, they include support for iconv and zlib which introduce unneeded dependencies. If you want to link the static library for Libxml2 into OpenVSP, then rename 'lib/libxml2_a.lib' to 'lib/libxml2.lib'. The other files located in the 'lib' directory may be deleted. Next, CMake is used to construct the build files for OpenVSP itself. CMake supports out-of-tree builds which keep the source tree free of generated files. Using the CMake GUI, choose 'openvsp/src/CMakeLists.txt' and select an appropriate build directory. Configure CMake and generate the build files. CMake will search for Libxml2, libjpeg, and FLTK in the paths specified in the 'CMAKE_PREFIX_PATH' list in '/openvsp/src/CMakeLists.txt'. When CMake successfully finds all of the libraries, it will write the project files to the build directory. When CMake completes, open the 'vsp.sln' in Visual Studio. Make sure to select the target (Debug or Release) which maches the target used to build OpenNURBS and other libraries. Once the correct target is chosen, build OpenVSP.