Skip to content

Commit 2a22a90

Browse files
author
Sebastian Pape
committed
Initial Commit
0 parents  commit 2a22a90

20 files changed

+911
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

.gitmodules

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
[submodule "Thirdparty/glfw"]
2+
path = Thirdparty/glfw
3+
url = https://github.com/glfw/glfw.git
4+
branch = latest
5+
[submodule "Thirdparty/imgui"]
6+
path = Thirdparty/imgui
7+
url = https://github.com/ocornut/imgui.git
8+
branch = master
9+
[submodule "Thirdparty/stb"]
10+
path = Thirdparty/stb
11+
url = https://github.com/nothings/stb.git
12+
branch = master
13+
[submodule "DasherCore"]
14+
path = DasherCore
15+
url = https://github.com/VRGroupRWTH/DasherCore
16+
[submodule "Thirdparty/nativefiledialog-extended"]
17+
path = Thirdparty/nativefiledialog-extended
18+
url = https://github.com/btzy/nativefiledialog-extended.git

CMakeLists.txt

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
cmake_minimum_required(VERSION 3.6)
2+
3+
project("DasherUI")
4+
5+
set(CMAKE_CXX_STANDARD 17)
6+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
7+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/DasherUI)
8+
add_compile_definitions(HAVE_ROUND)
9+
find_package(OpenGL REQUIRED)
10+
11+
###############################
12+
# Building GLFW Library
13+
###############################
14+
15+
set(GLFW_BUILD_DOCS OFF)
16+
set(GLFW_BUILD_EXAMPLES OFF)
17+
set(GLFW_BUILD_TESTS OFF)
18+
set(GLFW_INSTALL OFF)
19+
set(GLFW_USE_HYBRID_HPG OFF)
20+
set(GLFW_VULKAN_STATIC OFF)
21+
add_subdirectory("Thirdparty/glfw")
22+
23+
###############################
24+
# Building imgui Library
25+
###############################
26+
27+
add_compile_definitions(IMGUI_DEFINE_MATH_OPERATORS)
28+
ADD_library(imgui STATIC
29+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/imgui.h
30+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/imgui.cpp
31+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/imgui_demo.cpp
32+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/imgui_draw.cpp
33+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/imgui_tables.cpp
34+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/imgui_widgets.cpp
35+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/misc/cpp/imgui_stdlib.cpp
36+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/backends/imgui_impl_glfw.cpp
37+
${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui/backends/imgui_impl_opengl3.cpp
38+
)
39+
target_include_directories(imgui PUBLIC ${CMAKE_CURRENT_LIST_DIR}/Thirdparty/imgui)
40+
target_include_directories(imgui PUBLIC ${CMAKE_CURRENT_LIST_DIR}/Thirdparty/glfw/include)
41+
add_dependencies(imgui glfw OpenGL::GL)
42+
43+
###############################
44+
# Building Dasher Library
45+
###############################
46+
47+
add_subdirectory("DasherCore")
48+
49+
###############################
50+
# Misc Libs
51+
###############################
52+
53+
set(NFD_BUILD_TESTS OFF)
54+
set(NFD_INSTALL OFF)
55+
add_subdirectory("Thirdparty/nativefiledialog-extended")
56+
57+
###############################
58+
# DasherUI
59+
###############################
60+
61+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
62+
ADD_Executable(DasherUI
63+
${PROJECT_SOURCE_DIR}/src/DasherController.cpp
64+
${PROJECT_SOURCE_DIR}/src/DasherController.h
65+
${PROJECT_SOURCE_DIR}/src/MainWindow.cpp
66+
${PROJECT_SOURCE_DIR}/src/MainWindow.h
67+
${PROJECT_SOURCE_DIR}/src/DasherUIScreen.cpp
68+
${PROJECT_SOURCE_DIR}/src/DasherUIScreen.h
69+
${PROJECT_SOURCE_DIR}/src/main.cpp
70+
)
71+
target_include_directories(DasherUI PUBLIC ${CMAKE_CURRENT_LIST_DIR}/Thirdparty/)
72+
add_dependencies(DasherUI imgui glfw DasherCore)
73+
target_link_libraries(DasherUI PRIVATE imgui glfw OpenGL::GL DasherCore nfd)
74+
75+
###############################
76+
# Setting up deloyment
77+
###############################
78+
79+
# Copy Data files
80+
file(GLOB RESOURCE_FILES
81+
${PROJECT_SOURCE_DIR}/DasherCore/Data/alphabets/alphabet*.xml
82+
${PROJECT_SOURCE_DIR}/DasherCore/Data/colours/colour*.xml
83+
${PROJECT_SOURCE_DIR}/DasherCore/Data/control/control*.xml
84+
${PROJECT_SOURCE_DIR}/DasherCore/Data/training/training*.txt
85+
)
86+
file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_BINARY_DIR}/DasherUI/Data)
87+
88+
file(GLOB RESOURCE_FILES
89+
${PROJECT_SOURCE_DIR}/Thirdparty/imgui/misc/fonts/*.ttf
90+
${PROJECT_SOURCE_DIR}/Resources/*.*
91+
)
92+
file(COPY ${RESOURCE_FILES} DESTINATION ${CMAKE_BINARY_DIR}/DasherUI/Resources)
93+
94+
set_property(TARGET DasherUI PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/DasherUI/)
95+
96+
###############################
97+
# Choose Startup Project
98+
###############################
99+
100+
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT DasherUI)
101+

DasherCore

Submodule DasherCore added at 9ee4ae4

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2022 Sebi
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Resources/NotoSans-Medium.ttf

542 KB
Binary file not shown.

Resources/NotoSansJP-Medium.otf

4.35 MB
Binary file not shown.

Resources/OFL.txt

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
Copyright 2015-2021 Google LLC. All Rights Reserved.
2+
3+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
4+
This license is copied below, and is also available with a FAQ at:
5+
http://scripts.sil.org/OFL
6+
7+
8+
-----------------------------------------------------------
9+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10+
-----------------------------------------------------------
11+
12+
PREAMBLE
13+
The goals of the Open Font License (OFL) are to stimulate worldwide
14+
development of collaborative font projects, to support the font creation
15+
efforts of academic and linguistic communities, and to provide a free and
16+
open framework in which fonts may be shared and improved in partnership
17+
with others.
18+
19+
The OFL allows the licensed fonts to be used, studied, modified and
20+
redistributed freely as long as they are not sold by themselves. The
21+
fonts, including any derivative works, can be bundled, embedded,
22+
redistributed and/or sold with any software provided that any reserved
23+
names are not used by derivative works. The fonts and derivatives,
24+
however, cannot be released under any other type of license. The
25+
requirement for fonts to remain under this license does not apply
26+
to any document created using the fonts or their derivatives.
27+
28+
DEFINITIONS
29+
"Font Software" refers to the set of files released by the Copyright
30+
Holder(s) under this license and clearly marked as such. This may
31+
include source files, build scripts and documentation.
32+
33+
"Reserved Font Name" refers to any names specified as such after the
34+
copyright statement(s).
35+
36+
"Original Version" refers to the collection of Font Software components as
37+
distributed by the Copyright Holder(s).
38+
39+
"Modified Version" refers to any derivative made by adding to, deleting,
40+
or substituting -- in part or in whole -- any of the components of the
41+
Original Version, by changing formats or by porting the Font Software to a
42+
new environment.
43+
44+
"Author" refers to any designer, engineer, programmer, technical
45+
writer or other person who contributed to the Font Software.
46+
47+
PERMISSION & CONDITIONS
48+
Permission is hereby granted, free of charge, to any person obtaining
49+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
50+
redistribute, and sell modified and unmodified copies of the Font
51+
Software, subject to the following conditions:
52+
53+
1) Neither the Font Software nor any of its individual components,
54+
in Original or Modified Versions, may be sold by itself.
55+
56+
2) Original or Modified Versions of the Font Software may be bundled,
57+
redistributed and/or sold with any software, provided that each copy
58+
contains the above copyright notice and this license. These can be
59+
included either as stand-alone text files, human-readable headers or
60+
in the appropriate machine-readable metadata fields within text or
61+
binary files as long as those fields can be easily viewed by the user.
62+
63+
3) No Modified Version of the Font Software may use the Reserved Font
64+
Name(s) unless explicit written permission is granted by the corresponding
65+
Copyright Holder. This restriction only applies to the primary font name as
66+
presented to the users.
67+
68+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69+
Software shall not be used to promote, endorse or advertise any
70+
Modified Version, except to acknowledge the contribution(s) of the
71+
Copyright Holder(s) and the Author(s) or with their explicit written
72+
permission.
73+
74+
5) The Font Software, modified or unmodified, in part or in whole,
75+
must be distributed entirely under this license, and must not be
76+
distributed under any other license. The requirement for fonts to
77+
remain under this license does not apply to any document created
78+
using the Font Software.
79+
80+
TERMINATION
81+
This license becomes null and void if any of the above conditions are
82+
not met.
83+
84+
DISCLAIMER
85+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93+
OTHER DEALINGS IN THE FONT SOFTWARE.

Resources/icon.png

910 Bytes
Loading

Thirdparty/glfw

Submodule glfw added at 7482de6

0 commit comments

Comments
 (0)