Skip to content

Commit

Permalink
Merge branch 'develop' into avangong-buw
Browse files Browse the repository at this point in the history
Conflicts:
	.gitignore
	avango-core/include/avango/MultiField.h
	avango-core/include/avango/OutputStream.h
	avango-core/include/avango/SingleField.h
	avango-core/include/avango/windows_specific.h
	avango-core/src/avango/fields/MultiField.cpp
	avango-core/src/avango/fields/StandardFields.cpp
	avango-core/src/avango/fields/tests/TestFields.cpp
	avango-daemon/include/avango/daemon/DeviceActuator.h
	avango-daemon/include/avango/daemon/DeviceSensor.h
	avango-daemon/include/avango/daemon/DeviceService.h
	avango-daemon/include/avango/daemon/Station.h
	avango-daemon/include/avango/daemon/WacomTablet.h
	avango-daemon/src/avango/daemon/DTrack.cpp
	avango-daemon/src/avango/daemon/DeviceSensor.cpp
	avango-daemon/src/avango/daemon/DeviceService.cpp
	avango-daemon/src/avango/daemon/Station.cpp
	avango-daemon/src/avango/daemon/VRPNClient.cpp
	avango-daemon/src/avango/daemon/WacomTablet.cpp
	avango-python/include/avango/python/script/Init.h
	avango-python/include/avango/python/windows_specific_python.h
	avango-python/src/avango/script/Init.cpp
	avango-tools/include/avango/tools/Config.h.in
	avango-tools/python/avango/tools/Selectors.cpp
	avango-tools/python/avango/tools/_tools.cpp
	avango-tools/src/avango/tools/ChangeSelector.cpp
	avango-tools/src/avango/tools/DragTool.cpp
	avango-tools/src/avango/tools/FieldSelector.cpp
	avango-tools/src/avango/tools/Init.cpp
	avango-tools/src/avango/tools/InjectSelector.cpp
	avango-tools/src/avango/tools/NameSelector.cpp
	avango-tools/src/avango/tools/ObjectSelector.cpp
	avango-tools/src/avango/tools/PickSelector.cpp
	avango-tools/src/avango/tools/ProximitySelector.cpp
	avango-tools/src/avango/tools/ScaledGrabTool.cpp
	avango-tools/src/avango/tools/Selector.cpp
	avango-tools/src/avango/tools/SingleSelector.cpp
	avango-tools/src/avango/tools/TargetHolder.cpp
	avango-tools/src/avango/tools/Tool.cpp
	avango-tools/src/avango/tools/TriggerSelector.cpp
	avango-tools/src/avango/tools/TypeSelector.cpp
	avango-tools/src/avango/tools/UnionSelector.cpp
	avango-unittest/include/avango/UnitTest++/CheckMacros.h
	avango-unittest/include/avango/UnitTest++/Checks.h
	avango-unittest/include/avango/UnitTest++/Config.h
	avango-unittest/include/avango/UnitTest++/Posix/SignalTranslator.h
	avango-unittest/include/avango/UnitTest++/Test.h
	avango-unittest/include/avango/UnitTest++/TestList.h
	avango-unittest/include/avango/UnitTest++/TestMacros.h
	avango-unittest/include/avango/UnitTest++/TestRunner.h
	avango-unittest/include/avango/UnitTest++/TimeConstraint.h
	avango-unittest/include/avango/UnitTest++/UnitTest++.h
	avango-unittest/include/avango/UnitTest++/Win32/TimeHelpers.h
	examples/daemon/mouse-app.py
	examples/daemon/mouse-daemon.py
	examples/daemon/spacemouse-daemon.py
  • Loading branch information
bernstein committed Jan 8, 2014
2 parents 90341ac + 67835dc commit 4e0cd23
Show file tree
Hide file tree
Showing 498 changed files with 273,622 additions and 2,697 deletions.
18 changes: 18 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,21 @@ __pycache__
.sconf_temp
config.log
localdefs.py
# Temporary files
*~
.nfs*

# build directory
lib

CMakeCache.txt
cmake_install.cmake
Makefile
CMakeFiles

