Package models at compile time
It would be inefficient if git only had access to the binary model files instead of each image in it. This way, if one image gets updated, an entire new model package doesn't need to be stored in git's objects.
This commit is contained in:
parent
c509c665f9
commit
6038cb7870
|
@ -1,4 +1,16 @@
|
|||
cmake_minimum_required( VERSION 3.0 )
|
||||
function( pack_model model_name )
|
||||
file( GLOB archive_files ${PROJECT_SOURCE_DIR}/models/${model_name}/* )
|
||||
add_custom_command(
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -E tar "cf" "${PROJECT_BINARY_DIR}/models/${model_name}.fma" --format=zip ${archive_files}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/models/${model_name}
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/models/${model_name}.fma
|
||||
DEPENDS ${archive_files}
|
||||
)
|
||||
add_custom_target( fc2d_model_${model_name} ALL DEPENDS ${PROJECT_BINARY_DIR}/models/${model_name}.fma )
|
||||
endfunction()
|
||||
|
||||
cmake_minimum_required( VERSION 3.2 )
|
||||
project( Facecam2D VERSION 0.1.0 )
|
||||
set( CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
|
||||
add_subdirectory( "libs/Boxer" )
|
||||
|
@ -24,11 +36,13 @@ include_directories( ${PROJECT_SOURCE_DIR}/src )
|
|||
configure_file( ${PROJECT_SOURCE_DIR}/src/config.hpp.in ${PROJECT_SOURCE_DIR}/src/config.hpp @ONLY )
|
||||
file(
|
||||
COPY
|
||||
${PROJECT_SOURCE_DIR}/models
|
||||
${PROJECT_SOURCE_DIR}/cvdata
|
||||
|
||||
DESTINATION
|
||||
${PROJECT_BINARY_DIR} )
|
||||
file( MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/models )
|
||||
pack_model( "test" )
|
||||
pack_model( "rms" )
|
||||
if (APPLE)
|
||||
file (
|
||||
COPY
|
||||
|
|
BIN
models/rms.fma
BIN
models/rms.fma
Binary file not shown.
BIN
models/rms/bg.webp
Normal file
BIN
models/rms/bg.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 275 KiB |
BIN
models/rms/chest.webp
Normal file
BIN
models/rms/chest.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 305 KiB |
BIN
models/rms/face-mouth-closed.webp
Normal file
BIN
models/rms/face-mouth-closed.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 137 KiB |
BIN
models/rms/face-mouth-open.webp
Normal file
BIN
models/rms/face-mouth-open.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 158 KiB |
BIN
models/rms/hair.webp
Normal file
BIN
models/rms/hair.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 514 KiB |
BIN
models/rms/head.webp
Normal file
BIN
models/rms/head.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 359 KiB |
52
models/rms/model.toml
Normal file
52
models/rms/model.toml
Normal file
|
@ -0,0 +1,52 @@
|
|||
[format]
|
||||
version_major = 0
|
||||
version_minor = 2
|
||||
|
||||
[model_info]
|
||||
name = "Richard Stallman"
|
||||
version = "1.0"
|
||||
|
||||
[[part]]
|
||||
texture = "bg.webp"
|
||||
bind = "null"
|
||||
rot_factor = 0.0
|
||||
scale_factor = 0.0
|
||||
|
||||
[[part]]
|
||||
texture = "chest.webp"
|
||||
bind = "head"
|
||||
rot_factor = 0.4
|
||||
|
||||
[[part]]
|
||||
texture = "hair.webp"
|
||||
bind = "head"
|
||||
follow = "face"
|
||||
factor = -0.5
|
||||
|
||||
[[part]]
|
||||
texture = "head.webp"
|
||||
bind = "head"
|
||||
|
||||
[[part]]
|
||||
bind = "head"
|
||||
follow = "face"
|
||||
factor = 0.5
|
||||
|
||||
[[part.textures]]
|
||||
file = "face-mouth-closed.webp"
|
||||
|
||||
[[part.textures]]
|
||||
file = "face-mouth-open.webp"
|
||||
trigger = "mouth-open"
|
||||
|
||||
[[part]]
|
||||
texture = "nose.webp"
|
||||
bind = "head"
|
||||
follow = "face"
|
||||
factor = 0.8
|
||||
|
||||
[[part]]
|
||||
texture = "tripod.webp"
|
||||
bind = "null"
|
||||
rot_factor = 0.0
|
||||
scale_factor = 0.0
|
BIN
models/rms/nose.webp
Normal file
BIN
models/rms/nose.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 54 KiB |
BIN
models/rms/tripod.webp
Normal file
BIN
models/rms/tripod.webp
Normal file
Binary file not shown.
After ![]() (image error) Size: 64 KiB |
BIN
models/test.fma
BIN
models/test.fma
Binary file not shown.
BIN
models/test/face-eyes-iris.png
Normal file
BIN
models/test/face-eyes-iris.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 35 KiB |
BIN
models/test/face-eyes.png
Normal file
BIN
models/test/face-eyes.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 8.8 KiB |
BIN
models/test/face-mouth-closed.png
Normal file
BIN
models/test/face-mouth-closed.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 5.3 KiB |
BIN
models/test/face-mouth-open.png
Normal file
BIN
models/test/face-mouth-open.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 7.9 KiB |
BIN
models/test/head-base.png
Normal file
BIN
models/test/head-base.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 19 KiB |
30
models/test/model.toml
Normal file
30
models/test/model.toml
Normal file
|
@ -0,0 +1,30 @@
|
|||
[format]
|
||||
version_major = 0
|
||||
version_minor = 1
|
||||
|
||||
[model_info]
|
||||
name = "Test Model"
|
||||
version = "1.0"
|
||||
|
||||
|
||||
[[part]]
|
||||
texture = "head-base.png"
|
||||
bind = "head"
|
||||
|
||||
[[part]]
|
||||
texture = "face-eyes.png"
|
||||
bind = "head"
|
||||
follow = "face"
|
||||
factor = 0.85
|
||||
|
||||
[[part]]
|
||||
bind = "head"
|
||||
follow = "face"
|
||||
factor = 1.0
|
||||
|
||||
[[part.textures]]
|
||||
file = "face-mouth-closed.png"
|
||||
|
||||
[[part.textures]]
|
||||
file = "face-mouth-open.png"
|
||||
trigger = "mouth-open"
|
Loading…
Reference in a new issue