Skip to content

Commit

Permalink
viewer builds with visual studio 2010
Browse files Browse the repository at this point in the history
fixes and workarounds for:
 - build system
 - PRETTY_FUNCTION
 - min / max 
 - float vs double
 - M_PI_2
  • Loading branch information
Kai Wurm committed Aug 22, 2011
1 parent f926940 commit 06f2fde
Show file tree
Hide file tree
Showing 11 changed files with 133 additions and 105 deletions.
28 changes: 15 additions & 13 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,20 @@ ADD_SUBDIRECTORY( octomap )
ADD_SUBDIRECTORY( octovis )

# make complete package release from source
SET(PKG_NAME "${PROJECT_NAME}.tar.gz")
SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist")
ADD_CUSTOM_TARGET("dist"
rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${PKG_NAME}"
COMMAND mkdir "${DIST_DIR}"
COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}"
COMMAND tar -czf "${CMAKE_BINARY_DIR}/${PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
)

# also build subproject's dist for completeness
ADD_DEPENDENCIES(dist dist-octomap dist-octovis)

IF (NOT WIN32)
SET(PKG_NAME "${PROJECT_NAME}.tar.gz")
SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist")
ADD_CUSTOM_TARGET("dist"
rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${PKG_NAME}"
COMMAND mkdir "${DIST_DIR}"
COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}"
COMMAND tar -czf "${CMAKE_BINARY_DIR}/${PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
)

# also build subproject's dist for completeness
ADD_DEPENDENCIES(dist dist-octomap dist-octovis)
ENDIF()



22 changes: 12 additions & 10 deletions octomap/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -123,15 +123,17 @@ IF(DOXYGEN_FOUND)
ENDIF(DOXYGEN_FOUND)

# make package release from source
SET(OCTOMAP_PKG_NAME "${PROJECT_NAME}-${OCTOMAP_VERSION}.tar.gz")
SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist-${PROJECT_NAME}")
ADD_CUSTOM_TARGET("dist-${PROJECT_NAME}"
rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}"
COMMAND mkdir "${DIST_DIR}"
COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}"
COMMAND tar -czf "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
)
IF (NOT WIN32)
SET(OCTOMAP_PKG_NAME "${PROJECT_NAME}-${OCTOMAP_VERSION}.tar.gz")
SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist-${PROJECT_NAME}")
ADD_CUSTOM_TARGET("dist-${PROJECT_NAME}"
rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}"
COMMAND mkdir "${DIST_DIR}"
COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}"
COMMAND tar -czf "${CMAKE_BINARY_DIR}/${OCTOMAP_PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
)
ENDIF()