*.pyc
lib

Session.vim
.vim.custom
scripts/avango.sublime-workspace
202 changes: 202 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
################################################################
# Avango
################################################################
SET(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE)
PROJECT(AVANGO CXX)

# version number
set(AVANGO_MAJOR 1)
set(AVANGO_MINOR 0)
set(AVANGO_PATCH 0)
set(AVANGO_VERSION ${AVANGO_MAJOR}.${AVANGO_MINOR}.${AVANGO_PATCH})
set(AVANGO_DESCRIPTION "AVANGO")
set(AVANGO_HOMEPAGE "https://github.com/vrsys")
set(AVANGO_EXENAME "AVANGO")
set(AVANGO_PACKAGENAME "AVANGO")

# We require at least version 2.8.0
cmake_minimum_required(VERSION 2.8.0)

if (UNIX)
find_package(PkgConfig)
endif(UNIX)

# Location where cmake first looks for modules.
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)

################################################################
# Configure and find libraries
################################################################
SET(GLOBAL_EXT_DIR ${AVANGO_SOURCE_DIR}/externals)

if (UNIX)
pkg_check_modules(GL REQUIRED gl)
endif (UNIX)

include(find_compiler)
include(file_copy_macro)

include(find_guacamole)
SET(GUACAMOLE_EXT_DIR ${GUACAMOLE_INCLUDE_DIRS}/../externals)

include(find_assimp)
include(find_boost)
include(find_bullet)
include(find_json)
include(find_python)
include(find_schism)

if (UNIX)
list(APPEND BOOST_LIBRARIES boost_thread boost_signals boost_python)
endif (UNIX)

set(LIBRARIES
${BOOST_LIBRARIES}
${GUACAMOLE_LIBRARIES}
${GL_LIBRARIES}
${SCHISM_LIBRARIES}
)

set(LIB_PATHS
${BOOST_LIBRARY_DIRS}
${GUACAMOLE_LIBRARY_DIRS}
${GL_LIBRARY_DIRS}
${CMAKE_CURRENT_SOURCE_DIR}/lib
)

set(INCLUDE_PATHS
${CMAKE_CURRENT_SOURCE_DIR}/build
${CMAKE_CURRENT_SOURCE_DIR}/include
${BOOST_INCLUDE_DIRS}
${GUACAMOLE_INCLUDE_DIRS}
${GL_INCLUDE_DIRS}
)

INCLUDE_DIRECTORIES(ALL
${INCLUDE_PATHS}
)

if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
endif()

################################################################
# preprocessor configuration
################################################################
IF (UNIX)
set(CMAKE_CXX_FLAGS_RELEASE "-s -O4 --std=c++0x")
set(CMAKE_CXX_FLAGS_DEBUG "-g -Wall --std=c++0x")
ELSEIF(MSVC)
set(CMAKE_CXX_FLAGS_RELEASE "-D NDEBUG -D _SECURE_SCL=0 -D _SCL_SECURE_NO_WARNINGS -D _CRT_SECURE_NO_DEPRECATE /MD /MP")
set(CMAKE_CXX_FLAGS_DEBUG "-D_DEBUG /MDd /Zi")
add_definitions(-D AV_INSTANTIATE_FIELD_TEMPLATES -D NOMINMAX)
ENDIF(UNIX)

################################################################
# Avango Configuration
################################################################
SET (AVANGO_VERSION_MAJOR "1" CACHE STRING "Major version of AvangoNG.")
SET (AVANGO_VERSION_MINOR "90" CACHE STRING "Minor version of AvangoNG.")
SET (AVANGO_VERSION_MAINT "0" CACHE STRING "Maintenance version of AvangoNG.")

