Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

https://github.com/NSchertler/GeneralizedMotorcycleGraph
23 June 2024, 01:59:38 UTC
  • Code
  • Branches (4)
  • Releases (0)
  • Visits
    • Branches
    • Releases
    • HEAD
    • refs/heads/deploy-linux
    • refs/heads/deploy-osx
    • refs/heads/deploy-windows
    • refs/heads/master
    No releases to show
  • 505fc29
  • /
  • CMakeLists.txt
Raw File Download
Take a new snapshot of a software origin

If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.

Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.
swh spinner

Processing "take a new snapshot" request ...

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
  • revision
  • snapshot
origin badgecontent badge
swh:1:cnt:5115b7759efd8cbe263c426552d103d409d9faa4
origin badgedirectory badge
swh:1:dir:505fc29652ea476d9525a838aba2681c4ec55c53
origin badgerevision badge
swh:1:rev:a34738fe34a051760b4042dc9d740231e511fec1
origin badgesnapshot badge
swh:1:snp:a981ea1718c19c4d9cde9d807965fd6d38bebcd2

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
  • revision
  • snapshot
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Tip revision: a34738fe34a051760b4042dc9d740231e511fec1 authored by Nico Schertler on 31 October 2020, 07:04:57 UTC
Updated access token
Tip revision: a34738f
CMakeLists.txt
cmake_minimum_required (VERSION 3.1)
project(RegularMeshTexturing)

FUNCTION(PREPEND var prefix)
   SET(listVar "")
   FOREACH(f ${ARGN})
      LIST(APPEND listVar "${prefix}/${f}")
   ENDFOREACH(f)
   SET(${var} "${listVar}" PARENT_SCOPE)
ENDFUNCTION(PREPEND)

FUNCTION(JOIN VALUES GLUE OUTPUT)
  string (REGEX REPLACE "([^\\]|^);" "\\1${GLUE}" _TMP_STR "${VALUES}")
  string (REGEX REPLACE "[\\](.)" "\\1" _TMP_STR "${_TMP_STR}") #fixes escaping
  set (${OUTPUT} "${_TMP_STR}" PARENT_SCOPE)
ENDFUNCTION()

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/Modules/")

set(LIBS)

# Enable folders for projects in Visual Studio
if (CMAKE_GENERATOR MATCHES "Visual Studio")
  set_property(GLOBAL PROPERTY USE_FOLDERS ON)
endif()

#add_definitions(-DREDUCED_TIMINGS)

# Sanitize build environment for static build with C++11
if (MSVC)
  add_definitions (/D "_CRT_SECURE_NO_WARNINGS")
  add_definitions (/D "__TBB_NO_IMPLICIT_LINKAGE")

  add_definitions (-DNOMINMAX )
  add_definitions(/D_USE_MATH_DEFINES)

  # Parallel build on MSVC (all targets)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")

  if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2")

    # Disable Eigen vectorization for Windows 32 bit builds (issues with unaligned access segfaults)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DEIGEN_DONT_ALIGN")
  endif()

  # Static build
  set(CompilerFlags
        CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
        CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO
        CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
        CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
  foreach(CompilerFlag ${CompilerFlags})
    string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
  endforeach()
elseif(APPLE)
  # Try to auto-detect a suitable SDK
  execute_process(COMMAND bash -c "xcodebuild -version -sdk | grep MacOSX | grep Path | head -n 1 | cut -f 2 -d ' '" OUTPUT_VARIABLE CMAKE_OSX_SYSROOT)
  string(REGEX REPLACE "(\r?\n)+$" "" CMAKE_OSX_SYSROOT "${CMAKE_OSX_SYSROOT}")
  string(REGEX REPLACE "^.*X([0-9.]*).sdk$" "\\1" CMAKE_OSX_DEPLOYMENT_TARGET "${CMAKE_OSX_SYSROOT}")
endif()

set (CMAKE_CXX_STANDARD 14)

# Build NanoGUI
set(NANOGUI_BUILD_EXAMPLE OFF CACHE BOOL " " FORCE)
set(NANOGUI_BUILD_SHARED  OFF CACHE BOOL " " FORCE)
set(NANOGUI_BUILD_PYTHON  OFF CACHE BOOL " " FORCE)
set(NANOGUI_USE_GLAD ON CACHE BOOL " " FORCE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/nanogui ext_build/nanogui)
set_property(TARGET nanogui nanogui-obj glfw glfw_objects PROPERTY FOLDER "dependencies")
include_directories(ext/nanogui/include
					${NANOGUI_EXTRA_INCS})
set(LIBS ${LIBS} nanogui ${NANOGUI_EXTRA_LIBS})
set(NSE_WITH_NANOGUI ON CACHE BOOL " " FORCE)
set(NSE_WITH_EIGEN ON CACHE BOOL " " FORCE)
add_definitions(${NANOGUI_EXTRA_DEFS})

#NS Essentials
SET(NSE_SSBO_SUPPORT ON CACHE BOOL " " FORCE)
SET(NSE_TESSELLATION_SUPPORT ON CACHE BOOL " " FORCE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/nsessentials ext_build/nsessentials)
set_property(TARGET nsessentials PROPERTY FOLDER "dependencies")
include_directories(ext/nsessentials/include)
set(LIBS nsessentials ${LIBS})
add_definitions(${NSE_EXTRA_DEFS})

#OpenMesh
set(BUILD_APPS OFF CACHE BOOL " " FORCE)
set(OPENMESH_BUILD_PYTHON_BINDINGS OFF CACHE BOOL " " FORCE)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ext/OpenMesh ext_build/OpenMesh)
set(LIBS ${LIBS} OpenMeshCore OpenMeshTools)
include_directories(ext/OpenMesh/src)
set_property(TARGET OpenMeshCore OpenMeshTools PROPERTY FOLDER "dependencies")