# Needs to be last statement:
INCLUDE(CPackSettings)
Expand All @@ -140,5 +142,5 @@ INCLUDE(CPackSettings)
MESSAGE ("\n")
MESSAGE (STATUS "Compile octomap using: make")
MESSAGE (STATUS "Install octomap using: make install")
MESSAGE ( " (be sure to set the correct CMAKE_INSTALL_PREFIX before)")
MESSAGE (STATUS " (be sure to set the correct CMAKE_INSTALL_PREFIX before)")
MESSAGE (STATUS "Compile API-documentation using: make docs\n")
2 changes: 1 addition & 1 deletion octomap/include/octomap/OcTreeBase.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,7 @@ namespace octomap {
std::istream& OcTreeBase<NODE>::read(std::istream &s) {

if (!s.good()){
OCTOMAP_WARNING_STR(__PRETTY_FUNCTION__ << "Warning: Input filestream not \"good\"");
OCTOMAP_WARNING_STR(__FILE__ << ":" << __LINE__ << "Warning: Input filestream not \"good\"");
}

this->tree_size = 0;
Expand Down
2 changes: 1 addition & 1 deletion octomap/include/octomap/OcTreeDataNode.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ namespace octomap {
s.read((char*)&children_char, sizeof(char));


std::bitset<8> children ((unsigned long) children_char);
std::bitset<8> children ((unsigned long long) children_char);

// std::cout << "read: " << log_odds_occupancy << " "
// << children.to_string<char,std::char_traits<char>,std::allocator<char> >() << std::endl;
Expand Down
39 changes: 23 additions & 16 deletions octovis/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,21 @@ set(INSTALL_TARGETS_DEFAULT_ARGS
SET( BUILD_VIEWER 0)

# Look for required libraries:
FIND_PACKAGE(OpenGL REQUIRED)
FIND_PACKAGE(Qt4 REQUIRED)
FIND_PACKAGE(QGLViewer)
IF(QGLViewer_FOUND)
SET( BUILD_VIEWER 1)
FIND_PACKAGE(OpenGL)
FIND_PACKAGE(Qt4)
IF (OpenGL-NOTFOUND OR Qt4-NOTFOUND)
MESSAGE ( "OpenGL and QT4 are required for octovis but could not be found.")
ELSE()
MESSAGE ( "\n")
MESSAGE ( "libQGLViewer could not be found or generated.")
FIND_PACKAGE(QGLViewer)
IF(QGLViewer_FOUND)
SET( BUILD_VIEWER 1)
ELSE()
MESSAGE ( "\n")
MESSAGE ( "libQGLViewer could not be found or generated.")
ENDIF()
ENDIF()


IF(BUILD_VIEWER)
MESSAGE(STATUS "\n")
MESSAGE(STATUS "viewer octovis will be built")
Expand Down Expand Up @@ -100,15 +105,17 @@ IF(BUILD_VIEWER)
DESTINATION lib/cmake/octovis/)

# make package release from source
SET(OCTOVIS_PKG_NAME "${PROJECT_NAME}-${OCTOVIS_VERSION}.tar.gz")
SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist-${PROJECT_NAME}")
ADD_CUSTOM_TARGET("dist-${PROJECT_NAME}"
rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${OCTOVIS_PKG_NAME}"
COMMAND mkdir "${DIST_DIR}"
COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}"
COMMAND tar -czf "${CMAKE_BINARY_DIR}/${OCTOVIS_PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
)
IF (NOT WIN32)
SET(OCTOVIS_PKG_NAME "${PROJECT_NAME}-${OCTOVIS_VERSION}.tar.gz")
SET(DIST_DIR "${CMAKE_BINARY_DIR}/dist-${PROJECT_NAME}")
ADD_CUSTOM_TARGET("dist-${PROJECT_NAME}"
rm -rf "${DIST_DIR}" "${CMAKE_BINARY_DIR}/${OCTOVIS_PKG_NAME}"
COMMAND mkdir "${DIST_DIR}"
COMMAND svn export --force -q "${PROJECT_SOURCE_DIR}" "${DIST_DIR}/${PROJECT_NAME}"
COMMAND tar -czf "${CMAKE_BINARY_DIR}/${OCTOVIS_PKG_NAME}" -C "${DIST_DIR}" --exclude=".hidden" "${PROJECT_NAME}"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
)
ENDIF ()

# #installation:
# # store all header files to install:
Expand Down
6 changes: 2 additions & 4 deletions octovis/CMakeLists_src.txt
Original file line number Diff line number Diff line change
Expand Up @@ -70,20 +70,18 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR})
add_library(octovis-static STATIC ${viewerlib_SRCS})
target_link_libraries(octovis-static)
set_target_properties(octovis-static PROPERTIES OUTPUT_NAME octovis)
SET_TARGET_PROPERTIES(octovis-static PROPERTIES PREFIX "lib")

add_library(octovis-shared SHARED ${viewerlib_SRCS})
target_link_libraries(octovis-shared)
target_link_libraries(octovis-shared ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} octomath octomap ${QGLViewer_LIBRARIES})
set_target_properties(octovis-shared PROPERTIES OUTPUT_NAME octovis)


# Now add these generated files to the ADD_EXECUTABLE step
# If this is NOT done, then the ui_*.h files will not be generated
add_executable(octovis ${viewer_SRCS} ${viewer_UIS_H} ${viewer_MOC_SRCS} ${viewer_RES})