SET (AVANGO_DAEMON_VRPN_SUPPORT "false" CACHE BOOL "Enable using VRPN.")
SET (AVANGO_DAEMON_DEBUG "false" CACHE BOOL "Enable Daemon debugging")
SET (AVANGO_DISTRIBUTION_SUPPORT "false" CACHE BOOL "Set to enable distribution support.")
SET (AVANGO_ZMQ_DISTRIBUTION_SUPPORT "false" CACHE BOOL "Set to use ZMQ for distribution.")
SET (AVANGO_PCL_SUPPORT "false" CACHE BOOL "Use PCL.")
SET (AVANGO_LOG_LEVEL "WARN" CACHE STRING "Set AvangoNG log level: FATAL, ERROR, WARN, INFO, DEBUG, TRACE")
SET (AVANGO_UNITTESTS "false" CACHE BOOL "Compile Unittests for Avango.")
SET (AVANGO_INSTALL_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/lib CACHE PATH "Install path for avango.")

SET (AVANGO_OCULUS_RIFT_SUPPORT "false" CACHE BOOL "Compile Oculus Rift module for Avango.")

################################################################
# Create build flags
################################################################
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_DAEMON_DEBUG=${AVANGO_DAEMON_DEBUG}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_DAEMON_DEBUG=${AVANGO_DAEMON_DEBUG}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_DAEMON_VRPN_SUPPORT=${AVANGO_DAEMON_VRPN_SUPPORT}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_DISTRIBUTION_SUPPORT=${AVANGO_DISTRIBUTION_SUPPORT}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_ZMQ_DISTRIBUTION_SUPPORT=${AVANGO_ZMQ_DISTRIBUTION_SUPPORT}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_PCL_SUPPORT=${AVANGO_PCL_SUPPORT}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_LOG_LEVEL=${AVANGO_LOG_LEVEL}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_VERSION_MAJOR=${AVANGO_VERSION_MAJOR}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_VERSION_MINOR=${AVANGO_VERSION_MINOR}")
SET (BUILD_FLAGS "${BUILD_FLAGS} -D _AVANGO_VERSION_MAINT=${AVANGO_VERSION_MAINT}")

################################################################
# Create libraries
################################################################
FILE(MAKE_DIRECTORY ${AVANGO_INSTALL_DIRECTORY})
FILE(MAKE_DIRECTORY ${AVANGO_INSTALL_DIRECTORY}/python2.7)

SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)

ADD_SUBDIRECTORY(avango-unittest)
ADD_SUBDIRECTORY(avango-core)
ADD_SUBDIRECTORY(avango-python)
ADD_SUBDIRECTORY(avango-gua)
ADD_SUBDIRECTORY(avango-daemon)
ADD_SUBDIRECTORY(avango-tools)

IF (AVANGO_OCULUS_RIFT_SUPPORT)
ADD_SUBDIRECTORY(avango-oculus)
ENDIF(AVANGO_OCULUS_RIFT_SUPPORT)

################################################################
# Summary
################################################################

message(STATUS "" )
message(STATUS "Summary:" )
message(STATUS " build type: ${CMAKE_BUILD_TYPE}" )
message(STATUS "" )
message(STATUS " boost:" )
message(STATUS " library: ${BOOST_LIBRARIES}" )
message(STATUS " library path: ${BOOST_LIBRARY_DIRS}" )
message(STATUS " include: ${BOOST_INCLUDE_DIRS}" )
message(STATUS "" )
message(STATUS " guacamole:" )
message(STATUS " library: ${GUACAMOLE_LIBRARIES}" )
message(STATUS " library path: ${GUACAMOLE_LIBRARY_DIRS}" )
message(STATUS " include: ${GUACAMOLE_INCLUDE_DIRS}" )
message(STATUS "" )

IF ( AVANGO_OCULUS_RIFT_SUPPORT )
message(STATUS " guacamole-oculus:" )
message(STATUS " library: ${GUACAMOLE_OCULUS_LIBRARIES}" )
message(STATUS " library path: ${GUACAMOLE_OCULUS_LIBRARY_DIRS}" )
message(STATUS " include: ${GUACAMOLE_OCULUS_INCLUDE_DIRS}" )
message(STATUS "" )
ENDIF ( AVANGO_OCULUS_RIFT_SUPPORT )

