CalVR
Contents |
This page is working in Progress
Overview
This page talks about adding a plugin in CalVR, starting from building OSG and CalVR from source. You need cmake to build OSG, CalVR and your plugins.
Building OSG
Developer release of OSG can be found here
Assume the unpacked directory is osg/, and cmake/bin/ is in the path, in osg/ run ccmake:
ccmake .
It turns into a terminal interface of cmake config for osg.
In CMAKE_BUILD_TYPE, press Enter to edit the field, type in one of the options that with debug information: RelWithDebInfo
press 'c' to configure, press 'g' to generate. and 'q' to quit. Now back to osg/, just type make to build. It takes quite a while to build.
Building CalVR
Make sure CalVR Dependencies(OSG, MXML, GLEW) are in the environment variables. If not, set them in .cshrc, for example, adding OSG in the environment, add this line at the ned of .cshrc:
setenv OSG_HOME ~/osg/
Run cmake/bin/cmake-gui, let "CalVR" be both the source and binaries
click Configure, select Unix Makefile, and it should show a configuration list for CalVR
Navigate to OSG-->OSG_LIBRARY, if it is NOTFOUND, you may need to point it to your osg/lib, this is an example input:
-L/home/hwang/CalVR/externs/osg/lib -losgFXrd -losgParticlerd -losgTextrd -losgSimrd -losgGArd -losgViewerrd -losgDBrd -losgShadowrd -losgUtilrd -lOpenThreadsrd -ldl
Note that many -losg*rd inputs, where are different than the IVL OSG_LIBRARIES, with extra "rd" tails.
You may also turn on PLUGINS->PLUGINS_CALIT to build your plugin at the same time.
click Generate, when it is done, you may exit the gui.
In CalVR folder, type make to build.
Runing CalVR
Before runing CalVR you need to add osg/lib into your LD_LIBRARY_PATH in .cshrc
Add an environment variable to .cshrc, for example:
setenv CALVR_HOME /home/hwang/CalVR/
The entrance program is in CalVR/bin/CalVR
Adding a plugin for CalVR
Take CalVR/plugins/calit2/ModelLoader as a start up example:
Make a new Copy of the ModelLoader folder, rename it to ExamplePlugin. Each directory hierarchy has files "CMakeLists.txt" and "cmake_install.cmake". In order for cmake to generate a make file for the new plugin, we need to add an entry to these cmake files in the parent directory, and modify the cmake files in the new plugin directory.
Under parent directory, say CalVR/plugins/calit2/CmakeLists.txt, add the following lines:
OPTION(PLUGIN_EXAMPLEPLUGIN "ExamplePlugin" ON)
IF(PLUGIN_EXAMPLEPLUGIN) ADD_SUBDIRECTORY(ExamplePlugin) ENDIF(PLUGIN_EXAMPLEPLUGIN)
Under parent directory, say CalVR/plugins/calit2/cmake_install.cmake, find:
IF(NOT CMAKE_INSTALL_LOCAL_ONLY)
add the following line (change to absolute path):
INCLUDE("~/CalVR/plugins/calit2/ExamplePlugin/cmake_install.cmake")
Under new plugin directory you may remove the CMakeFiles folder as well as the old Makefile which were copied from ModelLoader. There should be only two source files and two cmake files left. Modify these files to adapt the new plugin's name.
Launch cmake, delete the cache if necessary, configure and generate again. Note that under the PLUGINS entry, the calit2 checkbox should be on, and you should be able to find your new plugin name under PLUGIN along with the ModelLoader.
Go back to the plugin directory, the new Makefile should have been generated. Type make to build, and launch CalVR, in the terminal we should see the init message of the new plugin.