# link the target against the Qt libraries. which libraries exactly, is defined by the "include(${QT_USE_FILE})" line above, which sets up this variable.
target_link_libraries(octovis
${QGLViewer_LIBRARIES}
# ${QGLViewer_LIBRARIES}
${QT_LIBRARIES}
${OCTOMAP_LIBRARIES}
octovis-shared
Expand Down
112 changes: 64 additions & 48 deletions octovis/CMakeModules/FindQGLViewer.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ FIND_PATH( QGLViewer_INCLUDE_DIR qglviewer.h
)

FIND_LIBRARY( QGLViewer_LIBRARY_DIR_UBUNTU qglviewer-qt4 )
FIND_LIBRARY( QGLViewer_LIBRARY_DIR_WINDOWS QGLViewer2 ${QGLVIEWER_BASE_DIR})
FIND_LIBRARY( QGLViewer_LIBRARY_DIR_OTHER QGLViewer ${QGLVIEWER_BASE_DIR})

SET( BUILD_LIB_FROM_SOURCE 0)
Expand All @@ -36,8 +37,14 @@ IF( QGLViewer_INCLUDE_DIR )
GET_FILENAME_COMPONENT( QGLViewer_LIBRARY_DIR ${QGLViewer_LIBRARY_DIR_UBUNTU} PATH CACHE )
SET( QGLViewer_LIBRARIES qglviewer-qt4)
SET( QGLViewer_FOUND 1 CACHE BOOL "Do we have QGLViewer?" FORCE )
ELSEIF(QGLViewer_LIBRARY_DIR_WINDOWS)
# strip filename from path
GET_FILENAME_COMPONENT( QGLViewer_LIBRARY_DIR ${QGLViewer_LIBRARY_DIR_WINDOWS} PATH CACHE )
SET( QGLViewer_LIBRARIES QGLViewer2)
SET( QGLViewer_FOUND 1 CACHE BOOL "Do we have QGLViewer?" FORCE )
MESSAGE(STATUS "QGLViewer2.lib found in ${QGLViewer_LIBRARY_DIR}")
ELSEIF(QGLViewer_LIBRARY_DIR_OTHER)
MESSAGE(STATUS "QGLViewer found in ${QGLViewer_LIBRARY_DIR_OTHER}")
MESSAGE(STATUS "QGLViewer found: ${QGLViewer_LIBRARY_DIR_OTHER}")
# strip filename from path
GET_FILENAME_COMPONENT( QGLViewer_LIBRARY_DIR ${QGLViewer_LIBRARY_DIR_OTHER} PATH CACHE )
SET( QGLViewer_LIBRARIES QGLViewer)
Expand All @@ -51,54 +58,63 @@ IF( QGLViewer_INCLUDE_DIR )
ELSE()
SET( BUILD_LIB_FROM_SOURCE 1)
ENDIF()

# build own libQGLViewer
IF(BUILD_LIB_FROM_SOURCE)

IF (WIN32)
MESSAGE("Cannot generate QGLViewer2 from source automatically.")
MESSAGE("Please build libQGLViewer from source, instructions to do so")
MESSAGE("can be found in octovis/README.txt")
MESSAGE("Please rerun CMAKE when you are ready.")

ELSE (WIN32)
IF(QGLVIEWER_BASE_DIR)
MESSAGE(STATUS "Trying to build libQGLViewer from source in ${QGLVIEWER_BASE_DIR}")

FIND_PROGRAM(QMAKE-QT4 qmake-qt4)
IF (QMAKE-QT4)
MESSAGE(STATUS "\t generating Makefile using qmake-qt4")
EXECUTE_PROCESS(
WORKING_DIRECTORY ${QGLVIEWER_BASE_DIR}
COMMAND qmake-qt4
OUTPUT_QUIET
)
ELSE(QMAKE-QT4)
MESSAGE(STATUS "\t generating Makefile using qmake")
EXECUTE_PROCESS(
WORKING_DIRECTORY ${QGLVIEWER_BASE_DIR}
COMMAND qmake-qt4
OUTPUT_QUIET
)
ENDIF(QMAKE-QT4)

MESSAGE(STATUS "\t building library")
EXECUTE_PROCESS(
WORKING_DIRECTORY ${QGLVIEWER_BASE_DIR}
COMMAND make
OUTPUT_QUIET
)
ENDIF(WIN32)

ELSE()
MESSAGE(STATUS "QGLViewer sources NOT found. Exiting.")
ENDIF()

FIND_LIBRARY(QGLViewer_LIBRARY_DIR_OTHER QGLViewer ${QGLVIEWER_BASE_DIR})
FIND_PATH(QGLLIB libQGLViewer.so ${QGLVIEWER_BASE_DIR})

IF(BUILD_LIB_FROM_SOURCE)

# build own libQGLViewer
IF(QGLVIEWER_BASE_DIR)
MESSAGE(STATUS "Trying to build libQGLViewer from source in ${QGLVIEWER_BASE_DIR}")

FIND_PROGRAM(QMAKE-QT4 qmake-qt4)
IF (QMAKE-QT4)
MESSAGE(STATUS "\t generating Makefile using qmake-qt4")
EXECUTE_PROCESS(
WORKING_DIRECTORY ${QGLVIEWER_BASE_DIR}
COMMAND qmake-qt4
OUTPUT_QUIET
)
ELSE(QMAKE-QT4)
MESSAGE(STATUS "\t generating Makefile using qmake")
EXECUTE_PROCESS(
WORKING_DIRECTORY ${QGLVIEWER_BASE_DIR}
COMMAND qmake-qt4
OUTPUT_QUIET
)
ENDIF(QMAKE-QT4)

MESSAGE(STATUS "\t building library")
EXECUTE_PROCESS(
WORKING_DIRECTORY ${QGLVIEWER_BASE_DIR}
COMMAND make
OUTPUT_QUIET
)
ELSE()
MESSAGE(STATUS "QGLViewer sources NOT found. Exiting.")
ENDIF()

FIND_LIBRARY(QGLViewer_LIBRARY_DIR_OTHER QGLViewer ${QGLVIEWER_BASE_DIR})
FIND_PATH(QGLLIB libQGLViewer.so ${QGLVIEWER_BASE_DIR})

IF (NOT QGLLIB)
MESSAGE(STATUS "\nfailed to build libQGLViewer")
SET( QGLViewer_FOUND 0 CACHE BOOL "Do we have QGLViewer?" FORCE )
ELSE()
MESSAGE(STATUS "Successfully built ${QGLLIB}")
SET( QGLViewer_INCLUDE_DIR ${QGLVIEWER_BASE_DIR} CACHE PATH "QGLViewer Include directory" FORCE)
SET( QGLViewer_LIBRARY_DIR ${QGLVIEWER_BASE_DIR} CACHE PATH "QGLViewer Library directory" FORCE)
# TODO: also include "m pthread QGLViewerGen QGLViewerUtility"?
SET( QGLViewer_LIBRARIES QGLViewer)
SET( QGLViewer_FOUND 1 CACHE BOOL "Do we have QGLViewer?" FORCE )
ENDIF()
IF (NOT QGLLIB)
MESSAGE(STATUS "\nfailed to build libQGLViewer")
SET( QGLViewer_FOUND 0 CACHE BOOL "Do we have QGLViewer?" FORCE )
ELSE()
MESSAGE(STATUS "Successfully built ${QGLLIB}")
SET( QGLViewer_INCLUDE_DIR ${QGLVIEWER_BASE_DIR} CACHE PATH "QGLViewer Include directory" FORCE)
SET( QGLViewer_LIBRARY_DIR ${QGLVIEWER_BASE_DIR} CACHE PATH "QGLViewer Library directory" FORCE)
# TODO: also include "m pthread QGLViewerGen QGLViewerUtility"?
SET( QGLViewer_LIBRARIES QGLViewer)
SET( QGLViewer_FOUND 1 CACHE BOOL "Do we have QGLViewer?" FORCE )
ENDIF()

ENDIF()

Expand Down
2 changes: 1 addition & 1 deletion octovis/src/CameraFollowMode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ void CameraFollowMode::play() {
if (scanNode)
emit appendToCameraPath(ROBOT_TRAJECTORY_ID, scanNode->pose);
else{
std::cerr << "Error in " << __PRETTY_FUNCTION__<<": invalid node ID "<< i-1 << std::endl;
std::cerr << "Error in " << __FILE__ << ":" << __LINE__ <<" : invalid node ID "<< i-1 << std::endl;
}
}
emit playCameraPath(ROBOT_TRAJECTORY_ID, 0);
Expand Down
10 changes: 5 additions & 5 deletions octovis/src/OcTreeDrawer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -761,13 +761,13 @@ namespace octomap {

// draw binary occupied cells
if (m_occupiedThresSize != 0) {
if (m_colorMode != CM_PRINTOUT) glColor4f(0.0, 0.0, 1.0, m_alphaOccupied);
if (m_colorMode != CM_PRINTOUT) glColor4f(0.0f, 0.0f, 1.0f, m_alphaOccupied);
drawCubes(m_occupiedThresArray, m_occupiedThresSize, m_occupiedThresColorArray);
}

// draw delta occupied cells
if (m_occupiedSize != 0) {
if (m_colorMode != CM_PRINTOUT) glColor4f(0.2, 0.7, 1.0, m_alphaOccupied);
if (m_colorMode != CM_PRINTOUT) glColor4f(0.2f, 0.7f, 1.0f, m_alphaOccupied);
drawCubes(m_occupiedArray, m_occupiedSize, m_occupiedColorArray);
}
}
Expand All @@ -788,14 +788,14 @@ namespace octomap {

// draw binary freespace cells
if (m_freeThresSize != 0) {
if (m_colorMode != CM_PRINTOUT) glColor4f(0.0, 1.0, 0., 0.3);
if (m_colorMode != CM_PRINTOUT) glColor4f(0.0f, 1.0f, 0.0f, 0.3f);
drawCubes(m_freeThresArray, m_freeThresSize);
}


// draw delta freespace cells
if (m_freeSize != 0) {
if (m_colorMode != CM_PRINTOUT) glColor4f(0.5, 1.0, 0.1, 0.3);
if (m_colorMode != CM_PRINTOUT) glColor4f(0.5f, 1.0f, 0.1f, 0.3f);
drawCubes(m_freeArray, m_freeSize);
}
}
Expand Down Expand Up @@ -942,7 +942,7 @@ namespace octomap {

glPushMatrix();

float length = .15;
float length = 0.15f;

GLboolean lighting, colorMaterial;
glGetBooleanv(GL_LIGHTING, &lighting);
Expand Down
7 changes: 3 additions & 4 deletions octovis/src/ViewerSettingsPanel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ void ViewerSettingsPanel::on_nextScanButton_clicked(){
}

void ViewerSettingsPanel::on_fastFwdScanButton_clicked(){
unsigned increase = std::min(5, int(m_numberScans)-int(m_currentScan));
unsigned increase = min(5, int(m_numberScans)-int(m_currentScan));
m_currentScan += increase;
scanProgressChanged();
emit addNextScans(increase);
Expand All @@ -70,7 +70,7 @@ void ViewerSettingsPanel::on_firstScanButton_clicked(){
}

void ViewerSettingsPanel::scanProgressChanged(){
ui.scanProgressBar->setMaximum(std::max(1,int(m_numberScans)));
ui.scanProgressBar->setMaximum(max(1,int(m_numberScans)));

if (m_currentScan == m_numberScans){
ui.nextScanButton->setEnabled(false);
Expand Down Expand Up @@ -116,7 +116,6 @@ void ViewerSettingsPanel::setTreeDepth(int depth){
}

void ViewerSettingsPanel::leafSizeChanged(){
double leafSize = m_resolution * pow(2,_TREE_MAX_DEPTH-m_treeDepth);
double leafSize = m_resolution * pow(2.0, (int) (_TREE_MAX_DEPTH-m_treeDepth));
ui.leafSize->setText(QString::number(leafSize)+" m");

}
Loading

0 comments on commit 06f2fde

Please sign in to comment.