Skip to content

Commit

Permalink
Seperate application and lib
Browse files Browse the repository at this point in the history
  • Loading branch information
nmoehrle committed Jun 11, 2015
1 parent 77221c8 commit 1aff2e5
Show file tree
Hide file tree
Showing 60 changed files with 510 additions and 570 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
build/
external/
elibs/
!elibs/CMakeLists/*
!elibs/CMakeLists.txt
57 changes: 0 additions & 57 deletions Arguments.h

This file was deleted.

110 changes: 19 additions & 91 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,6 @@ include(ExternalProject)

set(RESEARCH "OFF" CACHE BOOL "Use the gco library for Multi-Label Optimization, which is licensed only for research purposes!")

if(RESEARCH)
externalproject_add(gco
PREFIX gco
URL http://vision.csd.uwo.ca/code/gco-v3.0.zip
URL_MD5 10e071892c38f076d30a91ca5351a847
UPDATE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/CMakeLists/gco.txt CMakeLists.txt
SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/gco
INSTALL_COMMAND ""
)
include_directories(${CMAKE_SOURCE_DIR}/external/gco)
link_directories(${CMAKE_BINARY_DIR}/gco/src/gco-build)
endif()

externalproject_add(coldet
PREFIX coldet
URL http://downloads.sourceforge.net/project/coldet/coldet/2.0/coldet20.zip
URL_MD5 37646a7dd046d9c81fca9d55346a108a
UPDATE_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/CMakeLists/coldet.txt CMakeLists.txt
SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/coldet
INSTALL_COMMAND ""
)

#find_package eigen
externalproject_add(eigen
PREFIX eigen
URL http://bitbucket.org/eigen/eigen/get/3.2.1.tar.bz2
URL_MD5 ece1dbf64a49753218ce951624f4c487
SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/eigen
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ""
)

externalproject_add(mve
PREFIX mve
GIT_REPOSITORY https://github.com/simonfuhrmann/mve.git
SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/mve
CONFIGURE_COMMAND ""
BUILD_COMMAND make -C libs/mve && make -C libs/util #not platform independent
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
)

include_directories(
${CMAKE_SOURCE_DIR}/external/coldet/src
${CMAKE_SOURCE_DIR}/external/mve/libs
${CMAKE_SOURCE_DIR}/external/eigen
)

link_directories(
${CMAKE_BINARY_DIR}/coldet/src/coldet-build
${CMAKE_SOURCE_DIR}/external/mve/libs/mve
${CMAKE_SOURCE_DIR}/external/mve/libs/util
)

include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11_FLAG)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X_FLAG)
Expand Down Expand Up @@ -88,50 +33,33 @@ if(RESEARCH)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DRESEARCH=1")
endif()

set(SRCS
Arguments.cpp
build_adjacency_graph.cpp
build_mrf.cpp
build_obj_model.cpp
generate_debug_colors.cpp
generate_debug_embeddings.cpp
generate_texture_patches.cpp
generate_texture_views.cpp
Histogram.cpp
load_and_prepare_mesh.cpp
main.cpp
Material.cpp
MaterialLib.cpp
MRF.cpp
ObjModel.cpp
partition_mesh.cpp
poisson_blending.cpp
RectangularBin.cpp
run_mrf_optimization.cpp
run_seam_leveling.cpp
TexturePatch.cpp
TextureView.cpp
Timer.cpp
Tri.cpp
UniGraph.cpp
)
find_package(PNG REQUIRED)
find_package(JPEG REQUIRED)
find_package(TIFF REQUIRED)
add_subdirectory(elibs)

set(BIN texrecon)
include_directories(
${CMAKE_SOURCE_DIR}/elibs/coldet/src
${CMAKE_SOURCE_DIR}/elibs/mve/libs
${CMAKE_SOURCE_DIR}/elibs/eigen
libs
)

add_executable(${BIN} ${SRCS})
add_dependencies(${BIN} coldet eigen mve)
link_directories(
${CMAKE_BINARY_DIR}/elibs/coldet/src/ext_coldet-build/
${CMAKE_SOURCE_DIR}/elibs/mve/libs/mve
${CMAKE_SOURCE_DIR}/elibs/mve/libs/util
)

if(RESEARCH)
add_dependencies(${BIN} gco)
include_directories(${CMAKE_SOURCE_DIR}/elibs/gco)
link_directories(${CMAKE_BINARY_DIR}/elibs/gco/src/ext_gco-build)
endif()

find_package(PNG REQUIRED)
find_package(JPEG REQUIRED)
find_package(TIFF REQUIRED)
add_subdirectory(libs)
add_subdirectory(apps)

target_link_libraries(${BIN} -lcoldet -lmve -lmve_util ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES})
if(RESEARCH)
target_link_libraries(${BIN} -lgco)
message(
"
******************************************************************************
Expand Down
1 change: 1 addition & 0 deletions apps/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
add_subdirectory(texrecon)
44 changes: 20 additions & 24 deletions Arguments.cpp → apps/texrecon/Arguments.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,6 @@ Arguments parse_args(int argc, char **argv) {
"Skip local seam leveling (Poisson editing) [false]");
args.add_option('\0', WRITE_TIMINGS, false,
"Write out timings for each algorithm step (OUT_PREFIX + _timings.csv)");
args.add_option('\0', WRITE_MRF_ENERGIES, false,
"Write out MRF optimization energies (OUT_PREFIX + _mrf_energies.csv)");
args.add_option('\0', NO_INTERMEDIATE_RESULTS, false,
"Do not write out intermediate results");
args.parse(argc, argv);
Expand All @@ -73,17 +71,17 @@ Arguments parse_args(int argc, char **argv) {
/* Set defaults for optional arguments. */
conf.data_cost_file = "";
conf.labeling_file = "";
conf.data_term = GMI;
conf.smoothness_term = POTTS;
conf.outlier_removal = NONE;
conf.write_view_selection_model = false;
conf.write_data_term_histograms = false;