find_package(OpenMP)
if(OPENMP_FOUND)
  add_definitions(-DOPENMP)
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()

#Gurobi
find_package(Gurobi)
if(GUROBI_FOUND)	
	include_directories(${GUROBI_INCLUDE_DIRS})
	set(LIBS ${LIBS} ${GUROBI_LIBRARY} optimized ${GUROBI_CXX_LIBRARY_RELEASE} debug ${GUROBI_CXX_LIBRARY_DEBUG})	
	add_definitions (/D "WITH_GUROBI")
endif()

#nlopt
#find_package(NLopt)
#if(NLOPT_INCLUDE_DIRS)
#	include_directories(${NLOPT_INCLUDE_DIRS})
#	set(LIBS ${LIBS} NLopt::nlopt)
#	add_definitions (/D "WITH_NLOPT")
#endif()

#RectPack
add_subdirectory(ext/RectangleBinPack ext_build/RectangleBinPack)
set(LIBS ${LIBS} RectangleBinPack)
include_directories(ext/RectangleBinPack/include)
set_property(TARGET RectangleBinPack PROPERTY FOLDER "dependencies")

include_directories(ext/libigl)
include_directories(ext/scaffold-map)
add_library(scaffold-map STATIC ext/scaffold-map/igl/scaf.cpp)
set(LIBS ${LIBS} scaffold-map)
set_property(TARGET scaffold-map PROPERTY FOLDER "dependencies")

#triangle
add_subdirectory(ext/libigl/external/triangle)
set(LIBS ${LIBS} triangle)
include_directories(ext/libigl/external/triangle)
set_property(TARGET triangle PROPERTY FOLDER "dependencies")

include_directories(
  ${CMAKE_CURRENT_SOURCE_DIR}/include
  # RPLY mesh I/O library
  ${CMAKE_CURRENT_SOURCE_DIR}/ext/rply  
)

include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/ext/stb)

set(GLSL_FILES	mesh_flat.vert flat_shading.geom blinnphong.frag
				sphere.vert sphere.geom sphere.frag
				cylinder.vert cylinder.geom cylinder.frag
				simple.vert constant_color.frag
				clear.vert clear.frag
				void.vert
				mesh_colors_quad.tcs mesh_colors_quad.tes
				mesh_colors_tri.tcs mesh_colors_tri.tes)

PREPEND(GLSL_FILES "${CMAKE_CURRENT_SOURCE_DIR}/glsl/" ${GLSL_FILES})

source_group(glsl FILES ${GLSL_FILES})

JOIN("${GLSL_FILES}" "," glsl_string)
set(bin2c_cmdline
    -DOUTPUT_C=glsl.cpp
    -DOUTPUT_H=glsl.h
    "-DINPUT_FILES=${glsl_string}"
    -P "${CMAKE_CURRENT_SOURCE_DIR}/ext/nanogui/resources/bin2c.cmake")

add_custom_command(
  OUTPUT glsl.cpp glsl.h
  COMMAND ${CMAKE_COMMAND} ARGS ${bin2c_cmdline}
  DEPENDS ${GLSL_FILES}
  COMMENT "Running bin2c"
  PRE_BUILD VERBATIM)

include_directories( ${CMAKE_CURRENT_BINARY_DIR}  )

SET(THIRD_PARTY 	ext/rply/rply.c)
source_group(third_party FILES ${THIRD_PARTY})

add_executable(RegularMeshTexturing MACOSX_BUNDLE
	glsl.cpp
	src/main.cpp	
	src/common.cpp include/common.h
	src/gui/Viewer.cpp include/gui/Viewer.h
	src/meshio.cpp include/meshio.h
	src/gui/ShaderPool.cpp include/gui/ShaderPool.h
	src/MotorcycleGraph.cpp include/MotorcycleGraph.h
	src/FencedRegion.cpp include/FencedRegion.h
	src/TexturePatch.cpp include/TexturePatch.h
	src/FencedRegionRepresentativeCalculator.cpp include/FencedRegionRepresentativeCalculator.h
	include/MotorcycleOptionsInPatch.h
	src/Parametrization.cpp include/Parametrization.h
	src/ParametrizationData.cpp include/ParametrizationData.h
	include/TargetLengthStrategySimple.h
	src/MultiplierStrategyIterativeRounding.cpp include/MultiplierStrategyIterativeRounding.h
	src/ArclengthStrategyGurobi.cpp include/ArclengthStrategyGurobi.h
	src/ArclengthStrategyGurobiSeparate.cpp include/ArclengthStrategyGurobiSeparate.h
	src/ParametrizationStrategyLSCMForInteriorScaffoldForBoundary.cpp include/ParametrizationStrategyLSCMForInteriorScaffoldForBoundary.h
	src/ParametrizationHelper.cpp include/ParametrizationHelper.h
	src/PolygonTriangulation.cpp include/PolygonTriangulation.h
	src/Data.cpp include/Data.h
	src/Singularity.cpp include/Singularity.h
	src/Statistics.cpp include/Statistics.h
	include/ManifoldnessAwareVertexMap.h
	src/stbi_impl.cpp
	${GLSL_FILES}
	${THIRD_PARTY})

target_link_libraries(RegularMeshTexturing ${LIBS})

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API