message(STATUS " schism:" )
message(STATUS " library: ${SCHISM_LIBRARIES}" )
message(STATUS " library path: ${SCHISM_LIBRARY_DIRS}" )
message(STATUS " include: ${SCHISM_INCLUDE_DIRS}" )
message(STATUS "" )
message(STATUS " python:" )
message(STATUS " library: ${PYTHON_LIBRARIES}" )
message(STATUS " library path: ${PYTHON_LIBRARY_DIRS}" )
message(STATUS " include: ${PYTHON_INCLUDE_DIRS}" )
message(STATUS "" )
message(STATUS " gl:" )
message(STATUS " library: ${GL_LIBRARIES}" )
message(STATUS " include: ${GL_INCLUDE_DIRS}" )
message(STATUS "" )
message(STATUS " bullet:" )
message(STATUS " library: ${BULLET_LIBRARIES}" )
message(STATUS " library path: ${BULLET_LIBRARY_DIRS}" )
message(STATUS " include: ${BULLET_INCLUDE_DIRS}" )
message(STATUS "" )
message(STATUS " json:" )
message(STATUS " library: ${JSON_LIBRARIES}" )
message(STATUS " library path: ${JSON_LIBRARY_DIRS}" )
message(STATUS " include: ${JSON_INCLUDE_DIRS}" )
message(STATUS "" )
message(STATUS " assimp:" )
message(STATUS " library: ${ASSIMP_LIBRARIES}" )
message(STATUS " library path: ${ASSIMP_LIBRARY_DIRS}" )
message(STATUS " include: ${ASSIMP_INCLUDE_DIRS}" )
message(STATUS "" )

4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
avango
======

AVANGO is a free software framework designed for interactive, distributed applications. It supports a large range of displays from standard desktop applications to large-scale immersive Virtual Reality installations.
98 changes: 98 additions & 0 deletions avango-core/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# read replacement text from file
FILE(READ include/avango/Config.h.in AVANGO_CONFIG_IN)

###############################################################################
# write Config.h
###############################################################################
SET(AVANGO_CONFIG_OUT ${AVANGO_CONFIG_IN})

STRING(REGEX MATCHALL "%\\([^\\)]+\\)s" AVANGO_CONFIG_VARIABLES ${AVANGO_CONFIG_IN})

FOREACH(_CUR_VARIABLE ${AVANGO_CONFIG_VARIABLES})
SET(_STRIPPED_VARIABLE "")
STRING(REGEX REPLACE "%\\(" "" _STRIPPED_VARIABLE ${_CUR_VARIABLE})
STRING(REGEX REPLACE "\\)s" "" _STRIPPED_VARIABLE ${_STRIPPED_VARIABLE})
STRING(REPLACE ${_CUR_VARIABLE} _${_STRIPPED_VARIABLE} AVANGO_CONFIG_OUT ${AVANGO_CONFIG_OUT})
ENDFOREACH(_CUR_VARIABLE)

STRING(REPLACE "av::logging::_AVANGO_LOG_LEVEL" "av::logging::${AVANGO_LOG_LEVEL}" AVANGO_CONFIG_OUT ${AVANGO_CONFIG_OUT})

FILE(WRITE include/avango/Config.h ${AVANGO_CONFIG_OUT})