conf.settings.data_term = GMI;
conf.settings.smoothness_term = POTTS;
conf.settings.outlier_removal = NONE;
conf.settings.geometric_visibility_test = true;
conf.settings.global_seam_leveling = true;
conf.settings.local_seam_leveling = true;

conf.write_timings = false;
conf.write_mrf_energies = false;
conf.geometric_visibility_test = true;
conf.global_seam_leveling = true;
conf.local_seam_leveling = true;
conf.write_intermediate_results = true;
conf.write_view_selection_model = false;

/* Handle optional arguments. */
for (util::ArgResult const* i = args.next_option();
Expand All @@ -99,25 +97,23 @@ Arguments parse_args(int argc, char **argv) {
conf.labeling_file = i->arg;
break;
case 'd':
conf.data_term = parse_data_term(i->arg);
conf.settings.data_term = parse_data_term(i->arg);
break;
case 's':
conf.smoothness_term = parse_smoothness_term(i->arg);
conf.settings.smoothness_term = parse_smoothness_term(i->arg);
break;
case 'o':
conf.outlier_removal = parse_outlier_removal(i->arg);
conf.settings.outlier_removal = parse_outlier_removal(i->arg);
break;
case '\0':
if (i->opt->lopt == SKIP_GEOMETRIC_VISIBILITY_TEST) {
conf.geometric_visibility_test = false;
conf.settings.geometric_visibility_test = false;
} else if (i->opt->lopt == SKIP_GLOBAL_SEAM_LEVELING) {
conf.global_seam_leveling = false;
conf.settings.global_seam_leveling = false;
} else if (i->opt->lopt == SKIP_LOCAL_SEAM_LEVELING) {
conf.local_seam_leveling = false;
conf.settings.local_seam_leveling = false;
} else if (i->opt->lopt == WRITE_TIMINGS) {
conf.write_timings = true;
} else if (i->opt->lopt == WRITE_MRF_ENERGIES) {
conf.write_mrf_energies = true;
} else if (i->opt->lopt == NO_INTERMEDIATE_RESULTS) {
conf.write_intermediate_results = false;
} else {
Expand Down Expand Up @@ -145,11 +141,11 @@ Arguments::to_string(){
<< "Output prefix: \t" << out_prefix << std::endl
<< "Datacost file: \t" << data_cost_file << std::endl
<< "Labeling file: \t" << labeling_file << std::endl
<< "Data term: \t" << DataTermStrings[data_term] << std::endl
<< "Smoothness term: \t" << SmoothnessTermStrings[smoothness_term] << std::endl
<< "Outlier removal method: \t" << OutlierRemovalStrings[outlier_removal] << std::endl
<< "Apply global seam leveling: \t" << bool_to_string(global_seam_leveling) << std::endl
<< "Apply local seam leveling: \t" << bool_to_string(local_seam_leveling) << std::endl;
<< "Data term: \t" << DataTermStrings[settings.data_term] << std::endl
<< "Smoothness term: \t" << SmoothnessTermStrings[settings.smoothness_term] << std::endl
<< "Outlier removal method: \t" << OutlierRemovalStrings[settings.outlier_removal] << std::endl
<< "Apply global seam leveling: \t" << bool_to_string(settings.global_seam_leveling) << std::endl
<< "Apply local seam leveling: \t" << bool_to_string(settings.local_seam_leveling) << std::endl;

return out.str();
}
29 changes: 29 additions & 0 deletions apps/texrecon/Arguments.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once

#include "util/arguments.h"
#include "tex/Settings.h"

/** Struct containing the commandline arguments at runtime. */
struct Arguments {
std::string in_scene;
std::string in_mesh;
std::string out_prefix;

std::string data_cost_file;
std::string labeling_file;

Settings settings;

bool write_timings;
bool write_intermediate_results;
bool write_view_selection_model;

/** Returns a muliline string of the current arguments. */
std::string to_string();
};

/**
* Parses the commandline arguments.
* @throws std::invalid_argument
*/
Arguments parse_args(int argc, char **argv);
8 changes: 8 additions & 0 deletions apps/texrecon/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
file (GLOB HEADERS "*.h")
file (GLOB SOURCES "[^_]*.cpp")

set(BIN texrecon)

add_executable(${BIN} ${SOURCES})
add_dependencies(${BIN} ext_mve)
target_link_libraries(${BIN} texturing -lmve -lmve_util)
Loading

0 comments on commit 1aff2e5

Please sign in to comment.