###############################################################################
# determine source and header files
###############################################################################
file(GLOB AVANGO_CORE_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
src/avango/*.cpp
src/avango/actions/*.cpp
src/avango/fields/*.cpp
src/avango/interface/*.cpp
src/avango/logging/*.cpp
src/avango/nodes/*.cpp
src/avango/streams/*.cpp
src/avango/support/*.cpp
src/avango/types/*.cpp
include/avango/*.h
include/avango/logging/*.h
)

###############################################################################
# optional sources for distribution support
###############################################################################
IF (${AVANGO_DISTRIBUTION_SUPPORT})
file(GLOB AVANGO_CORE_DISTRIBUTION_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
src/avango/network/*.cpp
src/avango/network/*.h
)
IF (NOT ${AVANGO_ZMQ_DISTRIBUTION_SUPPORT})
list (REMOVE_ITEM AVANGO_CORE_DISTRIBUTION_SRC
src/avango/network/NetNodeClient.cpp
src/avango/network/NetNodeClient.h
src/avango/network/NetNodeServer.cpp
src/avango/network/NetNodeServer.h
)
ENDIF (NOT ${AVANGO_ZMQ_DISTRIBUTION_SUPPORT})
ENDIF (${AVANGO_DISTRIBUTION_SUPPORT})

LINK_DIRECTORIES(${LIB_PATHS})

ADD_LIBRARY( avango SHARED
${AVANGO_CORE_SRC}
)

INCLUDE_DIRECTORIES( ${INCLUDE_PATHS} include)

###############################################################################
# set preprocessor configuration
###############################################################################
SET (AVANGO_BUILD_FLAGS ${BUILD_FLAGS})

IF (MSVC)
SET(AVANGO_BUILD_FLAGS "${AVANGO_BUILD_FLAGS} -D AV_LIBRARY")
ENDIF (MSVC)

set_target_properties( avango PROPERTIES COMPILE_FLAGS ${AVANGO_BUILD_FLAGS})
set_target_properties( avango PROPERTIES COMPILE_DEFINITIONS_DEBUG "_AVANGO_DEBUG=1")

TARGET_LINK_LIBRARIES( avango debug ${LIBRARIES} optimized ${LIBRARIES} )

###############################################################################
# targets for unittesting
###############################################################################
IF (AVANGO_UNITTESTS)
add_subdirectory(src/avango/nodes/tests)
add_subdirectory(src/avango/interface/tests)
add_subdirectory(src/avango/types/tests)
add_subdirectory(src/avango/fields/tests)
add_subdirectory(src/avango/network/tests)
add_subdirectory(src/avango/logging/tests)
ENDIF (AVANGO_UNITTESTS)

###############################################################################
# rename libaries in windows
###############################################################################
IF (MSVC)
post_build_install_target(avango ${AVANGO_INSTALL_DIRECTORY}/avango/avango.dll)
ELSEIF (UNIX)
post_build_install_target(avango ${AVANGO_INSTALL_DIRECTORY}/avango/libavango.so)
ENDIF (MSVC)
63 changes: 63 additions & 0 deletions avango-core/include/avango/Config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
// -*- Mode:C++ -*-

/************************************************************************\
* *
* This file is part of AVANGO. *
* *
* Copyright 1997 - 2010 Fraunhofer-Gesellschaft zur Foerderung der *
* angewandten Forschung (FhG), Munich, Germany. *
* *
* AVANGO is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Lesser General Public License as *
* published by the Free Software Foundation, version 3. *
* *
* AVANGO 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 Lesser General Public *
* License along with AVANGO. If not, see <http://www.gnu.org/licenses/>. *
* *
\************************************************************************/

#if !defined(AVANGO_CONFIG_H)
#define AVANGO_CONFIG_H

/**
* \file
* \ingroup av
*/

#if _AVANGO_DEBUG
#define AVANGO_DEBUG 1
#else
#undef AVANGO_DEBUG
#endif

#define AVANGO_LOG_LEVEL av::logging::WARN

#if _AVANGO_DISTRIBUTION_SUPPORT
#define AVANGO_DISTRIBUTION_SUPPORT 1
#else
#undef AVANGO_DISTRIBUTION_SUPPORT
#endif

#if _AVANGO_ZMQ_DISTRIBUTION_SUPPORT
#define ZMQ_DISTRIBUTION_SUPPORT 1
#else
#undef ZMQ_DISTRIBUTION_SUPPORT
#endif

#if _AVANGO_PCL_SUPPORT
#define PCL_SUPPORT 1
#else
#undef PCL_SUPPORT
#endif

#define AVANGO_VERSION_MAJOR _AVANGO_VERSION_MAJOR
#define AVANGO_VERSION_MINOR _AVANGO_VERSION_MINOR
#define AVANGO_VERSION_MAINT _AVANGO_VERSION_MAINT

#endif // #if !defined(AVANGO_CONFIG_H)

Loading

0 comments on commit 4e0cd23

Please sign in to comment.