From c4d7a8b7f2f581fe9be7ebcea716e8a0ad4e73f0 Mon Sep 17 00:00:00 2001 From: danielbui78 Date: Fri, 3 Jun 2022 11:23:48 -0400 Subject: [PATCH] C++ rewrite and integration with Daz Bridge Library (#27) * Initial Commit: C++ refactor * Daz Bridge Library integration * Embedded c4d plugin update * Bugfix: Save Project with Assets (C4D r25) --- .gitignore | 4 + .gitmodules | 3 + CMakeLists.txt | 279 ++ .../plugins/DazToC4D/lib/CustomImports.py | 16 +- .../plugins/DazToC4D/lib/DtC4DDialogs.py | 1 + .../plugins/DazToC4D/lib/DtC4DGuiImportDaz.py | 2 +- .../plugins/DazToC4D/lib/StandardMaterials.py | 23 + .../scripts/support/DAZ/Daz to Cinema 4D.dsa | 2588 ----------------- .../DAZ/DzCinema 4DMorphSelectionDialog.dsa | 1409 --------- DazStudioPlugin/CMakeLists.txt | 76 + DazStudioPlugin/DzC4DAction.cpp | 333 +++ DazStudioPlugin/DzC4DAction.h | 31 + DazStudioPlugin/DzC4DBridge.rc | Bin 0 -> 3844 bytes DazStudioPlugin/DzC4DDialog.cpp | 351 +++ DazStudioPlugin/DzC4DDialog.h | 48 + .../Resources/Images/Daz to Cinema 4D.png | Bin 0 -> 3049 bytes DazStudioPlugin/Resources/c4dplugin.zip | Bin 0 -> 449670 bytes DazStudioPlugin/Resources/resources.qrc | 9 + DazStudioPlugin/pluginmain.cpp | 39 + DazStudioPlugin/resource.h | 1632 +++++++++++ DazStudioPlugin/version.h | 10 + Test/QA Manual Test Cases.md | 148 + Test/QA-Test-Scene-01.duf | Bin 0 -> 117286 bytes Test/Results/Readme.MD | 1 + Test/Results/TestResults_DzC4DAction.json | 43 + Test/Results/TestResults_DzC4DAction.txt | 16 + Test/Results/TestResults_DzC4DDialog.json | 43 + Test/Results/TestResults_DzC4DDialog.txt | 16 + Test/TestCases/QA_Utility_Functions.dsa | 368 +++ Test/UnitTests/CMakeLists.txt | 15 + Test/UnitTests/RunUnitTests.dsa | 43 + Test/UnitTests/UnitTest_DzC4DAction.cpp | 70 + Test/UnitTests/UnitTest_DzC4DAction.h | 23 + Test/UnitTests/UnitTest_DzC4DDialog.cpp | 68 + Test/UnitTests/UnitTest_DzC4DDialog.h | 24 + dzbridge-common | 1 + 36 files changed, 3728 insertions(+), 4005 deletions(-) create mode 100644 .gitmodules create mode 100644 CMakeLists.txt delete mode 100644 Daz Studio/appdir_common/scripts/support/DAZ/Daz to Cinema 4D.dsa delete mode 100644 Daz Studio/appdir_common/scripts/support/DAZ/DzCinema 4DMorphSelectionDialog.dsa create mode 100644 DazStudioPlugin/CMakeLists.txt create mode 100644 DazStudioPlugin/DzC4DAction.cpp create mode 100644 DazStudioPlugin/DzC4DAction.h create mode 100644 DazStudioPlugin/DzC4DBridge.rc create mode 100644 DazStudioPlugin/DzC4DDialog.cpp create mode 100644 DazStudioPlugin/DzC4DDialog.h create mode 100644 DazStudioPlugin/Resources/Images/Daz to Cinema 4D.png create mode 100644 DazStudioPlugin/Resources/c4dplugin.zip create mode 100644 DazStudioPlugin/Resources/resources.qrc create mode 100644 DazStudioPlugin/pluginmain.cpp create mode 100644 DazStudioPlugin/resource.h create mode 100644 DazStudioPlugin/version.h create mode 100644 Test/QA Manual Test Cases.md create mode 100644 Test/QA-Test-Scene-01.duf create mode 100644 Test/Results/Readme.MD create mode 100644 Test/Results/TestResults_DzC4DAction.json create mode 100644 Test/Results/TestResults_DzC4DAction.txt create mode 100644 Test/Results/TestResults_DzC4DDialog.json create mode 100644 Test/Results/TestResults_DzC4DDialog.txt create mode 100644 Test/TestCases/QA_Utility_Functions.dsa create mode 100644 Test/UnitTests/CMakeLists.txt create mode 100644 Test/UnitTests/RunUnitTests.dsa create mode 100644 Test/UnitTests/UnitTest_DzC4DAction.cpp create mode 100644 Test/UnitTests/UnitTest_DzC4DAction.h create mode 100644 Test/UnitTests/UnitTest_DzC4DDialog.cpp create mode 100644 Test/UnitTests/UnitTest_DzC4DDialog.h create mode 160000 dzbridge-common diff --git a/.gitignore b/.gitignore index 722d5e7..50cdddf 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ .vscode +.vs +out +CMakeSettings.json +.DS_Store diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..b8f4f33 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "dzbridge-common"] + path = dzbridge-common + url = https://github.com/daz3d/DazBridgeUtils.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a9965ba --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,279 @@ +#********************************************************************** +# Copyright (C) 2002-2020 Daz 3D, Inc. All Rights Reserved. +# +# This file is part of the DAZ Studio SDK. +# +# This file may be used only in accordance with the DAZ Studio SDK +# license provided with the DAZ Studio SDK. +# +# The contents of this file may not be disclosed to third parties, +# copied or duplicated in any form, in whole or in part, without the +# prior written permission of Daz 3D, Inc, except as explicitly +# allowed in the DAZ Studio SDK license. +# +# See http://www.daz3d.com to contact DAZ 3D or for more +# information about the DAZ Studio SDK. +#********************************************************************** + +cmake_minimum_required(VERSION 3.4.0) + +if(APPLE) + if(NOT CMAKE_OSX_ARCHITECTURES) + message( FATAL_ERROR "Mac needs CMAKE_OSX_ARCHITECTURES, set to i386 or x86_64" ) + return() + endif() +endif(APPLE) + +project("DzBridge-C4D") +set(FBX_SDK_DIR "" CACHE PATH "Path to FBX SDK" ) +set(OPENSUBDIV_DIR "" CACHE PATH "Path to Opensubdiv folder" ) +set(USE_DZBRIDGE_SUBMODULE "ON") +set(USE_DZBRIDGE_STATIC "ON") + + +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +set(DAZ_STUDIO_EXE_DIR "" CACHE PATH "Path to DAZ Studio, needs to be installed to a writeable location" ) +if(NOT DAZ_STUDIO_EXE_DIR ) + message("Location to DAZ Studio not provided. Projects will build locally.") +endif() + +if(WIN32) + set(DZ_LIB_SUFFIX ".lib") + set(DZ_BIN_SUFFIX ".dll") + set(DZ_LIB_PREFIX "") + set(UTIL_EXT ".exe") + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + set(DZ_PLATFORM x86) + set(DZ_MIXED_PLATFORM Win32) + set(DZ_OS_PLATFORM Win32) + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(DZ_PLATFORM x64) + set(DZ_MIXED_PLATFORM x64) + set(DZ_OS_PLATFORM Win64) + else() + message(FATAL_ERROR "Unknown architecture") + endif() +elseif(APPLE) + set(DZ_LIB_SUFFIX ".dylib") + set(DZ_BIN_SUFFIX ".dylib") + set(DZ_LIB_PREFIX "lib") + set(UTIL_EXT "") + if(CMAKE_SIZEOF_VOID_P EQUAL 4) + set(DZ_PLATFORM x86) + set(DZ_MIXED_PLATFORM Mac32) + set(DZ_OS_PLATFORM Mac32) + elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(DZ_PLATFORM x64) + set(DZ_MIXED_PLATFORM Mac64) + set(DZ_OS_PLATFORM Mac64) + else() + message(FATAL_ERROR "Unknown architecture") + endif() + set(CMAKE_MACOSX_RPATH TRUE) + set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + SET(CMAKE_CXX_FLAGS "-std=gnu++11 ${CMAKE_CXX_FLAGS}") +else() + message(FATAL_ERROR "Unknown architecture") +endif(WIN32) + +set(DAZ_SDK_DIR_DEFAULT "") +set(DAZ_SDK_CORE_RELATIVE_PATH "lib/${DZ_MIXED_PLATFORM}/${DZ_LIB_PREFIX}dzcore${DZ_LIB_SUFFIX}") +if(NOT DAZ_SDK_DIR) + if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/DAZStudio4.5+ SDK/${DAZ_SDK_CORE_RELATIVE_PATH}") + set( DAZ_SDK_DIR_DEFAULT "${CMAKE_CURRENT_LIST_DIR}/DAZStudio4.5+ SDK" ) + endif() +endif() + +set(DAZ_SDK_DIR ${DAZ_SDK_DIR_DEFAULT} CACHE PATH "Path to root of the DAZ Studio SDK" ) + +if(NOT DAZ_SDK_DIR) + message(FATAL_ERROR "Missing path to DAZ Studio SDK") + return() +endif() + +set(QT_BINARY_DIR_DEFAULT "" CACHE PATH "Path to directory with QT binaries") +if(NOT QT_BINARY_DIR_DEFAULT) + if(EXISTS "${DAZ_SDK_DIR}/bin/${DZ_MIXED_PLATFORM}/qmake${UTIL_EXT}") + set( QT_BINARY_DIR_DEFAULT "${DAZ_SDK_DIR}/bin/${DZ_MIXED_PLATFORM}" ) + endif() +endif() + +if(NOT QT_BINARY_DIR_DEFAULT) + message(FATAL_ERROR "Missing path QT binaries. Check QT_BINARY_DIR_DEFAULT path") + return() +endif() + +find_package(OpenGL REQUIRED) + +#we only have release libraries for dzcore/qt so make sure even in debug they we use MD and undef debug +if(WIN32) + add_compile_options( "/MD" "/U_DEBUG" ) +endif() + +# Set dzcore as import target +set(DZ_SDK_INCLUDE "${DAZ_SDK_DIR}/include" CACHE FILEPATH "path to daz sdk includes" ) +set(DAZ_SDK_LIB "${DAZ_SDK_DIR}/${DAZ_SDK_CORE_RELATIVE_PATH}" CACHE FILEPATH "path to dzcore" ) +if(NOT EXISTS ${DAZ_SDK_LIB}) + message(FATAL_ERROR "The library dzcore could not be located. Check the path for DAZ_SDK_DIR.") + return() +endif() + +add_library(dzcore SHARED IMPORTED) +if(WIN32) + set_property(TARGET dzcore APPEND PROPERTY IMPORTED_IMPLIB ${DAZ_SDK_LIB}) +else() + set_property(TARGET dzcore APPEND PROPERTY IMPORTED_LOCATION ${DAZ_SDK_LIB}) +endif(WIN32) +set_property(TARGET dzcore APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${DZ_SDK_INCLUDE}" ) + +# Set dpc as import target +set(DAZ_SDK_DPC_EXE "${DAZ_SDK_DIR}/bin/${DZ_MIXED_PLATFORM}/dpc${UTIL_EXT}" CACHE FILEPATH "path to sdk dpc" ) +if(NOT EXISTS ${DAZ_SDK_DPC_EXE}) + message(FATAL_ERROR "The executable dpc could not be located. Check the path for DAZ_SDK_DIR.") + return() +endif() +add_executable(dpc IMPORTED) +set_property(TARGET dpc APPEND PROPERTY IMPORTED_LOCATION ${DAZ_SDK_DPC_EXE}) + +# Setup Qt from the DAZ SDK +if(WIN32) + set(DAZ_SDK_QTCORE_LIBRARY "${DAZ_SDK_DIR}/lib/${DZ_MIXED_PLATFORM}/QtCore4.lib") +elseif(APPLE) + set(DAZ_SDK_QTCORE_LIBRARY "${DAZ_SDK_DIR}/lib/${DZ_MIXED_PLATFORM}/QtCore.framework") +endif() + +set(QT_QTCORE_LIBRARY_RELEASE ${DAZ_SDK_QTCORE_LIBRARY}) +set(QT_BINARY_DIR "${QT_BINARY_DIR_DEFAULT}") +set(QT_QMAKE_EXECUTABLE "${QT_BINARY_DIR_DEFAULT}/qmake${UTIL_EXT}") +#set(QT_QMAKE_EXECUTABLE "${DAZ_SDK_DIR}/bin/${DZ_MIXED_PLATFORM}/qmake${UTIL_EXT}") +#set(QT_BINARY_DIR "${DAZ_SDK_DIR}/bin/${DZ_MIXED_PLATFORM}") +set(QT_HEADERS_DIR "${DAZ_SDK_DIR}/include") +set(QT_QTCORE_INCLUDE_DIR "${DAZ_SDK_DIR}/include/QtCore") + +# the qt find module needs this folder but our build does not so just fake it +file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/DUMMY_MKSPECS/default" ) +set(QT_MKSPECS_DIR "${CMAKE_CURRENT_BINARY_DIR}/DUMMY_MKSPECS") + +find_package(Qt4 4.8.1 REQUIRED QtCore QtGui QtScript QtOpenGL QtNetwork QtSql QtXml) + +set(DZSDK_QT_CORE_TARGET Qt4::QtCore) +set(DZSDK_QT_GUI_TARGET Qt4::QtGui) +set(DZSDK_QT_SCRIPT_TARGET Qt4::QtScript) +set(DZSDK_QT_OPENGL_TARGET Qt4::QtOpenGL) +set(DZSDK_QT_NETWORK_TARGET Qt4::QtNetwork) +set(DZSDK_QT_SQL_TARGET Qt4::QtSql) +set(DZSDK_QT_XML_TARGET Qt4::QtXml) + +############################ +# FBX SETTINGS +############################ +IF(NOT WIN32) + set(FBX_ARCH "x64") + SET(CMAKE_CXX_FLAGS "-m64 ${CMAKE_CXX_FLAGS}") + SET(CMAKE_C_FLAGS "-m64 ${CMAKE_C_FLAGS}") + SET(FBX_TMP_TARGET_LIBS ${FBX_TMP_TARGET_LIBS} dl pthread) + SET(CMAKE_CXX_FLAGS "-D_NDEBUG -Os ${CMAKE_CXX_FLAGS}") + SET(CMAKE_C_FLAGS "-D_NDEBUG -Os ${CMAKE_C_FLAGS}") + SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") + SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall") + + IF(APPLE) + set(FBX_LINKER_FLAGS "-lz -lxml2 -liconv") + IF(NOT FBX_CLANG) + SET(FBX_LINKER_FLAGS "-framework Carbon -framework SystemConfiguration ${FBX_LINKER_FLAGS}") + ELSE(NOT FBX_CLANG) + SET(FBX_LINKER_FLAGS "-framework CoreFoundation -framework SystemConfiguration ${FBX_LINKER_FLAGS}") + ENDIF(NOT FBX_CLANG) + SET(FBX_TMP_TARGET_LIBS ${FBX_TMP_TARGET_LIBS} iconv) + ENDIF() + +# SET(CMAKE_CXX_FLAGS "-std=c++11 -stdlib\=libstdc++ ${CMAKE_CXX_FLAGS}") + SET(CMAKE_CXX_FLAGS "-std=gnu++11 ${CMAKE_CXX_FLAGS}") + +ENDIF(NOT WIN32) + +#set(FBX_SDK_DIR "" CACHE PATH "Path to FBX SDK" ) +if(NOT FBX_SDK_DIR) + message(FATAL_ERROR "Missing path to FBX SDK folder") + return() +endif() + +set(FBX_SDK_INCLUDE "${FBX_SDK_DIR}/include" CACHE PATH "Path to FBX SDK Includes" ) +if(WIN32) + set(FBX_PLATFORM "vs2017/x64/release") + set(FBX_SDK_LIB "${FBX_SDK_DIR}/lib/${FBX_PLATFORM}/libfbxsdk-md.lib" CACHE FILEPATH "Path to FBX SDK static library (libfbx-md.lib)" ) + set(FBX_SDK_XMLLIB "${FBX_SDK_DIR}/lib/${FBX_PLATFORM}/libxml2-md.lib" CACHE FILEPATH "Path to FBX SDK XML library (libxml2-md.lib)" ) + set(FBX_IMPORT_LIBS + ${FBX_SDK_LIB} + ${FBX_SDK_XMLLIB} + ${FBX_LINKER_FLAGS}) +elseif(APPLE) +# set(FBX_PLATFORM "clang/libstdcpp/release") + set(FBX_PLATFORM "clang/release") + set(FBX_SDK_LIB "${FBX_SDK_DIR}/lib/${FBX_PLATFORM}/libfbxsdk.a" CACHE FILEPATH "Path to FBX SDK static library (libfbxsdk.a)" ) + set(FBX_IMPORT_LIBS + ${FBX_SDK_LIB} + ${FBX_LINKER_FLAGS}) +endif() + +############################ +# Opensubdiv SETTINGS +############################ +#set(OPENSUBDIV_DIR "" CACHE PATH "Path to Opensubdiv folder" ) +if(NOT OPENSUBDIV_DIR) + message(FATAL_ERROR "Missing path to Opensubdiv folder") + return() +endif() +set(OPENSUBDIV_INCLUDE "${OPENSUBDIV_DIR}" CACHE PATH "Path to Opensubdiv include folder (usually same as root folder)" ) +if(WIN32) + set(OPENSUBDIV_LIB "${OPENSUBDIV_DIR}/build/lib/Release/osdCPU.lib" CACHE FILEPATH "Path to Opensubdiv CPU static library (osdCPU.lib)" ) +elseif(APPLE) + set(OPENSUBDIV_LIB "${OPENSUBDIV_DIR}/build/lib/Release/libosdCPU.a" CACHE FILEPATH "Path to Opensubdiv CPU static library (libosdCPU.a)" ) +endif() + +############################ +# DzBridge SETTINGS +############################ +if (USE_DZBRIDGE_SUBMODULE) + add_subdirectory("dzbridge-common") + include_directories("dzbridge-common/include") +else(NOT USE_DZBRIDGE_SUBMODULE) + #set(DZBRIDGE_DIR "" CACHE PATH "Path to DzBridge folder" ) + if(NOT DZBRIDGE_DIR) + message(FATAL_ERROR "Missing path to DzBridge folder") + return() + endif() + set(DZBRIDGE_INCLUDE_DIR "${DZBRIDGE_DIR}/include" CACHE PATH "Path to Opensubdiv include folder (usually same as root folder)" ) + if(WIN32) + set(DZBRIDGE_LIB_SHARED "${DZBRIDGE_DIR}/out/lib/Release/dzbridge.lib" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge.lib)" ) + set(DZBRIDGE_LIB_DEBUG_SHARED "${DZBRIDGE_DIR}/out/lib/Debug/dzbridge.lib" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge.lib)" ) + + set(DZBRIDGE_LIB_STATIC "${DZBRIDGE_DIR}/out/lib/Release/dzbridge-static.lib" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge-static.lib)" ) + set(DZBRIDGE_LIB_DEBUG_STATIC "${DZBRIDGE_DIR}/out/lib/Debug/dzbridge-static.lib" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge-static.lib)" ) + elseif(APPLE) + set(DZBRIDGE_LIB_SHARED "${DZBRIDGE_DIR}/out/lib/Release/dzbridge.a" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge.a)" ) + set(DZBRIDGE_LIB_DEBUG_SHARED "${DZBRIDGE_DIR}/out/lib/Debug/dzbridge.a" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge.a)" ) + + set(DZBRIDGE_LIB_STATIC "${DZBRIDGE_DIR}/out/lib/Release/dzbridge-static.a" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge-static.a)" ) + set(DZBRIDGE_LIB_DEBUG_STATIC "${DZBRIDGE_DIR}/out/lib/Debug/dzbridge-static.a" CACHE FILEPATH "Path to Opensubdiv CPU static library (dzbridge-static.a)" ) + endif() + if(NOT USE_DZBRIDGE_STATIC) + set(DZBRIDGE_LIB "${DZBRIDGE_LIB_SHARED}" CACHE FILEPATH "") + set(DZBRIDGE_LIB_DEBUG "${DZBRIDGE_LIB_DEBUG_SHARED}" CACHE FILEPATH "") + set(DZBRIDGE_LIB_FLAGS "") + else() + set(DZBRIDGE_LIB "${DZBRIDGE_LIB_STATIC}" CACHE FILEPATH "") + set(DZBRIDGE_LIB_DEBUG "${DZBRIDGE_LIB_DEBUG_STATIC}" CACHE FILEPATH "") + set(DZBRIDGE_LIB_FLAGS "DZ_BRIDGE_STATIC") + endif() +endif(USE_DZBRIDGE_SUBMODULE) + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + +list(APPEND CMAKE_AUTOMOC_MOC_OPTIONS -i) + +add_subdirectory("Test/UnitTests") +add_subdirectory("DazStudioPlugin") diff --git a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/CustomImports.py b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/CustomImports.py index b387ca1..58baeb6 100644 --- a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/CustomImports.py +++ b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/CustomImports.py @@ -125,13 +125,15 @@ def genesis_import(self, file_path, dtu, sss_value, normal_value, bump_value): print("Material Conversion Done") c4d.EventAdd() - wgt.store_subdivision(dtu) - if wgt.check_level(): - auto_weight = c4d.gui.QuestionDialog( - "Subdivisions have been detected\nthis is currently not fully supported.\nWould you like to autoweight the mesh?" - ) - if auto_weight: - wgt.auto_calculate_weights(var.body) + ## DB 2022-June-03: subdivision correction is now done in Daz Studio plugin, + ## the following code block no longer needed. + # wgt.store_subdivision(dtu) + # if wgt.check_level(): + # auto_weight = c4d.gui.QuestionDialog( + # "Subdivisions have been detected\nthis is currently not fully supported.\nWould you like to autoweight the mesh?" + # ) + # if auto_weight: + # wgt.auto_calculate_weights(var.body) pose.store_pose(dtu) pose.store_offset(dtu) diff --git a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DDialogs.py b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DDialogs.py index 2d6b4fa..d472ada 100644 --- a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DDialogs.py +++ b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DDialogs.py @@ -170,6 +170,7 @@ def Command(self, id, msg): if id == self.BUTTON_SAVE: c4d.CallCommand(12255, 12255) # Save Project with Assets... + self.Close() if id == self.BUTTON_CANCEL: self.Close() diff --git a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DGuiImportDaz.py b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DGuiImportDaz.py index a9999ec..e0ed0c5 100644 --- a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DGuiImportDaz.py +++ b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/DtC4DGuiImportDaz.py @@ -131,7 +131,7 @@ def buttonBC(self, tooltipText="", presetLook=""): return bc def CreateLayout(self): - self.SetTitle("DazToC4D v1.3.0") + self.SetTitle("DazToC4D 2022.1") self.AddSeparatorH(c4d.BFV_SCALEFIT) # Separator H bc = c4d.BaseContainer() # Create a new container to store the button image diff --git a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/StandardMaterials.py b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/StandardMaterials.py index 49919a5..58bb621 100644 --- a/Cinema 4D/appdir_common/plugins/DazToC4D/lib/StandardMaterials.py +++ b/Cinema 4D/appdir_common/plugins/DazToC4D/lib/StandardMaterials.py @@ -46,7 +46,30 @@ def set_up_transmission(self, mat, prop): def set_up_diffuse(self, mat, prop): lib = texture_library + if self.is_diffuse(prop): + # DB 2022-June-03: New Standard Color Channel Assignment + # Adding the diffuse texture file here fixes errors in C4D r25 about + # "Unable to find..." diffuse texture during "Save Project with Assets" + # operations. + for prop_name in lib["color"]["Name"]: + if prop_name in prop.keys(): + if prop[prop_name]["Texture"] != "": + path = prop[prop_name]["Texture"] + hex_str = prop[prop_name]["Value"] + hex_str = self.check_value("hex", hex_str) + color = convert_color(hex_str) + vector = c4d.Vector(color[0], color[1], color[2]) + texture = StdMaterials.create_texture(mat, path) + mat[c4d.MATERIAL_USE_COLOR] = True + mat[c4d.MATERIAL_COLOR_SHADER] = texture + mat[c4d.MATERIAL_COLOR_COLOR] = vector + mat[c4d.MATERIAL_COLOR_TEXTUREMIXING] = c4d.MATERIAL_TEXTUREMIXING_MULTIPLY + + # Original Code: ?Adds IrayUber Diffuse Component as a Custom "Diffuse + # Layer" to the C4D Reflection Channel? I am uncertain about the + # full intent of this code block, leaving for now. + # -DB (2022-June-03) diffuse = mat.AddReflectionLayer() diffuse.SetName("Diffuse Layer") mat[ diff --git a/Daz Studio/appdir_common/scripts/support/DAZ/Daz to Cinema 4D.dsa b/Daz Studio/appdir_common/scripts/support/DAZ/Daz to Cinema 4D.dsa deleted file mode 100644 index 46529f4..0000000 --- a/Daz Studio/appdir_common/scripts/support/DAZ/Daz to Cinema 4D.dsa +++ /dev/null @@ -1,2588 +0,0 @@ -// DAZ Studio version 4.12.0.86 filetype DAZ Script - -(function(){ - var s_sBridge = "Cinema 4D" - var s_sDazBridgeName = String( "Daz To %1" ).arg( s_sBridge ) - var s_oFileInfo = new DzFileInfo( getScriptFileName() ); - var s_sScriptPath = s_oFileInfo.path(); - // To be able to use the IDE Input your absolute Path. - // s_sScriptPath = "D:/GitRepos/DazToC4D/Daz Studio/appdir_common/scripts/support/DAZ" - var s_sToolName = s_sDazBridgeName; - var s_sMorphDialog = String( "Dz%1MorphSelectionDialog" ).arg( s_sBridge ) - s_oFileInfo.deleteLater(); - - var s_aFigures = []; - var s_aEnvProp = []; - - var s_sFig = "FIG"; - var s_sEnv = "ENV"; - - var s_aToReparent = []; - - var s_oMeshTypes = { - "Figure" :3, - "Mesh" : 1, - "Other" : 0, - "Bone" : -1, - "NoFacets" : -2, - "Empty" : -3 - }; - - var s_oExportTypes = { - "Both" : 2, - "Figure" : 1, - "EnvProp" : 0, - "None" : -1 - }; - var s_nExportType = s_oExportTypes.None; - var s_aExportableProperties = []; - - - var s_sRootPath = ""; - var s_sPresetPath = ""; - var s_sConfigJSON = ""; - - var s_sFbxPath = ""; - var s_sMorphRules = ""; - var s_oMorphLinks = {}; - var s_aMorphNamesToExport = []; - var s_oSkeletonData = {}; - var s_oSkeletonTransforms = {} - var s_oLimitsData = {}; - var s_oHeadTailData = {}; - var s_oJointOrientation = {}; - var s_oPoseData = {}; - - var s_nLenName = 0; - var s_nMaxName = 19; - var s_sAlf = "1234567890abcdefghijklmnopqrstuvwxyz"; - - var s_vecDef = new DzVec3( 0, 0, 0 ); - var s_quatDef = new DzQuat( 0, 0, 0, 1, true ); - var s_mtxDef = new DzMatrix3( s_quatDef ); - - var s_aPoseData = []; - var s_oOrgName = {}; - - // Setting variables - var s_nSubDivLevel; - var s_bIncludeAnim; - var s_bIncludeMorphs; - var s_bCollectTextures; - - - -// --- START Sub Script ---- - /********************************************************************** - - The following is derived from a work published as part of the - Daz Script Documentation. This portion of the script, and/or any - portion thereof, may only be used in accordance with the - following license: - - Creative Commons Attribution 3.0 Unported (CC BY 3.0) - - http://creativecommons.org/licenses/by/3.0 - - **********************************************************************/ - // Source: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/remote_operation/sub_script/start - - // - Extracted functions - // - Returns Scripts Paramater - // - Adjusted to be used within bridge - /*********************************************************************/ - // Object? - function executeSubScript( sScript, aArgs ){ - - /*********************************************************************/ - // String : A function for retrieving a translation if one exists - function text( sText ) - { - // If the version of the application supports qsTr() - if( typeof( qsTr ) != "undefined" ){ - // Return the translated (if any) text - return qsTr( sText ); - } - - // Return the original text - return sText; - }; - - /*********************************************************************/ - // Declare working variables - var sTitle, sMessage; - - // Define common strings - var sButton = text( "&OK" ); - - // Define the base path of the script we'll call; without the file extension - var sBasePath = String( "%1/%2" ).arg( s_sScriptPath ).arg( sScript ); - - // Create a script object - var oScript = new DzScript(); - - // Attempt to find our script; doing it this way, we can debug with an - // ascii file and distribute a binary [encrypted] file with the same name... - // without having to update the contents of the script or manually handle - // the file extensions; requires 3.0.1.5 or newer - var sScriptPath = oScript.getScriptFile( sBasePath ); - - // If a script is found - if( !sScriptPath.isEmpty() ){ - // If the script loads - if( oScript.loadFromFile( sScriptPath ) ){ - // Execute the script; pass in an array of arguments; - // passing in arguments requires 2.2.2.17 or newer - oScript.execute( aArgs ); - return oScript.result(); - // If the script doesn't load - } else { - // Define text variables for the message - sTitle = text( "Read Error" ); - sMessage = text( "The '%1' file could not be loaded." ).arg( sScriptPath ); - // Inform the user - MessageBox.information( sMessage, sTitle, sButton ); - } - // If a script is not found - } else { - // Define text variables for the message - sTitle = text( "File Not Found" ); - sMessage = text( "A '%1.ds(a|b|e)' file could not be found." ).arg( sBasePath ); - // Inform the user - MessageBox.information( sMessage, sTitle, sButton ); - } - }; - -// --- END Sub Script ---- - -// --- START node_properties ---- - /********************************************************************** - - The following is derived from a work published as part of the - Daz Script Documentation. This portion of the script, and/or any - portion thereof, may only be used in accordance with the - following license: - - Creative Commons Attribution 3.0 Unported (CC BY 3.0) - - http://creativecommons.org/licenses/by/3.0 - - **********************************************************************/ - // Source: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/properties/node_properties/start - - // - Extraccted functions - - /*********************************************************************/ - // Array : A function for getting a list of the properties in a group - function getGroupProperties( oGroup, bTraverse, bRecurse ) - { - // Declare an array to hold properties - var aProperties = []; - - // If a group is not passed in - if( !oGroup ){ - // We are done, return an empty array - return aProperties; - } - - // Get the number of proeprties in the group - var nProperties = oGroup.getNumProperties(); - // Pre-size the properties array - aProperties = new Array( nProperties ); - // Iterate over the properties, setting each element in the array - for( var i = 0; i < nProperties; i += 1 ){ - // Assign the property to the position in the array - aProperties[ i ] = oGroup.getProperty( i ); - } - - // If we are recursing - if( bRecurse ){ - // Concatenate the properties array from child groups - aProperties = aProperties.concat( - getGroupProperties( oGroup.getFirstChild(), true, bRecurse ) ); - } - - // If we are traversing - if( bTraverse ){ - // Concatenate the properties array from sibling groups - aProperties = aProperties.concat( - getGroupProperties( oGroup.getNextSibling(), bTraverse, bRecurse ) ); - } - - // Return the array of properties - return aProperties; - }; - - /*********************************************************************/ - // Array : A function for getting the list properties for an element - function getElementProperties( oElement, bTraverse, bRecurse ) - { - // Get the property group tree for the element - var oPropertyGroupTree = oElement.getPropertyGroups(); - - // If the application version is 4.9.4.101 or newer and we want all properties - if( App.version64 >= 0x0004000900040065 && bTraverse && bRecurse ){ - // Return the properties for the element - return oPropertyGroupTree.getAllProperties(); - } - - // Get the first group in the tree - var oPropertyGroup = oPropertyGroupTree.getFirstChild(); - // Return the properties for the element - return getGroupProperties( oPropertyGroup, bTraverse, bRecurse ); - }; - -// --- END node_properties ---- - - -// --- START export_fbx_silent ---- - /********************************************************************** - - The following is derived from a work published as part of the - Daz Script Documentation. This portion of the script, and/or any - portion thereof, may only be used in accordance with the - following license: - - Creative Commons Attribution 3.0 Unported (CC BY 3.0) - - http://creativecommons.org/licenses/by/3.0 - - **********************************************************************/ - // Source: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/file_io/export_fbx_silent/start - - // - Minor changes for this specific use case - - // void : ... - function exportFBX( oNode, sName, nIdx, bAscii ) - { - // Get the export manager - var oExportMgr = App.getExportMgr(); - // Define the class name the for Autodesk Filmbox (*.fbx) exporter - var sClassName = "DzFbxExporter"; - // Find the exporter - var oExporter = oExportMgr.findExporterByClassName( sClassName ); - // If the exporter exists - if( oExporter ){ - // Create a settings object - var oSettings = new DzFileIOSettings(); - - // Define whether or not to show options - var bShowOptions = false; - - // Define whether or not to show options before prompting for a path; - // requires 4.9.3.22 or later - var bOptionsBeforeFile = (bShowOptions && App.version64 >= 0x0004000900030016); - - // Get the options for the exporter - if( !oExporter.getOptions( oSettings, bShowOptions && bOptionsBeforeFile, "" ) ){ - // We're done... - return; - } - - // Selected - oSettings.setBoolValue( "doSelected", false ); - // No Hidden - oSettings.setBoolValue( "doVisible", true ); - // Figures - oSettings.setBoolValue( "doFigures", true ); - - var bIsEnv = sName.startsWith( s_sEnv ); - // Props - oSettings.setBoolValue( "doProps", bIsEnv ); - // Lights - oSettings.setBoolValue( "doLights", bIsEnv ); - // Cameras - oSettings.setBoolValue( "doCameras", bIsEnv ); - - // Animations - oSettings.setBoolValue( "doAnims", s_bIncludeAnim ); - // Morphs - oSettings.setBoolValue( "doMorphs", true ); - - // Fps - oSettings.setBoolValue( "doFps", true ); - - // Morph Rules - // Format for rules is "Match1\nAction1\nMatch2\nAction2\nMatch3\nAction3", - // where Match# is a string to search for and Action# is one of Bake|Export|Ignore - // The names of the morphs are in the form: node_name.parameter_name - // The default action is to Bake - // So "FBMHeavy\nExport\nThin\nExport" would export all morphs that have FBMHeavy and all morphs that have Thin in the name - oSettings.setStringValue( "rules", s_sMorphRules ); - - // Format - // Format for format is "Year# -- Type", - // where Year# is one of 2006|2009|2010|2011|2012|2013|2014 and - // Type is one of Ascii|Binary - if( bAscii ){ - oSettings.setStringValue( "format", "FBX 2014 -- Ascii" ); - } else { - oSettings.setStringValue( "format", "FBX 2014 -- Binary" ); - } - - // Embed Textures - oSettings.setBoolValue( "doEmbed", false ); - // Collect Textures To Folder - oSettings.setBoolValue( "doCopyTextures", false ); - // Merge Diffuse and Opacity Textures - oSettings.setBoolValue( "doDiffuseOpacity", false ); - // Merge Clothing Into Figure Skeleton - oSettings.setBoolValue( "doMergeClothing", true ); - // Convert Clothing to Static Geometry - oSettings.setBoolValue( "doStaticClothing", false ); - // Allow Degraded Skinning - oSettings.setBoolValue( "degradedSkinning", false ); - // Allow Degraded Scaling - oSettings.setBoolValue( "degradedScaling", false ); - // SubD Information - oSettings.setBoolValue( "doSubD", false ); - // Collapse UV Tiles - //oSettings.setBoolValue( "doCollapseUVTiles", false ); - - oSettings.setBoolValue( "doLocks", false ); - oSettings.setBoolValue( "doLimits", false ); - oSettings.setBoolValue( "doBaseFigurePoseOnly", false ); - oSettings.setBoolValue( "doHelperScriptScripts", false ); - oSettings.setBoolValue( "doMentalRayMaterials", false ); - - // If the version is 4.9.3.22 or newer - if( App.version64 >= 0x0004000900030016 ){ - // Define whether or not to show the options after prompting for a file; - // prior to 4.9.3.22 this exporter ignored this option entirely, - // running silent was implied by virtue of being run via script - oSettings.setIntValue( "RunSilent", (bShowOptions && !bOptionsBeforeFile ? 0 : 1) ); - } - - // If we've got a node, construct the path using the - // exporter's last path, the node's name, and the - // exporter's extension... - // Otherwise, just use the exporter's last path - var sInitialPath = ( oNode ? - String( "%1/%2.%3" ) - .arg( oExportMgr.getExportPath() ) - .arg( oNode.name ) - .arg( oExporter.getExtension() ) : - oExportMgr.getExportPath() ); - - var sPath = s_sRootPath + sName + "/" + sName + nIdx + "/" - s_sFbxPath = sName + "/" + sName + nIdx + "/"; - if( bAscii ){ - sPath += "A_" + sName + ".fbx" - s_sFbxPath += "A_" + sName + ".fbx" - } else { - sPath += "B_" + sName + ".fbx" - s_sFbxPath += "B_" + sName + ".fbx" - } - - // If the user didn't cancel and the file doesn't already - // exist, or the user wants to overwrite it - if( sPath && MainWindow.checkExistingFile( sPath ) ){ - // Write the file using the options specified - oExporter.writeFile( sPath, oSettings ); - } - // Clean up; don't leak memory - oExporter.deleteLater(); - - // We didn't find an exporter with the class name we wanted - } else { - // Inform the user - MessageBox.critical( qsTr( "An exporter with the class name \"%1\" " + - "could not be found." ).arg( sClassName ), - s_sToolName, qsTr( "&OK" ) ); - } - }; - -// --- END export_fbx_silent ---- - - -// --- START export_obj_silent ---- - /********************************************************************** - - The following is derived from a work published as part of the - Daz Script Documentation. This portion of the script, and/or any - portion thereof, may only be used in accordance with the - following license: - - Creative Commons Attribution 3.0 Unported (CC BY 3.0) - - http://creativecommons.org/licenses/by/3.0 - - **********************************************************************/ - // Source: http://docs.daz3d.com/doku.php/public/software/dazstudio/4/referenceguide/scripting/api_reference/samples/file_io/export_obj_silent/start - - // - Minor changes for this specific use case - - // void : ... - function exportOBJ( oNode, sName, nIdx ) - { - // Get the export manager - var oExportMgr = App.getExportMgr(); - // Define the class name the for Wavefront Object (*.obj) exporter - var sClassName = "DzObjExporter"; - // Find the exporter - var oExporter = oExportMgr.findExporterByClassName( sClassName ); - // If the exporter exists - if( oExporter ){ - // Create a settings object - var oSettings = new DzFileIOSettings(); - - // Define whether or not to show options - var bShowOptions = false; - - // Define whether or not to show options before prompting for a path; - // requires 4.9.3.22 or later - var bOptionsBeforeFile = (bShowOptions && App.version64 >= 0x0004000900030016); - - // Get the options for the exporter - if( !oExporter.getOptions( oSettings, bShowOptions && bOptionsBeforeFile, "" ) ){ - // We're done... - return; - } - - // Set the scale to write the data - oSettings.setFloatValue( "Scale", 100.0 ); - // Set the lateral axis to X - oSettings.setStringValue( "LatAxis", "X" ); - // Set the vertical axis to Y - oSettings.setStringValue( "VertAxis", "Y" ); - // Set the depth axis to Z - oSettings.setStringValue( "DepthAxis", "Z" ); - // Do not invert the lateral axis - oSettings.setBoolValue( "InvertLat", false ); - // Do not invert the vertical axis - oSettings.setBoolValue( "InvertVert", false ); - // Do not invert the depth axis - oSettings.setBoolValue( "InvertDepth", false ); - // Do not ignore the geometry of invisible nodes - oSettings.setBoolValue( "IgnoreInvisible", true ); - // Do not weld seams between parent and child bones on legacy figures - deprecated - oSettings.setBoolValue( "WeldSeams", false ); - // Do not remove vertices that are floating, connected to nothing - i.e. LOD - oSettings.setBoolValue( "RemoveUnusedVerts", true ); - // Write vertex textures - UVs - oSettings.setBoolValue( "WriteVT", true ); - // Do not write vertex normals - oSettings.setBoolValue( "WriteVN", false ); - // Do not write object statements for each root node - i.e. figures, props - oSettings.setBoolValue( "WriteO", false ); - - // Write facet groups - oSettings.setBoolValue( "WriteG", false ); - // Write facet groups according to whatever the geometry already has - oSettings.setBoolValue( "GroupGeom", false ); - // Do not write facet groups according to the node it is associated with - oSettings.setBoolValue( "GroupNodes", false ); - // Do not write facet groups according to surface groups - oSettings.setBoolValue( "GroupSurfaces", false ); - // Do not write one facet group - oSettings.setBoolValue( "GroupSingle", false ); - - // Write surface groups - oSettings.setBoolValue( "WriteUsemtl", true ); - - // Do not write a material library - oSettings.setBoolValue( "WriteMtllib", true ); - - oSettings.setBoolValue( "OriginalMaps", true ); - // Do not collect texture maps - oSettings.setBoolValue( "CollectMaps", false ); - // Do not convert texture maps - oSettings.setBoolValue( "ConvertMaps", false ); - - // If the version is 4.5.0.114 or newer - if( App.version64 >= 0x0004000500000072 ){ - // Do not limit export to selection - oSettings.setBoolValue( "SelectedOnly", false ); - // Do not limit export to the selected roots - oSettings.setBoolValue( "SelectedRootsOnly", false ); - // Do not limit export to the primary selected root; - // this setting overrides SelectedRootsOnly - oSettings.setBoolValue( "PrimaryRootOnly", false ); - // Do not export items that are parented to the selection - oSettings.setBoolValue( "IncludeParented", false ); - // Do not triangulate n-gons - oSettings.setBoolValue( "TriangulateNgons", false ); - } - - // If the version is 4.9.3.22 or newer - if( App.version64 >= 0x0004000900030016 ){ - // Do not collapse UVs Tiles - oSettings.setBoolValue( "CollapseUVTiles", false ); - - // Show individual settings in the dialog - oSettings.setBoolValue( "ShowIndividualSettings", false ); - } - - // If the version is 4.10.0.73 or newer - if( App.version64 >= 0x0004000a00000049 ){ - // Set floating point precision; default is 8 - oSettings.setIntValue( "FloatPrecision", 6 ); - } - - // Define whether or not to show the options after prompting for a file - oSettings.setIntValue( "RunSilent", (bShowOptions && !bOptionsBeforeFile ? 0 : 1) ); - - // If we've got a node, construct the path using the - // exporter's last path, the node's name, and the - // exporter's extension... - // Otherwise, just use the exporter's last path - var sInitialPath = ( oNode ? - String( "%1/%2.%3" ) - .arg( oExportMgr.getExportPath() ) - .arg( oNode.name ) - .arg( oExporter.getExtension() ) : - oExportMgr.getExportPath() ); - - var sPath = s_sRootPath + sName + "/" + sName + nIdx + "/" + sName+ ".obj"; - - // If the user didn't cancel and the file doesn't already - // exist, or the user wants to overwrite it - if( sPath && MainWindow.checkExistingFile( sPath ) ){ - // Write the file using the options specified - oExporter.writeFile( sPath, oSettings ); - } - - // Clean up; don't leak memory - oExporter.deleteLater(); - // We didn't find an exporter with the class name we wanted - } else { - // Inform the user - MessageBox.critical( qsTr( "An exporter with the class name \"%1\" " + - "could not be found." ).arg( sClassName ), - s_sToolName, qsTr( "&OK" ) ); - } - }; - -// --- END export_obj_silent ---- - - /*********************************************************************/ - - // void : ... - function addBanner( wDlg, sImagePath ) - { - var imgImage = new Image( sImagePath ); - var pixImage = (new Pixmap()).fromImage( imgImage ); - - var wLabel = new DzLabel( wDlg ); - wLabel.pixmap = pixImage; - wDlg.addWidget( wLabel ); - }; - - /*********************************************************************/ - // Array : ... - // TODO : refactor - efficiency - function getBoneTransformValues( oNode ) - { - var aPosRotScale = [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ]; - - var aAxis = [ "X", "Y", "Z" ]; - var regxWhitespace = /\s+/g; - - var oProperty; - var oOwner; - var aNames; - var sAxis; - var sLabel; - var sName; - - var aProperties = getElementProperties( oNode, true, true ); - for( var i = 0; i < aProperties.length; i += 1 ){ - oProperty = aProperties[i]; - oOwner = oProperty.getOwner(); - if( !oOwner.inherits( "DzBone" ) ){ - continue; - } - - for( var j = 0; j < aAxis.length; j += 1 ){ - sAxis = aAxis[j]; - aNames = [ sAxis + "Translate", sAxis + "Rotate" ];//Skip sAxis + "Scale" - for( var k = 0; k < aNames.length; k += 1 ){ - sName = aNames[k]; - if( oProperty.name == sName ){ - if( !oProperty.isHidden() ){ - sLabel = oProperty.getLabel().toLowerCase().replace( regxWhitespace, "" ); - sName = sName.toLowerCase().replace( regxWhitespace, "" ); - if( !sName.startsWith( sLabel ) ){ - aPosRotScale[k*3+j] = 1; - } - } - } - } - } - } - - return aPosRotScale; - }; - - /*********************************************************************/ - // void : ... - function writeMemo( sFilename, sMemo ) - { - writeDataFile( [ sMemo ], sFilename ); - }; - - /*********************************************************************/ - // void : ... - function applyDefaultTransforms( oBaseNode ) - { - var oNode; - var aChildren = oBaseNode.getNodeChildren( true ); - for( var i = 0; i < aChildren.length; i += 1 ){ - oNode = aChildren[i]; - if( getObjectType( oNode ) == "BONE" ){ - oNode.setLocalPos( s_vecDef ); - oNode.setLocalRot( s_quatDef ); - oNode.setLocalScale( s_mtxDef ); - } - } - - oBaseNode.setLocalPos( s_vecDef ); - oBaseNode.setLocalRot( s_quatDef ); - oBaseNode.setLocalScale( s_mtxDef ); - }; - - /*********************************************************************/ - // Destructive Changes the names of the Assets in Daz - // void : ... - function updateName( oBaseNode, bIsFigure ) - { - s_aPoseData = []; - - var aTopNodes = oBaseNode.getNodeChildren( false ); - if( aTopNodes.length == 0 && !bIsFigure ){ - aTopNodes.push( oBaseNode ); - } - - var oTopNode; - - var aNodes = []; - - for( var i = 0; i < aTopNodes.length; i += 1 ){ - oTopNode = aTopNodes[i]; - if( bIsFigure && oTopNode.name != "hip" ){ - continue; - } - - if( i == 0 ){ - aNodes = aNodes.concat( oBaseNode, oTopNode, oTopNode.getNodeChildren( true ) ); - } else { - aNodes = aNodes.concat( oTopNode, oTopNode.getNodeChildren( true ) ); - } - } - - var nNodes = aNodes.length; - if( nNodes < 1 ){ - return; - } - - for( var i = 0; i < nNodes; i += 1 ){ - oNode = aNodes[i]; - sLabel =oNode.getLabel(); - sName = oNode.name; - if( sLabel in s_oOrgName ){ - oNode.setName(s_oOrgName[sLabel]) - } - else{ - s_oOrgName[sLabel] = sName - oNode.setName( sLabel ) - } - - }; - }; - - /*********************************************************************/ - // void : ... - function loadPoseData( oBaseNode, bIsFigure ) - { - s_aPoseData = []; - - var aTopNodes = oBaseNode.getNodeChildren( false ); - if( aTopNodes.length == 0 && !bIsFigure ){ - aTopNodes.push( oBaseNode ); - } - - var oTopNode; - - var aNodes = []; - - for( var i = 0; i < aTopNodes.length; i += 1 ){ - oTopNode = aTopNodes[i]; - if( bIsFigure && oTopNode.name != "hip" ){ - continue; - } - - if( i == 0 ){ - aNodes = aNodes.concat( oBaseNode, oTopNode, oTopNode.getNodeChildren( true ) ); - } else { - aNodes = aNodes.concat( oTopNode, oTopNode.getNodeChildren( true ) ); - } - } - - var nNodes = aNodes.length; - if( nNodes < 1 ){ - return; - } - - var oNode; - var sObjectType; - var vecPos; - var quatRot; - var mtxScale; - - for( var i = 0; i < nNodes; i += 1 ){ - oNode = aNodes[i]; - sObjectType = getObjectType( oNode ); - vecPos = oNode.getLocalPos(); - quatRot = oNode.getLocalRot(); - mtxScale = oNode.getLocalScale(); - oParent = oNode.getNodeParent(); - s_aPoseData.push( [ oNode.name, sObjectType, vecPos, quatRot, mtxScale ] ); - sLabel = oNode.getLabel(); - sName = oNode.name; - oName = s_oPoseData[sName] = {}; - oName["Name"] = sName; - oName["Label"] = sLabel; - oName["Object Type"] = sObjectType; - if(sObjectType == "MESH"){ - oName["Object"] = oNode.getObject().name; - } - else{ - oName["Object"] = "EMPTY" - }; - oName["Position"] = [ - vecPos.x, - vecPos.y, - vecPos.z - ]; - oName["Rotation"] = [ - oNode.getXRotControl().getLocalValue(), - oNode.getYRotControl().getLocalValue(), - oNode.getZRotControl().getLocalValue(), - ]; - oName["Scale"] = [ - mtxScale.m11, - mtxScale.m22, - mtxScale.m33 - ]; - } - - - }; - - /*********************************************************************/ - // void : ... - function restorePose( oBaseNode ) - { - var oTopNode; - var aNodes; - var oNode; - var aPose; - - var aTopNodes = oBaseNode.getNodeChildren( false ); - for( var i = 0; i < aTopNodes.length; i += 1 ){ - oTopNode = aTopNodes[i]; - if( oTopNode.name != "hip" ){ - continue; - } - - aNodes = oTopNode.getNodeChildren( true ); - aNodes.push( oTopNode ); - aNodes.unshift( oBaseNode ); - for( var j = 0; j < aNodes.length; j += 1 ){ - oNode = aNodes[j]; - if( getMeshType( oNode ) != s_oMeshTypes.Bone && j > 0 ){ - continue; - } - - for( var k = 0; k < s_aPoseData.length; k += 1 ){ - aPose = s_aPoseData[k]; - if( aPose[0] == oNode.name ){ - oNode.setLocalPos( aPose[2] ); - oNode.setLocalRot( aPose[3] ); - oNode.setLocalScale( aPose[4] ); - break; - } - } - } - } - }; - - /*********************************************************************/ - // void : ... - function changeLock ( oProperty, bLock ) { - if ( ! oProperty ) { - return; - } - oProperty.lock( bLock ); - } - - /*********************************************************************/ - // void : ... - function setLock( oBaseNode, bLock, bIsFigure ) - { - var aNodes = oBaseNode.getNodeChildren( true ); - if( !bIsFigure ){ - aNodes.push( oBaseNode ); - } - - var oNode; - var oTransform; - - for( var i = 0; i < aNodes.length; i += 1 ){ - oNode = aNodes[i]; - if( getObjectType( oNode ) == 'BONE' ){ - continue; - } - // Translations - oTransform = oNode.getXPosControl(); - changeLock( oTransform, bLock ); - oTransform = oNode.getYPosControl(); - changeLock( oTransform, bLock ); - oTransform = oNode.getZPosControl(); - changeLock( oTransform, bLock ); - - // Rotations - oTransform = oNode.getXRotControl(); - changeLock( oTransform, bLock ); - oTransform = oNode.getYRotControl(); - changeLock( oTransform, bLock ); - oTransform = oNode.getZRotControl(); - changeLock( oTransform, bLock ); - - // Scale - oTransform = oNode.getScaleControl(); - changeLock( oTransform, bLock ); - oTransform = oNode.getXScaleControl(); - changeLock( oTransform, bLock ); - curTransform = oNode.getYScaleControl(); - changeLock( oTransform, bLock ); - curTransform = oNode.getZScaleControl(); - changeLock( oTransform, bLock ); - } - }; - - /*********************************************************************/ - // String : ... - // TODO : rename - function getObjectType( oNode ) - { - if( oNode.inherits( "DzBone" ) ){ - return "BONE"; - } - - if( oNode.inherits( "DzLight" ) ){ - return "LIGHT"; - } - - if( oNode.inherits( "DzCamera" ) ){ - return "CAMERA"; - } - - var oObject = oNode.getObject(); - if( !oObject ){ - return "EMPTY"; - } - - var oShape = oObject.getCurrentShape(); - if( !oShape ){ - return "EMPTY"; - } - - var oMesh = oShape.getGeometry(); - if( !oMesh ){ - return "EMPTY"; - } - - return "MESH"; - }; - - /*********************************************************************/ - // void : ... - // Morph names that are too long will cause an error in Blender 2.79. - // Note: destructive - modifies the scene contents - function truncateSkeletonNames( oBaseNode ) - { - var oNode; - var sName; - var sTmp; - - var nCount = 0; - var aChildren = oBaseNode.getNodeChildren( true ); - for( var i = 0; i < aChildren.length; i += 1 ){ - oNode = aChildren[i]; - sName = oNode.name; - if( sName.length >= s_nMaxName ){ - sTmp = sName.substring( 0, s_nMaxName-2 ); - nCount = nCount % 36; - sTmp = sTmp + "_" + s_sAlf.substr( nCount, 1 ); - oNode.name = sTmp; - s_nLenName = s_nMaxName; - nCount = nCount + 1; - } else { - if( sName.length > s_nLenName ){ - s_nLenName = sName.length; - } - } - } - }; - - /*********************************************************************/ - // void : ... - // Delete previous export - // TODO : Create a Config folder to Hold the User's Daz Directories - function prepareForExport( nType ) - { - var oDir = new DzDir( "" ); - var sPath = oDir.homePath() + "/"; - - s_sRootPath = sPath; - - var aFiles; - var sDelPath; - var oDelDir = new DzDir( "" ); - - var aRoot = ["Documents","DAZ 3D", "Bridges", s_sDazBridgeName] - var aFolders = ["Exports", "Config", "Presets"]; - var aSubs = [s_sEnv, s_sFig] - - for( var i = 0; i < aRoot.length; i += 1 ){ - // Create Base Directory - - sPath = s_sRootPath + aRoot[i] + "/"; - s_sRootPath = sPath; - - if ( i == 4 ){ - s_sPresetPath = sPath; - } - if ( i == 5 ){ - sConfigPath = sPath; - } - // Create Directories - oDir.setPath( sPath ); - if( !oDir.exists() ){ - if( i == 3 ){ - MessageBox.information( qsTr( "You can manually locate your export files here:\n%1" ).arg( sPath ), - qsTr( "Your Export Path" ), - qsTr( "&Continue" ) ); - } - oDir.mkdir( sPath ); - }; - }; - for( var i = 0; i < aFolders.length; i += 1 ){ - // Create Folders - var sTempPath = sPath + aFolders[i] + "/"; - if( i == 0 ){ - s_sRootPath = sTempPath; - - } - if( i == 1 ){ - sConfigPath = sTempPath; - } - if( i == 2 ){ - s_sPresetPath = sTempPath; - } - // Create Directories - oDir.setPath( sTempPath ); - if( !oDir.exists() ){ - if( i == 0 ){ - MessageBox.information( qsTr( "You can manually locate your export files here:\n%1" ).arg( sTempPath ), - qsTr( "Your Export Path" ), - qsTr( "&Continue" ) ); - } - oDir.mkdir( sTempPath ); - } - } - - // Create Type Directories - if(nType == s_oExportTypes.EnvProp ){ - sPath = s_sRootPath + aSubs[0] + "/" - sType = aSubs[0] - }; - if(nType == s_oExportTypes.Figure ){ - sPath = s_sRootPath + aSubs[1] + "/" - sType = aSubs[1] - }; - - // Create Directories - oDir.setPath( sPath ); - if( !oDir.exists() ){ - oDir.mkdir( sPath ); - }; - - // Find Users Daz Content Paths - findUsersContent( sConfigPath ); - var aDirs = [] - // Delete Files - aFiles = oDir.getFilesFromDir( [], true ); - for( var j = 0; j < aFiles.length; j += 1 ){ - var oFile = new DzFile( aFiles[j] ); - var sFileName = oFile.fileName() - dir = oDir.relativeFilePath( aFiles[j] ).replace( sFileName, "" ) - aDirs.pushIfNotExists( dir ); - oDir.remove( aFiles[j] ); - - }; - - // Delete Dirs - for ( var j = 0; j < aDirs.length; j += 1 ){ - sDelPath = sPath + aDirs[j] - oDelDir.setPath( sDelPath ); - if( oDelDir.exists() ){ - sDirName = oDelDir.dirName() - oDelDir.rmdir( sDelPath ); - if( oDelDir.cdUp() && sDirName != sType ){ - oDelDir.rmdir() - } - } - }; - }; - /*********************************************************************/ - // void : ... - function findUsersContent( sConfigPath ){ - var oContentMgr = App.getContentMgr(); - var nContentDirCount = oContentMgr.getNumContentDirectories(); - var aContentDir = []; - for(var i=0; i < nContentDirCount; i++){ - var sContentDirPath = oContentMgr.getContentDirectoryPath( i ); - aContentDir.push( sContentDirPath ) - } - writeContentPath( sConfigPath, aContentDir ) - } - /*********************************************************************/ - // void : ... - function writeContentPath( sConfigPath, aContentDir ){ - var sDazPath = sConfigPath + "daz_paths.json"; - var oDazFile = new DzFile( sDazPath ); - var oDazJson = {}; - oDazJson["Content Directories"] = aContentDir; - oDazFile.open( DzFile.WriteOnly ); - oDazFile.write( JSON.stringify( oDazJson, null, 4 ) ); - oDazFile.close(); - - } - - /*********************************************************************/ - // void : ... - // TODO : refactor - efficiency - function makeEndDir( nIdx, sName ) - { - var oDir = new DzDir( "" ); - - var sPath = s_sRootPath; - - var aSubs = [ sName, sName + nIdx ]; - for( var i = 0; i < aSubs.length; i += 1 ){ - sPath += aSubs[i] + "/"; - oDir.setPath( sPath ); - if( !oDir.exists() ){ - oDir.mkdir( sPath ); - } - } - }; - /*********************************************************************/ - // Bool : ... - // Export Settings Dialog - function promptSettings( oNode ) - { - // Get the current style - var oStyle = App.getStyle(); - // Get the general margin - var nMargin = oStyle.pixelMetric( "DZ_GeneralMargin" ) - - var wSettingsDialog = new DzBasicDialog(); - wSettingsDialog.caption = s_sToolName + ": Settings"; - if( oNode ){ - wSettingsDialog.caption += " - " + oNode.getLabel(); - } - - var sKey = wSettingsDialog.caption.replace( / /g, "" ) + "Dlg"; - wSettingsDialog.getWidget().objectName = sKey; - - - // SubDivision level radio button group - var wSubDivGroup = new DzVButtonGroup( wSettingsDialog ); - wSubDivGroup.columns = 1; - var wSubDivLbl = new DzLabel( wSubDivGroup ); - wSubDivLbl.text = "SubDivision Level" - var wRadioBtn; - for( var i = 0; i < 3; i += 1 ){ - wRadioBtn = new DzRadioButton( wSubDivGroup ); - wRadioBtn.text = "Level " + i; - } - wSubDivGroup.selected = 0; - wSettingsDialog.addWidget( wSubDivGroup ); - - // Create Morph Layout - var lytMorphs = new DzHButtonGroup( wSettingsDialog ); - lytMorphs.margin = nMargin; - lytMorphs.spacing = nMargin; - wSettingsDialog.addWidget( lytMorphs ); - - // Checkbox to include morph data - var wIncludeMorphsCbx = new DzCheckBox( lytMorphs ); - wIncludeMorphsCbx.text = "Include Morphs"; - wIncludeMorphsCbx.checked = false; - - // Button to choose morph data - var wChooseMorphsBut = new DzPushButton( lytMorphs ); - wChooseMorphsBut.text = "Choose Morphs"; - - // Checkbox to collect textures at export - var wCollectTexturesCbx = new DzCheckBox( wSettingsDialog ); - wCollectTexturesCbx.text = "Collect Textures"; - wCollectTexturesCbx.checked = false; - wSettingsDialog.addWidget( wCollectTexturesCbx ); - - // Checkbox to include animation data - var wIncludeAnimationsCbx = new DzCheckBox( wSettingsDialog ); - wIncludeAnimationsCbx.text = "Include animation data"; - wIncludeAnimationsCbx.checked = false; - wSettingsDialog.addWidget( wIncludeAnimationsCbx ); - - // Create Connections - wChooseMorphsBut.released.connect( oNode, executeMorphDialog ); - - // When user Cancels the dialog - if( !wSettingsDialog.exec() ){ - return false; - } - - // Set settings variables from the Dialog - s_nSubDivLevel = wSubDivGroup.selected; - s_bIncludeAnim = wIncludeAnimationsCbx.checked; - s_bIncludeMorphs = wIncludeMorphsCbx.checked; - s_bCollectTextures = wCollectTexturesCbx.checked; - - // When user Accepts the dialog - return true; - }; - - /*********************************************************************/ - // Bool : Executes Morph Dialog - function executeMorphDialog() - { - s_aExportableProperties = executeSubScript( - s_sMorphDialog, - [this, s_sPresetPath, s_sDazBridgeName] - ); - }; - - /*********************************************************************/ - // void : ... - // No eyelashes on .OBJ - function setEyelashVisibility( oBaseNode, bOnOff ) - { - var oNode; - - var aHide = [ "Eyelashes", "Eye_1", "Eye_2", "_Shell" ]; - var aChildren = oBaseNode.getNodeChildren( true ); - for( var i = 0; i < aChildren.length; i += 1 ){ - oNode = aChildren[i]; - if( oNode.getNodeParent() == oBaseNode ){ - for( var j = 0; j < aHide.length; j += 1 ){ - if( oNode.name.indexOf( aHide[j] ) > 0 ){ - oNode.setVisible( bOnOff ); - } - } - } - } - }; - - /*********************************************************************/ - // string : ... - function checkChildType( oChildNode ) - { - var oAssetMgr = App.getAssetMgr(); - var sContentType = oAssetMgr.getTypeForNode( oChildNode ); - return sContentType - }; - - /*********************************************************************/ - // TODO: Add a UI to allow the user to choose how they wish to export every asset - // void : Check the node and what type of export it is. - function findRootNodes( oNode ) - { - var oParent; - var oOrgParent; - var aChildFigures = []; - var sClassName = oNode.className(); - var oAssetMgr = App.getAssetMgr(); - var sContentType = oAssetMgr.getTypeForNode( oNode ); - if( sClassName == "DzFigure" ){ - if( sContentType == "Actor/Character" - || sContentType == "Actor" ){ - s_aFigures.push( oNode ); - return - } - else{ - s_aEnvProp.push( oNode ); - return - } - } - if( sClassName == "DzGroupNode" ){ - aChildren = oNode.getNodeChildren( true ); - for( var j = 0; j < aChildren.length; j += 1 ){ - oChildNode = aChildren[j] - sContentType = checkChildType( oChildNode ); - if( sContentType == "Actor/Character" - || sContentType == "Actor"){ - aChildFigures.push( oChildNode ) - } - } - if( aChildFigures.length > 0 ){ - for( var i = 0; i < aChildFigures.length; i++ ){ - var oChild = aChildFigures[i] - s_aFigures.push( oChild ) - oParent = oChild.getNodeParent(); - if( oParent == oNode ){ - oNode.removeNodeChild( oChild, inPlace = true ); - } - else{ - oOrgParent = oParent - while( oParent != null ){ - oParent.removeNodeChild( oChild, inPlace = true ); - oParent = oChild.getNodeParent(); - } - oParent = oOrgParent; - } - var aParentChain = new Array ( oParent, oChild ); - s_aToReparent.push( aParentChain ); - } - return - } - else{ - s_aEnvProp.push( oNode ); - return - } - - } - else{ - s_aEnvProp.push( oNode ); - return - } - }; - - /*********************************************************************/ - // void : ... - // TODO : refactor - use oNode.assetUri instead of oNode.name - function buildRootLists() - { - var oNode; - var aChildren; - - var aNodes = Scene.getNodeList(); - for( var i = 0; i < aNodes.length; i += 1 ){ - oNode = aNodes[i]; - if( !oNode.isVisible() ){ - if( oNode.isRootNode() ){ - oNode.setVisible( true ); - aChildren = oNode.getNodeChildren( true ); - for( var j = 0; j < aChildren.length; j += 1 ){ - aChildren[j].setVisible( true ); - } - } - continue; - } - - if( oNode.isRootNode() && oNode.isVisible() ){ - findRootNodes( oNode ) - } - } - }; - /*********************************************************************/ - // void : ... - function reparentFigure( oFigure ) - { - var aPair - for( var i = 0; i < s_aToReparent.length; i++ ){ - aPair = s_aToReparent[i] - if( aPair[1] == oFigure ){ - aPair[0].addNodeChild( oFigure, inPlace = true) - return - } - } - } - - /*********************************************************************/ - // Number : ... - function promptExportType() - { - var wDlg = new DzBasicDialog(); - wDlg.caption = "Select Export Type"; - - var wLyt = new DzVBoxLayout( wDlg ); - wLyt.autoAdd = true; - - var wOptBG = new DzVButtonGroup( wDlg ); - wOptBG.columns = 1; - - var wRadioBtn; - var aOptions = [ "Environment/Props", "Genesis8/3", "Both" ]; - for( var i = 0; i < aOptions.length; i += 1 ){ - wRadioBtn = new DzRadioButton( wOptBG ); - wRadioBtn.text = aOptions[i]; - } - wOptBG.selected = s_oExportTypes.Figure; - - wDlg.addWidget( wOptBG ); - - var oWidget = wDlg.getWidget(); - var sizeHint = oWidget.minimumSizeHint; - var nHeight = sizeHint.height; - var nWidth = sizeHint.width < 200 ? 200 : sizeHint.width; - wDlg.setFixedSize( nWidth, nHeight ); - - if( !wDlg.exec() ){ - return s_oExportTypes.None; - } - - return wOptBG.selected; - }; - - /*********************************************************************/ - // Boolean : ... - function isGenital( oNode ) - { - var aKeys = [ "genital", "malegen_" ]; - if( getMeshType( oNode ) <= s_oMeshTypes.Other ){ - return false; - } - - var sName = oNode.name.toLowerCase(); - for( var i = 0; i < aKeys.length; i += 1 ){ - if( sName.length == 2 && sName == aKeys[i] - || sName.length > 2 && sName.indexOf( aKeys[i] ) >= 0 ){ - if( oNode.findNodeChild( "hip", false ) ){ - return true; - } - } - } - - return false; - }; - - /*********************************************************************/ - // void : ... - // Mesh consisting of only edges and points cannot be FBX transferred. - // Even if it is invisible, it will be transferred, so there is no choice but to delete it. - // Note: destructive - modifies the scene contents - function removeIncompatibleNodes( oBaseNode ) - { - var oNode; - - var aNodes = oBaseNode.getNodeChildren( true ); - var aDelNodes = new Array( aNodes.length ); - - for( var i = 0; i < aNodes.length; i += 1 ){ - oNode = aNodes[i]; - if( oNode.isRootNode() ){ - continue; - } - - if( getMeshType( oNode ) == s_oMeshTypes.NoFacets ){ - aDelNodes[i] = oNode; - } - } - - aDelNodes = aDelNodes.filter( Boolean ); - - for( var i = 0; i < aDelNodes.length; i += 1 ){ - oNode = aDelNodes[i]; - oBaseNode.removeNodeChild( oNode, true ); - oNode.setVisible( false ); - if( oNode.getLabel().endsWith( "dForce" ) ){ - Scene.removeNode( oNode ); - } - } - }; - - /*********************************************************************/ - // Number : ... - function getMeshType( oNode ) - { - if( !oNode ){ - return s_oMeshTypes.Other; //0 - } - - if( oNode.inherits( "DzBone" ) ){ - return s_oMeshTypes.Bone; //-1 - } - - var oObject = oNode.getObject(); - if( !oObject ){ - return s_oMeshTypes.Empty; //-3 - } - - var oShape = oObject.getCurrentShape(); - if( !oShape ){ - return s_oMeshTypes.Other; //0 - } - - var oMesh = oShape.getGeometry(); - if( !oMesh ){ - return s_oMeshTypes.Other; //0 - } - - var nFacets = oMesh.getNumFacets(); - if( nFacets < 1 && oMesh.name.toLowerCase().indexOf( "eyebrow" ) < 0 ){ - return s_oMeshTypes.NoFacets; //-2 - } - - if( nFacets > 14000 ){ - return s_oMeshTypes.Figure; //3 - } - - if( oNode.isRootNode() ){ - return s_oMeshTypes.Other; //0 - } - - return s_oMeshTypes.Mesh; //1 - }; - - /*********************************************************************/ - // void : ... - // TODO : return success, error code, and/or message - function writeDataFile( aData, sFilename ) - { - var oFile = new DzFile( sFilename ); - if( !oFile.open( DzFile.WriteOnly ) ){ - print( String( "Unable to open \"%1\" for writing." ).arg( sFilename ) ); - - return; - } - if (aData.constructor === Array){ - for( var i = 0; i < aData.length; i += 1 ){ - oFile.writeLine( aData[i] ); - } - } - else{ - oFile.write( aData ) - } - - - oFile.close(); - }; - - /*********************************************************************/ - // void : ... - // The mesh attached to the bone moves directly under the figure - // Note: destructive - modifies the scene contents - function flattenObjectHierarchy( oBaseNode ) - { - var oChildLvl1; - var vecChildLvl1Pos; - var quatChildLvl1Rot; - - var aChildrenLvl2; - var oChildLvl2; - var vecChildLvl2Pos; - var quatChildLvl2Rot; - - var aChildrenLvl1 = oBaseNode.getNodeChildren( true ); - for( var i = 0; i < aChildrenLvl1.length; i += 1 ){ - oChildLvl1 = aChildrenLvl1[i]; - if( getMeshType( oChildLvl1 ) != s_oMeshTypes.Empty ){ - continue; - } - - vecChildLvl1Pos = oChildLvl1.getLocalPos(); - quatChildLvl1Rot = oChildLvl1.getLocalRot(); - - aChildrenLvl2 = oChildLvl1.getNodeChildren( true ); - for( var j = 0; j < aChildrenLvl2.length; j += 1 ){ - oChildLvl2 = aChildrenLvl2[j]; - - vecChildLvl2Pos = oChildLvl2.getLocalPos(); - quatChildLvl2Rot = oChildLvl2.getLocalRot(); - - vecChildLvl2Pos.x += vecChildLvl1Pos.x; - vecChildLvl2Pos.y += vecChildLvl1Pos.y; - vecChildLvl2Pos.z += vecChildLvl1Pos.z; - - quatChildLvl2Rot.x += quatChildLvl1Rot.x; - quatChildLvl2Rot.y += quatChildLvl1Rot.y; - quatChildLvl2Rot.z += quatChildLvl1Rot.z; - - oChildLvl2.setLocalPos( vecChildLvl2Pos ); - oChildLvl2.setLocalRot( quatChildLvl2Rot ); - - oBaseNode.addNodeChild( oChildLvl2 ); - } - } - }; - - /*********************************************************************/ - // Array : ... - function getParentingData( oParentNode, oBaseNode ) - { - var aData = []; - - var oNode; - var sName; - - var aNodes = oBaseNode.getNodeChildren( true ); - aNodes.push( oBaseNode ); - for( var i = 0; i < aNodes.length; i += 1 ){ - oNode = aNodes[i]; - if( getMeshType( oNode ) <= s_oMeshTypes.Other ){ - continue; - } - - sName = oNode.name; - for( var j = 1; j <= 10; j += 1 ){ - if( !oNode.getLabel().endsWith( " (" + j + ")" ) ){ - continue; - } - - sName += "_dup_" + j; - } - - aData.push( oParentNode.name + "," + sName ); - } - - return aData; - }; - - /*********************************************************************/ - // void : ... - function writeParentingData( oBaseNode, sFilename ) - { - var aData = []; - - var oChildLvl1; - - var aChildrenLvl2; - var oChildLvl2; - - var aChildrenLvl3; - var oChildLvl3; - - var nMeshType; - - var aChildrenLvl1 = oBaseNode.getNodeChildren( true ); - for( var i = 0; i < aChildrenLvl1.length; i += 1 ){ - oChildLvl1 = aChildrenLvl1[i]; - - aChildrenLvl2 = oChildLvl1.getNodeChildren( false ); - for( var j = 0; j < aChildrenLvl2.length; j += 1 ){ - oChildLvl2 = aChildrenLvl2[j]; - - nMeshType = getMeshType( oChildLvl2 ); - //It's mesh(child) - if( nMeshType > s_oMeshTypes.Other ){ - //Parent is bone - if( getMeshType( oChildLvl1 ) == s_oMeshTypes.Bone ){ - aData = aData.concat( getParentingData( oChildLvl1, oChildLvl2 ) ); - } - //It's Empty(Child) - } else if( nMeshType == s_oMeshTypes.Empty ){ - aChildrenLvl3 = oChildLvl2.getNodeChildren( false ); - for( var k = 0; k < aChildrenLvl3.length; k += 1 ){ - oChildLvl3 = aChildrenLvl3[k]; - //Grandchild is mesh. - //child's parent, parent child (sibling?) is bone - if( getMeshType( oChildLvl3 ) > s_oMeshTypes.Other ){ - if( getMeshType( oChildLvl1.getNodeParent() ) == s_oMeshTypes.Bone ){ - aData = aData.concat( getParentingData( oChildLvl1, oChildLvl3 ) ); - } - } - } - } - } - } - - if( aData.length > 0 ){ - writeDataFile( aData, sFilename ); - } - }; - - /*********************************************************************/ - // void : ... - // TODO : remove - not used - // Note: destructive - modifies the scene contents - function lockNodeTransforms( oNode ) - { - oNode.getToolXRotControl().lock( true ); - oNode.getToolYRotControl().lock( true ); - oNode.getToolZRotControl().lock( true ); - oNode.getOrientXControl().lock( true ); - oNode.getOrientYControl().lock( true ); - oNode.getOrientZControl().lock( true ); - }; - - /*********************************************************************/ - // String : ... - // TODO : remove - not used - function getTransformAsCSV( oNode, vecPos, mtxScale ) - { - var sResult = vecPos.x + "," + vecPos.y + "," + vecPos.z + ","; - - sResult += oNode.getXRotControl().getLocalValue() + ","; - sResult += oNode.getYRotControl().getLocalValue() + ","; - sResult += oNode.getZRotControl().getLocalValue() + ","; - - sResult += mtxScale.m11 + "," + mtxScale.m22 + "," + mtxScale.m33; - - return sResult; - }; - - /*********************************************************************/ - // void : ... - // Apply subdivision levels to figures and genitals. - function setSubDivLevelAll( oBaseNode ) - { - var bIsBody; - var bIsGen; - var nLev; - var oNode; - - var aNodes = Scene.getNodeList(); - for( var i = 0; i < aNodes.length; i += 1 ){ - oNode = aNodes[i]; - bIsBody = oNode == oBaseNode; - bIsGen = !bIsBody && oNode.getNodeParent() == oBaseNode && isGenital( oNode ); - nLev = 0; - if( bIsBody || bIsGen ){ - nLev = s_nSubDivLevel; - } - - setSubDivLevel( oNode, nLev ); - } - }; - - /*********************************************************************/ - // void : ... - function setSubDivLevel( oNode, nLevel ) - { - var aProps = [ "lodlevel", "SubDIALevel" ]; - var oObject = oNode.getObject(); - if( !oObject ){ - return; - } - - var oShape = oObject.getCurrentShape(); - if( !oShape ){ - return; - } - - var oProp; - for( var i = 0; i < aProps.length; i += 1 ){ - oProp = oShape.findProperty( aProps[i] ); - if( oProp ){ - if( oProp.isLocked() ){ - oProp.lock( false ); - } - - if( i == 0 && nLevel == 0 ){ - oProp.setValue( "Basic" ); - } else { - oProp.setValue( nLevel ); - } - - if( nLevel > 0 ){ - oProp.lock( true ); - } - } - } - }; - - /*********************************************************************/ - // void : ... - function setHideRoot( bIsFigure, bYesNo ) - { - if( bIsFigure ){ - for( var i = 0; i < s_aFigures.length; i += 1 ){ - setVisible( s_aFigures[i], bYesNo ); - } - } else { - for( var i = 0; i < s_aEnvProp.length; i += 1 ){ - setVisible( s_aEnvProp[i], bYesNo ); - } - } - }; - - /*********************************************************************/ - // void : ... - function setVisible( oBaseNode, bYesNo ) - { - var aChildren = oBaseNode.getNodeChildren( true ); - for( var i = 0; i < aChildren.length; i += 1 ){ - aChildren[i].setVisible( bYesNo ); - } - - oBaseNode.setVisible( bYesNo ); - }; - - /*********************************************************************/ - // Number : Get the sign of the input number - function getSign( nInput ) - { - if( nInput >= 0 ){ - return 1; - } else{ - return -1; - } - } - - /*********************************************************************/ - // Number : Get the direction of the bone's look at axis. 1 or -1 - function getLookAtDirection( oNode ) - { - var vecLookAtAxis = oNode.getEndPoint().subtract( oNode.getOrigin() ); - - var nSign = 1; - if( oNode.getRotationOrder().firstAxis == 0 ){ - nSign = getSign( vecLookAtAxis.x ); - } else if( oNode.getRotationOrder().firstAxis == 1 ){ - nSign = getSign( vecLookAtAxis.y ); - } else if( oNode.getRotationOrder().firstAxis == 2 ){ - nSign = getSign( vecLookAtAxis.z ); - } - - return nSign; - }; - - /*********************************************************************/ - // DzVec3 : Get the second axis of the node - function getNodeSecondAxis( oNode ) - { - var vecSecondAxis = new DzVec3( 0, 0, 0 ); - var nSign = getLookAtDirection( oNode ); - - if( oNode.getRotationOrder().secondAxis == 0 ){ - vecSecondAxis.x = nSign; - } else if( oNode.getRotationOrder().secondAxis == 1 ){ - vecSecondAxis.y = nSign; - } else if( oNode.getRotationOrder().secondAxis == 2 ){ - vecSecondAxis.z = nSign; - } - - var quatOrientation = oNode.getOrientation(); - vecSecondAxis = quatOrientation.multVec( vecSecondAxis ); - - return vecSecondAxis; - }; - - /*********************************************************************/ - // DzVec3 : Get the primary axis of the node - function getNodePrimaryAxis( oNode, nBoneLength ) - { - var vecFirstAxis = new DzVec3( 0, 0, 0 ); - var nSign = getLookAtDirection( oNode ); - var nNodeScale = oNode.getScaleControl().getValue(); - - if( oNode.getRotationOrder().firstAxis == 0 ){ - nXScale = oNode.getXScaleControl().getValue(); - vecFirstAxis.x = nBoneLength * nSign * nXScale * nNodeScale; - } else if( oNode.getRotationOrder().firstAxis == 1 ){ - nYScale = oNode.getYScaleControl().getValue(); - vecFirstAxis.y = nBoneLength * nSign * nYScale * nNodeScale; - } else if( oNode.getRotationOrder().firstAxis == 2 ){ - nZScale = oNode.getZScaleControl().getValue(); - vecFirstAxis.z = nBoneLength * nSign * nZScale * nNodeScale; - } - - var quatOrientation = oNode.getOrientation(); - vecFirstAxis = quatOrientation.multVec( vecFirstAxis ); - - return vecFirstAxis; - }; - /*********************************************************************/ - // DzVec3 : Checks if there is an offset for Parent bone - // TODO: Check if any other bones are changed with FBMs - function getBoneOffset( oNode ) - { - var vecOffset = new DzVec3( 0, 0, 0) - for( var i = 0; i < oNode.getNumProperties(); i++ ){ - var oProperty = oNode.getProperty( i ); - var sPropName = oProperty.getName(); - // Currently only checking YTranslate - if( sPropName == "YTranslate" ){ - var nControllerCount = oProperty.getNumControllers(); - for( var j = 0; j < nControllerCount; j += 1 ){ - var oErcLink = new DzERCLink(); - oErcLink = oProperty.getController( j ); - var oControllerProp = oErcLink.getProperty(); - sControllerName = getPropertyName(oControllerProp); - if( oControllerProp.getDoubleValue() != 0 ){ - vecOffset.y += oErcLink.scalar * oControllerProp.getDoubleValue(); - }; - - }; - }; - }; - return vecOffset - }; - - /*********************************************************************/ - // Float : Get length of the bone - function getBoneNodeLength( oNode ) - { - var vecAlongBone = oNode.getEndPoint().subtract( oNode.getOrigin() ); - return vecAlongBone.length(); - } - - /*********************************************************************/ - // Void : load bone's limits along with rotation orders - function loadFigureBoneData( oBaseNode ) - { - if( !oBaseNode.inherits("DzFigure") ){ - return; - } - - var oSkeleton = oBaseNode.getSkeleton(); - var aNodes = oSkeleton.getAllBones(); - var numFollowers = oSkeleton.getNumFollowSkeletons(); - var oFollowSkeleton; - var aFollowNodes; - var oFollowNode; - var bIsNewNode; - - // Collect followers' bones that does not exist in the main skeleton - for( var i = 0; i < numFollowers; i += 1 ){ - oFollowSkeleton = oSkeleton.getFollowSkeleton( i ); - aFollowNodes = oFollowSkeleton.getAllBones(); - for( var j = 0; j < aFollowNodes.length; j += 1 ){ - oFollowNode = aFollowNodes[j]; - bIsNewNode = false; - for( var k = 0; k < aNodes.length; k += 1 ){ - if( oFollowNode.name == aNodes[k].name ){ - bIsNewNode = true; - break; - } - } - - if( bIsNewNode == false ){ - aNodes = aNodes.concat( aFollowNodes[j] ); - } - } - } - - var nNodes = aNodes.length; - if( nNodes == 0 ){ - return; - } - - var oNode; - var sRotOrder; - var nXRotMin; - var nXRotMax; - var nYRotMin; - var nYRotMax; - var nZRotMin; - var nZRotMax; - var nXOrientation; - var nYOrientation; - var nZOrientation; - var vecOffset; - - // To account for the scale on the skeleton due to morphs - var nSkeletonScale = oBaseNode.getScaleControl().getValue(); - s_oSkeletonData["skeletonScale"] = ["skeletonScale", nSkeletonScale]; - // To account for offset on the hip bone. - vecOffset = getBoneOffset(aNodes[0]) - s_oSkeletonData["offset"] = ["offset", vecOffset.y]; - - oBaseNode.update(); - oBaseNode.finalize(); - var oFigure = new DzFigure(); - var oFigure = oBaseNode.getSkeleton(); - var oSkinBinding = oFigure.getSkinBinding(); - - for( var i = 0; i < nNodes; i += 1 ){ - oNode = aNodes[i]; - - sRotOrder = oNode.getRotationOrder().toString(); - nXRotMin = oNode.getXRotControl().getMin(); - nXRotMax = oNode.getXRotControl().getMax(); - nYRotMin = oNode.getYRotControl().getMin(); - nYRotMax = oNode.getYRotControl().getMax(); - nZRotMin = oNode.getZRotControl().getMin(); - nZRotMax = oNode.getZRotControl().getMax(); - nXOrientation = oNode.getOrientXControl().getValue(); - nYOrientation = oNode.getOrientYControl().getValue(); - nZOrientation = oNode.getOrientZControl().getValue(); - quatOrientation = oNode.getOrientation(); - - s_oLimitsData[oNode.getName()] = [ - oNode.getName(), - sRotOrder, - nXRotMin, nXRotMax, - nYRotMin, nYRotMax, - nZRotMin, nZRotMax - ]; - - nBoneLength = getBoneNodeLength( oNode ); - vecPrimaryAxis = getNodePrimaryAxis( oNode, nBoneLength ); - - vecHead = oNode.getOrigin( false ); - oBoneBinding = oSkinBinding.findBoneBinding( oNode ); - if( oBoneBinding ){ - vecHead = oBoneBinding.getScaledOrigin(); - } - - vecTail = vecHead.add( vecPrimaryAxis ); - vecSecondAxis = getNodeSecondAxis( oNode ); - - s_oHeadTailData[oNode.getName()] = [ - ( vecHead.x + vecOffset.x ) * nSkeletonScale, - ( vecHead.y + vecOffset.y ) * nSkeletonScale, - ( vecHead.z + vecOffset.z ) * nSkeletonScale, - ( vecTail.x + vecOffset.x ) * nSkeletonScale, - ( vecTail.y + vecOffset.y ) * nSkeletonScale, - ( vecTail.z + vecOffset.z ) * nSkeletonScale, - vecSecondAxis.x, - vecSecondAxis.y, - vecSecondAxis.z - ] - .concat( getBoneTransformValues( oNode ) ); - - s_oJointOrientation[oNode.getName()] = [ - sRotOrder, - nXOrientation, - nYOrientation, - nZOrientation, - quatOrientation.w, - quatOrientation.x, - quatOrientation.y, - quatOrientation.z - ] - - } - }; - - /*********************************************************************/ - // void : ... - // Note: Configure DTU File - // TO DO: Grab Subdivision info and Morphs Exporting - function writeConfiguration( oNode, sFilename, sDir ) - { - var sDtufilename = sFilename + ".dtu"; - var oDtufile = new DzFile( sDtufilename ); - var oDtuJson = {}; - var aChildren = oNode.getNodeChildren( true ); - var nChildren = aChildren.length; - var oAssetMgr = App.getAssetMgr(); - var sContentType = oAssetMgr.getTypeForNode( oNode ); - - oDtuJson["Asset Name"] = oNode.getLabel(); - oDtuJson["Import Name"] = oNode.getName(); - oDtuJson["Asset Type"] = sContentType; - oDtuJson["FBX File"] = s_sFbxPath; - oDtuJson["Materials"] = []; - oDtuJson["MorphLinks"] = s_oMorphLinks; - oDtuJson["MorphNames"] = s_aMorphNamesToExport; - oDtuJson["SkeletonData"] = s_oSkeletonData; - oDtuJson["HeadTailData"] = s_oHeadTailData; - oDtuJson["JointOrientation"] = s_oJointOrientation; - oDtuJson["LimitData"] = s_oLimitsData; - oDtuJson["PoseData"] = s_oPoseData; - oDtuJson["Subdivision"] = s_nSubDivLevel; - - aFigureMats = writeMaterials( oNode, sDir ); - oDtuJson["Materials"].push( aFigureMats ); - if (nChildren > 0){ - for ( var i = 0; i < nChildren; i++ ){ - var oChild = aChildren[ i ]; - aChildMats = writeMaterials( oChild, sDir ); - if ( aChildMats != false ){ - oDtuJson["Materials"].push( aChildMats ); - } - } - }; - - function combineMaterials( key, value ){ - var aNewMaterials = []; - if( key == "Materials" ){ - for (var i=0; i < value.length; i++ ){ - var aNodeMats = value[i]; - for (var k=0; k < aNodeMats.length; k++ ){ - var aMat = aNodeMats[k]; - aNewMaterials.push( aMat ); - } - } - return aNewMaterials; - } - else{ - return value; - } - }; - - oDtufile.open( DzFile.WriteOnly ); - oDtufile.write( JSON.stringify( oDtuJson, combineMaterials, 4 ) ); - oDtufile.close(); - }; - /*********************************************************************/ - // String : Writes Texture and returns new Path - // TODO: Find a better method to get the paths - function writeTexture( sDir, sOrigTexture, sAssetName ) - { - var oOrigFile = new DzFile( sOrigTexture ); - var sOrgImageName = oOrigFile.fileName(); - var sAbsPath = oOrigFile.absolutePath(); - var aSplitPath = sAbsPath.split("Textures"); - var sPath = String( "%1/%2/%3" ).arg( sDir ).arg( "Textures" ).arg( sAssetName ); - - var oDir = new DzDir( "" ); - oDir.setPath( sPath ); - if( !oDir.exists() ){ - oDir.mkpath( sPath ); - } - oDir.setPath( s_sRootPath ) - - var sNewTexture = String( "%1/%2" ).arg( sPath ).arg( sOrgImageName ) - var sRelTexture = oDir.relativeFilePath( sNewTexture ) - oOrigFile.copy( sNewTexture ) - return sRelTexture - - }; - - - /*********************************************************************/ - // Array : ... - // Note: Cycle through all the Materials on a Node and return an array - function writeMaterials( oNode, sDir ) - { - var oObj = oNode.getObject(); - if( oObj != null ){ - var oShape = oObj.getCurrentShape(); - var aMaterials = []; - if( oShape ){ - for( var k = 0; k < oShape.getNumMaterials(); k++ ){ - var oMaterialInfo = {}; - var aProperties = []; - var oMat = oShape.getMaterial( k ); - if( oMat ){ - oMaterialInfo["Asset Name"] = oNode.name; - oMaterialInfo["Asset Label"] = oNode.getLabel(); - oMaterialInfo["Material Name"] = oMat.getName(); - oMaterialInfo["Material Type"] = oMat.getMaterialName(); - - // Get presentation and set material info - var oPresentation = oNode.getPresentation(); - if( oPresentation != undefined ){ - var sPresentationType = oPresentation.type - oMaterialInfo["Value"] = sPresentationType; - } - else{ - oMaterialInfo["Value"] = "Unknown"; - } - - // Load all the porperties info - for( var i = 0; i < oMat.getNumProperties(); i++ ){ - var oProperty = oMat.getProperty( i ); - var oPropertyInfo = {}; - - oPropertyInfo["Name"] = oProperty.getName(); - oPropertyInfo["Label"] = oProperty.getLabel(); - - var bImageProperty = oProperty.inherits( "DzImageProperty" ); - var bColorProperty = oProperty.inherits( "DzColorProperty" ); - var bNumericProperty = oProperty.inherits( "DzNumericProperty" ); - var sTextureName = ""; - - if( bImageProperty ){ - if(oProperty.getValue()){ - sTextureName = oProperty.getValue().getFilename(); - } - oPropertyInfo["Value"] = oMat.getDiffuseColor().name; - oPropertyInfo["Data Type"] = "Texture"; - oPropertyInfo["Texture"] = sTextureName; - } - else if( bColorProperty ){ - if ( oProperty.getMapValue() ){ - sTextureName = oProperty.getMapValue().getFilename(); - } - oPropertyInfo["Value"] = oProperty.getColorValue().name; - oPropertyInfo["Data Type"] = "Color"; - oPropertyInfo["Texture"] = sTextureName; - } - else if( bNumericProperty ){ - if ( oProperty.getMapValue() ){ - sTextureName = oProperty.getMapValue().getFilename(); - } - oPropertyInfo["Value"] = oProperty.getValue(); - oPropertyInfo["Data Type"] = "Double"; - oPropertyInfo["Texture"] = sTextureName; - } - aProperties.push( oPropertyInfo ); - if ( sTextureName != "" ){ - if(s_bCollectTextures){ - sNewTexture = writeTexture( sDir, - sTextureName, - oMaterialInfo["Asset Label"]); - oPropertyInfo["Texture"] = sNewTexture; - } - } - } - oMaterialInfo["Properties"] = aProperties; - - aMaterials.push( oMaterialInfo ); - } - } - } - return aMaterials - } - else{ - return false - } - }; - - /*********************************************************************/ - // String : Get the name of the Property - function getPropertyName( oProperty ) - { - var sPropertyName = oProperty.name; - var oOwnerProperty = oProperty.getOwner(); - if( oOwnerProperty.inherits( "DzMorph" ) ){ - sPropertyName = oOwnerProperty.name; - } - return sPropertyName; - }; - - /*********************************************************************/ - // String : Returns the morph rules to be used at Export - function getMorphString( aExportableProperties ) - { - var sMorphString - - if ( aExportableProperties.length == 0 ){ - return ""; - } - s_aMorphNamesToExport = []; - sMorphString = ""; - for( var i = 0; i < aExportableProperties.length; i++ ){ - oMorphInfo = aExportableProperties[i] - s_aMorphNamesToExport.push( oMorphInfo.name ); - } - sMorphString = s_aMorphNamesToExport.join("\n1\n"); - sMorphString += "\n1\n.CTRLVS\n2\nAnything\n0"; - return sMorphString; - }; - - /*********************************************************************/ - // Object : Returns the Keyed Data - function getErcKeyed( oErc, nIdx ) - { - var oKey = {} - oKey["Rotate"] = oErc.getKey( nIdx ); - oKey["Value"] = oErc.getKeyValue( nIdx ); - - return oKey - }; - - /*********************************************************************/ - // Array : Find if Morph Exists on Children, Useful for FACS - function checkForMorphOnChild( oNode, aControlledMeshes, sMorphName ) - { - for ( var i = 0; i < oNode.getNumNodeChildren(); i++ ){ - oChildNode = oNode.getNodeChild( i ); - if( oChildNode.inherits( "DzFigure" ) ){ - oObject = oChildNode.getObject(); - if( oObject ){ - oModifer = oObject.findModifier( sMorphName ); - if( oModifer ){ - aControlledMeshes.pushIfNotExists( oChildNode.name + ".Shape" ); - } - } - } - } - return aControlledMeshes - - } - /*********************************************************************/ - // Array : Find if Bone Exists on Children Objects - // Check if Bone has skin weights on object - function checkForBoneInChild( oNode, sBoneName, aControlledMeshes ) - { - for ( var i = 0; i < oNode.getNumNodeChildren(); i++ ){ - oChildNode = oNode.getNodeChild( i ); - if( oChildNode.inherits( "DzFigure" ) ){ - oSkeleton = oChildNode.getSkeleton(); - oChildBone = oSkeleton.findBone( sBoneName ); - if( !oChildBone ){ - continue - } - // get the weight map Handler - var oWeightMapHandler = oSkeleton.getWeightMapHandler(); - var oSkinBinding= oWeightMapHandler.getSkinBinding(); - var oBoneBinding = oSkinBinding.findBoneBinding( sBoneName ); - if( oBoneBinding ){ - aControlledMeshes.pushIfNotExists( oChildNode.name + ".Shape" ); - } - } - } - return aControlledMeshes - }; - - /*********************************************************************/ - // Array : Check the alias of the morph to find the bone - function checkForBoneInAlias( oNode, oMorphProperty, aControlledMeshes ) - { - for( var l = 0; l < oMorphProperty.getNumAliases(); l++ ){ - var oAlias = oMorphProperty.getAlias( l ); - var oBone = oAlias.getOwner(); - var sBoneName; - if( oBone.inherits("DzBone") ){ - sBoneName = oBone.name; - aControlledMeshes = checkForBoneInChild( oNode, sBoneName, aControlledMeshes ); - } - } - return aControlledMeshes - } - - /*********************************************************************/ - // Array : Check the bone being controled by the morphs - function checkMorphControlsChildren( oNode, oMorphProperty ) - { - var aControlledMeshes = []; - var sBoneName; - var oOwnerNode; - var oSlaveControler; - - aControlledMeshes.push(oNode.name + ".Shape"); - var nSlaveControllerCount = oMorphProperty.getNumSlaveControllers(); - for( var j = 0; j < nSlaveControllerCount; j ++ ){ - oSlaveControler = oMorphProperty.getSlaveController( j ); - oOwnerNode = oSlaveControler.getOwner(); - if( oOwnerNode ){ - oOwnerNode = oOwnerNode.getOwner(); - if( oOwnerNode.inherits( "DzBone" ) ){ - sBoneName = oOwnerNode.name; - aControlledMeshes = checkForBoneInChild( oNode, sBoneName, aControlledMeshes ); - break - } - } - } - if( !sBoneName ){ - aControlledMeshes = checkForBoneInAlias( oNode, oMorphProperty, aControlledMeshes ) - } - return aControlledMeshes - }; - - /*********************************************************************/ - // Void : Load morph links that are directly controlled by skeleton bones - function loadMorphLinks( aExportableProperties, oNode ) - { - // Load all the controller links on the properties - for( var i = 0; i < aExportableProperties.length; i += 1 ){ - var oMorphInfo = aExportableProperties[i] - var oMorphProperty = oMorphInfo.property; - var nControllerCount = oMorphProperty.getNumControllers(); - var aLinks = []; - var aSubLinks = [] - var sBoneName; - var oOwnerNode; - - // Keep Morphs that are control bone placement - var aControlledMeshes = checkMorphControlsChildren( oNode, oMorphProperty ); - // Keep for the Children Nodes' Morphs - var oMorphInfoNode = oMorphInfo.node; - if( oMorphInfoNode != undefined ){ - if( oMorphInfoNode.name != oNode.name ){ - aControlledMeshes.pushIfNotExists( oMorphInfo.node.name + ".Shape" ); - } - } - // Check if Morph has its own version on Children - aControlledMeshes = checkForMorphOnChild( oNode, aControlledMeshes, oMorphInfo.name ) - - for( var j = 0; j < nControllerCount; j += 1 ){ - var oErcLink = new DzERCLink(); - oErcLink = oMorphProperty.getController( j ); - var oControllerProp = oErcLink.getProperty(); - - var oLink = { - "Bone": "None", - "Property": getPropertyName( oControllerProp ), - "Type": oErcLink.type, - "Scalar": oErcLink.scalar, - "Addend": oErcLink.addend, - - }; - if( oErcLink.type == 6 ){ - oLink["Key Type"] = oErcLink.keyInterpolation; - var oKeys = {} - for( var k = 0; k < oErcLink.getNumKeyValues(); k++ ){ - oKey = getErcKeyed( oErcLink, k ); - - sKey = String( "%1 %2" ).arg( "Key" ).arg( k ); - oKeys[sKey] = oKey; - } - oLink["Keys"] = oKeys; - } - oOwnerNode = oControllerProp.getOwner(); - if( oOwnerNode.inherits( "DzBone" ) ){ - sBoneName = oOwnerNode.name - aControlledMeshes = checkForBoneInChild( oNode, sBoneName, aControlledMeshes ) - oLink["Bone"] = oOwnerNode.name - } - aLinks.push( oLink ); - } - - var nSlaveControllerCount = oMorphProperty.getNumSlaveControllers(); - for( var j = 0; j < nSlaveControllerCount; j ++ ){ - var oErcLink = new DzERCLink() - oErcLink = oMorphProperty.getSlaveController( j ); - oOwnerNode = oErcLink.getOwner(); - if ( oOwnerNode ){ - oBoneNode = oOwnerNode.getOwner(); - if( oBoneNode.inherits( "DzBone" ) ){ - var oLink = { - "Bone": oBoneNode.name, - "Property": oOwnerNode.name, - "Type": oErcLink.type, - "Scalar": oErcLink.scalar, - "Addend": oErcLink.addend, - - }; - aSubLinks.push( oLink ); - } - } - - } - - var oMorphLinkObj = { - "Label": oMorphProperty.getLabel(), - "Links": aLinks, - "SubLinks" : aSubLinks, - "Minimum": oMorphInfo.min, - "Maximum": oMorphInfo.max, - "isHidden": oMorphInfo.hidden, - "Path": oMorphInfo.path, - "Controlled Meshes" : aControlledMeshes - }; - s_oMorphLinks[getPropertyName( oMorphProperty )] = oMorphLinkObj; - } - - return; - }; - /*********************************************************************/ - // Void: ... - function disconnectMorphs( aExportableProperties ) - { - for( var i = 0; i < aExportableProperties.length; i += 1 ){ - var oMorphInfo = aExportableProperties[i] - var oMorphProperty = oMorphInfo.property; - - if( oMorphInfo.disable == true){ - oMorphProperty.setValue( 0 ); - oMorphProperty.setOverrideControllers( true ); - } - } - } - - /*********************************************************************/ - // Void: ... - function reconnectMorphs( aExportableProperties ) - { - for( var i = 0; i < aExportableProperties.length; i += 1 ){ - var oMorphInfo = aExportableProperties[i] - var oMorphProperty = oMorphInfo.property; - if( oMorphInfo.disable ){ - oMorphProperty.setOverrideControllers( false ); - oMorphProperty.setValue( oMorphInfo.value ); - } - } - } - - /*********************************************************************/ - // Void: ... - function disconnectSkeleton( oNode ) - { - if( oNode.inherits( "DzSkeleton" ) ){ - var oSkeleton = oNode.getSkeleton(); - var aNodes = oSkeleton.getAllBones(); - for( var i = 0; i < aNodes.length; i += 1 ){ - var oBoneNode = aNodes[i] - oXpos = oBoneNode.getXPosControl(); - oXrot = oBoneNode.getXRotControl(); - oYpos = oBoneNode.getYPosControl(); - oYrot = oBoneNode.getYRotControl(); - oZpos = oBoneNode.getZPosControl(); - oZrot = oBoneNode.getZRotControl(); - s_oSkeletonTransforms[oBoneNode.name] = {} - aProperties = [oXpos, oXrot, oYpos, oYrot, oZpos, oZrot]; - for( var j = 0; j < aProperties.length; j += 1 ){ - var oProperty = aProperties[j] - s_oSkeletonTransforms[oBoneNode.name][oProperty.assetId] = oProperty.getValue(); - oProperty.setOverrideControllers( true ); - } - } - } - - } - - /*********************************************************************/ - // Void: ... - function reconnectSkeleton( oNode ) - { - if( oNode.inherits( "DzSkeleton" ) ){ - var oSkeleton = oNode.getSkeleton(); - var aNodes = oSkeleton.getAllBones(); - var oAssetMgr = App.getAssetMgr(); - for( var i = 0; i < aNodes.length; i += 1 ){ - var oBoneNode = aNodes[i] - oXpos = oBoneNode.getXPosControl(); - oXrot = oBoneNode.getXRotControl(); - oYpos = oBoneNode.getYPosControl(); - oYrot = oBoneNode.getYRotControl(); - oZpos = oBoneNode.getZPosControl(); - oZrot = oBoneNode.getZRotControl(); - - aProperties = [oXpos, oXrot, oYpos, oYrot, oZpos, oZrot,]; - for( var j = 0; j < aProperties.length; j += 1 ){ - var oProperty = aProperties[j] - oProperty.setOverrideControllers( false ); - oProperty.setValue( s_oSkeletonTransforms[oBoneNode.name][oProperty.assetId] ); - } - } - } - } - - /*********************************************************************/ - - // void : ... - function main() - { - var bDebugFBX = false; - - buildRootLists(); - - if( s_aFigures.length > 2 ){ - if( MessageBox.warning( - qsTr( "Transferring 3 or more figures with clothing or hair may freeze and stop." ), - s_sToolName, qsTr( "&OK" ), qsTr( "&Cancel" ) ) == 1 ){ - return; - } - } - - if( s_aFigures.length == 0 && s_aEnvProp.length == 0 ){ - return; - } else if( s_aFigures.length > 0 && s_aEnvProp.length > 0 ){ - s_nExportType = s_oExportTypes.Both; - } else if( s_aEnvProp.length == 0 ){ - s_nExportType = s_oExportTypes.Figure; - } else if( s_aFigures.length == 0 ){ - s_nExportType = s_oExportTypes.EnvProp; - } - - if( s_nExportType == s_oExportTypes.Both ){ - s_nExportType = promptExportType(); - } - - if( s_nExportType == s_oExportTypes.None ){ - return; - } - - prepareForExport( s_nExportType ); - - var sFileBasename; - var sBaseDirectory; - - if( s_nExportType == s_oExportTypes.Both - || s_nExportType == s_oExportTypes.Figure ){ - setHideRoot( false, false ); - - var oFigure; - for( var i = 0; i < s_aFigures.length; i += 1 ){ - oFigure = s_aFigures[i]; - for( var j = 0; j < s_aFigures.length; j += 1 ){ - setVisible( s_aFigures[j], i == j ); - } - - if( !promptSettings( oFigure ) ){ - continue; - } - - setLock( oFigure, true, true ); - makeEndDir( i, s_sFig ); - setSubDivLevelAll( oFigure ); - - // Morph Export - if( s_bIncludeMorphs ){ - s_sMorphRules = getMorphString( s_aExportableProperties ); - loadMorphLinks( s_aExportableProperties, oFigure ); - disconnectMorphs( s_aExportableProperties ); - disconnectSkeleton( oFigure ); - }; - // Export Figure - loadFigureBoneData( oFigure ); - loadPoseData( oFigure, true ); - setEyelashVisibility( oFigure, false ); - exportOBJ( oFigure, s_sFig, i ); - setEyelashVisibility( oFigure, true ); - removeIncompatibleNodes( oFigure ); - exportFBX( oFigure, s_sFig, i , bDebugFBX ); - setLock( oFigure, false, true ); - restorePose( oFigure ); - reparentFigure( oFigure ); - if ( s_bIncludeMorphs ){ - reconnectMorphs( s_aExportableProperties ); - reconnectSkeleton( oFigure ) - } - - // Write data - sFileBasename = String( "%1%2/%2%3/%2" ).arg( s_sRootPath ).arg( s_sFig ).arg( i ); - sBaseDirectory = String( "%1%2/%2%3" ).arg( s_sRootPath ).arg( s_sFig ).arg( i ); - writeParentingData( oFigure, sFileBasename + ".dat" ); - writeConfiguration( oFigure, sFileBasename, sBaseDirectory ); - - } - } - - if( s_nExportType != s_oExportTypes.Figure ){ - setHideRoot( true, false ); - - var oNode; - var bIsBone; - var sEnvPath; - var sPoseFilename; - var sFileBasename; - for( var i = 0; i < s_aEnvProp.length; i += 1 ){ - oNode = s_aEnvProp[i]; - - for( var j = 0; j < s_aEnvProp.length; j += 1 ){ - setVisible( s_aEnvProp[j], i == j ); - } - - bIsBone = oNode.getSkeleton() != null; - if( bIsBone ){ - flattenObjectHierarchy( oNode ); - } - - setLock( oNode, true, false ); - - setSubDivLevelAll( oNode, 0 ); - - sEnvPath = String( "%1%2/%2%3/" ).arg( s_sRootPath ).arg( s_sEnv ).arg( i ); - makeEndDir( i, s_sEnv ); - - if( oNode.name.startsWith( "Genesis" ) ){ - applyDefaultTransforms( oNode ); - } - - updateName( oNode ); - - exportFBX( oNode, s_sEnv, i, bDebugFBX ); - - sFileBasename = sEnvPath + s_sEnv; - sPoseFilename = sFileBasename + ".transforms"; - - if( bIsBone ){ - loadFigureBoneData( oNode ); - } else { - loadPoseData( oNode, sPoseFilename, false ); - writeMemo( sEnvPath + "nobone.txt", "not skeleton" ); - } - updateName( oNode ); - - writeConfiguration( oNode, sFileBasename ); - - setLock( oNode, false, false ); - } - } - - setHideRoot( true, true ); - setHideRoot( false, true ); - }; - - /*********************************************************************/ - main(); - -})(); \ No newline at end of file diff --git a/Daz Studio/appdir_common/scripts/support/DAZ/DzCinema 4DMorphSelectionDialog.dsa b/Daz Studio/appdir_common/scripts/support/DAZ/DzCinema 4DMorphSelectionDialog.dsa deleted file mode 100644 index ee9998d..0000000 --- a/Daz Studio/appdir_common/scripts/support/DAZ/DzCinema 4DMorphSelectionDialog.dsa +++ /dev/null @@ -1,1409 +0,0 @@ -// DAZ Studio version 4.15.0.2 filetype DAZ Script - -(function( aArgs ){ - // Imported Arguments - var s_oNode; - var s_sDazBridgeName = ""; - var s_sPresetPath = ""; - - // Returned Values - var s_sMorphRules = ""; - - // Static Arrays - var s_aMorphList = []; - var s_aMorphsToExport = []; - - // Static Objects - var s_oMorphs = {}; - var s_oMorphsForNode = {}; - var s_oSelectedInTree = {}; - var s_oAvailObjects = {}; - - // Static Widgets - var s_wMorphTreeWidget = null; - var s_wMorphListWidget = null; - var s_wMorphExportListWidget = null; - var s_wFilterEdit = null; - var s_wPresetCombo = null; - var s_wDisableConnections = null; - - /*********************************************************************/ - // bool : ... - function containsObject( obj, list ) - { - for( var i = 0; i < list.length; i++ ){ - if( list[i] === obj ){ - return true; - } - } - return false; - }; - - /*********************************************************************/ - // void : ... - // TODO: Find a better method to setup of Variables - function initilizeArgs() - { - for( var i = 0, nArgs = aArgs.length; i < nArgs; i += 1 ){ - vArg = aArgs[i]; - sType = typeof( vArg ); - if( sType == "object" ){ - s_oNode = vArg - } - else{ - if( vArg.indexOf( "Documents" ) > 0 ){ - s_sPresetPath = vArg; - } - else{ - s_sDazBridgeName = vArg; - } - } - } - - }; - - /*********************************************************************/ - // void : ... - function morphInfo( sName, sLabel, sPath, sType, oProperty, sParent, bHidden, nMin, nMax, bDisable, nCurrentValue, oNode ) - { - this.name = sName; - this.label = sLabel; - this.path = sPath; - this.type = sType; - this.property = oProperty; - this.parent = sParent; - this.hidden = bHidden; - this.min = nMin; - this.max = nMax; - this.disable = bDisable; - this.value = nCurrentValue; - this.node = oNode; - }; - - /*********************************************************************/ - // String : Get the property name even if name is Value - function getPropertyName( oProperty ) - { - var sPropertyName = oProperty.name; - var oOwnerProperty = oProperty.getOwner(); - if( oOwnerProperty.inherits( "DzMorph" ) ){ - sPropertyName = oOwnerProperty.name; - } - return sPropertyName; - }; - - /*********************************************************************/ - // void : ... - function morphSelectionDialog( wDlg ) - { - // Get the current style - var oStyle = App.getStyle(); - // Get the general margin - var nMargin = oStyle.pixelMetric( "DZ_GeneralMargin" ) - - // Set the dialog title - wDlg.caption = "Select Morphs"; - - var wMainWgt = new DzWidget( wDlg ); - - // Create Layouts - var lytMain = new DzVBoxLayout( wMainWgt ); - lytMain.margin = nMargin; - lytMain.spacing = nMargin; - var lytSettings = new DzHBoxLayout( lytMain ); - lytSettings.margin = nMargin; - lytSettings.spacing = nMargin; - var lytMorphs = new DzHBoxLayout( lytMain ); - lytMorphs.margin = nMargin; - lytMorphs.spacing = nMargin; - var lytTree = new DzVBoxLayout( lytMorphs ); - lytTree.margin = nMargin; - lytTree.spacing = nMargin; - var lytMorphList = new DzVBoxLayout( lytMorphs ); - lytMorphList.margin = nMargin; - lytMorphList.spacing = nMargin; - var lytSelectedList = new DzVBoxLayout( lytMorphs ); - lytSelectedList.margin = nMargin; - lytSelectedList.spacing = nMargin; - - // Left tree with morph structure - s_wMorphTreeWidget = new DzListView( wMainWgt ); - s_wMorphTreeWidget.resizeMode = DzListView.Maximum; - s_wMorphTreeWidget.widthMode = DzListView.NoColumn; - s_wMorphTreeWidget.addColumn(""); - s_wMorphTreeWidget.rootIsDecorated = true; - s_wMorphTreeWidget.treeStepSize = 20; - - - // Center list showing morphs for selected tree items - s_wMorphListWidget = new DzListView( wMainWgt ); - s_wMorphListWidget.resizeMode = DzListView.Maximum; - s_wMorphListWidget.widthMode = DzListView.NoColumn; - s_wMorphListWidget.addColumn( "" ); - s_wMorphListWidget.selectionMode = DzListView.Extended; - - - // Right list showing morphs that will export - s_wMorphExportListWidget = new DzListView( wMainWgt ); - s_wMorphExportListWidget.resizeMode = DzListView.Maximum; - s_wMorphExportListWidget.widthMode = DzListView.NoColumn; - s_wMorphExportListWidget.addColumn( "" ); - s_wMorphExportListWidget.selectionMode = DzListView.Extended; - - - // Quick filter box - var wFilterLabel = new DzLabel( wMainWgt ); - wFilterLabel.text = 'filter'; - s_wFilterEdit = new DzLineEdit( wMainWgt ); - - - // Presets - var wChoosePresetLabel = new DzLabel( wMainWgt ); - wChoosePresetLabel.text = "Choose Preset"; - var wSavePresetButton = new DzPushButton( wMainWgt ); - wSavePresetButton.text = "Save Preset"; - s_wPresetCombo = new DzComboBox( wMainWgt ); - lytSettings.addWidget( wChoosePresetLabel ); - lytSettings.addWidget( s_wPresetCombo ); - lytSettings.addWidget( wSavePresetButton ); - lytSettings.addStretch(); - - - // Left Tree - var wMorphGrpLabel = new DzLabel( wMainWgt ); - wMorphGrpLabel.text = 'Morph Groups'; - var wAvailMorphLabel = new DzLabel( wMainWgt ); - wAvailMorphLabel.text = 'Select to see available morphs'; - lytTree.addWidget( wMorphGrpLabel ); - lytTree.addWidget( wAvailMorphLabel ); - lytTree.addWidget( s_wMorphTreeWidget ); - - - // Buttons for Utlilties - var wMorphGroupBox = DzGroupBox( wMainWgt ); - wMorphGroupBox.title = "Morph Utlities"; - var lytMorphGroup = new DzVBoxLayout( wMorphGroupBox ); - lytTree.addWidget( wMorphGroupBox ); - lytMorphGroup.margin = nMargin; - lytMorphGroup.spacing = nMargin; - - var wJCMGroupBox = DzGroupBox( wMorphGroupBox ); - wJCMGroupBox.title = "Add JCMs"; - var lytJCM = new DzGridLayout( wJCMGroupBox ); - lytJCM.margin = nMargin; - lytJCM.spacing = nMargin; - - var wExpressGroupBox = DzGroupBox( wMorphGroupBox ); - wExpressGroupBox.title = "Add Expressions"; - var lytExpress = new DzGridLayout( wExpressGroupBox ); - lytExpress.margin = nMargin; - lytExpress.spacing = nMargin; - - var wFaceGroupBox = DzGroupBox( wMorphGroupBox ); - wFaceGroupBox.title = "Add Facial Morphs"; - var lytFace = new DzGridLayout( wFaceGroupBox ); - lytFace.margin = nMargin; - lytFace.spacing = nMargin; - - var wOtherGroupBox = DzGroupBox( wMorphGroupBox ); - wOtherGroupBox.title = "Other Morphs"; - var lytOther = new DzGridLayout( wOtherGroupBox ); - lytOther.margin = nMargin; - lytOther.spacing = nMargin; - - var wAdvanceGroupBox = DzGroupBox( wMorphGroupBox ); - wAdvanceGroupBox.title = "Advanced Options"; - var lytAdv = new DzGridLayout( wAdvanceGroupBox ); - lytAdv.margin = nMargin; - lytAdv.spacing = nMargin; - - lytMorphGroup.addWidget( wJCMGroupBox ); - lytMorphGroup.addWidget( wExpressGroupBox ); - lytMorphGroup.addWidget( wFaceGroupBox ); - lytMorphGroup.addWidget( wOtherGroupBox ); - lytMorphGroup.addWidget( wAdvanceGroupBox ); - - // Buttons - var wArmJCMButton = new DzPushButton( wJCMGroupBox ); - wArmJCMButton.text = "Arms"; - lytJCM.addWidget( wArmJCMButton, 0, 1); - var wLegsJCMButton = new DzPushButton( wJCMGroupBox ); - wLegsJCMButton.text = "Legs"; - lytJCM.addWidget( wLegsJCMButton, 0, 2); - var wTorsoJCMButton = new DzPushButton( wJCMGroupBox ); - wTorsoJCMButton.text = "Torso"; - lytJCM.addWidget( wTorsoJCMButton, 0, 3); - var wGen8ExpressBut = new DzPushButton( wExpressGroupBox ); - wGen8ExpressBut.text = "Genesis 8"; - lytExpress.addWidget( wGen8ExpressBut, 0, 1); - var wGen8_1ExpressBut = new DzPushButton( wExpressGroupBox ); - wGen8_1ExpressBut.text = "Genesis 8.1"; - lytExpress.addWidget( wGen8_1ExpressBut, 0, 2); - var wGen8FaceBut = new DzPushButton( wFaceGroupBox ); - wGen8FaceBut.text = "Genesis 8"; - lytFace.addWidget( wGen8FaceBut, 0, 1); - var wGen8_1FaceBut = new DzPushButton( wFaceGroupBox ); - wGen8_1FaceBut.text = "Genesis 8.1"; - lytFace.addWidget( wGen8_1FaceBut, 0, 2); - var wVismesbut = new DzPushButton( wOtherGroupBox ); - wVismesbut.text = "Visemes"; - lytOther.addWidget( wVismesbut, 0, 1); - s_wDisableConnections = new DzCheckBox( wAdvanceGroupBox ); - s_wDisableConnections.text = "Disable Links"; - s_wDisableConnections.checked = true; - s_wDisableConnections.whatsThis = qsTr( "Disables the connections between each morph to deal with morph a being applied on its parent morph") - lytAdv.addWidget( s_wDisableConnections, 0, 1 ); - var wAddConnectedMorphs = new DzPushButton( wAdvanceGroupBox ); - wAddConnectedMorphs.text = "Find Connected Morphs"; - lytAdv.addWidget( wAddConnectedMorphs, 1, 1, 1, 2 ); - - - // Center List of morphs based on tree selection - var wMorphSelGrpLabel = new DzLabel( wMainWgt ); - wMorphSelGrpLabel.text = 'Morphs in Group'; - var wAvailSelMorphLabel = new DzLabel( wMainWgt ); - wAvailSelMorphLabel.text = 'Select and click Add for Export'; - lytMorphList.addWidget( wMorphSelGrpLabel ); - lytMorphList.addWidget( wAvailSelMorphLabel ); - var lytFilter = new DzVBoxLayout( lytMorphList ); - lytFilter.margin = nMargin; - lytFilter.spacing = nMargin; - lytFilter.addWidget( wFilterLabel ); - lytFilter.addWidget( s_wFilterEdit ); - lytMorphList.addWidget( s_wMorphListWidget ); - - // Button for adding morphs - var wAddMorphsButton = new DzPushButton( wMainWgt ); - wAddMorphsButton.text = "Add For Export"; - lytMorphList.addWidget( wAddMorphsButton ); - - // Right List of morphs that will export - var wMorphExportLabel = new DzLabel( wMainWgt ); - wMorphExportLabel.text = 'Morphs to Export'; - lytSelectedList.addWidget( wMorphExportLabel ); - lytSelectedList.addWidget( s_wMorphExportListWidget ); - - // Button for clearing morphs from export - var wRemoveMorphsButton = new DzPushButton( wMainWgt ); - wRemoveMorphsButton.text = "Remove From Export"; - lytSelectedList.addWidget( wRemoveMorphsButton ); - - wDlg.addWidget( wMainWgt ); - wDlg.setFixedWidth( 800 ); - wDlg.setFixedHeight( 800 ); - refreshPresetsCombo(); - - // Create Connections - connect( s_wMorphTreeWidget, "currentChanged(DzListViewItem*)",itemSelectionChanged ); - connect( s_wFilterEdit, "textChanged(const QString&)", filterChanged ); - wArmJCMButton.released.connect( handleArmJCMMorphsButton ); - wLegsJCMButton.released.connect( handleLegsJCMMorphsButton ); - wTorsoJCMButton.released.connect( handleTorsoJCMMorphsButton ); - wGen8ExpressBut.released.connect( handleGen8ExpressMorphsButton ); - wGen8_1ExpressBut.released.connect( handleGen8_1ExpressMorphsButton ); - wGen8FaceBut.released.connect( handleGen8FaceMorphsButton ); - wGen8_1FaceBut.released.connect( handleGen8_1FaceMorphsButton ); - wVismesbut.released.connect( handleVismesMorphsButton); - wAddConnectedMorphs.released.connect( loadConnectedMorphs ); - wSavePresetButton.released.connect( handleSavePreset ); - wAddMorphsButton.released.connect( handleAddMorphsButton ); - wRemoveMorphsButton.released.connect( handleRemoveMorphsButton ); - }; - - - /*********************************************************************/ - // Void : Build out the Left morphs tree based on the current selection - function prepareDialog() - { - var oSelectedNode; - var oParentNode; - var oParentFigureNode; - - oSelectedNode = s_oNode; - // For item like clothing, create the morph list from the character - oParentNode = oSelectedNode; - if (oParentNode = oSelectedNode.getNodeParent()){ - if(oParentNode.inherits( "DzFigure" )){ - oParentFigureNode = oParentNode.getSkeleton(); - oSelectedNode = oParentFigureNode; - } - } - - s_oMorphs = {}; - getAvailableMorphs( oSelectedNode ); - for ( var i = 0; i < oSelectedNode.getNumNodeChildren(); i++ ){ - oChildNode = oSelectedNode.getNodeChild( i ); - getAvailableMorphs( oChildNode ); - } - updateMorphsTree(); - handlePresetChanged("LastUsed.csv"); - }; - - /*********************************************************************/ - // void : When the filter text is changed, update the center list - function filterChanged() - { - var sNewFilter; - var oMorphInfo; - - s_wMorphListWidget.clear(); - sNewFilter = s_wFilterEdit.text.toLowerCase(); - s_wMorphListWidget.clear(); - for(var i = 0; i < s_oSelectedInTree.length; i++){ - oMorphInfo = s_oSelectedInTree[i] - if( sNewFilter == "" || sNewFilter.isEmpty() || oMorphInfo.label.toLowerCase().indexOf(sNewFilter) != -1 ) - { - oItem = DzListViewItem( s_wMorphListWidget ); - oItem.setText( 0 ,oMorphInfo.label ); - oItem.addDataItem( "name", oMorphInfo.name ); - } - } - - s_wMorphListWidget.sort(); - }; - - /*********************************************************************/ - // array : ... - function getAvailableMorphs( oNode ) - { - var oObject; - var oShape; - var oProperty; - var oPresentation; - var sPropName; - var sPropLabel; - var oMorphInfo; - var sPath; - var sParent; - - - aNewMorphList = []; - oObject = oNode.getObject(); - if( oObject != null ){ - oShape = oObject.getCurrentShape(); - } - for( var i = 0; i < oNode.getNumProperties(); i++ ){ - oProperty = oNode.getProperty( i ); - sPropName = oProperty.getName(); - sPropLabel = oProperty.getLabel(); - oPresentation = oProperty.getPresentation(); - if (oPresentation != undefined){ - sPath = oNode.getLabel() + "/" + oProperty.getPath(); - sParent = sPath.split( "/" )[0]; - oMorphInfo = new morphInfo( - sPropName, - sPropLabel, - sPath, - oPresentation.type, - oProperty, - sParent, - oProperty.isHidden(), - oProperty.getMin(), - oProperty.getMax(), - false, - oProperty.getValue(), - oNode - ); - - if( !( oMorphInfo.name in s_oMorphs ) ){ - s_oMorphs[oMorphInfo.name] = oMorphInfo; - if( !( oMorphInfo.parent in s_oAvailObjects ) ){ - s_oAvailObjects[oMorphInfo.parent] = {}; - } - if( !( oMorphInfo.name in s_oAvailObjects[oMorphInfo.parent] ) ){ - s_oAvailObjects[oMorphInfo.parent][oMorphInfo.name] = oMorphInfo; - } - } - } - } - if( oObject ){ - for( var i = 0; i < oObject.getNumModifiers(); i++ ){ - oModifer = oObject.getModifier( i ); - sModName = oModifer.getName(); - sModLabel = oModifer.getLabel(); - if(oModifer.inherits( "DzMorph" ) ){ - for( var j = 0; j < oModifer.getNumProperties(); j++ ){ - oProperty = oModifer.getProperty( j ); - sPropName = oProperty.getName(); - sPropLabel = oProperty.getLabel(); - oPresentation = oProperty.getPresentation(); - if (oPresentation != undefined){ - sPath = oNode.getLabel() + "/" + oProperty.getPath(); - sParent = sPath.split( "/" )[0]; - oMorphInfo = new morphInfo( - sModName, - sPropLabel, - sPath, - oPresentation.type, - oProperty, - sParent, - oProperty.isHidden(), - oProperty.getMin(), - oProperty.getMax(), - false, - oProperty.getValue(), - oNode - ); - if( !( oMorphInfo.name in s_oMorphs ) ){ - s_oMorphs[oMorphInfo.name] = oMorphInfo; - if( !( oMorphInfo.parent in s_oAvailObjects ) ){ - s_oAvailObjects[oMorphInfo.parent] = {}; - } - if( !( oMorphInfo.name in s_oAvailObjects[oMorphInfo.parent] ) ){ - s_oAvailObjects[oMorphInfo.parent][oMorphInfo.name] = oMorphInfo; - } - } - } - } - } - } - } - }; - - /*********************************************************************/ - // Void : Build out the left tree - function updateMorphsTree() - { - var sPath; - var sPathPart; - var sMorph; - var oParentItem; - var sID; - - s_wMorphTreeWidget.clear(); - - s_oMorphsForNode = {}; - for( sParent in s_oAvailObjects ){ - for( sMorph in s_oAvailObjects[sParent] ){ - sPath = s_oMorphs[sMorph].path; - sType = s_oMorphs[sMorph].path; - aPathParts = sPath.split( "/" ); - oParentItem = null; - for( var i = 0; i < aPathParts.length; i++ ){ - sPathPart = aPathParts[i]; - if( i != 0 ){ - nPaths = aPathParts.length; - if( i >= 6 ){ - sPathPart_helper += aPathParts[i - 1] + aPathParts[i - 2] - } - else{ - sPathPart_helper += aPathParts[i - 1] - } - } - else{ - sPathPart_helper = "" - } - // Used to Match to correct node. - sID = sParent + sPathPart_helper + sPathPart; - - if( sPathPart == "" ){ - continue; - } - oParentItem = findTreeItem( oParentItem, sPathPart, sID ); - if( !( sID in s_oMorphsForNode ) ){ - s_oMorphsForNode[sID] = [] - } - s_oMorphsForNode[sID].push( s_oMorphs[sMorph] ); - } - } - } - }; - - /*********************************************************************/ - // Void : This function could be better named. It will find the node matching the property path - // but it will also create the structure of that path in the tree as needed as it searches - function findTreeItem( oParent, sName, sID ) - { - if ( oParent == null ){ - oItem = s_wMorphTreeWidget.findItem( sName, 0 ); - if( oItem != null ){ - if ( oItem.text( 0 ) == sName ){ - return oItem; - } - } - - oNewItem = new DzListViewItem( s_wMorphTreeWidget ); - oNewItem.addDataItem("id", sID ); - oNewItem.setText( 0, sName ); - oNewItem.open = true; - oNewItem.expandable = true; - return oNewItem; - } - else{ - oItem = oParent.firstChild(); - while(oItem){ - if( oItem.text( 0 ) == sName ){ - return oItem; - } - oItem = oItem.nextSibling(); - } - oNewItem = new DzListViewItem( oParent ); - oNewItem.setText( 0, sName ); - oNewItem.open = true; - oNewItem.expandable = true; - oNewItem.addDataItem("id", sID ); - oParent.insertItem( oNewItem ); - return oNewItem; - } - }; - - /*********************************************************************/ - // Void : For selection changes in the Left Tree - function itemSelectionChanged() - { - s_oSelectedInTree = {}; - selectMorphsInNode( s_wMorphTreeWidget.currentItem() ); - filterChanged(); - }; - - /*********************************************************************/ - // Void : Updates the list of selected morphs in the Left Tree - // including any children - function selectMorphsInNode( oSelectedItem ) - { - sId = oSelectedItem.getDataItem( "id" ); - if ( sId in s_oMorphsForNode ){ - s_oSelectedInTree = s_oMorphsForNode[sId]; - } - }; - - /*********************************************************************/ - // Void : Add Morphs for export - function handleAddMorphsButton() - { - for( var i = 0; i < s_oSelectedInTree.length; i++ ){ - oMorphInfo = s_oSelectedInTree[i] - oItem = s_wMorphListWidget.findItem( oMorphInfo.label, 0 ); - if( oItem != null ){ - if(oItem.selected){ - sMorphName = oItem.getDataItem( "name" ); - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - } - } - refreshExportMorphList(); - refreshPresetsCombo(); - }; - - /*********************************************************************/ - // Bool : Check if Morph is invalid. - function ignoreMorph( oMorphProperty ) - { - var sMorphName = getPropertyName( oMorphProperty ); - var aIgnoreCases = ["x", "y", "z"]; - for( var k = 0; k < aIgnoreCases.length; k++ ){ - var sCase = aIgnoreCases[k] - if( sMorphName.toLowerCase()[0] == sCase ){ - return true; - } - } - var nControllerCount = oMorphProperty.getNumControllers(); - for( var j = 0; j < nControllerCount; j++ ){ - var oErcLink = new DzERCLink(); - oErcLink = oMorphProperty.getController( j ); - if( oErcLink.type == 3 ){ //Multiply - var oControllerProp = oErcLink.getProperty(); - if( oControllerProp.getDoubleValue() == 0 ){ - return true; - } - } - - } - return false; - }; - - /*********************************************************************/ - // Void : Load morphs controlling the morphs in the export list - function loadConnectedMorphs() - { - // Load all the controller links on the properties - for( var i = 0; i < s_aMorphsToExport.length; i++ ){ - var oMorphProperty = s_aMorphsToExport[i].property; - var nControllerCount = oMorphProperty.getNumSlaveControllers(); - for( var j = 0; j < nControllerCount; j ++ ){ - oSlaveControler = oMorphProperty.getSlaveController( j ); - var oControlMorphProp = oSlaveControler.getOwner() - if( ignoreMorph( oControlMorphProp ) ){ - continue; - } - sMorphName = getPropertyName( oControlMorphProp ) - oMorphInfo= s_oMorphs[sMorphName] - - if( sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ) - } - } - } - refreshExportMorphList(); - refreshPresetsCombo(); - - }; - - /*********************************************************************/ - // Void : Remove morph from export list - function handleRemoveMorphsButton() - { - for( var i = 0; i < s_aMorphsToExport.length; i++ ){ - oMorphInfo = s_aMorphsToExport[i] - oItem = s_wMorphExportListWidget.findItem( oMorphInfo.label, 0 ); - if( oItem != null ){ - if( oItem.selected ){ - sMorphName = oItem.getDataItem( "name" ); - s_aMorphsToExport.splice( i, 1 ); - i--; - }; - }; - }; - refreshExportMorphList(); - refreshPresetsCombo(); - }; - - /*********************************************************************/ - // Void : Brings up a dialog for choosing a preset name - function handleSavePreset() - { - var sFile; - var sFilters; - - sFilters = "CSV Files (*.csv)"; - sFile = FileDialog.doFileDialog( - false, - qsTr( "Save Preset" ), - s_sPresetPath, - sFilters ) - if( sFile != null ){ - savePresetFile( sFile ); - } - }; - - /*********************************************************************/ - // Void : Saves out a preset. If the path isn't supplied, it's saved as the last selection - function savePresetFile( sFilePath ) - { - var oDir; - var oFile; - - oDir = new DzDir( "" ); - oDir.setPath( s_sPresetPath ); - if (sFilePath == null){ - sFilePath = s_sPresetPath + "LastUsed.csv"; - } - oFile = new DzFile( sFilePath ); - if( !oFile.open( DzFile.WriteOnly ) ){ - print( String( "Unable to open \"%1\" for writing." ).arg( sFilePath ) ); - return; - } - - oData = getMorphCSVString(); - if (oData.constructor === Array){ - for( var i = 0; i < oData.length; i += 1 ){ - oFile.writeLine( oData[i] ); - } - } - else{ - oFile.write( oData ) - } - oFile.close(); - refreshPresetsCombo(); - - }; - /*********************************************************************/ - // Void : Check if the Morph Should be Disconnected - function checkMorphConnections( oMorphInfo ) - { - if( s_wDisableConnections.checked == false ){ - return - } - var oProperty = oMorphInfo.property; - var nControllerCount = oProperty.getNumControllers(); - for( var j = 0; j < nControllerCount; j ++ ){ - var oErcLink = new DzERCLink(); - oErcLink = oProperty.getController( j ); - var oControllerProp = oErcLink.getProperty(); - var sControllerName = getPropertyName( oControllerProp ) - for( var i = 0; i < s_aMorphsToExport.length; i++ ){ - var oMorphCheck = s_aMorphsToExport[i]; - var sMorphName = oMorphCheck.name; - if( sMorphName == sControllerName ){ - oMorphInfo.disable = true; - } - } - } - } - - /*********************************************************************/ - // Void : Refresh the Right export list - function refreshExportMorphList() - { - s_wMorphExportListWidget.clear(); - - for( var i = 0; i < s_aMorphsToExport.length; i++ ){ - var oMorphInfo = s_aMorphsToExport[i] - oItem = DzListViewItem( s_wMorphExportListWidget ); - oItem.setText( 0 ,oMorphInfo.label ); - oItem.addDataItem( "name", oMorphInfo.name ); - } - savePresetFile( null ); - }; - - /*********************************************************************/ - // Void: ... - function handleArmJCMMorphsButton() - { - var aMorphsToAdd = []; - - aMorphsToAdd.push( "pJCMCollarTwist_n30_L" ); - aMorphsToAdd.push( "pJCMCollarTwist_n30_R" ); - aMorphsToAdd.push( "pJCMCollarTwist_p30_L" ); - aMorphsToAdd.push( "pJCMCollarTwist_p30_R" ); - aMorphsToAdd.push( "pJCMCollarUp_55_L" ); - aMorphsToAdd.push( "pJCMCollarUp_55_R" ); - aMorphsToAdd.push( "pJCMCollarUp_50_L" ); - aMorphsToAdd.push( "pJCMCollarUp_50_R" ); - aMorphsToAdd.push( "pJCMForeArmFwd_135_L" ); - aMorphsToAdd.push( "pJCMForeArmFwd_135_R" ); - aMorphsToAdd.push( "pJCMForeArmFwd_75_L" ); - aMorphsToAdd.push( "pJCMForeArmFwd_75_R" ); - aMorphsToAdd.push( "pJCMHandDwn_70_L" ); - aMorphsToAdd.push( "pJCMHandDwn_70_R" ); - aMorphsToAdd.push( "pJCMHandUp_80_L" ); - aMorphsToAdd.push( "pJCMHandUp_80_R" ); - aMorphsToAdd.push( "pJCMShldrDown_40_L" ); - aMorphsToAdd.push( "pJCMShldrDown_40_R" ); - aMorphsToAdd.push( "pJCMShldrDown_75_R" ); - aMorphsToAdd.push( "pJCMShldrDown2_75_L" ); - aMorphsToAdd.push( "pJCMShldrDown2_75_R" ); - aMorphsToAdd.push( "pJCMShldrFront_n110_Bend_n40_L" ); - aMorphsToAdd.push( "pJCMShldrFront_n110_Bend_p90_L" ); - aMorphsToAdd.push( "pJCMShldrFront_p110_Bend_n90_R" ); - aMorphsToAdd.push( "pJCMShldrFront_p110_Bend_p40_R" ); - aMorphsToAdd.push( "pJCMShldrFwdDwn_110_75_L" ); - aMorphsToAdd.push( "pJCMShldrFwdDwn_110_75_R" ); - aMorphsToAdd.push( "pJCMShldrFwd_110_L" ); - aMorphsToAdd.push( "pJCMShldrFwd_110_R" ); - aMorphsToAdd.push( "pJCMShldrFwd_95_L" ); - aMorphsToAdd.push( "pJCMShldrFwd_95_R" ); - aMorphsToAdd.push( "pJCMShldrUp_90_L" ); - aMorphsToAdd.push( "pJCMShldrUp_90_R" ); - aMorphsToAdd.push( "pJCMShldrUp_35_L" ); - aMorphsToAdd.push( "pJCMShldrUp_35_R" ); - - - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - /*********************************************************************/ - // Void: ... - function handleLegsJCMMorphsButton() - { - var aMorphsToAdd = []; - - aMorphsToAdd.push( "pJCMBigToeDown_45_L" ); - aMorphsToAdd.push( "pJCMBigToeDown_45_R" ); - aMorphsToAdd.push( "pJCMFootDwn_75_L" ); - aMorphsToAdd.push( "pJCMFootDwn_75_R" ); - aMorphsToAdd.push( "pJCMFootUp_40_L" ); - aMorphsToAdd.push( "pJCMShinBend_155_L" ); - aMorphsToAdd.push( "pJCMShinBend_155_R" ); - aMorphsToAdd.push( "pJCMShinBend_90_L" ); - aMorphsToAdd.push( "pJCMShinBend_90_R" ); - aMorphsToAdd.push( "pJCMThighBack_35_L" ); - aMorphsToAdd.push( "pJCMThighBack_35_R" ); - aMorphsToAdd.push( "pJCMThighFwd_115_L" ); - aMorphsToAdd.push( "pJCMThighFwd_115_R" ); - aMorphsToAdd.push( "pJCMThighFwd_57_L" ); - aMorphsToAdd.push( "pJCMThighFwd_57_R" ); - aMorphsToAdd.push( "pJCMThighSide_85_L" ); - aMorphsToAdd.push( "pJCMThighSide_85_R" ); - aMorphsToAdd.push( "pJCMToesUp_60_L" ); - aMorphsToAdd.push( "pJCMToesUp_60_R" ); - - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - /*********************************************************************/ - // Void: ... - function handleTorsoJCMMorphsButton() - { - var aMorphsToAdd = []; - - aMorphsToAdd.push( "pJCMAbdomen2Fwd_40" ); - aMorphsToAdd.push( "pJCMAbdomen2Side_24_L" ); - aMorphsToAdd.push( "pJCMAbdomen2Side_24_R" ); - aMorphsToAdd.push( "pJCMAbdomenFwd_35" ); - aMorphsToAdd.push( "pJCMAbdomenLowerFwd_Navel" ); - aMorphsToAdd.push( "pJCMAbdomenUpperFwd_Navel" ); - aMorphsToAdd.push( "pJCMHeadBack_27" ); - aMorphsToAdd.push( "pJCMHeadFwd_25" ); - aMorphsToAdd.push( "pJCMNeckBack_27" ); - aMorphsToAdd.push( "pJCMNeckFwd_35" ); - aMorphsToAdd.push( "pJCMNeckLowerSide_40_L" ); - aMorphsToAdd.push( "pJCMNeckLowerSide_40_R" ); - aMorphsToAdd.push( "pJCMNeckTwist_22_L" ); - aMorphsToAdd.push( "pJCMNeckTwist_22_R" ); - aMorphsToAdd.push( "pJCMNeckTwist_Reverse" ); - aMorphsToAdd.push( "pJCMPelvisFwd_25" ); - aMorphsToAdd.push( "pJCMChestFwd_35" ); - aMorphsToAdd.push( "pJCMChestSide_20_L" ); - aMorphsToAdd.push( "pJCMChestSide_20_R" ); - - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - /*********************************************************************/ - // Void: ... - function handleGen8ExpressMorphsButton() - { - var aMorphsToAdd = []; - - aMorphsToAdd.push( "eCTRLSurprised_HD" ); - aMorphsToAdd.push( "eCTRLSmileOpenFullFace_HD" ); - aMorphsToAdd.push( "eCTRLSmileFullFace_HD" ); - aMorphsToAdd.push( "eCTRLShock_HD" ); - aMorphsToAdd.push( "eCTRLFrown_HD" ); - aMorphsToAdd.push( "eCTRLFlirting_HD" ); - aMorphsToAdd.push( "eCTRLAngry_HD" ); - aMorphsToAdd.push( "eCTRLAfraid_HD" ); - aMorphsToAdd.push( "eJCMSurprise_HD_div2" ); - aMorphsToAdd.push( "eJCMSmileOpenFullFace_HD_div2" ); - aMorphsToAdd.push( "eJCMSmileFullFace_HD_div2" ); - aMorphsToAdd.push( "eJCMShock_HD_div2" ); - aMorphsToAdd.push( "eJCMFrown_HD_div2" ); - aMorphsToAdd.push( "eJCMFlirting_HD_div2" ); - aMorphsToAdd.push( "eJCMAngry_HD_div2" ); - aMorphsToAdd.push( "eJCMAfraid_HD_div2" ); - - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - /*********************************************************************/ - // Void: ... - function handleGen8_1ExpressMorphsButton() - { - var aMorphsToAdd = []; - - aMorphsToAdd.push( "facs_ctrl_Surprised" ); - aMorphsToAdd.push( "facs_ctrl_SmileOpenFullFace" ); - aMorphsToAdd.push( "facs_ctrl_SmileFullFace" ); - aMorphsToAdd.push( "facs_ctrl_Shock" ); - aMorphsToAdd.push( "facs_ctrl_Frown" ); - aMorphsToAdd.push( "facs_ctrl_Flirting" ); - aMorphsToAdd.push( "facs_ctrl_Angry" ); - aMorphsToAdd.push( "facs_ctrl_Afraid" ); - - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - /*********************************************************************/ - // Void: ... - function handleGen8FaceMorphsButton() - { - var aMorphsToAdd = []; - - aMorphsToAdd.push( "eCTRLBrowUp-DownR" ); - aMorphsToAdd.push( "eCTRLBrowUp-DownL" ); - aMorphsToAdd.push( "eCTRLBrowUp-Down" ); - aMorphsToAdd.push( "eCTRLBrowSqueezeR" ); - aMorphsToAdd.push( "eCTRLBrowSqueezeL" ); - aMorphsToAdd.push( "eCTRLBrowSqueeze" ); - aMorphsToAdd.push( "eCTRLBrowOuterUp-DownR" ); - aMorphsToAdd.push( "eCTRLBrowOuterUp-DownL" ); - aMorphsToAdd.push( "eCTRLBrowOuterUp-Down" ); - aMorphsToAdd.push( "eCTRLBrowInnerUp-DownR" ); - aMorphsToAdd.push( "eCTRLBrowInnerUp-DownL" ); - aMorphsToAdd.push( "eCTRLBrowInnerUp-Down" ); - aMorphsToAdd.push( "PHMBrowCompression_HD_div2" ); - aMorphsToAdd.push( "eCTRLJawSide-Side" ); - aMorphsToAdd.push( "eCTRLJawOut-In" ); - aMorphsToAdd.push( "eCTRLCheeksBalloonPucker" ); - aMorphsToAdd.push( "eCTRLCheeksBalloon-SuckInR" ); - aMorphsToAdd.push( "eCTRLCheeksBalloon-SuckInL" ); - aMorphsToAdd.push( "eCTRLCheeksBalloon-SuckIn" ); - aMorphsToAdd.push( "eCTRLCheekFlex-SlackR" ); - aMorphsToAdd.push( "eCTRLCheekFlex-SlackL" ); - aMorphsToAdd.push( "eCTRLCheekFlex-Slack" ); - aMorphsToAdd.push( "eCTRLCheekEyeFlexR" ); - aMorphsToAdd.push( "eCTRLCheekEyeFlexL" ); - aMorphsToAdd.push( "eCTRLCheekEyeFlex" ); - aMorphsToAdd.push( "eCTRLCheekCrease" ); - aMorphsToAdd.push( "CTRLCheeksDimpleCreaseHD" ); - aMorphsToAdd.push( "PHMCheeksDimpleCreaseR_HD_div2" ); - aMorphsToAdd.push( "PHMCheeksDimpleCreaseL_HD_div2" ); - aMorphsToAdd.push( "ePHMCheekCreaseR" ); - aMorphsToAdd.push( "ePHMCheekCreaseL" ); - aMorphsToAdd.push( "eCTRLEyesUpDown" ); - aMorphsToAdd.push( "eCTRLEyesSquint-WidenR" ); - aMorphsToAdd.push( "eCTRLEyesSquint-WidenL" ); - aMorphsToAdd.push( "eCTRLEyesSquint-Widen" ); - aMorphsToAdd.push( "eCTRLEyesSideSide" ); - aMorphsToAdd.push( "eCTRLEyesRelaxR" ); - aMorphsToAdd.push( "eCTRLEyesRelaxL" ); - aMorphsToAdd.push( "eCTRLEyesRelax" ); - aMorphsToAdd.push( "eCTRLEyesCrossed" ); - aMorphsToAdd.push( "eCTRLEyesClosedR" ); - aMorphsToAdd.push( "eCTRLEyesClosedL" ); - aMorphsToAdd.push( "eCTRLEyesClosed" ); - aMorphsToAdd.push( "eCTRLEyelidsUpperUp-DownR" ); - aMorphsToAdd.push( "eCTRLEyelidsUpperUp-DownL" ); - aMorphsToAdd.push( "eCTRLEyelidsUpperUp-Down" ); - aMorphsToAdd.push( "eCTRLEyelidsLowerUpDownR" ); - aMorphsToAdd.push( "eCTRLEyelidsLowerUpDownL" ); - aMorphsToAdd.push( "eCTRLEyelidsLowerUpDown" ); - aMorphsToAdd.push( "eCTRLTongueUp-Down" ); - aMorphsToAdd.push( "eCTRLTongueSide-Side" ); - aMorphsToAdd.push( "eCTRLTongueRaise-Lower" ); - aMorphsToAdd.push( "eCTRLTongueNarrow-Wide" ); - aMorphsToAdd.push( "eCTRLTongueIn-Out" ); - aMorphsToAdd.push( "eCTRLTongueCurl" ); - aMorphsToAdd.push( "eCTRLTongueBendTip" ); - aMorphsToAdd.push( "eCTRLMouthWide-NarrowR" ); - aMorphsToAdd.push( "eCTRLMouthWide-NarrowL" ); - aMorphsToAdd.push( "eCTRLMouthWide-Narrow" ); - aMorphsToAdd.push( "eCTRLMouthSmileSimpleR" ); - aMorphsToAdd.push( "eCTRLMouthSmileSimpleL" ); - aMorphsToAdd.push( "eCTRLMouthSmileSimple" ); - aMorphsToAdd.push( "eCTRLMouthSmileOpen" ); - aMorphsToAdd.push( "eCTRLMouthSmile" ); - aMorphsToAdd.push( "eCTRLMouthSide-Side" ); - aMorphsToAdd.push( "eCTRLMouthOpen" ); - aMorphsToAdd.push( "eCTRLMouthFrown" ); - aMorphsToAdd.push( "eCTRLMouthCornerUp-DownR" ); - aMorphsToAdd.push( "eCTRLMouthCornerUp-DownL" ); - aMorphsToAdd.push( "eCTRLMouthCornerUp-Down" ); - aMorphsToAdd.push( "eCTRLMouthCornerForward-BackR" ); - aMorphsToAdd.push( "eCTRLMouthCornerForward-BackL" ); - aMorphsToAdd.push( "eCTRLMouthCornerForward-Back" ); - aMorphsToAdd.push( "eCTRLMouthClosed" ); - aMorphsToAdd.push( "eCTRLLipTopUp-DownR" ); - aMorphsToAdd.push( "eCTRLLipTopUp-DownL" ); - aMorphsToAdd.push( "eCTRLLipTopUp-Down" ); - aMorphsToAdd.push( "eCTRLLipTopOut-InR" ); - aMorphsToAdd.push( "eCTRLLipTopOut-InL" ); - aMorphsToAdd.push( "eCTRLLipTopOut-In" ); - aMorphsToAdd.push( "eCTRLLipsPuckerWide" ); - aMorphsToAdd.push( "eCTRLLipsPucker-Pressed" ); - aMorphsToAdd.push( "eCTRLLipsPartCenter" ); - aMorphsToAdd.push( "eCTRLLipsPart" ); - aMorphsToAdd.push( "eCTRLLipsClosed-BareTeeth" ); - aMorphsToAdd.push( "eCTRLLipBottomUp-DownR" ); - aMorphsToAdd.push( "eCTRLLipBottomUp-DownL" ); - aMorphsToAdd.push( "eCTRLLipBottomUp-Down" ); - aMorphsToAdd.push( "eCTRLLipBottomOut-InR" ); - aMorphsToAdd.push( "eCTRLLipBottomOut-InL" ); - aMorphsToAdd.push( "eCTRLLipBottomOut-In" ); - aMorphsToAdd.push( "eCTRLNostrilsFlex" ); - aMorphsToAdd.push( "eCTRLNoseWrinkle" ); - aMorphsToAdd.push( "eCTRLNoseScrunch" ); - aMorphsToAdd.push( "PHMNoseCompression_HD_div2" ); - aMorphsToAdd.push( "eCTRLCheeksSuckInR" ); - aMorphsToAdd.push( "eCTRLCheeksBalloonR" ); - aMorphsToAdd.push( "eCTRLCheeksSuckInL" ); - aMorphsToAdd.push( "eCTRLCheeksBalloonL" ); - aMorphsToAdd.push( "eCTRLCheeksBalloonL" ); - aMorphsToAdd.push( "eCTRLCheekSlackR" ); - aMorphsToAdd.push( "eCTRLCheekFlexR" ); - aMorphsToAdd.push( "eCTRLCheekSlackL" ); - aMorphsToAdd.push( "eCTRLCheekFlexL" ); - aMorphsToAdd.push( "eCTRLEyesWidenR" ); - aMorphsToAdd.push( "eCTRLEyesSquintR" ); - aMorphsToAdd.push( "eCTRLEyesWidenL" ); - aMorphsToAdd.push( "eCTRLEyesSquintL" ); - aMorphsToAdd.push( "eCTRLEyelidsUpperUpR" ); - aMorphsToAdd.push( "eCTRLEyelidsUpperDownR" ); - aMorphsToAdd.push( "eCTRLEyelidsUpperUpL" ); - aMorphsToAdd.push( "eCTRLEyelidsUpperDownL" ); - aMorphsToAdd.push( "eCTRLMouthWideR" ); - aMorphsToAdd.push( "eCTRLMouthNarrowR" ); - aMorphsToAdd.push( "eCTRLMouthWideL" ); - aMorphsToAdd.push( "eCTRLMouthNarrowL" ); - aMorphsToAdd.push( "eCTRLMouthSide-SideR" ); - aMorphsToAdd.push( "eCTRLMouthSide-SideL" ); - aMorphsToAdd.push( "eCTRLMouthOpenLipsClose" ); - aMorphsToAdd.push( "eCTRLLipsPucker" ); - aMorphsToAdd.push( "eCTRLLipsPressed" ); - aMorphsToAdd.push( "eCTRLMouthBareTeeth" ); - aMorphsToAdd.push( "eJCMCheeksBalloonR" ); - aMorphsToAdd.push( "eJCMCheeksBalloonL" ); - aMorphsToAdd.push( "eJCMLipsPucker" ); - aMorphsToAdd.push( "eJCMLipsPressed" ); - aMorphsToAdd.push( "eJCMMouthBareTeeth" ); - - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - /*********************************************************************/ - // Void: ... - function handleGen8_1FaceMorphsButton() - { - var aMorphsToAdd = []; - aMorphsToAdd.push( "facs_bs_BrowOuterUpRight_div2" ); - aMorphsToAdd.push( "facs_bs_BrowOuterUpLeft_div2" ); - aMorphsToAdd.push( "facs_bs_BrowInnerUpRight_div2" ); - aMorphsToAdd.push( "facs_bs_BrowInnerUpLeft_div2" ); - aMorphsToAdd.push( "facs_bs_BrowDownRight_div2" ); - aMorphsToAdd.push( "facs_bs_BrowDownLeft_div2" ); - aMorphsToAdd.push( "facs_bs_CheekSquintRight_div2" ); - aMorphsToAdd.push( "facs_bs_CheekSquintLeft_div2" ); - aMorphsToAdd.push( "facs_bs_CheekPuffRight_div2" ); - aMorphsToAdd.push( "facs_bs_CheekPuffLeft_div2" ); - aMorphsToAdd.push( "facs_jnt_EyeWideRight" ); - aMorphsToAdd.push( "facs_jnt_EyeWideLeft" ); - aMorphsToAdd.push( "facs_jnt_EyeLookUpRight" ); - aMorphsToAdd.push( "facs_jnt_EyeLookUpLeft" ); - aMorphsToAdd.push( "facs_jnt_EyeLookDownRight" ); - aMorphsToAdd.push( "facs_jnt_EyeLookDownLeft" ); - aMorphsToAdd.push( "facs_jnt_EyeBlinkRight" ); - aMorphsToAdd.push( "facs_jnt_EyeBlinkLeft" ); - aMorphsToAdd.push( "facs_cbs_EyeWideRight_div2" ); - aMorphsToAdd.push( "facs_cbs_EyeWideLeft_div2" ); - aMorphsToAdd.push( "facs_cbs_EyeBlinkRight_div2" ); - aMorphsToAdd.push( "facs_cbs_EyeBlinkLeft_div2" ); - aMorphsToAdd.push( "facs_bs_EyeSquintRight_div2" ); - aMorphsToAdd.push( "facs_bs_EyeSquintLeft_div2" ); - aMorphsToAdd.push( "facs_bs_EyeLookOutRight_div2" ); - aMorphsToAdd.push( "facs_bs_EyeLookOutLeft_div2" ); - aMorphsToAdd.push( "facs_bs_EyeLookInRight_div2" ); - aMorphsToAdd.push( "facs_bs_EyeLookInLeft_div2" ); - aMorphsToAdd.push( "facs_cbs_EyeLookUpRight_div2" ); - aMorphsToAdd.push( "facs_cbs_EyeLookUpLeft_div2" ); - aMorphsToAdd.push( "facs_cbs_EyeLookDownRight_div2" ); - aMorphsToAdd.push( "facs_cbs_EyeLookDownLeft_div2" ); - aMorphsToAdd.push( "facs_bs_NoseSneerRight_div2" ); - aMorphsToAdd.push( "facs_bs_NoseSneerLeft_div2" ); - aMorphsToAdd.push( "facs_bs_NasalFlare_div2" ); - aMorphsToAdd.push( "facs_jnt_TongueUp" ); - aMorphsToAdd.push( "facs_jnt_TongueTipBend" ); - aMorphsToAdd.push( "facs_jnt_TongueRight" ); - aMorphsToAdd.push( "facs_jnt_TongueLeft" ); - aMorphsToAdd.push( "facs_bs_TongueTipWide" ); - aMorphsToAdd.push( "facs_bs_TongueTipNarrow" ); - aMorphsToAdd.push( "facs_bs_TongueOut" ); - aMorphsToAdd.push( "facs_bs_TongueNarrow" ); - aMorphsToAdd.push( "facs_bs_TongueIn" ); - aMorphsToAdd.push( "facs_jnt_JawRight" ); - aMorphsToAdd.push( "facs_jnt_JawRecess" ); - aMorphsToAdd.push( "facs_jnt_JawOpen" ); - aMorphsToAdd.push( "facs_jnt_JawLeft" ); - aMorphsToAdd.push( "facs_jnt_JawForward" ); - aMorphsToAdd.push( "facs_cbs_JawOpen_div2" ); - aMorphsToAdd.push( "facs_cbs_JawLeft_div2" ); - aMorphsToAdd.push( "facs_cbs_JawForward_div2" ); - aMorphsToAdd.push( "facs_cbs_JawRecess_div2" ); - aMorphsToAdd.push( "facs_cbs_JawRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthUpperUpRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthUpperUpLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthStretchRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthStretchLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthSmileRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthSmileLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthShrugUpper_div2" ); - aMorphsToAdd.push( "facs_bs_MouthShrugLower_div2" ); - aMorphsToAdd.push( "facs_bs_MouthRollUpper_div2" ); - aMorphsToAdd.push( "facs_bs_MouthRollLower_div2" ); - aMorphsToAdd.push( "facs_bs_MouthRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthPucker_div2" ); - aMorphsToAdd.push( "facs_bs_MouthPressRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthPressLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthLowerDownRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthLowerDownLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthFunnel_div2" ); - aMorphsToAdd.push( "facs_bs_MouthFrownRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthFrownLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthDimpleRight_div2" ); - aMorphsToAdd.push( "facs_bs_MouthDimpleLeft_div2" ); - aMorphsToAdd.push( "facs_bs_MouthClose_div2" ); - aMorphsToAdd.push( "facs_cbs_MouthPuckerDetails_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_BOUR_div2" ); - aMorphsToAdd.push( "facs_cbs_BIUR_BOUR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_BOUL_div2" ); - aMorphsToAdd.push( "facs_cbs_BIUL_BOUL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_BIUR_div2" ); - aMorphsToAdd.push( "facs_cbs_BDR_BIUR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_BIUL_div2" ); - aMorphsToAdd.push( "facs_cbs_BDL_BIUL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_CSR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_CSL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_ELUR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_ELUL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_ELDR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_ELDL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_NSR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_ESR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_ELOR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBR_ELIR_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_NSL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_ESL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_ELOL_div2" ); - aMorphsToAdd.push( "facs_cbs_EBL_ELIL_div2" ); - aMorphsToAdd.push( "facs_cbs_JO_JR_div2" ); - aMorphsToAdd.push( "facs_cbs_JO_MR_div2" ); - aMorphsToAdd.push( "facs_cbs_JO_ML_div2" ); - aMorphsToAdd.push( "facs_cbs_JO_MF_div2" ); - aMorphsToAdd.push( "facs_cbs_JO_JL_div2" ); - aMorphsToAdd.push( "facs_cbs_MP_CPR_div2" ); - aMorphsToAdd.push( "facs_cbs_MP_CPL_div2" ); - aMorphsToAdd.push( "facs_cbs_MSR_MDR_div2" ); - aMorphsToAdd.push( "facs_cbs_MSL_MDL_div2" ); - aMorphsToAdd.push( "facs_cbs_MP_MF_div2" ); - aMorphsToAdd.push( "facs_cbs_MP_MC_div2" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookUp-DownRight" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookUp-DownLeft" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookSide-SideRight" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookSide-SideLeft" ); - // aMorphsToAdd.push( "facs_ctrl_EyeLookAuto" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookSide-Side" ); - aMorphsToAdd.push( "facs_ctrl_EyeBlink" ); - aMorphsToAdd.push( "facs_ctrl_EyeWide" ); - aMorphsToAdd.push( "facs_ctrl_EyeSquint" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookUp-Down" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookUpRight" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookUpLeft" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookOutRight" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookOutLeft" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookInRight" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookInLeft" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookDownRight" ); - aMorphsToAdd.push( "facs_ctrl_EyeLookDownLeft" ); - aMorphsToAdd.push( "eCTRLEyesClosedR" ); - aMorphsToAdd.push( "eCTRLEyesClosedL" ); - aMorphsToAdd.push( "facs_ctrl_BrowDown" ); - aMorphsToAdd.push( "facs_ctrl_BrowUp" ); - aMorphsToAdd.push( "facs_ctrl_BrowInnerUp" ); - aMorphsToAdd.push( "facs_ctrl_CheekSquint" ); - aMorphsToAdd.push( "facs_ctrl_CheekPuff" ); - aMorphsToAdd.push( "facs_ctrl_MouthLowerDown" ); - aMorphsToAdd.push( "facs_ctrl_MouthFrown" ); - aMorphsToAdd.push( "facs_ctrl_MouthDimple" ); - aMorphsToAdd.push( "facs_ctrl_MouthSmile" ); - aMorphsToAdd.push( "facs_ctrl_MouthUpperUp" ); - aMorphsToAdd.push( "facs_ctrl_MouthStretch" ); - aMorphsToAdd.push( "facs_ctrl_MouthPress" ); - aMorphsToAdd.push( "facs_ctrl_NoseSneer" ); - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - - /*********************************************************************/ - // Void: ... - function handleVismesMorphsButton() - { - var aMorphsToAdd = []; - - aMorphsToAdd.push( "eCTRLvAA" ); - aMorphsToAdd.push( "eCTRLvEE" ); - aMorphsToAdd.push( "eCTRLvEH" ); - aMorphsToAdd.push( "eCTRLvER" ); - aMorphsToAdd.push( "eCTRLvF" ); - aMorphsToAdd.push( "eCTRLvIH" ); - aMorphsToAdd.push( "eCTRLvIY" ); - aMorphsToAdd.push( "eCTRLvK" ); - aMorphsToAdd.push( "eCTRLvL" ); - aMorphsToAdd.push( "eCTRLvM" ); - aMorphsToAdd.push( "eCTRLvOW" ); - aMorphsToAdd.push( "eCTRLvS" ); - aMorphsToAdd.push( "eCTRLvSH" ); - aMorphsToAdd.push( "eCTRLvT" ); - aMorphsToAdd.push( "eCTRLvTH" ); - aMorphsToAdd.push( "eCTRLvUW" ); - aMorphsToAdd.push( "eCTRLvW" ); - - for( var i = 0; i < aMorphsToAdd.length; i++ ){ - sMorphName = aMorphsToAdd[i] - // Add the list for export - if(sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - refreshExportMorphList(); - }; - - /*********************************************************************/ - // Void : Refresh the list of preset csvs from the files in the folder - function refreshPresetsCombo() - { - // Need to understand disconnecting signals - disconnect( s_wPresetCombo, "currentIndexChanged(const QString&)", handlePresetChanged ); - var oDir; - var sPath; - - s_wPresetCombo.clear(); - s_wPresetCombo.addItem( "None" ); - - oDir = new DzDir( "" ); - oDir.setPath( s_sPresetPath ); - aPaths = oDir.entryList( "*csv" ); - for( var i = 0; i < aPaths.length; i++ ){ - sPath = aPaths[i] - s_wPresetCombo.addItem( sPath ) - } - connect( s_wPresetCombo, "currentIndexChanged(const QString&)", handlePresetChanged ); - }; - - /*********************************************************************/ - // Void : Call when the preset combo is changed by the user - function handlePresetChanged( sCustomName ) - { - s_aMorphsToExport = []; - if( sCustomName != undefined ){ - sPresetFilePath = s_sPresetPath + sCustomName; - } - else{ - sPresetName = s_wPresetCombo.currentText; - sPresetFilePath = s_sPresetPath + sPresetName; - } - oFile = new DzFile( sPresetFilePath ); - if( !oFile.open( DzFile.ReadOnly ) ){ - print( String( "Unable to open \"%1\" for Reading." ).arg( sPresetFilePath ) ); - return; - } - - aMorphLines = oFile.readLines(); - for( var i = 0; i < aMorphLines.length; i++ ){ - sMorphLine = aMorphLines[i] - if( sMorphLine.indexOf( "\"Export\"" ) > 0 ){ - aItems = sMorphLine.split(","); - sMorphName = aItems[0].replace("\"", "").replace("\"", ""); - if ( sMorphName in s_oMorphs - && !( containsObject( s_oMorphs[sMorphName], s_aMorphsToExport ) ) ){ - s_aMorphsToExport.push( s_oMorphs[sMorphName] ); - } - } - } - - refreshExportMorphList(); - oFile.close(); - }; - - /*********************************************************************/ - // String : Get the morph string in the format for the Daz FBX Export - function getMorphString() - { - var aMorphNamesToExport; - var sMorphString - - if ( s_aMorphsToExport.length == 0 ) - { - return ""; - } - aMorphNamesToExport = []; - sMorphString = ""; - for( var i = 0; i < s_aMorphsToExport.length; i++ ){ - oMorphInfo = s_aMorphsToExport[i] - aMorphNamesToExport.push( oMorphInfo.name ); - } - sMorphString = aMorphNamesToExport.join("\n1\n"); - sMorphString += "\n1\n.CTRLVS\n2\nAnything\n0"; - return sMorphString; - }; - - /*********************************************************************/ - // String : Get the morph string in the format used for presets - function getMorphCSVString() - { - var sMorphString; - - s_aMorphList = []; - sMorphString = ""; - for( var i = 0; i < s_aMorphsToExport.length; i++ ){ - oMorphInfo = s_aMorphsToExport[i] - s_aMorphList.push(oMorphInfo.name); - sMorphString += "\"" + oMorphInfo.name + "\",\"Export\"\n"; - } - sMorphString += "\".CTRLVS\", \"Ignore\"\n"; - sMorphString += "\"Anything\", \"Bake\"\n"; - return sMorphString; - }; - - /*********************************************************************/ - function main() - { - var wDlg = new DzBasicDialog(); - initilizeArgs(); - morphSelectionDialog( wDlg ); - prepareDialog(); - // When user Cancels the dialog - if( !wDlg.exec() ){ - return false; - } - return true - - }; - - /*********************************************************************/ - if( main() ) - { - for( var i = 0; i < s_aMorphsToExport.length; i++ ){ - var oMorphInfo = s_aMorphsToExport[i] - checkMorphConnections( oMorphInfo ); - } - return s_aMorphsToExport; - } - else{ - return []; - } - - -})( getArguments() ); - diff --git a/DazStudioPlugin/CMakeLists.txt b/DazStudioPlugin/CMakeLists.txt new file mode 100644 index 0000000..a3f5f21 --- /dev/null +++ b/DazStudioPlugin/CMakeLists.txt @@ -0,0 +1,76 @@ +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(DZ_PLUGIN_TGT_NAME dzbridge_c4d) +set(DZ_PLUGIN_PROJECT_NAME "DzBridge-C4D") + +include_directories(${COMMON_LIB_INCLUDE_DIR}) + +# if building a plugin and you want the compiled result placed in the Daz Studio ./plugins directory +if(DAZ_STUDIO_EXE_DIR) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DAZ_STUDIO_EXE_DIR}/plugins) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DAZ_STUDIO_EXE_DIR}/plugins) +endif() + +if(WIN32) + set(OS_SOURCES + DzC4DBridge.rc + ) +elseif(APPLE) + set(OS_SOURCES "") +endif() + +set(DPC_IMAGES_CPP "${CMAKE_CURRENT_BINARY_DIR}/DzC4DIcon.cpp" ) +set(DPC_SRC_IMAGES + "Resources/Images/Daz to Cinema 4D.png" +) + +add_custom_command(OUTPUT ${DPC_IMAGES_CPP} + COMMAND ${DAZ_SDK_DPC_EXE} -mode image -o ${DPC_IMAGES_CPP} ${DPC_SRC_IMAGES} + DEPENDS ${DPC_SRC_IMAGES} + WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} +) +set_property(SOURCE ${DPC_IMAGES_CPP} PROPERTY SKIP_AUTOMOC ON) + +add_library( ${DZ_PLUGIN_TGT_NAME} SHARED + DzC4DAction.cpp + DzC4DAction.h + DzC4DDialog.cpp + DzC4DDialog.h + pluginmain.cpp + version.h + Resources/resources.qrc + ${DPC_IMAGES_CPP} + ${OS_SOURCES} + ${QA_SRCS} +) + +target_include_directories(${DZ_PLUGIN_TGT_NAME} + PUBLIC +) + +target_link_libraries(${DZ_PLUGIN_TGT_NAME} + PRIVATE + dzcore + dzbridge-static + ${DZSDK_QT_CORE_TARGET} + ${DZSDK_QT_GUI_TARGET} + ${DZSDK_QT_SCRIPT_TARGET} + ${DZSDK_QT_NETWORK_TARGET} + ${FBX_IMPORT_LIBS} + ${OPENSUBDIV_LIB} +) + +set_target_properties (${DZ_PLUGIN_TGT_NAME} + PROPERTIES + FOLDER "" + PROJECT_LABEL ${DZ_PLUGIN_PROJECT_NAME} +) + +target_compile_definitions(${DZ_PLUGIN_TGT_NAME} + PUBLIC + $<$:UNITTEST_DZBRIDGE> + ${DZBRIDGE_LIB_FLAGS} + __LEGACY_PATHS__ +) diff --git a/DazStudioPlugin/DzC4DAction.cpp b/DazStudioPlugin/DzC4DAction.cpp new file mode 100644 index 0000000..b879aeb --- /dev/null +++ b/DazStudioPlugin/DzC4DAction.cpp @@ -0,0 +1,333 @@ +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "QtCore/qmetaobject.h" +#include "dzmodifier.h" +#include "dzgeometry.h" +#include "dzweightmap.h" +#include "dzfacetshape.h" +#include "dzfacetmesh.h" +#include "dzfacegroup.h" +#include "dzprogress.h" + +#include "DzC4DAction.h" +#include "DzC4DDialog.h" +#include "DzBridgeMorphSelectionDialog.h" +#include "DzBridgeSubdivisionDialog.h" + +#ifdef WIN32 +#include +#endif + +#include "dzbridge.h" + +DzC4DAction::DzC4DAction() : + DzBridgeAction(tr("Daz To &Cinema 4D"), tr("Send the selected node to Cinema 4D.")) +{ + m_nNonInteractiveMode = 0; + m_sAssetType = QString("SkeletalMesh"); + //Setup Icon + QString iconName = "Daz to Cinema 4D"; + QPixmap basePixmap = QPixmap::fromImage(getEmbeddedImage(iconName.toLatin1())); + QIcon icon; + icon.addPixmap(basePixmap, QIcon::Normal, QIcon::Off); + QAction::setIcon(icon); + +} + +bool DzC4DAction::createUI() +{ + // Check if the main window has been created yet. + // If it hasn't, alert the user and exit early. + DzMainWindow* mw = dzApp->getInterface(); + if (!mw) + { + if (m_nNonInteractiveMode == 0) QMessageBox::warning(0, tr("Error"), + tr("The main window has not been created yet."), QMessageBox::Ok); + + return false; + } + + // m_subdivisionDialog creation REQUIRES valid Character or Prop selected + if (dzScene->getNumSelectedNodes() != 1) + { + if (m_nNonInteractiveMode == 0) QMessageBox::warning(0, tr("Error"), + tr("Please select one Character or Prop to send."), QMessageBox::Ok); + + return false; + } + + // Create the dialog + if (!m_bridgeDialog) + { + m_bridgeDialog = new DzC4DDialog(mw); + } + else + { + DzC4DDialog* c4dDialog = qobject_cast(m_bridgeDialog); + if (c4dDialog) + { + c4dDialog->resetToDefaults(); + c4dDialog->loadSavedSettings(); + } + } + + if (!m_subdivisionDialog) m_subdivisionDialog = DZ_BRIDGE_NAMESPACE::DzBridgeSubdivisionDialog::Get(m_bridgeDialog); + if (!m_morphSelectionDialog) m_morphSelectionDialog = DZ_BRIDGE_NAMESPACE::DzBridgeMorphSelectionDialog::Get(m_bridgeDialog); + + return true; +} + +void DzC4DAction::executeAction() +{ + // CreateUI() disabled for debugging -- 2022-Feb-25 + /* + // Create and show the dialog. If the user cancels, exit early, + // otherwise continue on and do the thing that required modal + // input from the user. + if (createUI() == false) + return; + */ + + // Check if the main window has been created yet. + // If it hasn't, alert the user and exit early. + DzMainWindow* mw = dzApp->getInterface(); + if (!mw) + { + if (m_nNonInteractiveMode == 0) + { + QMessageBox::warning(0, tr("Error"), + tr("The main window has not been created yet."), QMessageBox::Ok); + } + return; + } + + // Create and show the dialog. If the user cancels, exit early, + // otherwise continue on and do the thing that required modal + // input from the user. + if (dzScene->getNumSelectedNodes() != 1) + { + DzNodeList rootNodes = buildRootNodeList(); + if (rootNodes.length() == 1) + { + dzScene->setPrimarySelection(rootNodes[0]); + } + else + { + if (m_nNonInteractiveMode == 0) + { + QMessageBox::warning(0, tr("Error"), + tr("Please select one Character or Prop to send."), QMessageBox::Ok); + } + return; + } + } + + // Create the dialog + if (m_bridgeDialog == nullptr) + { + m_bridgeDialog = new DzC4DDialog(mw); + } + else + { + if (m_nNonInteractiveMode == 0) + { + m_bridgeDialog->resetToDefaults(); + m_bridgeDialog->loadSavedSettings(); + } + } + + // Prepare member variables when not using GUI + if (m_nNonInteractiveMode == 1) + { +// if (m_sRootFolder != "") m_bridgeDialog->getIntermediateFolderEdit()->setText(m_sRootFolder); + + if (m_aMorphListOverride.isEmpty() == false) + { + m_bEnableMorphs = true; + m_sMorphSelectionRule = m_aMorphListOverride.join("\n1\n"); + m_sMorphSelectionRule += "\n1\n.CTRLVS\n2\nAnything\n0"; + if (m_morphSelectionDialog == nullptr) + { + m_morphSelectionDialog = DZ_BRIDGE_NAMESPACE::DzBridgeMorphSelectionDialog::Get(m_bridgeDialog); + } + m_mMorphNameToLabel.clear(); + foreach(QString morphName, m_aMorphListOverride) + { + QString label = m_morphSelectionDialog->GetMorphLabelFromName(morphName); + m_mMorphNameToLabel.insert(morphName, label); + } + } + else + { + m_bEnableMorphs = false; + m_sMorphSelectionRule = ""; + m_mMorphNameToLabel.clear(); + } + + } + + // If the Accept button was pressed, start the export + int dlgResult = -1; + if (m_nNonInteractiveMode == 0) + { + dlgResult = m_bridgeDialog->exec(); + } + if (m_nNonInteractiveMode == 1 || dlgResult == QDialog::Accepted) + { + // DB 2021-10-11: Progress Bar + DzProgress* exportProgress = new DzProgress("Sending to Cinema 4D...", 10); + + // Read Common GUI values + readGui(m_bridgeDialog); + + // Read Custom GUI values +// DzC4DDialog* c4dDialog = qobject_cast(m_bridgeDialog); + +#if __LEGACY_PATHS__ + if (m_sAssetType == "SkeletalMesh") + { + m_sRootFolder = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + "/DAZ 3D/Bridges/Daz To Cinema 4D/Exports/FIG"; + m_sRootFolder = m_sRootFolder.replace("\\", "/"); + m_sExportSubfolder = "FIG0"; + m_sExportFbx = "B_FIG"; + m_sAssetName = "FIG"; + } + else + { + m_sRootFolder = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + "/DAZ 3D/Bridges/Daz To Cinema 4D/Exports/ENV"; + m_sRootFolder = m_sRootFolder.replace("\\", "/"); + m_sExportSubfolder = "ENV0"; + m_sExportFbx = "B_ENV"; + m_sAssetName = "ENV"; + } + m_sDestinationPath = m_sRootFolder + "/" + m_sExportSubfolder + "/"; + m_sDestinationFBX = m_sDestinationPath + m_sExportFbx + ".fbx"; +#endif + + //Create Daz3D folder if it doesn't exist + QDir dir; + dir.mkpath(m_sRootFolder); + exportProgress->step(); + + exportHD(exportProgress); + + // DB 2021-10-11: Progress Bar + exportProgress->finish(); + + // DB 2021-09-02: messagebox "Export Complete" + if (m_nNonInteractiveMode == 0) + { + QMessageBox::information(0, "Daz To Cinema 4D Bridge", + tr("Export phase from Daz Studio complete. Please switch to Cinema 4D to begin Import phase."), QMessageBox::Ok); + } + + } +} + + +void DzC4DAction::writeConfiguration() +{ + QString DTUfilename = m_sDestinationPath + m_sAssetName + ".dtu"; + QFile DTUfile(DTUfilename); + DTUfile.open(QIODevice::WriteOnly); + DzJsonWriter writer(&DTUfile); + writer.startObject(true); + + writeDTUHeader(writer); + + if (m_sAssetType.toLower().contains("mesh")) + { + QTextStream *pCVSStream = nullptr; + if (m_bExportMaterialPropertiesCSV) + { + QString filename = m_sDestinationPath + m_sAssetName + "_Maps.csv"; + QFile file(filename); + file.open(QIODevice::WriteOnly); + pCVSStream = new QTextStream(&file); + *pCVSStream << "Version, Object, Material, Type, Color, Opacity, File" << endl; + } + writeAllMaterials(m_pSelectedNode, writer, pCVSStream); + writeAllMorphs(writer); + + writer.startMemberObject("MorphLinks"); + writer.finishObject(); + writer.startMemberArray("MorphNames"); + writer.finishArray(); + + DzBoneList aBoneList = getAllBones(m_pSelectedNode); + + writeSkeletonData(m_pSelectedNode, writer); + writeHeadTailData(m_pSelectedNode, writer); + + writeJointOrientation(aBoneList, writer); + writeLimitData(aBoneList, writer); + writePoseData(m_pSelectedNode, writer, true); + writeAllSubdivisions(writer); + writeAllDforceInfo(m_pSelectedNode, writer); + } + + if (m_sAssetType == "Pose") + { + writeAllPoses(writer); + } + + if (m_sAssetType == "Environment") + { + writeEnvironment(writer); + } + + writer.finishObject(); + DTUfile.close(); + +} + +// Setup custom FBX export options +void DzC4DAction::setExportOptions(DzFileIOSettings& ExportOptions) +{ + ExportOptions.setBoolValue("doEmbed", false); + ExportOptions.setBoolValue("doDiffuseOpacity", false); + ExportOptions.setBoolValue("doCopyTextures", false); + +} + +QString DzC4DAction::readGuiRootFolder() +{ + QString rootFolder = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + QDir::separator() + "DazToC4D"; +#if __LEGACY_PATHS__ + rootFolder = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + "/DAZ 3D/Bridges/Daz To Cinema 4D/Exports/FIG/FIG0"; + rootFolder = rootFolder.replace("\\","/"); +#else + if (m_bridgeDialog) + { + QLineEdit* intermediateFolderEdit = nullptr; + DzC4DDialog* c4dDialog = qobject_cast(m_bridgeDialog); + + if (c4dDialog) + intermediateFolderEdit = c4dDialog->getAssetsFolderEdit(); + + if (intermediateFolderEdit) + rootFolder = intermediateFolderEdit->text().replace("\\", "/") + "/Daz3D"; + } +#endif + + return rootFolder; +} + +#include "moc_DzC4DAction.cpp" diff --git a/DazStudioPlugin/DzC4DAction.h b/DazStudioPlugin/DzC4DAction.h new file mode 100644 index 0000000..9ca1614 --- /dev/null +++ b/DazStudioPlugin/DzC4DAction.h @@ -0,0 +1,31 @@ +#pragma once +#include +#include +#include +#include +#include +#include +#include "DzC4DDialog.h" + +class UnitTest_DzC4DAction; + +#include "dzbridge.h" + +class DzC4DAction : public DZ_BRIDGE_NAMESPACE::DzBridgeAction { + Q_OBJECT +public: + DzC4DAction(); + +protected: + + void executeAction(); + Q_INVOKABLE bool createUI(); + Q_INVOKABLE void writeConfiguration(); + Q_INVOKABLE void setExportOptions(DzFileIOSettings& ExportOptions); + QString readGuiRootFolder(); + +#ifdef UNITTEST_DZBRIDGE + friend class UnitTest_DzC4DAction; +#endif + +}; diff --git a/DazStudioPlugin/DzC4DBridge.rc b/DazStudioPlugin/DzC4DBridge.rc new file mode 100644 index 0000000000000000000000000000000000000000..4f2044f8b660c2db22ba4ed32f7f1f57aabf81bf GIT binary patch literal 3844 zcmd6qT~8W86o$`rlm3S--e}q?Af{>WM3EX%jC`a`nh+|2CMpInX-$87+vlBOz>&o& z_JV9?XLn}K*L%Kp|NP#t4NL6MF6`6>*0&*}Ya`a0tPSnf+IGp?j=kkdtY>F-%^0vg zV(zduU>4miPp3R5youX|-Ed~zUfV0AY`A%a)oXSyIo)w*Gc)w-c5ayol_;0*3N|HH z!k!-X2(5E$U$q7+7ZY@9JbA2!ww8j{&{-;e!luiKHx8MuLrMs*+P3Z47i-xG(rQ*k z!U-NJv9fCwF7f@vmCU8A!{fxtP?YQl`ZXuD!s-#L4dyaC3B3G@KUd~`ABmss9eXv- z73ZF4v0IzivV0y38U@dVS&^=I9)fot&xLi(8cnQfaW8>i4K%7C)?z-wCsk01cfz_T z6He@dSLwl-#PZ;oW#qVP=*?3cBc+O08~C?ALs#JB)`T`^g)vo-v*)~1M$be1ShE9k z$l4ENd|*cse2gjc6lsc|5#^pZFKxeU zE8QOTrQLB=@ew<_qV6-zwy*^>e%-)L3PMyw>*<`UJEt*p|(@K zRe?0(s=G~Xt5Mw>*sFfxyGfI$1M=Nt5W3a!&9X;Yg*m~J5??2ES95n<)lydp`E8}YFzyEwZ3FCw= z@b6d=y7M{wpYPMeKm1>d|Ih-C%ZEkKNE*(M_iOr}{$HQscX9d)YbwNY literal 0 HcmV?d00001 diff --git a/DazStudioPlugin/DzC4DDialog.cpp b/DazStudioPlugin/DzC4DDialog.cpp new file mode 100644 index 0000000..ea634dc --- /dev/null +++ b/DazStudioPlugin/DzC4DDialog.cpp @@ -0,0 +1,351 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dzapp.h" +#include "dzscene.h" +#include "dzstyle.h" +#include "dzmainwindow.h" +#include "dzactionmgr.h" +#include "dzaction.h" +#include "dzskeleton.h" +#include "qstandarditemmodel.h" + +#include "DzC4DDialog.h" +#include "DzBridgeMorphSelectionDialog.h" +#include "DzBridgeSubdivisionDialog.h" + +#include "version.h" + +/***************************** +Local definitions +*****************************/ +#define DAZ_BRIDGE_PLUGIN_NAME "Daz To Cinema 4D" + +#include "dzbridge.h" + +DzC4DDialog::DzC4DDialog(QWidget* parent) : + DzBridgeDialog(parent, DAZ_BRIDGE_PLUGIN_NAME) +{ + intermediateFolderEdit = nullptr; + intermediateFolderButton = nullptr; + + settings = new QSettings("Daz 3D", "DazToC4D"); + + // Declarations + int margin = style()->pixelMetric(DZ_PM_GeneralMargin); + int wgtHeight = style()->pixelMetric(DZ_PM_ButtonHeight); + int btnMinWidth = style()->pixelMetric(DZ_PM_ButtonMinWidth); + + // Set the dialog title + int revision = PLUGIN_REV % 1000; +#ifdef _DEBUG + setWindowTitle(tr("Daz To Cinema 4D Bridge v%1.%2 Build %3.%4").arg(PLUGIN_MAJOR).arg(PLUGIN_MINOR).arg(revision).arg(PLUGIN_BUILD)); +#else + setWindowTitle(tr("Daz To Cinema 4D Bridge v%1.%2").arg(PLUGIN_MAJOR).arg(PLUGIN_MINOR)); +#endif + + // Disable Unsupported AssetType ComboBox Options + QStandardItemModel* model = qobject_cast(assetTypeCombo->model()); + QStandardItem* item = nullptr; + item = model->findItems("Environment").first(); + if (item) item->setFlags(item->flags() & ~Qt::ItemIsEnabled); + item = model->findItems("Pose").first(); + if (item) item->setFlags(item->flags() & ~Qt::ItemIsEnabled); + + // Connect new asset type handler + connect(assetTypeCombo, SIGNAL(activated(int)), this, SLOT(HandleAssetTypeComboChange(int))); + + // Intermediate Folder + QHBoxLayout* intermediateFolderLayout = new QHBoxLayout(); + intermediateFolderEdit = new QLineEdit(this); + intermediateFolderButton = new QPushButton("...", this); + intermediateFolderLayout->addWidget(intermediateFolderEdit); + intermediateFolderLayout->addWidget(intermediateFolderButton); + connect(intermediateFolderButton, SIGNAL(released()), this, SLOT(HandleSelectIntermediateFolderButton())); + + // Advanced Options +#if __LEGACY_PATHS__ + intermediateFolderEdit->setVisible(false); + intermediateFolderButton->setVisible(false); +#else + QFormLayout* advancedLayout = qobject_cast(advancedWidget->layout()); + if (advancedLayout) + { + advancedLayout->addRow("Intermediate Folder", intermediateFolderLayout); + } +#endif + + // Configure Target Plugin Installer + renameTargetPluginInstaller("Cinema 4D Plugin Installer"); + m_TargetSoftwareVersionCombo->setVisible(false); + //m_TargetSoftwareVersionCombo->clear(); + //m_TargetSoftwareVersionCombo->addItem("Select Cinema 4D Version"); + //m_TargetSoftwareVersionCombo->addItem("Cinema 4D R23"); + //m_TargetSoftwareVersionCombo->addItem("Cinema 4D R24"); + //m_TargetSoftwareVersionCombo->addItem("Cinema 4D R25"); + showTargetPluginInstaller(true); + + // Make the dialog fit its contents, with a minimum width, and lock it down + resize(QSize(500, 0).expandedTo(minimumSizeHint())); + setFixedWidth(width()); + setFixedHeight(height()); + + update(); + + // Help + assetNameEdit->setWhatsThis("This is the name the asset will use in C4D."); + assetTypeCombo->setWhatsThis("Skeletal Mesh for something with moving parts, like a character\nStatic Mesh for things like props\nAnimation for a character animation."); + intermediateFolderEdit->setWhatsThis("Daz to C4D will collect the assets in a subfolder under this folder. Cinema 4D will import them from here."); + intermediateFolderButton->setWhatsThis("Daz to C4D will collect the assets in a subfolder under this folder. Cinema 4D will import them from here."); + m_wTargetPluginInstaller->setWhatsThis("You can install the Cinema 4D Plugin by selecting the desired Cinema 4D version and then clicking Install."); + + // Set Defaults + resetToDefaults(); + + // Load Settings + loadSavedSettings(); + +} + +bool DzC4DDialog::loadSavedSettings() +{ + DzBridgeDialog::loadSavedSettings(); + + if (!settings->value("IntermediatePath").isNull()) + { + QString directoryName = settings->value("IntermediatePath").toString(); + intermediateFolderEdit->setText(directoryName); + } + else + { + QString DefaultPath = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + QDir::separator() + "DazToC4D"; + intermediateFolderEdit->setText(DefaultPath); + } + + return true; +} + +void DzC4DDialog::resetToDefaults() +{ + m_DontSaveSettings = true; + DzBridgeDialog::resetToDefaults(); + + QString DefaultPath = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation) + QDir::separator() + "DazToC4D"; + intermediateFolderEdit->setText(DefaultPath); + + DzNode* Selection = dzScene->getPrimarySelection(); + if (dzScene->getFilename().length() > 0) + { + QFileInfo fileInfo = QFileInfo(dzScene->getFilename()); + assetNameEdit->setText(fileInfo.baseName().remove(QRegExp("[^A-Za-z0-9_]"))); + } + else if (dzScene->getPrimarySelection()) + { + assetNameEdit->setText(Selection->getLabel().remove(QRegExp("[^A-Za-z0-9_]"))); + } + + if (qobject_cast(Selection)) + { + assetTypeCombo->setCurrentIndex(0); + } + else + { + assetTypeCombo->setCurrentIndex(1); + } + m_DontSaveSettings = false; +} + +void DzC4DDialog::HandleSelectIntermediateFolderButton() +{ + // DB (2021-05-15): prepopulate with existing folder string + QString directoryName = "/home"; + if (settings != nullptr && settings->value("IntermediatePath").isNull() != true) + { + directoryName = settings->value("IntermediatePath").toString(); + } + directoryName = QFileDialog::getExistingDirectory(this, tr("Choose Directory"), + directoryName, + QFileDialog::ShowDirsOnly + | QFileDialog::DontResolveSymlinks); + + if (directoryName != NULL) + { + intermediateFolderEdit->setText(directoryName); + if (settings != nullptr) + { + settings->setValue("IntermediatePath", directoryName); + } + } +} + +void DzC4DDialog::HandleAssetTypeComboChange(int state) +{ + QString assetNameString = assetNameEdit->text(); + + // enable/disable Morphs and Subdivision only if Skeletal selected + if (assetTypeCombo->currentText() != "Skeletal Mesh") + { + morphsEnabledCheckBox->setChecked(false); + subdivisionEnabledCheckBox->setChecked(false); + } + + // if "Animation", change assetname + if (assetTypeCombo->currentText() == "Animation") + { + // check assetname is in @anim[0000] format + if (!assetNameString.contains("@") || assetNameString.contains(QRegExp("@anim[0-9]*"))) + { + // extract true assetName and recompose animString + assetNameString = assetNameString.left(assetNameString.indexOf("@")); + // get importfolder using corrected assetNameString + QString importFolderPath = settings->value("AssetsPath").toString() + QDir::separator() + "Daz3D" + QDir::separator() + assetNameString + QDir::separator(); + + // create anim filepath + uint animCounter = 0; + QString animString = assetNameString + QString("@anim%1").arg(animCounter, 4, 10, QChar('0')); + QString filePath = importFolderPath + animString + ".fbx"; + + // if anim file exists, then increment anim filename counter + while (QFileInfo(filePath).exists()) + { + if (++animCounter > 9999) + { + break; + } + animString = assetNameString + QString("@anim%1").arg(animCounter, 4, 10, QChar('0')); + filePath = importFolderPath + animString + ".fbx"; + } + assetNameEdit->setText(animString); + } + + } + else + { + // remove @anim if present + if (assetNameString.contains("@")) { + assetNameString = assetNameString.left(assetNameString.indexOf("@")); + } + assetNameEdit->setText(assetNameString); + } + +} + +#include + +void DzC4DDialog::HandleTargetPluginInstallerButton() +{ + // Get Software Versio + DzBridgeDialog::m_sEmbeddedFilesPath = ":/DazBridgeC4D"; + QString sBinariesFile = "/c4dplugin.zip"; + QString sDestinationPath = QDir().homePath() + "/Documents/cinema4d"; + if (QDir(sDestinationPath).exists() == false) + { + sDestinationPath = QDir().homePath() + "/Documents"; + } + QString softwareVersion = m_TargetSoftwareVersionCombo->currentText(); + + //if (softwareVersion.contains("...")) + //{ + // sDestinationPath += "..."; + //} + //else + //{ + // // Warning, not a valid plugins folder path + // QMessageBox::information(0, "DazToC4D Bridge", + // tr("Please select a Cinema 4D version.")); + // return; + //} + + // Get Destination Folder + sDestinationPath = QFileDialog::getExistingDirectory(this, + tr("Choose a Cinema 4D Plugins Folder"), + sDestinationPath, + QFileDialog::ShowDirsOnly + | QFileDialog::DontResolveSymlinks); + + if (sDestinationPath == NULL) + { + // User hit cancel: return without addition popups + return; + } + + // fix path separators + sDestinationPath = sDestinationPath.replace("\\", "/"); + + // verify plugin path + bool bIsPluginPath = false; + QString sPluginsPath = sDestinationPath; + if (sPluginsPath.endsWith("/plugins") == false) + { + sPluginsPath += "/plugins"; + } + if (QDir(sPluginsPath).exists()) + { + bIsPluginPath = true; + } + + if (bIsPluginPath == false) + { + // Warning, not a valid plugins folder path + auto userChoice = QMessageBox::warning(0, "Daz To Cinema 4D", + tr("The selected folder may not be a valid Cinema4D Plugins folder. Please select a \ +Plugins folder to install the plugin.\n\nYou can choose to Abort and select a new folder, \ +or Ignore this warning and install the plugin anyway."), +QMessageBox::Ignore | QMessageBox::Abort, +QMessageBox::Abort); + if (userChoice == QMessageBox::StandardButton::Abort) + return; + + } + + // create plugins folder if does not exist + if (QDir(sPluginsPath).exists() == false) + { + if (QDir().mkpath(sPluginsPath) == false) + { + QMessageBox::warning(0, "Daz To Cinema 4D", + tr("Sorry, an error occured while trying to create the Plugins \ +path:\n\n") + sPluginsPath + tr("\n\nPlease make sure you have write permissions to \ +modify the parent folder.")); + return; + } + } + + bool bInstallSuccessful = false; + bInstallSuccessful = installEmbeddedArchive(sBinariesFile, sPluginsPath); + + if (bInstallSuccessful) + { + QMessageBox::information(0, "Daz To Cinema 4D", + tr("Cinema 4D Plugin successfully installed to:\n\n") + sPluginsPath + + tr("\n\nIf Cinema 4D is running, please quit and restart Cinema 4D to continue \ +Bridge Export process.")); + } + else + { + QMessageBox::warning(0, "Daz To Cinema 4D", + tr("Sorry, an unknown error occured. Unable to install Cinema 4D \ +Plugin to:\n\n") + sPluginsPath + tr("\n\nPlease make sure you have write permissions to \ +modify the selected folder.")); + return; + } + + return; +} + +#include "moc_DzC4DDialog.cpp" diff --git a/DazStudioPlugin/DzC4DDialog.h b/DazStudioPlugin/DzC4DDialog.h new file mode 100644 index 0000000..1b35aab --- /dev/null +++ b/DazStudioPlugin/DzC4DDialog.h @@ -0,0 +1,48 @@ +#pragma once +#include "dzbasicdialog.h" +#include +#include +#include + +class QPushButton; +class QLineEdit; +class QCheckBox; +class QComboBox; +class QGroupBox; +class QLabel; +class QWidget; +class DzC4DAction; + +class UnitTest_DzC4DDialog; + +#include "dzbridge.h" + +class DzC4DDialog : public DZ_BRIDGE_NAMESPACE::DzBridgeDialog{ + friend DzC4DAction; + Q_OBJECT + Q_PROPERTY(QWidget* intermediateFolderEdit READ getIntermediateFolderEdit) +public: + Q_INVOKABLE QLineEdit* getIntermediateFolderEdit() { return intermediateFolderEdit; } + + /** Constructor **/ + DzC4DDialog(QWidget *parent=nullptr); + + /** Destructor **/ + virtual ~DzC4DDialog() {} + + Q_INVOKABLE void resetToDefaults() override; + Q_INVOKABLE bool loadSavedSettings() override; + +protected slots: + void HandleSelectIntermediateFolderButton(); + void HandleAssetTypeComboChange(int state); + void HandleTargetPluginInstallerButton(); + +protected: + QLineEdit* intermediateFolderEdit; + QPushButton* intermediateFolderButton; + +#ifdef UNITTEST_DZBRIDGE + friend class UnitTest_DzC4DDialog; +#endif +}; diff --git a/DazStudioPlugin/Resources/Images/Daz to Cinema 4D.png b/DazStudioPlugin/Resources/Images/Daz to Cinema 4D.png new file mode 100644 index 0000000000000000000000000000000000000000..5a047f23bfa0c6b894c4d7c2d75a8d16f2fdb9ad GIT binary patch literal 3049 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 literal 0 HcmV?d00001 diff --git a/DazStudioPlugin/Resources/c4dplugin.zip b/DazStudioPlugin/Resources/c4dplugin.zip new file mode 100644 index 0000000000000000000000000000000000000000..d71a10e10f364c6ee4e0624dfe42f7de64eaca60 GIT binary patch literal 449670 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%0D_!rG1WJ}0^J2m2{Ht-U{IYwC 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

%(WuWjufEB!*>`QXLZvRm3xqN(FIkNofMJ; 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�jhZyr3GXbcQrw}i<{Nh}L8(!S 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

  • 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 W_>&blwgBwn0HHFlF!bFE;sO9+gcz*= literal 0 HcmV?d00001 diff --git a/DazStudioPlugin/Resources/resources.qrc b/DazStudioPlugin/Resources/resources.qrc new file mode 100644 index 0000000..a8c8bc5 --- /dev/null +++ b/DazStudioPlugin/Resources/resources.qrc @@ -0,0 +1,9 @@ + + + + c4dplugin.zip + + + Images/Daz to Cinema 4D.png + + diff --git a/DazStudioPlugin/pluginmain.cpp b/DazStudioPlugin/pluginmain.cpp new file mode 100644 index 0000000..1c7265c --- /dev/null +++ b/DazStudioPlugin/pluginmain.cpp @@ -0,0 +1,39 @@ +#include "dzplugin.h" +#include "dzapp.h" + +#include "version.h" +#include "DzC4DAction.h" +#include "DzC4DDialog.h" + +#include "dzbridge.h" + +CPP_PLUGIN_DEFINITION("Daz To Cinema 4D Bridge"); + +DZ_PLUGIN_AUTHOR("Daz 3D, Inc"); + +DZ_PLUGIN_VERSION(PLUGIN_MAJOR, PLUGIN_MINOR, PLUGIN_REV, PLUGIN_BUILD); + +#ifdef _DEBUG +DZ_PLUGIN_DESCRIPTION(QString( + "Pre-Release Cinema 4D Bridge v%1.%2.%3.%4
    \ +
    Github

    " +).arg(PLUGIN_MAJOR).arg(PLUGIN_MINOR).arg(PLUGIN_REV).arg(PLUGIN_BUILD)); +#else +DZ_PLUGIN_DESCRIPTION(QString( +"This plugin provides the ability to send assets to Cinema 4D. \ +Documentation and source code are available on Github.
    " +)); +#endif + +DZ_PLUGIN_CLASS_GUID(DzC4DAction, 9d8e995e-e153-4c27-b3c8-6064b56d85eb); +NEW_PLUGIN_CUSTOM_CLASS_GUID(DzC4DDialog, b9ed0623-b5f8-4f5e-a031-f16027b30c59); + +#ifdef UNITTEST_DZBRIDGE + +#include "UnitTest_DzC4DAction.h" +#include "UnitTest_DzC4DDialog.h" + +DZ_PLUGIN_CLASS_GUID(UnitTest_DzC4DAction, 4dd8714e-f912-4fb9-b1db-eef25c7df022); +DZ_PLUGIN_CLASS_GUID(UnitTest_DzC4DDialog, 846ddb32-4e16-449f-bc2a-16d999161c71); + +#endif diff --git a/DazStudioPlugin/resource.h b/DazStudioPlugin/resource.h new file mode 100644 index 0000000..4c193ff --- /dev/null +++ b/DazStudioPlugin/resource.h @@ -0,0 +1,1632 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// +#define DZ_VERSION_REV 0 +#define DZ_SDK_VERSION_REV 0 +#define DZ_MIN_SDK_VERSION_REV 0 +#define PLUGIN_REV 0 +#define SW_HIDE 0 +#define HIDE_WINDOW 0 +#define WM_NULL 0x0000 +#define WA_INACTIVE 0 +#define HTNOWHERE 0 +#define SMTO_NORMAL 0x0000 +#define ICON_SMALL 0 +#define SIZE_RESTORED 0 +#define BN_CLICKED 0 +#define BST_UNCHECKED 0x0000 +#define HDS_HORZ 0x0000 +#define TBSTYLE_BUTTON 0x0000 +#define TBS_HORZ 0x0000 +#define TBS_BOTTOM 0x0000 +#define TBS_RIGHT 0x0000 +#define LVS_ICON 0x0000 +#define LVS_ALIGNTOP 0x0000 +#define TCS_TABS 0x0000 +#define TCS_SINGLELINE 0x0000 +#define TCS_RIGHTJUSTIFY 0x0000 +#define DTS_SHORTDATEFORMAT 0x0000 +#define PGS_VERT 0x00000000 +#define LANG_NEUTRAL 0x00 +#define SUBLANG_NEUTRAL 0x00 +#define SORT_DEFAULT 0x0 +#define SORT_JAPANESE_XJIS 0x0 +#define SORT_CHINESE_BIG5 0x0 +#define SORT_CHINESE_PRCP 0x0 +#define SORT_KOREAN_KSC 0x0 +#define SORT_HUNGARIAN_DEFAULT 0x0 +#define SORT_GEORGIAN_TRADITIONAL 0x0 +#define _USE_DECLSPECS_FOR_SAL 0 +#define _USE_ATTRIBUTES_FOR_SAL 0 +#define __drv_typeConst 0 +#define PLUGIN_MAJOR 1 +#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1 +#define MINIMUM_RESERVED_MANIFEST_RESOURCE_ID 1 +#define SW_SHOWNORMAL 1 +#define SW_NORMAL 1 +#define SHOW_OPENWINDOW 1 +#define SW_PARENTCLOSING 1 +#define VK_LBUTTON 0x01 +#define WM_CREATE 0x0001 +#define WA_ACTIVE 1 +#define PWR_OK 1 +#define PWR_SUSPENDREQUEST 1 +#define NFR_ANSI 1 +#define UIS_SET 1 +#define UISF_HIDEFOCUS 0x1 +#define XBUTTON1 0x0001 +#define WMSZ_LEFT 1 +#define HTCLIENT 1 +#define SMTO_BLOCK 0x0001 +#define MA_ACTIVATE 1 +#define ICON_BIG 1 +#define SIZE_MINIMIZED 1 +#define MK_LBUTTON 0x0001 +#define TME_HOVER 0x00000001 +#define CS_VREDRAW 0x0001 +#define CF_TEXT 1 +#define SCF_ISSECURE 0x00000001 +#define IDOK 1 +#define BN_PAINT 1 +#define BST_CHECKED 0x0001 +#define TBSTYLE_SEP 0x0001 +#define TTS_ALWAYSTIP 0x01 +#define TBS_AUTOTICKS 0x0001 +#define UDS_WRAP 0x0001 +#define PBS_SMOOTH 0x01 +#define LWS_TRANSPARENT 0x0001 +#define LVS_REPORT 0x0001 +#define TVS_HASBUTTONS 0x0001 +#define TVS_EX_NOSINGLECOLLAPSE 0x0001 +#define TCS_SCROLLOPPOSITE 0x0001 +#define ACS_CENTER 0x0001 +#define MCS_DAYSTATE 0x0001 +#define DTS_UPDOWN 0x0001 +#define PGS_HORZ 0x00000001 +#define NFS_EDIT 0x0001 +#define BCSIF_GLYPH 0x0001 +#define BCSS_NOSPLIT 0x0001 +#define LANG_ARABIC 0x01 +#define SUBLANG_DEFAULT 0x01 +#define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01 +#define SUBLANG_ALBANIAN_ALBANIA 0x01 +#define SUBLANG_ALSATIAN_FRANCE 0x01 +#define SUBLANG_AMHARIC_ETHIOPIA 0x01 +#define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 +#define SUBLANG_ARMENIAN_ARMENIA 0x01 +#define SUBLANG_ASSAMESE_INDIA 0x01 +#define SUBLANG_AZERI_LATIN 0x01 +#define SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN 0x01 +#define SUBLANG_BANGLA_INDIA 0x01 +#define SUBLANG_BASHKIR_RUSSIA 0x01 +#define SUBLANG_BASQUE_BASQUE 0x01 +#define SUBLANG_BELARUSIAN_BELARUS 0x01 +#define SUBLANG_BENGALI_INDIA 0x01 +#define SUBLANG_BRETON_FRANCE 0x01 +#define SUBLANG_BULGARIAN_BULGARIA 0x01 +#define SUBLANG_CATALAN_CATALAN 0x01 +#define SUBLANG_CENTRAL_KURDISH_IRAQ 0x01 +#define SUBLANG_CHEROKEE_CHEROKEE 0x01 +#define SUBLANG_CHINESE_TRADITIONAL 0x01 +#define SUBLANG_CORSICAN_FRANCE 0x01 +#define SUBLANG_CZECH_CZECH_REPUBLIC 0x01 +#define SUBLANG_CROATIAN_CROATIA 0x01 +#define SUBLANG_DANISH_DENMARK 0x01 +#define SUBLANG_DARI_AFGHANISTAN 0x01 +#define SUBLANG_DIVEHI_MALDIVES 0x01 +#define SUBLANG_DUTCH 0x01 +#define SUBLANG_ENGLISH_US 0x01 +#define SUBLANG_ESTONIAN_ESTONIA 0x01 +#define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01 +#define SUBLANG_FILIPINO_PHILIPPINES 0x01 +#define SUBLANG_FINNISH_FINLAND 0x01 +#define SUBLANG_FRENCH 0x01 +#define SUBLANG_FRISIAN_NETHERLANDS 0x01 +#define SUBLANG_GALICIAN_GALICIAN 0x01 +#define SUBLANG_GEORGIAN_GEORGIA 0x01 +#define SUBLANG_GERMAN 0x01 +#define SUBLANG_GREEK_GREECE 0x01 +#define SUBLANG_GREENLANDIC_GREENLAND 0x01 +#define SUBLANG_GUJARATI_INDIA 0x01 +#define SUBLANG_HAUSA_NIGERIA_LATIN 0x01 +#define SUBLANG_HAWAIIAN_US 0x01 +#define SUBLANG_HEBREW_ISRAEL 0x01 +#define SUBLANG_HINDI_INDIA 0x01 +#define SUBLANG_HUNGARIAN_HUNGARY 0x01 +#define SUBLANG_ICELANDIC_ICELAND 0x01 +#define SUBLANG_IGBO_NIGERIA 0x01 +#define SUBLANG_INDONESIAN_INDONESIA 0x01 +#define SUBLANG_INUKTITUT_CANADA 0x01 +#define SUBLANG_ITALIAN 0x01 +#define SUBLANG_JAPANESE_JAPAN 0x01 +#define SUBLANG_KANNADA_INDIA 0x01 +#define SUBLANG_KAZAK_KAZAKHSTAN 0x01 +#define SUBLANG_KHMER_CAMBODIA 0x01 +#define SUBLANG_KICHE_GUATEMALA 0x01 +#define SUBLANG_KINYARWANDA_RWANDA 0x01 +#define SUBLANG_KONKANI_INDIA 0x01 +#define SUBLANG_KOREAN 0x01 +#define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01 +#define SUBLANG_LAO_LAO 0x01 +#define SUBLANG_LATVIAN_LATVIA 0x01 +#define SUBLANG_LITHUANIAN 0x01 +#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01 +#define SUBLANG_MACEDONIAN_MACEDONIA 0x01 +#define SUBLANG_MALAY_MALAYSIA 0x01 +#define SUBLANG_MALAYALAM_INDIA 0x01 +#define SUBLANG_MALTESE_MALTA 0x01 +#define SUBLANG_MAORI_NEW_ZEALAND 0x01 +#define SUBLANG_MAPUDUNGUN_CHILE 0x01 +#define SUBLANG_MARATHI_INDIA 0x01 +#define SUBLANG_MOHAWK_MOHAWK 0x01 +#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01 +#define SUBLANG_NEPALI_NEPAL 0x01 +#define SUBLANG_NORWEGIAN_BOKMAL 0x01 +#define SUBLANG_OCCITAN_FRANCE 0x01 +#define SUBLANG_ODIA_INDIA 0x01 +#define SUBLANG_ORIYA_INDIA 0x01 +#define SUBLANG_PASHTO_AFGHANISTAN 0x01 +#define SUBLANG_PERSIAN_IRAN 0x01 +#define SUBLANG_POLISH_POLAND 0x01 +#define SUBLANG_PORTUGUESE_BRAZILIAN 0x01 +#define SUBLANG_PUNJABI_INDIA 0x01 +#define SUBLANG_QUECHUA_BOLIVIA 0x01 +#define SUBLANG_ROMANIAN_ROMANIA 0x01 +#define SUBLANG_ROMANSH_SWITZERLAND 0x01 +#define SUBLANG_RUSSIAN_RUSSIA 0x01 +#define SUBLANG_SAKHA_RUSSIA 0x01 +#define SUBLANG_SAMI_NORTHERN_NORWAY 0x01 +#define SUBLANG_SANSKRIT_INDIA 0x01 +#define SUBLANG_SCOTTISH_GAELIC 0x01 +#define SUBLANG_SERBIAN_CROATIA 0x01 +#define SUBLANG_SINDHI_INDIA 0x01 +#define SUBLANG_SINHALESE_SRI_LANKA 0x01 +#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01 +#define SUBLANG_SLOVAK_SLOVAKIA 0x01 +#define SUBLANG_SLOVENIAN_SLOVENIA 0x01 +#define SUBLANG_SPANISH 0x01 +#define SUBLANG_SWAHILI_KENYA 0x01 +#define SUBLANG_SWEDISH 0x01 +#define SUBLANG_SYRIAC_SYRIA 0x01 +#define SUBLANG_TAJIK_TAJIKISTAN 0x01 +#define SUBLANG_TAMIL_INDIA 0x01 +#define SUBLANG_TATAR_RUSSIA 0x01 +#define SUBLANG_TELUGU_INDIA 0x01 +#define SUBLANG_THAI_THAILAND 0x01 +#define SUBLANG_TIBETAN_PRC 0x01 +#define SUBLANG_TIGRINYA_ETHIOPIA 0x01 +#define SUBLANG_TSWANA_SOUTH_AFRICA 0x01 +#define SUBLANG_TURKISH_TURKEY 0x01 +#define SUBLANG_TURKMEN_TURKMENISTAN 0x01 +#define SUBLANG_UIGHUR_PRC 0x01 +#define SUBLANG_UKRAINIAN_UKRAINE 0x01 +#define SUBLANG_UPPER_SORBIAN_GERMANY 0x01 +#define SUBLANG_URDU_PAKISTAN 0x01 +#define SUBLANG_UZBEK_LATIN 0x01 +#define SUBLANG_VIETNAMESE_VIETNAM 0x01 +#define SUBLANG_WELSH_UNITED_KINGDOM 0x01 +#define SUBLANG_WOLOF_SENEGAL 0x01 +#define SUBLANG_XHOSA_SOUTH_AFRICA 0x01 +#define SUBLANG_YAKUT_RUSSIA 0x01 +#define SUBLANG_YI_PRC 0x01 +#define SUBLANG_YORUBA_NIGERIA 0x01 +#define SUBLANG_ZULU_SOUTH_AFRICA 0x01 +#define SORT_INVARIANT_MATH 0x1 +#define SORT_JAPANESE_UNICODE 0x1 +#define SORT_CHINESE_UNICODE 0x1 +#define SORT_KOREAN_UNICODE 0x1 +#define SORT_GERMAN_PHONE_BOOK 0x1 +#define SORT_HUNGARIAN_TECHNICAL 0x1 +#define SORT_GEORGIAN_MODERN 0x1 +#define __drv_typeCond 1 +#define VS_VERSION_INFO 1 +#define VFFF_ISSHAREDFILE 0x0001 +#define VFF_CURNEDEST 0x0001 +#define VIFF_FORCEINSTALL 0x0001 +#define PLUGIN_MINOR 2 +#define WINAPI_FAMILY_PC_APP 2 +#define ISOLATIONAWARE_MANIFEST_RESOURCE_ID 2 +#define SW_SHOWMINIMIZED 2 +#define SHOW_ICONWINDOW 2 +#define SW_OTHERZOOM 2 +#define VK_RBUTTON 0x02 +#define WM_DESTROY 0x0002 +#define WA_CLICKACTIVE 2 +#define PWR_SUSPENDRESUME 2 +#define NFR_UNICODE 2 +#define UIS_CLEAR 2 +#define UISF_HIDEACCEL 0x2 +#define XBUTTON2 0x0002 +#define WMSZ_RIGHT 2 +#define HTCAPTION 2 +#define SMTO_ABORTIFHUNG 0x0002 +#define MA_ACTIVATEANDEAT 2 +#define ICON_SMALL2 2 +#define SIZE_MAXIMIZED 2 +#define MK_RBUTTON 0x0002 +#define TME_LEAVE 0x00000002 +#define CS_HREDRAW 0x0002 +#define CF_BITMAP 2 +#define IDCANCEL 2 +#define BN_HILITE 2 +#define BST_INDETERMINATE 0x0002 +#define HDS_BUTTONS 0x0002 +#define TBSTYLE_CHECK 0x0002 +#define TTS_NOPREFIX 0x02 +#define TBS_VERT 0x0002 +#define UDS_SETBUDDYINT 0x0002 +#define LWS_IGNORERETURN 0x0002 +#define LVS_SMALLICON 0x0002 +#define TVS_HASLINES 0x0002 +#define TVS_EX_MULTISELECT 0x0002 +#define TCS_BOTTOM 0x0002 +#define TCS_RIGHT 0x0002 +#define ACS_TRANSPARENT 0x0002 +#define MCS_MULTISELECT 0x0002 +#define DTS_SHOWNONE 0x0002 +#define PGS_AUTOSCROLL 0x00000002 +#define NFS_STATIC 0x0002 +#define BCSIF_IMAGE 0x0002 +#define BCSS_STRETCH 0x0002 +#define LANG_BULGARIAN 0x02 +#define SUBLANG_SYS_DEFAULT 0x02 +#define SUBLANG_ARABIC_IRAQ 0x02 +#define SUBLANG_AZERI_CYRILLIC 0x02 +#define SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC 0x02 +#define SUBLANG_BANGLA_BANGLADESH 0x02 +#define SUBLANG_BENGALI_BANGLADESH 0x02 +#define SUBLANG_CHINESE_SIMPLIFIED 0x02 +#define SUBLANG_DUTCH_BELGIAN 0x02 +#define SUBLANG_ENGLISH_UK 0x02 +#define SUBLANG_FRENCH_BELGIAN 0x02 +#define SUBLANG_FULAH_SENEGAL 0x02 +#define SUBLANG_GERMAN_SWISS 0x02 +#define SUBLANG_INUKTITUT_CANADA_LATIN 0x02 +#define SUBLANG_IRISH_IRELAND 0x02 +#define SUBLANG_ITALIAN_SWISS 0x02 +#define SUBLANG_KASHMIRI_SASIA 0x02 +#define SUBLANG_KASHMIRI_INDIA 0x02 +#define SUBLANG_LOWER_SORBIAN_GERMANY 0x02 +#define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 +#define SUBLANG_MONGOLIAN_PRC 0x02 +#define SUBLANG_NEPALI_INDIA 0x02 +#define SUBLANG_NORWEGIAN_NYNORSK 0x02 +#define SUBLANG_PORTUGUESE 0x02 +#define SUBLANG_PULAR_SENEGAL 0x02 +#define SUBLANG_PUNJABI_PAKISTAN 0x02 +#define SUBLANG_QUECHUA_ECUADOR 0x02 +#define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02 +#define SUBLANG_SERBIAN_LATIN 0x02 +#define SUBLANG_SINDHI_PAKISTAN 0x02 +#define SUBLANG_SINDHI_AFGHANISTAN 0x02 +#define SUBLANG_SPANISH_MEXICAN 0x02 +#define SUBLANG_SWEDISH_FINLAND 0x02 +#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02 +#define SUBLANG_TAMIL_SRI_LANKA 0x02 +#define SUBLANG_TIGRIGNA_ERITREA 0x02 +#define SUBLANG_TIGRINYA_ERITREA 0x02 +#define SUBLANG_TSWANA_BOTSWANA 0x02 +#define SUBLANG_URDU_INDIA 0x02 +#define SUBLANG_UZBEK_CYRILLIC 0x02 +#define SUBLANG_VALENCIAN_VALENCIA 0x02 +#define SORT_CHINESE_PRC 0x2 +#define __drv_typeBitset 2 +#define VFF_FILEINUSE 0x0002 +#define VIFF_DONTDELETEOLD 0x0002 +#define WINAPI_FAMILY_PHONE_APP 3 +#define ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID 3 +#define SW_SHOWMAXIMIZED 3 +#define SW_MAXIMIZE 3 +#define SHOW_FULLSCREEN 3 +#define SW_PARENTOPENING 3 +#define VK_CANCEL 0x03 +#define WM_MOVE 0x0003 +#define PWR_CRITICALRESUME 3 +#define NF_QUERY 3 +#define UIS_INITIALIZE 3 +#define WMSZ_TOP 3 +#define HTSYSMENU 3 +#define MA_NOACTIVATE 3 +#define SIZE_MAXSHOW 3 +#define CF_METAFILEPICT 3 +#define IDABORT 3 +#define BN_UNHILITE 3 +#define LVS_LIST 0x0003 +#define LVS_TYPEMASK 0x0003 +#define LANG_CATALAN 0x03 +#define LANG_VALENCIAN 0x03 +#define SUBLANG_CUSTOM_DEFAULT 0x03 +#define SUBLANG_ARABIC_EGYPT 0x03 +#define SUBLANG_CHINESE_HONGKONG 0x03 +#define SUBLANG_ENGLISH_AUS 0x03 +#define SUBLANG_FRENCH_CANADIAN 0x03 +#define SUBLANG_GERMAN_AUSTRIAN 0x03 +#define SUBLANG_QUECHUA_PERU 0x03 +#define SUBLANG_SAMI_NORTHERN_FINLAND 0x03 +#define SUBLANG_SERBIAN_CYRILLIC 0x03 +#define SUBLANG_SPANISH_MODERN 0x03 +#define SORT_CHINESE_BOPOMOFO 0x3 +#define __drv_typeExpr 3 +#define DZ_VERSION_MAJOR 4 +#define DZ_SDK_VERSION_MAJOR 4 +#define DZ_MIN_SDK_VERSION_MAJOR 4 +#define WINAPI_FAMILY_SYSTEM 4 +#define ISOLATIONPOLICY_MANIFEST_RESOURCE_ID 4 +#define SW_SHOWNOACTIVATE 4 +#define SHOW_OPENNOACTIVATE 4 +#define SW_OTHERUNZOOM 4 +#define VK_MBUTTON 0x04 +#define NF_REQUERY 4 +#define UISF_ACTIVE 0x4 +#define WMSZ_TOPLEFT 4 +#define HTGROWBOX 4 +#define MA_NOACTIVATEANDEAT 4 +#define SIZE_MAXHIDE 4 +#define MK_SHIFT 0x0004 +#define CF_SYLK 4 +#define IDRETRY 4 +#define BN_DISABLE 4 +#define BST_PUSHED 0x0004 +#define HDS_HOTTRACK 0x0004 +#define TBSTYLE_GROUP 0x0004 +#define TBS_TOP 0x0004 +#define TBS_LEFT 0x0004 +#define UDS_ALIGNRIGHT 0x0004 +#define PBS_VERTICAL 0x04 +#define LWS_NOPREFIX 0x0004 +#define LVS_SINGLESEL 0x0004 +#define TVS_LINESATROOT 0x0004 +#define TVS_EX_DOUBLEBUFFER 0x0004 +#define TCS_MULTISELECT 0x0004 +#define ACS_AUTOPLAY 0x0004 +#define MCS_WEEKNUMBERS 0x0004 +#define DTS_LONGDATEFORMAT 0x0004 +#define PGS_DRAGNDROP 0x00000004 +#define NFS_LISTCOMBO 0x0004 +#define BCSIF_STYLE 0x0004 +#define BCSS_ALIGNLEFT 0x0004 +#define LANG_CHINESE 0x04 +#define LANG_CHINESE_SIMPLIFIED 0x04 +#define SUBLANG_CUSTOM_UNSPECIFIED 0x04 +#define SUBLANG_ARABIC_LIBYA 0x04 +#define SUBLANG_CHINESE_SINGAPORE 0x04 +#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04 +#define SUBLANG_ENGLISH_CAN 0x04 +#define SUBLANG_FRENCH_SWISS 0x04 +#define SUBLANG_GERMAN_LUXEMBOURG 0x04 +#define SUBLANG_SAMI_LULE_NORWAY 0x04 +#define SUBLANG_SPANISH_GUATEMALA 0x04 +#define SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH 0x04 +#define SORT_JAPANESE_RADICALSTROKE 0x4 +#define SORT_CHINESE_RADICALSTROKE 0x4 +#define VFF_BUFFTOOSMALL 0x0004 +#define DZ_VERSION_MINOR 5 +#define DZ_SDK_VERSION_MINOR 5 +#define DZ_MIN_SDK_VERSION_MINOR 5 +#define WINAPI_FAMILY_SERVER 5 +#define ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID 5 +#define SW_SHOW 5 +#define VK_XBUTTON1 0x05 +#define WM_SIZE 0x0005 +#define WMSZ_TOPRIGHT 5 +#define HTMENU 5 +#define CF_DIF 5 +#define IDIGNORE 5 +#define BN_DOUBLECLICKED 5 +#define LANG_CZECH 0x05 +#define SUBLANG_UI_CUSTOM_DEFAULT 0x05 +#define SUBLANG_ARABIC_ALGERIA 0x05 +#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05 +#define SUBLANG_CHINESE_MACAU 0x05 +#define SUBLANG_ENGLISH_NZ 0x05 +#define SUBLANG_FRENCH_LUXEMBOURG 0x05 +#define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 +#define SUBLANG_SAMI_LULE_SWEDEN 0x05 +#define SUBLANG_SPANISH_COSTA_RICA 0x05 +#define WINAPI_FAMILY_GAMES 6 +#define SW_MINIMIZE 6 +#define VK_XBUTTON2 0x06 +#define WM_ACTIVATE 0x0006 +#define WMSZ_BOTTOM 6 +#define HTHSCROLL 6 +#define CF_TIFF 6 +#define IDYES 6 +#define BN_SETFOCUS 6 +#define LANG_DANISH 0x06 +#define SUBLANG_ARABIC_MOROCCO 0x06 +#define SUBLANG_ENGLISH_EIRE 0x06 +#define SUBLANG_FRENCH_MONACO 0x06 +#define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06 +#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06 +#define SUBLANG_SPANISH_PANAMA 0x06 +#define PLUGIN_BUILD 7 +#define SW_SHOWMINNOACTIVE 7 +#define WM_SETFOCUS 0x0007 +#define WMSZ_BOTTOMLEFT 7 +#define HTVSCROLL 7 +#define CF_OEMTEXT 7 +#define IDNO 7 +#define BN_KILLFOCUS 7 +#define LANG_GERMAN 0x07 +#define SUBLANG_ARABIC_TUNISIA 0x07 +#define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 +#define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07 +#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07 +#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 +#define SW_SHOWNA 8 +#define VK_BACK 0x08 +#define WM_KILLFOCUS 0x0008 +#define WMSZ_BOTTOMRIGHT 8 +#define HTMINBUTTON 8 +#define SMTO_NOTIMEOUTIFNOTHUNG 0x0008 +#define MK_CONTROL 0x0008 +#define CS_DBLCLKS 0x0008 +#define CF_DIB 8 +#define IDCLOSE 8 +#define BST_FOCUS 0x0008 +#define HDS_HIDDEN 0x0008 +#define TBSTYLE_DROPDOWN 0x0008 +#define TBS_BOTH 0x0008 +#define UDS_ALIGNLEFT 0x0008 +#define PBS_MARQUEE 0x08 +#define LWS_USEVISUALSTYLE 0x0008 +#define LVS_SHOWSELALWAYS 0x0008 +#define TVS_EDITLABELS 0x0008 +#define TVS_EX_NOINDENTSTATE 0x0008 +#define TCS_FLATBUTTONS 0x0008 +#define ACS_TIMER 0x0008 +#define MCS_NOTODAYCIRCLE 0x0008 +#define NFS_BUTTON 0x0008 +#define BCSIF_SIZE 0x0008 +#define BCSS_IMAGE 0x0008 +#define LANG_GREEK 0x08 +#define SUBLANG_ARABIC_OMAN 0x08 +#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08 +#define SUBLANG_ENGLISH_JAMAICA 0x08 +#define SUBLANG_SAMI_SKOLT_FINLAND 0x08 +#define SUBLANG_SPANISH_VENEZUELA 0x08 +#define SW_RESTORE 9 +#define VK_TAB 0x09 +#define HTMAXBUTTON 9 +#define CF_PALETTE 9 +#define IDHELP 9 +#define DTS_TIMEFORMAT 0x0009 +#define LANG_ENGLISH 0x09 +#define SUBLANG_ARABIC_YEMEN 0x09 +#define SUBLANG_ENGLISH_CARIBBEAN 0x09 +#define SUBLANG_SAMI_INARI_FINLAND 0x09 +#define SUBLANG_SERBIAN_SERBIA_LATIN 0x09 +#define SUBLANG_SPANISH_COLOMBIA 0x09 +#define SW_SHOWDEFAULT 10 +#define WM_ENABLE 0x000A +#define HTLEFT 10 +#define CF_PENDATA 10 +#define IDTRYAGAIN 10 +#define HELP_CONTEXTMENU 0x000a +#define LANG_SPANISH 0x0a +#define SUBLANG_ARABIC_SYRIA 0x0a +#define SUBLANG_ENGLISH_BELIZE 0x0a +#define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0a +#define SUBLANG_SPANISH_PERU 0x0a +#define SW_FORCEMINIMIZE 11 +#define SW_MAX 11 +#define WM_SETREDRAW 0x000B +#define HTRIGHT 11 +#define CF_RIFF 11 +#define IDCONTINUE 11 +#define HELP_FINDER 0x000b +#define LANG_FINNISH 0x0b +#define SUBLANG_ARABIC_JORDAN 0x0b +#define SUBLANG_ENGLISH_TRINIDAD 0x0b +#define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0b +#define SUBLANG_SPANISH_ARGENTINA 0x0b +#define VK_CLEAR 0x0C +#define WM_SETTEXT 0x000C +#define HTTOP 12 +#define CF_WAVE 12 +#define HELP_WM_HELP 0x000c +#define DTS_SHORTDATECENTURYFORMAT 0x000C +#define LANG_FRENCH 0x0c +#define SUBLANG_ARABIC_LEBANON 0x0c +#define SUBLANG_ENGLISH_ZIMBABWE 0x0c +#define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0c +#define SUBLANG_SPANISH_ECUADOR 0x0c +#define VK_RETURN 0x0D +#define WM_GETTEXT 0x000D +#define HTTOPLEFT 13 +#define CF_UNICODETEXT 13 +#define HELP_SETPOPUP_POS 0x000d +#define LANG_HEBREW 0x0d +#define SUBLANG_ARABIC_KUWAIT 0x0d +#define SUBLANG_ENGLISH_PHILIPPINES 0x0d +#define SUBLANG_SPANISH_CHILE 0x0d +#define WM_GETTEXTLENGTH 0x000E +#define HTTOPRIGHT 14 +#define CF_ENHMETAFILE 14 +#define LANG_HUNGARIAN 0x0e +#define SUBLANG_ARABIC_UAE 0x0e +#define SUBLANG_SPANISH_URUGUAY 0x0e +#define WM_PAINT 0x000F +#define HTBOTTOM 15 +#define CF_HDROP 15 +#define LANG_ICELANDIC 0x0f +#define SUBLANG_ARABIC_BAHRAIN 0x0f +#define SUBLANG_SPANISH_PARAGUAY 0x0f +#define MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID 16 +#define VK_SHIFT 0x10 +#define WM_CLOSE 0x0010 +#define HTBOTTOMLEFT 16 +#define WVR_ALIGNTOP 0x0010 +#define MK_MBUTTON 0x0010 +#define TME_NONCLIENT 0x00000010 +#define CF_LOCALE 16 +#define HELP_TCARD_DATA 0x0010 +#define TBSTYLE_AUTOSIZE 0x0010 +#define TTS_NOANIMATE 0x10 +#define TBS_NOTICKS 0x0010 +#define UDS_AUTOBUDDY 0x0010 +#define PBS_SMOOTHREVERSE 0x10 +#define LWS_USECUSTOMTEXT 0x0010 +#define LVS_SORTASCENDING 0x0010 +#define TVS_DISABLEDRAGDROP 0x0010 +#define TVS_EX_RICHTOOLTIP 0x0010 +#define TCS_FORCEICONLEFT 0x0010 +#define MCS_NOTODAY 0x0010 +#define DTS_APPCANPARSE 0x0010 +#define NFS_ALL 0x0010 +#define LANG_ITALIAN 0x10 +#define SUBLANG_ARABIC_QATAR 0x10 +#define SUBLANG_ENGLISH_INDIA 0x10 +#define SUBLANG_SPANISH_BOLIVIA 0x10 +#define VK_CONTROL 0x11 +#define WM_QUERYENDSESSION 0x0011 +#define HTBOTTOMRIGHT 17 +#define CF_DIBV5 17 +#define HELP_TCARD_OTHER_CALLER 0x0011 +#define LANG_JAPANESE 0x11 +#define SUBLANG_ENGLISH_MALAYSIA 0x11 +#define SUBLANG_SPANISH_EL_SALVADOR 0x11 +#define VK_MENU 0x12 +#define WM_QUIT 0x0012 +#define HTBORDER 18 +#define CF_MAX 18 +#define LANG_KOREAN 0x12 +#define SUBLANG_ENGLISH_SINGAPORE 0x12 +#define SUBLANG_SPANISH_HONDURAS 0x12 +#define VK_PAUSE 0x13 +#define WM_QUERYOPEN 0x0013 +#define HTOBJECT 19 +#define LANG_DUTCH 0x13 +#define SUBLANG_SPANISH_NICARAGUA 0x13 +#define VK_CAPITAL 0x14 +#define WM_ERASEBKGND 0x0014 +#define HTCLOSE 20 +#define LANG_NORWEGIAN 0x14 +#define SUBLANG_SPANISH_PUERTO_RICO 0x14 +#define _SAL_VERSION 20 +#define VK_KANA 0x15 +#define VK_HANGEUL 0x15 +#define VK_HANGUL 0x15 +#define WM_SYSCOLORCHANGE 0x0015 +#define HTHELP 21 +#define LANG_POLISH 0x15 +#define SUBLANG_SPANISH_US 0x15 +#define VK_IME_ON 0x16 +#define WM_ENDSESSION 0x0016 +#define LANG_PORTUGUESE 0x16 +#define VK_JUNJA 0x17 +#define LANG_ROMANSH 0x17 +#define RT_MANIFEST 24 +#define VK_FINAL 0x18 +#define WM_SHOWWINDOW 0x0018 +#define LANG_ROMANIAN 0x18 +#define VK_HANJA 0x19 +#define VK_KANJI 0x19 +#define LANG_RUSSIAN 0x19 +#define VK_IME_OFF 0x1A +#define WM_WININICHANGE 0x001A +#define LANG_BOSNIAN 0x1a +#define LANG_CROATIAN 0x1a +#define LANG_SERBIAN 0x1a +#define VK_ESCAPE 0x1B +#define WM_DEVMODECHANGE 0x001B +#define LANG_SLOVAK 0x1b +#define VK_CONVERT 0x1C +#define WM_ACTIVATEAPP 0x001C +#define LANG_ALBANIAN 0x1c +#define VK_NONCONVERT 0x1D +#define WM_FONTCHANGE 0x001D +#define LANG_SWEDISH 0x1d +#define VK_ACCEPT 0x1E +#define WM_TIMECHANGE 0x001E +#define LANG_THAI 0x1e +#define VK_MODECHANGE 0x1F +#define WM_CANCELMODE 0x001F +#define LANG_TURKISH 0x1f +#define VK_SPACE 0x20 +#define WM_SETCURSOR 0x0020 +#define SMTO_ERRORONEXIT 0x0020 +#define WVR_ALIGNLEFT 0x0020 +#define MK_XBUTTON1 0x0020 +#define CS_OWNDC 0x0020 +#define TBSTYLE_NOPREFIX 0x0020 +#define TTS_NOFADE 0x20 +#define TBS_ENABLESELRANGE 0x0020 +#define UDS_ARROWKEYS 0x0020 +#define LWS_RIGHT 0x0020 +#define LVS_SORTDESCENDING 0x0020 +#define TVS_SHOWSELALWAYS 0x0020 +#define TVS_EX_AUTOHSCROLL 0x0020 +#define TCS_FORCELABELLEFT 0x0020 +#define DTS_RIGHTALIGN 0x0020 +#define NFS_USEFONTASSOC 0x0020 +#define LANG_URDU 0x20 +#define VK_PRIOR 0x21 +#define WM_MOUSEACTIVATE 0x0021 +#define LANG_INDONESIAN 0x21 +#define VK_NEXT 0x22 +#define WM_CHILDACTIVATE 0x0022 +#define LANG_UKRAINIAN 0x22 +#define VK_END 0x23 +#define WM_QUEUESYNC 0x0023 +#define LANG_BELARUSIAN 0x23 +#define VK_HOME 0x24 +#define WM_GETMINMAXINFO 0x0024 +#define LANG_SLOVENIAN 0x24 +#define VK_LEFT 0x25 +#define LANG_ESTONIAN 0x25 +#define VK_UP 0x26 +#define WM_PAINTICON 0x0026 +#define LANG_LATVIAN 0x26 +#define VK_RIGHT 0x27 +#define WM_ICONERASEBKGND 0x0027 +#define LANG_LITHUANIAN 0x27 +#define VK_DOWN 0x28 +#define WM_NEXTDLGCTL 0x0028 +#define LANG_TAJIK 0x28 +#define VK_SELECT 0x29 +#define LANG_FARSI 0x29 +#define LANG_PERSIAN 0x29 +#define VK_PRINT 0x2A +#define WM_SPOOLERSTATUS 0x002A +#define LANG_VIETNAMESE 0x2a +#define VK_EXECUTE 0x2B +#define WM_DRAWITEM 0x002B +#define LANG_ARMENIAN 0x2b +#define VK_SNAPSHOT 0x2C +#define WM_MEASUREITEM 0x002C +#define LANG_AZERI 0x2c +#define LANG_AZERBAIJANI 0x2c +#define VK_INSERT 0x2D +#define WM_DELETEITEM 0x002D +#define LANG_BASQUE 0x2d +#define VK_DELETE 0x2E +#define WM_VKEYTOITEM 0x002E +#define LANG_LOWER_SORBIAN 0x2e +#define LANG_UPPER_SORBIAN 0x2e +#define VK_HELP 0x2F +#define WM_CHARTOITEM 0x002F +#define LANG_MACEDONIAN 0x2f +#define WM_SETFONT 0x0030 +#define WM_GETFONT 0x0031 +#define WM_SETHOTKEY 0x0032 +#define LANG_TSWANA 0x32 +#define WM_GETHOTKEY 0x0033 +#define LANG_XHOSA 0x34 +#define LANG_ZULU 0x35 +#define LANG_AFRIKAANS 0x36 +#define WM_QUERYDRAGICON 0x0037 +#define LANG_GEORGIAN 0x37 +#define LANG_FAEROESE 0x38 +#define WM_COMPAREITEM 0x0039 +#define LANG_HINDI 0x39 +#define LANG_MALTESE 0x3a +#define LANG_SAMI 0x3b +#define LANG_IRISH 0x3c +#define WM_GETOBJECT 0x003D +#define LANG_MALAY 0x3e +#define LANG_KAZAK 0x3f +#define WVR_ALIGNBOTTOM 0x0040 +#define MK_XBUTTON2 0x0040 +#define CS_CLASSDC 0x0040 +#define HDS_DRAGDROP 0x0040 +#define BTNS_SHOWTEXT 0x0040 +#define TTS_BALLOON 0x40 +#define TBS_FIXEDLENGTH 0x0040 +#define UDS_HORZ 0x0040 +#define LVS_SHAREIMAGELISTS 0x0040 +#define TVS_RTLREADING 0x0040 +#define TVS_EX_FADEINOUTEXPANDOS 0x0040 +#define TCS_HOTTRACK 0x0040 +#define MCS_NOTRAILINGDATES 0x0040 +#define LANG_KYRGYZ 0x40 +#define WM_COMPACTING 0x0041 +#define LANG_SWAHILI 0x41 +#define LANG_TURKMEN 0x42 +#define LANG_UZBEK 0x43 +#define WM_COMMNOTIFY 0x0044 +#define LANG_TATAR 0x44 +#define LANG_BANGLA 0x45 +#define LANG_BENGALI 0x45 +#define WM_WINDOWPOSCHANGING 0x0046 +#define LANG_PUNJABI 0x46 +#define WM_WINDOWPOSCHANGED 0x0047 +#define LANG_GUJARATI 0x47 +#define WM_POWER 0x0048 +#define LANG_ODIA 0x48 +#define LANG_ORIYA 0x48 +#define LANG_TAMIL 0x49 +#define WM_COPYDATA 0x004A +#define LANG_TELUGU 0x4a +#define WM_CANCELJOURNAL 0x004B +#define LANG_KANNADA 0x4b +#define LANG_MALAYALAM 0x4c +#define LANG_ASSAMESE 0x4d +#define WM_NOTIFY 0x004E +#define LANG_MARATHI 0x4e +#define LANG_SANSKRIT 0x4f +#define WM_INPUTLANGCHANGEREQUEST 0x0050 +#define LANG_MONGOLIAN 0x50 +#define WM_INPUTLANGCHANGE 0x0051 +#define LANG_TIBETAN 0x51 +#define WM_TCARD 0x0052 +#define LANG_WELSH 0x52 +#define WM_HELP 0x0053 +#define LANG_KHMER 0x53 +#define WM_USERCHANGED 0x0054 +#define LANG_LAO 0x54 +#define WM_NOTIFYFORMAT 0x0055 +#define LANG_GALICIAN 0x56 +#define LANG_KONKANI 0x57 +#define LANG_MANIPURI 0x58 +#define LANG_SINDHI 0x59 +#define LANG_SYRIAC 0x5a +#define VK_LWIN 0x5B +#define LANG_SINHALESE 0x5b +#define VK_RWIN 0x5C +#define LANG_CHEROKEE 0x5c +#define VK_APPS 0x5D +#define LANG_INUKTITUT 0x5d +#define LANG_AMHARIC 0x5e +#define VK_SLEEP 0x5F +#define LANG_TAMAZIGHT 0x5f +#define VK_NUMPAD0 0x60 +#define LANG_KASHMIRI 0x60 +#define VK_NUMPAD1 0x61 +#define LANG_NEPALI 0x61 +#define VK_NUMPAD2 0x62 +#define LANG_FRISIAN 0x62 +#define VK_NUMPAD3 0x63 +#define LANG_PASHTO 0x63 +#define DZ_SDK_VERSION_BUILD 100 +#define DZ_MIN_SDK_VERSION_BUILD 100 +#define WINAPI_FAMILY_DESKTOP_APP 100 +#define VK_NUMPAD4 0x64 +#define LANG_FILIPINO 0x64 +#define VS_USER_DEFINED 100 +#define VK_NUMPAD5 0x65 +#define LANG_DIVEHI 0x65 +#define VK_NUMPAD6 0x66 +#define VK_NUMPAD7 0x67 +#define LANG_FULAH 0x67 +#define LANG_PULAR 0x67 +#define VK_NUMPAD8 0x68 +#define LANG_HAUSA 0x68 +#define VK_NUMPAD9 0x69 +#define VK_MULTIPLY 0x6A +#define LANG_YORUBA 0x6a +#define VK_ADD 0x6B +#define LANG_QUECHUA 0x6b +#define VK_SEPARATOR 0x6C +#define LANG_SOTHO 0x6c +#define VK_SUBTRACT 0x6D +#define LANG_BASHKIR 0x6d +#define VK_DECIMAL 0x6E +#define LANG_LUXEMBOURGISH 0x6e +#define VK_DIVIDE 0x6F +#define LANG_GREENLANDIC 0x6f +#define VK_F1 0x70 +#define LANG_IGBO 0x70 +#define VK_F2 0x71 +#define DZ_VERSION_BUILD 114 +#define VK_F3 0x72 +#define VK_F4 0x73 +#define LANG_TIGRIGNA 0x73 +#define LANG_TIGRINYA 0x73 +#define VK_F5 0x74 +#define VK_F6 0x75 +#define LANG_HAWAIIAN 0x75 +#define VK_F7 0x76 +#define VK_F8 0x77 +#define VK_F9 0x78 +#define WHEEL_DELTA 120 +#define LANG_YI 0x78 +#define VK_F10 0x79 +#define VK_F11 0x7A +#define LANG_MAPUDUNGUN 0x7a +#define VK_F12 0x7B +#define WM_CONTEXTMENU 0x007B +#define VK_F13 0x7C +#define WM_STYLECHANGING 0x007C +#define LANG_MOHAWK 0x7c +#define VK_F14 0x7D +#define WM_STYLECHANGED 0x007D +#define VK_F15 0x7E +#define WM_DISPLAYCHANGE 0x007E +#define LANG_BRETON 0x7e +#define VK_F16 0x7F +#define WM_GETICON 0x007F +#define LANG_INVARIANT 0x7f +#define VK_F17 0x80 +#define WM_SETICON 0x0080 +#define WVR_ALIGNRIGHT 0x0080 +#define CS_PARENTDC 0x0080 +#define CF_OWNERDISPLAY 0x0080 +#define HDS_FULLDRAG 0x0080 +#define BTNS_WHOLEDROPDOWN 0x0080 +#define TTS_CLOSE 0x80 +#define TBS_NOTHUMB 0x0080 +#define UDS_NOTHOUSANDS 0x0080 +#define LVS_NOLABELWRAP 0x0080 +#define TVS_NOTOOLTIPS 0x0080 +#define TVS_EX_PARTIALCHECKBOXES 0x0080 +#define TCS_VERTICAL 0x0080 +#define MCS_SHORTDAYSOFWEEK 0x0080 +#define LANG_UIGHUR 0x80 +#define VK_F18 0x81 +#define WM_NCCREATE 0x0081 +#define CF_DSPTEXT 0x0081 +#define LANG_MAORI 0x81 +#define VK_F19 0x82 +#define WM_NCDESTROY 0x0082 +#define CF_DSPBITMAP 0x0082 +#define LANG_OCCITAN 0x82 +#define VK_F20 0x83 +#define WM_NCCALCSIZE 0x0083 +#define CF_DSPMETAFILEPICT 0x0083 +#define LANG_CORSICAN 0x83 +#define VK_F21 0x84 +#define WM_NCHITTEST 0x0084 +#define LANG_ALSATIAN 0x84 +#define VK_F22 0x85 +#define WM_NCPAINT 0x0085 +#define LANG_SAKHA 0x85 +#define LANG_YAKUT 0x85 +#define VK_F23 0x86 +#define WM_NCACTIVATE 0x0086 +#define LANG_KICHE 0x86 +#define VK_F24 0x87 +#define WM_GETDLGCODE 0x0087 +#define LANG_KINYARWANDA 0x87 +#define VK_NAVIGATION_VIEW 0x88 +#define WM_SYNCPAINT 0x0088 +#define LANG_WOLOF 0x88 +#define VK_NAVIGATION_MENU 0x89 +#define VK_NAVIGATION_UP 0x8A +#define VK_NAVIGATION_DOWN 0x8B +#define VK_NAVIGATION_LEFT 0x8C +#define LANG_DARI 0x8c +#define VK_NAVIGATION_RIGHT 0x8D +#define VK_NAVIGATION_ACCEPT 0x8E +#define CF_DSPENHMETAFILE 0x008E +#define VK_NAVIGATION_CANCEL 0x8F +#define VK_NUMLOCK 0x90 +#define VK_SCROLL 0x91 +#define LANG_SCOTTISH_GAELIC 0x91 +#define VK_OEM_NEC_EQUAL 0x92 +#define VK_OEM_FJ_JISHO 0x92 +#define LANG_CENTRAL_KURDISH 0x92 +#define VK_OEM_FJ_MASSHOU 0x93 +#define VK_OEM_FJ_TOUROKU 0x94 +#define VK_OEM_FJ_LOYA 0x95 +#define VK_OEM_FJ_ROYA 0x96 +#define VK_LSHIFT 0xA0 +#define WM_NCMOUSEMOVE 0x00A0 +#define VK_RSHIFT 0xA1 +#define WM_NCLBUTTONDOWN 0x00A1 +#define VK_LCONTROL 0xA2 +#define WM_NCLBUTTONUP 0x00A2 +#define VK_RCONTROL 0xA3 +#define WM_NCLBUTTONDBLCLK 0x00A3 +#define VK_LMENU 0xA4 +#define WM_NCRBUTTONDOWN 0x00A4 +#define VK_RMENU 0xA5 +#define WM_NCRBUTTONUP 0x00A5 +#define VK_BROWSER_BACK 0xA6 +#define WM_NCRBUTTONDBLCLK 0x00A6 +#define VK_BROWSER_FORWARD 0xA7 +#define WM_NCMBUTTONDOWN 0x00A7 +#define VK_BROWSER_REFRESH 0xA8 +#define WM_NCMBUTTONUP 0x00A8 +#define VK_BROWSER_STOP 0xA9 +#define WM_NCMBUTTONDBLCLK 0x00A9 +#define VK_BROWSER_SEARCH 0xAA +#define VK_BROWSER_FAVORITES 0xAB +#define WM_NCXBUTTONDOWN 0x00AB +#define VK_BROWSER_HOME 0xAC +#define WM_NCXBUTTONUP 0x00AC +#define VK_VOLUME_MUTE 0xAD +#define WM_NCXBUTTONDBLCLK 0x00AD +#define VK_VOLUME_DOWN 0xAE +#define VK_VOLUME_UP 0xAF +#define VK_MEDIA_NEXT_TRACK 0xB0 +#define EM_GETSEL 0x00B0 +#define VK_MEDIA_PREV_TRACK 0xB1 +#define EM_SETSEL 0x00B1 +#define VK_MEDIA_STOP 0xB2 +#define EM_GETRECT 0x00B2 +#define VK_MEDIA_PLAY_PAUSE 0xB3 +#define EM_SETRECT 0x00B3 +#define VK_LAUNCH_MAIL 0xB4 +#define EM_SETRECTNP 0x00B4 +#define VK_LAUNCH_MEDIA_SELECT 0xB5 +#define EM_SCROLL 0x00B5 +#define VK_LAUNCH_APP1 0xB6 +#define EM_LINESCROLL 0x00B6 +#define VK_LAUNCH_APP2 0xB7 +#define EM_SCROLLCARET 0x00B7 +#define EM_GETMODIFY 0x00B8 +#define EM_SETMODIFY 0x00B9 +#define VK_OEM_1 0xBA +#define EM_GETLINECOUNT 0x00BA +#define VK_OEM_PLUS 0xBB +#define EM_LINEINDEX 0x00BB +#define VK_OEM_COMMA 0xBC +#define EM_SETHANDLE 0x00BC +#define VK_OEM_MINUS 0xBD +#define EM_GETHANDLE 0x00BD +#define VK_OEM_PERIOD 0xBE +#define EM_GETTHUMB 0x00BE +#define VK_OEM_2 0xBF +#define VK_OEM_3 0xC0 +#define EM_LINELENGTH 0x00C1 +#define EM_REPLACESEL 0x00C2 +#define VK_GAMEPAD_A 0xC3 +#define VK_GAMEPAD_B 0xC4 +#define EM_GETLINE 0x00C4 +#define VK_GAMEPAD_X 0xC5 +#define EM_LIMITTEXT 0x00C5 +#define VK_GAMEPAD_Y 0xC6 +#define EM_CANUNDO 0x00C6 +#define VK_GAMEPAD_RIGHT_SHOULDER 0xC7 +#define EM_UNDO 0x00C7 +#define VK_GAMEPAD_LEFT_SHOULDER 0xC8 +#define EM_FMTLINES 0x00C8 +#define VK_GAMEPAD_LEFT_TRIGGER 0xC9 +#define EM_LINEFROMCHAR 0x00C9 +#define VK_GAMEPAD_RIGHT_TRIGGER 0xCA +#define VK_GAMEPAD_DPAD_UP 0xCB +#define EM_SETTABSTOPS 0x00CB +#define VK_GAMEPAD_DPAD_DOWN 0xCC +#define EM_SETPASSWORDCHAR 0x00CC +#define VK_GAMEPAD_DPAD_LEFT 0xCD +#define EM_EMPTYUNDOBUFFER 0x00CD +#define VK_GAMEPAD_DPAD_RIGHT 0xCE +#define EM_GETFIRSTVISIBLELINE 0x00CE +#define VK_GAMEPAD_MENU 0xCF +#define EM_SETREADONLY 0x00CF +#define VK_GAMEPAD_VIEW 0xD0 +#define EM_SETWORDBREAKPROC 0x00D0 +#define VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON 0xD1 +#define EM_GETWORDBREAKPROC 0x00D1 +#define VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON 0xD2 +#define EM_GETPASSWORDCHAR 0x00D2 +#define VK_GAMEPAD_LEFT_THUMBSTICK_UP 0xD3 +#define EM_SETMARGINS 0x00D3 +#define VK_GAMEPAD_LEFT_THUMBSTICK_DOWN 0xD4 +#define EM_GETMARGINS 0x00D4 +#define VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT 0xD5 +#define EM_GETLIMITTEXT 0x00D5 +#define VK_GAMEPAD_LEFT_THUMBSTICK_LEFT 0xD6 +#define EM_POSFROMCHAR 0x00D6 +#define VK_GAMEPAD_RIGHT_THUMBSTICK_UP 0xD7 +#define EM_CHARFROMPOS 0x00D7 +#define VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN 0xD8 +#define EM_SETIMESTATUS 0x00D8 +#define VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT 0xD9 +#define EM_GETIMESTATUS 0x00D9 +#define VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT 0xDA +#define EM_ENABLEFEATURE 0x00DA +#define VK_OEM_4 0xDB +#define VK_OEM_5 0xDC +#define VK_OEM_6 0xDD +#define VK_OEM_7 0xDE +#define VK_OEM_8 0xDF +#define VK_OEM_AX 0xE1 +#define VK_OEM_102 0xE2 +#define VK_ICO_HELP 0xE3 +#define VK_ICO_00 0xE4 +#define VK_PROCESSKEY 0xE5 +#define VK_ICO_CLEAR 0xE6 +#define VK_PACKET 0xE7 +#define VK_OEM_RESET 0xE9 +#define VK_OEM_JUMP 0xEA +#define VK_OEM_PA1 0xEB +#define VK_OEM_PA2 0xEC +#define VK_OEM_PA3 0xED +#define VK_OEM_WSCTRL 0xEE +#define VK_OEM_CUSEL 0xEF +#define VK_OEM_ATTN 0xF0 +#define BM_GETCHECK 0x00F0 +#define VK_OEM_FINISH 0xF1 +#define BM_SETCHECK 0x00F1 +#define VK_OEM_COPY 0xF2 +#define BM_GETSTATE 0x00F2 +#define VK_OEM_AUTO 0xF3 +#define BM_SETSTATE 0x00F3 +#define VK_OEM_ENLW 0xF4 +#define BM_SETSTYLE 0x00F4 +#define VK_OEM_BACKTAB 0xF5 +#define BM_CLICK 0x00F5 +#define VK_ATTN 0xF6 +#define BM_GETIMAGE 0x00F6 +#define VK_CRSEL 0xF7 +#define BM_SETIMAGE 0x00F7 +#define VK_EXSEL 0xF8 +#define BM_SETDONTCLICK 0x00F8 +#define VK_EREOF 0xF9 +#define VK_PLAY 0xFA +#define VK_ZOOM 0xFB +#define VK_NONAME 0xFC +#define VK_PA1 0xFD +#define VK_OEM_CLEAR 0xFE +#define WM_INPUT_DEVICE_CHANGE 0x00FE +#define SUBVERSION_MASK 0x000000FF +#define WM_INPUT 0x00FF +#define WM_KEYFIRST 0x0100 +#define WM_KEYDOWN 0x0100 +#define WVR_HREDRAW 0x0100 +#define HDS_FILTERBAR 0x0100 +#define TBSTYLE_TOOLTIPS 0x0100 +#define RBS_TOOLTIPS 0x00000100 +#define TTS_USEVISUALSTYLE 0x100 +#define SBARS_SIZEGRIP 0x0100 +#define TBS_TOOLTIPS 0x0100 +#define UDS_HOTTRACK 0x0100 +#define LVS_AUTOARRANGE 0x0100 +#define TVS_CHECKBOXES 0x0100 +#define TVS_EX_EXCLUSIONCHECKBOXES 0x0100 +#define TCS_BUTTONS 0x0100 +#define MCS_NOSELCHANGEONNAV 0x0100 +#define WM_KEYUP 0x0101 +#define WM_CHAR 0x0102 +#define WM_DEADCHAR 0x0103 +#define WM_SYSKEYDOWN 0x0104 +#define WM_SYSKEYUP 0x0105 +#define WM_SYSCHAR 0x0106 +#define WM_SYSDEADCHAR 0x0107 +#define WM_UNICHAR 0x0109 +#define WM_KEYLAST 0x0109 +#define WM_IME_STARTCOMPOSITION 0x010D +#define WM_IME_ENDCOMPOSITION 0x010E +#define WM_IME_COMPOSITION 0x010F +#define WM_IME_KEYLAST 0x010F +#define WM_INITDIALOG 0x0110 +#define WM_COMMAND 0x0111 +#define WM_SYSCOMMAND 0x0112 +#define WM_TIMER 0x0113 +#define WM_HSCROLL 0x0114 +#define WM_VSCROLL 0x0115 +#define WM_INITMENU 0x0116 +#define WM_INITMENUPOPUP 0x0117 +#define WM_GESTURE 0x0119 +#define WM_GESTURENOTIFY 0x011A +#define WM_MENUSELECT 0x011F +#define WM_MENUCHAR 0x0120 +#define WM_ENTERIDLE 0x0121 +#define WM_MENURBUTTONUP 0x0122 +#define WM_MENUDRAG 0x0123 +#define WM_MENUGETOBJECT 0x0124 +#define WM_UNINITMENUPOPUP 0x0125 +#define WM_MENUCOMMAND 0x0126 +#define WM_CHANGEUISTATE 0x0127 +#define WM_UPDATEUISTATE 0x0128 +#define WM_QUERYUISTATE 0x0129 +#define WM_CTLCOLORMSGBOX 0x0132 +#define WM_CTLCOLOREDIT 0x0133 +#define WM_CTLCOLORLISTBOX 0x0134 +#define WM_CTLCOLORBTN 0x0135 +#define WM_CTLCOLORDLG 0x0136 +#define WM_CTLCOLORSCROLLBAR 0x0137 +#define WM_CTLCOLORSTATIC 0x0138 +#define MN_GETHMENU 0x01E1 +#define _WIN32_IE_IE20 0x0200 +#define WM_MOUSEFIRST 0x0200 +#define WM_MOUSEMOVE 0x0200 +#define WVR_VREDRAW 0x0200 +#define CS_NOCLOSE 0x0200 +#define CF_PRIVATEFIRST 0x0200 +#define HDS_FLAT 0x0200 +#define TBSTYLE_WRAPABLE 0x0200 +#define RBS_VARHEIGHT 0x00000200 +#define TBS_REVERSED 0x0200 +#define LVS_EDITLABELS 0x0200 +#define TVS_TRACKSELECT 0x0200 +#define TVS_EX_DIMMEDCHECKBOXES 0x0200 +#define TCS_MULTILINE 0x0200 +#define WM_LBUTTONDOWN 0x0201 +#define WM_LBUTTONUP 0x0202 +#define WM_LBUTTONDBLCLK 0x0203 +#define WM_RBUTTONDOWN 0x0204 +#define WM_RBUTTONUP 0x0205 +#define WM_RBUTTONDBLCLK 0x0206 +#define WM_MBUTTONDOWN 0x0207 +#define WM_MBUTTONUP 0x0208 +#define WM_MBUTTONDBLCLK 0x0209 +#define WM_MOUSEWHEEL 0x020A +#define WM_XBUTTONDOWN 0x020B +#define WM_XBUTTONUP 0x020C +#define WM_XBUTTONDBLCLK 0x020D +#define WM_MOUSEHWHEEL 0x020E +#define WM_MOUSELAST 0x020E +#define WM_PARENTNOTIFY 0x0210 +#define WM_ENTERMENULOOP 0x0211 +#define WM_EXITMENULOOP 0x0212 +#define WM_NEXTMENU 0x0213 +#define WM_SIZING 0x0214 +#define WM_CAPTURECHANGED 0x0215 +#define WM_MOVING 0x0216 +#define WM_POWERBROADCAST 0x0218 +#define WM_DEVICECHANGE 0x0219 +#define WM_MDICREATE 0x0220 +#define WM_MDIDESTROY 0x0221 +#define WM_MDIACTIVATE 0x0222 +#define WM_MDIRESTORE 0x0223 +#define WM_MDINEXT 0x0224 +#define WM_MDIMAXIMIZE 0x0225 +#define WM_MDITILE 0x0226 +#define WM_MDICASCADE 0x0227 +#define WM_MDIICONARRANGE 0x0228 +#define WM_MDIGETACTIVE 0x0229 +#define WM_MDISETMENU 0x0230 +#define WM_ENTERSIZEMOVE 0x0231 +#define WM_EXITSIZEMOVE 0x0232 +#define WM_DROPFILES 0x0233 +#define WM_MDIREFRESHMENU 0x0234 +#define WM_POINTERDEVICECHANGE 0x238 +#define WM_POINTERDEVICEINRANGE 0x239 +#define WM_POINTERDEVICEOUTOFRANGE 0x23A +#define WM_TOUCH 0x0240 +#define WM_NCPOINTERUPDATE 0x0241 +#define WM_NCPOINTERDOWN 0x0242 +#define WM_NCPOINTERUP 0x0243 +#define WM_POINTERUPDATE 0x0245 +#define WM_POINTERDOWN 0x0246 +#define WM_POINTERUP 0x0247 +#define WM_POINTERENTER 0x0249 +#define WM_POINTERLEAVE 0x024A +#define WM_POINTERACTIVATE 0x024B +#define WM_POINTERCAPTURECHANGED 0x024C +#define WM_TOUCHHITTESTING 0x024D +#define WM_POINTERWHEEL 0x024E +#define WM_POINTERHWHEEL 0x024F +#define DM_POINTERHITTEST 0x0250 +#define WM_POINTERROUTEDTO 0x0251 +#define WM_POINTERROUTEDAWAY 0x0252 +#define WM_POINTERROUTEDRELEASED 0x0253 +#define WM_IME_SETCONTEXT 0x0281 +#define WM_IME_NOTIFY 0x0282 +#define WM_IME_CONTROL 0x0283 +#define WM_IME_COMPOSITIONFULL 0x0284 +#define WM_IME_SELECT 0x0285 +#define WM_IME_CHAR 0x0286 +#define WM_IME_REQUEST 0x0288 +#define WM_IME_KEYDOWN 0x0290 +#define WM_IME_KEYUP 0x0291 +#define WM_NCMOUSEHOVER 0x02A0 +#define WM_MOUSEHOVER 0x02A1 +#define WM_NCMOUSELEAVE 0x02A2 +#define WM_MOUSELEAVE 0x02A3 +#define WM_WTSSESSION_CHANGE 0x02B1 +#define WM_TABLET_FIRST 0x02c0 +#define WM_TABLET_LAST 0x02df +#define WM_DPICHANGED 0x02E0 +#define WM_DPICHANGED_BEFOREPARENT 0x02E2 +#define WM_DPICHANGED_AFTERPARENT 0x02E3 +#define WM_GETDPISCALEDSIZE 0x02E4 +#define CF_PRIVATELAST 0x02FF +#define _WIN32_IE_IE30 0x0300 +#define WM_CUT 0x0300 +#define CF_GDIOBJFIRST 0x0300 +#define WM_COPY 0x0301 +#define _WIN32_IE_IE302 0x0302 +#define WM_PASTE 0x0302 +#define WM_CLEAR 0x0303 +#define WM_UNDO 0x0304 +#define WM_RENDERFORMAT 0x0305 +#define WM_RENDERALLFORMATS 0x0306 +#define WM_DESTROYCLIPBOARD 0x0307 +#define WM_DRAWCLIPBOARD 0x0308 +#define WM_PAINTCLIPBOARD 0x0309 +#define WM_VSCROLLCLIPBOARD 0x030A +#define WM_SIZECLIPBOARD 0x030B +#define WM_ASKCBFORMATNAME 0x030C +#define WM_CHANGECBCHAIN 0x030D +#define WM_HSCROLLCLIPBOARD 0x030E +#define WM_QUERYNEWPALETTE 0x030F +#define WM_PALETTEISCHANGING 0x0310 +#define WM_PALETTECHANGED 0x0311 +#define WM_HOTKEY 0x0312 +#define WM_PRINT 0x0317 +#define WM_PRINTCLIENT 0x0318 +#define WM_APPCOMMAND 0x0319 +#define WM_THEMECHANGED 0x031A +#define WM_CLIPBOARDUPDATE 0x031D +#define WM_DWMCOMPOSITIONCHANGED 0x031E +#define WM_DWMNCRENDERINGCHANGED 0x031F +#define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320 +#define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321 +#define WM_DWMSENDICONICTHUMBNAIL 0x0323 +#define WM_DWMSENDICONICLIVEPREVIEWBITMAP 0x0326 +#define WM_GETTITLEBARINFOEX 0x033F +#define WM_HANDHELDFIRST 0x0358 +#define WM_HANDHELDLAST 0x035F +#define WM_AFXFIRST 0x0360 +#define WM_AFXLAST 0x037F +#define WM_PENWINFIRST 0x0380 +#define WM_PENWINLAST 0x038F +#define WM_DDE_FIRST 0x03E0 +#define CF_GDIOBJLAST 0x03FF +#define _WIN32_WINNT_NT4 0x0400 +#define _WIN32_IE_IE40 0x0400 +#define WM_USER 0x0400 +#define WVR_VALIDRECTS 0x0400 +#define HDS_CHECKBOXES 0x0400 +#define TBSTYLE_ALTDRAG 0x0400 +#define RBS_BANDBORDERS 0x00000400 +#define TBS_DOWNISLEFT 0x0400 +#define LVS_OWNERDRAWFIXED 0x0400 +#define TVS_SINGLEEXPAND 0x0400 +#define TVS_EX_DRAWIMAGEASYNC 0x0400 +#define TCS_FIXEDWIDTH 0x0400 +#define ctlFirst 0x0400 +#define psh1 0x0400 +#define _WIN32_IE_IE401 0x0401 +#define psh2 0x0401 +#define psh3 0x0402 +#define psh4 0x0403 +#define psh5 0x0404 +#define psh6 0x0405 +#define psh7 0x0406 +#define psh8 0x0407 +#define psh9 0x0408 +#define psh10 0x0409 +#define psh11 0x040a +#define psh12 0x040b +#define psh13 0x040c +#define psh14 0x040d +#define psh15 0x040e +#define psh16 0x040f +#define _WIN32_WINDOWS 0x0410 +#define chx1 0x0410 +#define chx2 0x0411 +#define chx3 0x0412 +#define chx4 0x0413 +#define chx5 0x0414 +#define chx6 0x0415 +#define chx7 0x0416 +#define chx8 0x0417 +#define chx9 0x0418 +#define chx10 0x0419 +#define chx11 0x041a +#define chx12 0x041b +#define chx13 0x041c +#define chx14 0x041d +#define chx15 0x041e +#define chx16 0x041f +#define rad1 0x0420 +#define rad2 0x0421 +#define rad3 0x0422 +#define rad4 0x0423 +#define rad5 0x0424 +#define rad6 0x0425 +#define rad7 0x0426 +#define rad8 0x0427 +#define rad9 0x0428 +#define rad10 0x0429 +#define rad11 0x042a +#define rad12 0x042b +#define rad13 0x042c +#define rad14 0x042d +#define rad15 0x042e +#define rad16 0x042f +#define grp1 0x0430 +#define grp2 0x0431 +#define grp3 0x0432 +#define grp4 0x0433 +#define frm1 0x0434 +#define frm2 0x0435 +#define frm3 0x0436 +#define frm4 0x0437 +#define rct1 0x0438 +#define rct2 0x0439 +#define rct3 0x043a +#define rct4 0x043b +#define ico1 0x043c +#define ico2 0x043d +#define ico3 0x043e +#define ico4 0x043f +#define stc1 0x0440 +#define stc2 0x0441 +#define stc3 0x0442 +#define stc4 0x0443 +#define stc5 0x0444 +#define stc6 0x0445 +#define stc7 0x0446 +#define stc8 0x0447 +#define stc9 0x0448 +#define stc10 0x0449 +#define stc11 0x044a +#define stc12 0x044b +#define stc13 0x044c +#define stc14 0x044d +#define stc15 0x044e +#define stc16 0x044f +#define stc17 0x0450 +#define stc18 0x0451 +#define stc19 0x0452 +#define stc20 0x0453 +#define stc21 0x0454 +#define stc22 0x0455 +#define stc23 0x0456 +#define stc24 0x0457 +#define stc25 0x0458 +#define stc26 0x0459 +#define stc27 0x045a +#define stc28 0x045b +#define stc29 0x045c +#define stc30 0x045d +#define stc31 0x045e +#define stc32 0x045f +#define lst1 0x0460 +#define lst2 0x0461 +#define lst3 0x0462 +#define lst4 0x0463 +#define lst5 0x0464 +#define lst6 0x0465 +#define lst7 0x0466 +#define lst8 0x0467 +#define lst9 0x0468 +#define lst10 0x0469 +#define lst11 0x046a +#define lst12 0x046b +#define lst13 0x046c +#define lst14 0x046d +#define lst15 0x046e +#define lst16 0x046f +#define cmb1 0x0470 +#define cmb2 0x0471 +#define cmb3 0x0472 +#define cmb4 0x0473 +#define cmb5 0x0474 +#define cmb6 0x0475 +#define cmb7 0x0476 +#define cmb8 0x0477 +#define cmb9 0x0478 +#define cmb10 0x0479 +#define cmb11 0x047a +#define cmb12 0x047b +#define cmb13 0x047c +#define cmb14 0x047d +#define cmb15 0x047e +#define cmb16 0x047f +#define edt1 0x0480 +#define edt2 0x0481 +#define edt3 0x0482 +#define edt4 0x0483 +#define edt5 0x0484 +#define edt6 0x0485 +#define edt7 0x0486 +#define edt8 0x0487 +#define edt9 0x0488 +#define edt10 0x0489 +#define edt11 0x048a +#define edt12 0x048b +#define edt13 0x048c +#define edt14 0x048d +#define edt15 0x048e +#define edt16 0x048f +#define scr1 0x0490 +#define scr2 0x0491 +#define scr3 0x0492 +#define scr4 0x0493 +#define scr5 0x0494 +#define scr6 0x0495 +#define scr7 0x0496 +#define scr8 0x0497 +#define ctl1 0x04A0 +#define ctlLast 0x04ff +#define _WIN32_WINNT_WIN2K 0x0500 +#define _WIN32_IE_IE50 0x0500 +#define _WIN32_WINNT_WINXP 0x0501 +#define _WIN32_IE_IE501 0x0501 +#define _WIN32_WINNT_WS03 0x0502 +#define _WIN32_IE_IE55 0x0550 +#define _WIN32_WINNT_WIN6 0x0600 +#define _WIN32_WINNT_VISTA 0x0600 +#define _WIN32_WINNT_WS08 0x0600 +#define _WIN32_WINNT_LONGHORN 0x0600 +#define _WIN32_IE_IE60 0x0600 +#define FILEOPENORD 1536 +#define _WIN32_WINNT_WIN7 0x0601 +#define _WIN32_IE_IE60SP1 0x0601 +#define MULTIFILEOPENORD 1537 +#define _WIN32_WINNT_WIN8 0x0602 +#define _WIN32_IE_WS03 0x0602 +#define PRINTDLGORD 1538 +#define _WIN32_WINNT_WINBLUE 0x0603 +#define _WIN32_IE_IE60SP2 0x0603 +#define PRNSETUPDLGORD 1539 +#define FINDDLGORD 1540 +#define REPLACEDLGORD 1541 +#define FONTDLGORD 1542 +#define FORMATDLGORD31 1543 +#define FORMATDLGORD30 1544 +#define RUNDLGORD 1545 +#define PAGESETUPDLGORD 1546 +#define NEWFILEOPENORD 1547 +#define PRINTDLGEXORD 1549 +#define PAGESETUPDLGORDMOTIF 1550 +#define COLORMGMTDLGORD 1551 +#define NEWFILEOPENV2ORD 1552 +#define NEWFILEOPENV3ORD 1553 +#define NEWFORMATDLGWITHLINK 1591 +#define IDC_MANAGE_LINK 1592 +#define _WIN32_IE_IE70 0x0700 +#define _WIN32_IE_IE80 0x0800 +#define CS_SAVEBITS 0x0800 +#define HDS_NOSIZING 0x0800 +#define TBSTYLE_FLAT 0x0800 +#define RBS_FIXEDORDER 0x00000800 +#define SBARS_TOOLTIPS 0x0800 +#define SBT_TOOLTIPS 0x0800 +#define TBS_NOTIFYBEFOREMOVE 0x0800 +#define LVS_ALIGNLEFT 0x0800 +#define TVS_INFOTIP 0x0800 +#define TCS_RAGGEDRIGHT 0x0800 +#define _WIN32_IE_IE90 0x0900 +#define _WIN32_WINNT_WINTHRESHOLD 0x0A00 +#define _WIN32_WINNT_WIN10 0x0A00 +#define _WIN32_IE_IE100 0x0A00 +#define _WIN32_IE_IE110 0x0A00 +#define _WIN32_WINNT 0x0A00 +#define _WIN32_IE 0x0A00 +#define LVS_ALIGNMASK 0x0c00 +#define CS_BYTEALIGNCLIENT 0x1000 +#define HDS_OVERFLOW 0x1000 +#define TBSTYLE_LIST 0x1000 +#define RBS_REGISTERDROP 0x00001000 +#define TBS_TRANSPARENTBKGND 0x1000 +#define LVS_OWNERDATA 0x1000 +#define TVS_FULLROWSELECT 0x1000 +#define TCS_FOCUSONBUTTONDOWN 0x1000 +#define CS_BYTEALIGNWINDOW 0x2000 +#define TBSTYLE_CUSTOMERASE 0x2000 +#define RBS_AUTOSIZE 0x00002000 +#define LVS_NOSCROLL 0x2000 +#define TVS_NOSCROLL 0x2000 +#define TCS_OWNERDRAWFIXED 0x2000 +#define CS_GLOBALCLASS 0x4000 +#define TBSTYLE_REGISTERDROP 0x4000 +#define RBS_VERTICALGRIPPER 0x00004000 +#define LVS_NOCOLUMNHEADER 0x4000 +#define TVS_NONEVENHEIGHT 0x4000 +#define TCS_TOOLTIPS 0x4000 +#define IDH_NO_HELP 28440 +#define IDH_MISSING_CONTEXT 28441 +#define IDH_GENERIC_HELP_BUTTON 28442 +#define IDH_OK 28443 +#define IDH_CANCEL 28444 +#define IDH_HELP 28445 +#define LANG_BOSNIAN_NEUTRAL 0x781a +#define LANG_CHINESE_TRADITIONAL 0x7c04 +#define LANG_SERBIAN_NEUTRAL 0x7c1a +#define IDTIMEOUT 32000 +#define OCR_NORMAL 32512 +#define OIC_SAMPLE 32512 +#define IDI_APPLICATION 32512 +#define OCR_IBEAM 32513 +#define OIC_HAND 32513 +#define IDI_HAND 32513 +#define OCR_WAIT 32514 +#define OIC_QUES 32514 +#define IDI_QUESTION 32514 +#define OCR_CROSS 32515 +#define OIC_BANG 32515 +#define IDI_EXCLAMATION 32515 +#define OCR_UP 32516 +#define OIC_NOTE 32516 +#define IDI_ASTERISK 32516 +#define OIC_WINLOGO 32517 +#define IDI_WINLOGO 32517 +#define OIC_SHIELD 32518 +#define IDI_SHIELD 32518 +#define OCR_SIZE 32640 +#define OCR_ICON 32641 +#define OCR_SIZENWSE 32642 +#define OCR_SIZENESW 32643 +#define OCR_SIZEWE 32644 +#define OCR_SIZENS 32645 +#define OCR_SIZEALL 32646 +#define OCR_ICOCUR 32647 +#define OCR_NO 32648 +#define OCR_HAND 32649 +#define OCR_APPSTARTING 32650 +#define OBM_LFARROWI 32734 +#define OBM_RGARROWI 32735 +#define OBM_DNARROWI 32736 +#define OBM_UPARROWI 32737 +#define OBM_COMBO 32738 +#define OBM_MNARROW 32739 +#define OBM_LFARROWD 32740 +#define OBM_RGARROWD 32741 +#define OBM_DNARROWD 32742 +#define OBM_UPARROWD 32743 +#define OBM_RESTORED 32744 +#define OBM_ZOOMD 32745 +#define OBM_REDUCED 32746 +#define OBM_RESTORE 32747 +#define OBM_ZOOM 32748 +#define OBM_REDUCE 32749 +#define OBM_LFARROW 32750 +#define OBM_RGARROW 32751 +#define OBM_DNARROW 32752 +#define OBM_UPARROW 32753 +#define OBM_CLOSE 32754 +#define OBM_OLD_RESTORE 32755 +#define OBM_OLD_ZOOM 32756 +#define OBM_OLD_REDUCE 32757 +#define OBM_BTNCORNERS 32758 +#define OBM_CHECKBOXES 32759 +#define OBM_CHECK 32760 +#define OBM_BTSIZE 32761 +#define OBM_OLD_LFARROW 32762 +#define OBM_OLD_RGARROW 32763 +#define OBM_OLD_DNARROW 32764 +#define OBM_OLD_UPARROW 32765 +#define OBM_SIZE 32766 +#define OBM_OLD_CLOSE 32767 +#define WM_APP 0x8000 +#define HELP_TCARD 0x8000 +#define TBSTYLE_TRANSPARENT 0x8000 +#define RBS_DBLCLKTOGGLE 0x00008000 +#define LVS_NOSORTHEADER 0x8000 +#define TVS_NOHSCROLL 0x8000 +#define TCS_FOCUSNEVER 0x8000 +#define SC_SIZE 0xF000 +#define SC_SEPARATOR 0xF00F +#define SC_MOVE 0xF010 +#define SC_MINIMIZE 0xF020 +#define SC_MAXIMIZE 0xF030 +#define SC_NEXTWINDOW 0xF040 +#define SC_PREVWINDOW 0xF050 +#define SC_CLOSE 0xF060 +#define SC_VSCROLL 0xF070 +#define SC_HSCROLL 0xF080 +#define SC_MOUSEMENU 0xF090 +#define SC_KEYMENU 0xF100 +#define SC_ARRANGE 0xF110 +#define SC_RESTORE 0xF120 +#define SC_TASKLIST 0xF130 +#define SC_SCREENSAVE 0xF140 +#define SC_HOTKEY 0xF150 +#define SC_DEFAULT 0xF160 +#define SC_MONITORPOWER 0xF170 +#define SC_CONTEXTHELP 0xF180 +#define LVS_TYPESTYLEMASK 0xfc00 +#define SPVERSION_MASK 0x0000FF00 +#define HTERROR -2 +#define PWR_FAIL -1 +#define UNICODE_NOCHAR 0xFFFF +#define HTTRANSPARENT -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 101 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1000 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/DazStudioPlugin/version.h b/DazStudioPlugin/version.h new file mode 100644 index 0000000..4ebc73e --- /dev/null +++ b/DazStudioPlugin/version.h @@ -0,0 +1,10 @@ +#pragma once +#include "dzversion.h" + +// Version number for dzBridge-C4D +#define PLUGIN_MAJOR 2022 +#define PLUGIN_MINOR 1 +#define PLUGIN_REV 4 +#define PLUGIN_BUILD 8 + +#define PLUGIN_VERSION DZ_MAKE_VERSION( PLUGIN_MAJOR, PLUGIN_MINOR, PLUGIN_REV, PLUGIN_BUILD ) diff --git a/Test/QA Manual Test Cases.md b/Test/QA Manual Test Cases.md new file mode 100644 index 0000000..58e3797 --- /dev/null +++ b/Test/QA Manual Test Cases.md @@ -0,0 +1,148 @@ +# QA Manual Test Cases: Unreal script support # + +## TC1. Load and Export Genesis 8 Basic Female to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Genesis 8 Basic Female. +6. Select File->Send To->Daz To Unreal. +7. Confirm Asset Name is "Genesis8Female" in the Daz To Unreal dialog window. +8. Click "Accept". +9. Confirm Unreal Engine has successfully generated a new "Genesis8Female" asset in the Content Browser Pane. +10. Confirm that a "Genesis8Female" subfolder was generated in the Intermediate Folder, with "Genesis8Female.dtu" and "Genesis8Female.fbx" files. +11. Confirm that "ExportTextures" subfolder is present in the "Genesis8Female" folder, with 6 normal map files for: arms, eyes, face, legs, mouth, torso. +12. Confirm normal maps are valid images by opening each one in an image viewer. +13. In Daz Studio, go to the Surfaces pane and click the "Editor" tab. +14. Select "Genesis 8 Female", type "normal" in the search/filter bar text box which is found next to the magnifying glass icon. +15. Confirm that pane shows "(16): Normal Map" property with "Choose Map" text displayed. + +## TC2. Load and Export Additional Genesis 8.1 Basic Female to Unreal +1. Continue from previous Daz Studio and Unreal Engine session (test case 1). +2. Deselect "Genesis 8 Female" from Scene. +3. Load Genesis 8.1 Basic Female. +4. Confirm new Scene node is created named "Genesis 8.1 Female". +5. Select File->Send To->Daz To Unreal. +6. Confirm Asset Name is "Genesis81Female" in the Daz To Unreal dialog window. +7. Click "Accept". +8. Confirm UnrealEngine has successfully generated a new "Genesis81Female" asset in the Content Browser Pane. +9. Confirm that a "Genesis81Female" subfolder was generated in the Intermediate Folder, with "Genesis81Female.dtu" and "Genesis81Female.fbx" files. +10. Confirm that "ExportTextures" subfolder is present in the "Genesis8Female" folder, with 5 normal map files for: body, face, head, arms, legs. +11. Confirm normal maps are valid images by opening each one in an image viewer. +12. In Daz Studio, go to the Surfaces pane and click the "Editor" tab. +13. Open the "Genesis 8.1 Female" tree and select "Skin-Lips-Nails", type "normal" in the search/filter bar text box which is found next to the magnifying glass icon. +14. Confirm that pane shows "(10): Normal Map" property with "Choose Map" text displayed. + +## TC3. Load and Export Genesis 8.1 Basic Female with Custom Scene Node Label. +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Genesis 8.1 Basic Female. +6. Select the Genesis 8.1 Basic Female from the Scene Pane. +7. Rename the node to "CustomSceneLabel". +8. Select File->Send To->Daz To Unreal. +9. Confirm Asset Name is "CustomSceneLabel" in the Daz To Unreal dialog window. +10. Click "Accept". +11. Confirm Unreal Engine has successfully generated a new "CustomSceneLabel" asset in the Content Browser Pane. +12. Confirm that a "CustomSceneLabel" subfolder was generated in the Intermediate Folder, with "CustomSceneLabel.dtu" and "CustomSceneLabel.fbx" files. + +## TC4. Load and Export Genesis 8.1 Basic Female with Custom Asset Name to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Genesis 8.1 Basic Female. +6. Select File->Send To->Daz To Unreal. +7. Confirm Asset Name is "Genesis81Female" in the Daz To Unreal dialog window. +8. Change Asset Name to "CustomAssetName". +9. Click "Accept". +10. Confirm Unreal Engine has successfully generated a new "CustomAssetName" asset in the Content Browser Pane. +11. Confirm that a "CustomAssetName" subfolder was generated in the Intermediate Folder, with "CustomAssetName.dtu" and "CustomAssetName.fbx" files. + +## TC5. Load and Export Genesis 8.1 Basic Female with Custom Intermediate Folder to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Genesis 8.1 Basic Female. +6. Select File->Send To->Daz To Unreal. +7. Confirm Intermediate Folder is "C:\Users\\Documents\DazToUnreal" in the Daz To Unreal dialog window. +8. Change Intermediate Folder to "C:\CustomRoot". +9. Click "Accept". +10. Confirm Unreal Engine has successfully generated a new "Genesis81Female" asset in the Content Browser Pane. +11. Confirm there is a "C:\CustomRoot" folder with "Genesis81Female" subfolder containing "Genesis81Female.dtu" and "Genesis81Female.fbx". + +## TC6. Load and Export Genesis 8.1 Basic Female with Enable Morphs to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Genesis 8.1 Basic Female. +6. Select File->Send To->Daz To Unreal. +7. Check "Enable Morphs", then Click "Choose Morphs". +8. Select a Morph such as "Genesis 8.1 Female -> Actor -> Bodybuilder" from the left and middle panes. Then click "Add For Export" so that it appears in the right pane. +9. Click "Accept" for the Morph Selection dialog. +10. Click "Accept" for the Daz To Unreal dialog. +11. Confirm Unreal Engine has successfully generated a new "Genesis81Female" asset in the Content Browser Pane. +12. Double-click the "Genesis81Female" asset to show the asset viewer window. +13. Confirm that the exported morph appears in the "Morph Target Preview" pane on the right side of the asset viewer window. +14. Confirm that moving the slider to 1.0 fully applies the morph. +15. Confirm that moving the slider to 0.0 fully removes the morph. + +## TC7. Load and Export Genesis 8.1 Basic Female with Enable Subdivisions to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Genesis 8.1 Basic Female. +6. Select File->Send To->Daz To Unreal. +7. Check "Enable Subdivision", then Click "Choose Subdivisions". +8. Select the drop-down for Genesis 8.1 Female, and change to Subdivision Level 2. +9. Click "Accept" for the Subdivision Levels dialog. +10. Click "Accept" for the Daz To Unreal dialog. +11. Confirm Unreal Engine has successfully generated a new "Genesis81Female" asset in the Content Browser Pane. +12. Double-click the "Genesis81Female" asset to show the asset viewer window. +13. Confirm that the Vertices info printed in the top left corner of the preview window shows 271,418 instead of 19,775. +14. Confirm that a "Genesis81Female" subfolder was generated in the Intermediate Folder, with "Genesis81Female.dtu", "Genesis81Female.fbx", "Genesis81Female_base.fbx" and "Genesis81Female_HD.fbx" files. + +## TC8. Load and Export Custom Scene File to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Select File->Open... and load "QA-Test-Scene-01.duf". +6. Select File->Send To->Daz To Unreal. +7. Confirm the Asset Name is "QATestScene01". +8. Click "Accept". +9. Confirm Unreal Engine has successfully generated a new "QATestScene01" asset in the Content Browser Pane. +10. Confirm that a "QATestScene01" subfolder was generated in the Intermediate Folder, with "QATestScene01.dtu" and "QATestScene01.fbx" files. + +## TC9. Load and Export Victoria 8.1 to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Victoria 8.1. +6. Select File->Send To->Daz To Unreal. +7. Confirm the Asset Name is "Victoria81". +8. Click "Accept". +9. Confirm Unreal Engine has successfully generated a new "Victoria81" asset in the Content Browser Pane. +10. Confirm that a "Victoria81" subfolder was generated in the Intermediate Folder, with "Victoria81.dtu" and "Victoria81.fbx" files. +11. Confirm that "ExportTextures" subfolder is NOT present in the "Victoria81" folder. + +## TC10. Load and Export Victoria 8.1 with "Victoria 8.1 Tattoo All - Add" to Unreal +1. Start Daz Studio. +2. Confirm correct version number of pre-release Daz Studio bridge plugin. +3. Start Unreal Engine. +4. Confirm correct version number of pre-release UnrealEngine bridge plugin. +5. Load Victoria 8.1. +6. Open the Materials section and load "Victoria 8.1 Tattoo All - Add" onto Victoria 8.1. +7. Wait for the L.I.E. textures to be baked and updated in the Viewport. This can take a few minutes. +8. Select File->Send To->Daz To Unreal. +9. Confirm the Asset Name is "Victoria81". +10. Click "Accept". +11. Confirm Unreal Engine has successfully generated a new "Victoria81" asset in the Content Browser Pane. +12. Double-click the "Victoria81" asset to show the asset viewer window. +13. Confirm that the asset has full body tattoos visible in the asset viewer. +14. Confirm that a "Victoria81" subfolder was generated in the Intermediate Folder, with "Victoria81.dtu" and "Victoria81.fbx" files, and additional "ExportTextures" folder with 8 PNG texture files (d10.png to d17.png). diff --git a/Test/QA-Test-Scene-01.duf b/Test/QA-Test-Scene-01.duf new file mode 100644 index 0000000000000000000000000000000000000000..f66bafb3b3d4538aeda6e2b5faf3a0851cb110f2 GIT binary patch literal 117286 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%0A*R(B~c>=LXxS}MDfy|D2cJ;~-d+77WVO9pk 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 0) + { + obj.setMorphList(arrayMorphList); + } + + obj.executeAction() + + var sReturnString = obj.getRootFolder() + "/" + obj.getExportFolder() + "/" + obj.getExportFilename() + ".dtu" + + return sReturnString; +} diff --git a/Test/UnitTests/CMakeLists.txt b/Test/UnitTests/CMakeLists.txt new file mode 100644 index 0000000..07b8317 --- /dev/null +++ b/Test/UnitTests/CMakeLists.txt @@ -0,0 +1,15 @@ +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(COMMON_LIB_INCLUDE_DIR ${COMMON_LIB_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) +set(COMMON_LIB_INCLUDE_DIR ${COMMON_LIB_INCLUDE_DIR} PARENT_SCOPE) + +include_directories(${COMMON_LIB_INCLUDE_DIR}) + +set(QA_SRCS + ${CMAKE_CURRENT_SOURCE_DIR}/UnitTest_DzC4DAction.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/UnitTest_DzC4DAction.h + ${CMAKE_CURRENT_SOURCE_DIR}/UnitTest_DzC4DDialog.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/UnitTest_DzC4DDialog.h +) +set(QA_SRCS ${QA_SRCS} PARENT_SCOPE) \ No newline at end of file diff --git a/Test/UnitTests/RunUnitTests.dsa b/Test/UnitTests/RunUnitTests.dsa new file mode 100644 index 0000000..5c00f67 --- /dev/null +++ b/Test/UnitTests/RunUnitTests.dsa @@ -0,0 +1,43 @@ +// DAZ Studio version 4.16.0.3 filetype DAZ Script +var includeDir_oFILE = new DzFile( getScriptFileName() ); +//var sIncludePath = includeDir_oFILE.path(); +var sIncludePath = "C:/GitHub/DazToC4D-daz3d/Test/UnitTests/" +var sOutputPath = "C:/GitHub/DazToC4D-daz3d/Test/Results/"; + +/* +obj = new UnitTest_DzBridgeScriptableAction(); +result = false; +result = obj.runUnitTests(); +print("Unit Test Results (DzBridgeAction): " + result); +obj.writeAllTestResults(sOutputPath); + +obj = new UnitTest_DzBridgeDialog(); +result = false; +result = obj.runUnitTests(); +print("Unit Test Results (DzBridgeDialog): " + result); +obj.writeAllTestResults(sOutputPath); + +obj = new UnitTest_DzBridgeMorphSelectionDialog(); +result = false; +result = obj.runUnitTests(); +print("Unit Test Results (DzBridgeMorphSelectionDialog): " + result); +obj.writeAllTestResults(sOutputPath); + +obj = new UnitTest_DzBridgeSubdivisionDialog(); +result = false; +result = obj.runUnitTests(); +print("Unit Test Results (DzBridgeSubdivisionDialog): " + result); +obj.writeAllTestResults(sOutputPath); +*/ + +obj = new UnitTest_DzC4DAction(); +result = false; +result = obj.runUnitTests(); +print("Unit Test Results (DzC4DAction): " + result); +obj.writeAllTestResults(sOutputPath); + +obj = new UnitTest_DzC4DDialog(); +result = false; +result = obj.runUnitTests(); +print("Unit Test Results (DzC4DDialog): " + result); +obj.writeAllTestResults(sOutputPath); diff --git a/Test/UnitTests/UnitTest_DzC4DAction.cpp b/Test/UnitTests/UnitTest_DzC4DAction.cpp new file mode 100644 index 0000000..b66f15f --- /dev/null +++ b/Test/UnitTests/UnitTest_DzC4DAction.cpp @@ -0,0 +1,70 @@ +#ifdef UNITTEST_DZBRIDGE + +#include "UnitTest_DzC4DAction.h" +#include "DzC4DAction.h" + + +UnitTest_DzC4DAction::UnitTest_DzC4DAction() +{ + m_testObject = (QObject*) new DzC4DAction(); +} + +bool UnitTest_DzC4DAction::runUnitTests() +{ + RUNTEST(_DzBridgeC4DAction); + RUNTEST(executeAction); + RUNTEST(createUI); + RUNTEST(writeConfiguration); + RUNTEST(setExportOptions); + RUNTEST(readGuiRootFolder); + + return true; +} + +bool UnitTest_DzC4DAction::_DzBridgeC4DAction(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(new DzC4DAction()); + return bResult; +} + +bool UnitTest_DzC4DAction::executeAction(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->executeAction()); + return bResult; +} + +bool UnitTest_DzC4DAction::createUI(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->createUI()); + return bResult; +} + +bool UnitTest_DzC4DAction::writeConfiguration(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->writeConfiguration()); + return bResult; +} + +bool UnitTest_DzC4DAction::setExportOptions(UnitTest::TestResult* testResult) +{ + bool bResult = true; + DzFileIOSettings arg; + TRY_METHODCALL(qobject_cast(m_testObject)->setExportOptions(arg)); + return bResult; +} + +bool UnitTest_DzC4DAction::readGuiRootFolder(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->readGuiRootFolder()); + return bResult; +} + + +#include "moc_UnitTest_DzC4DAction.cpp" + +#endif diff --git a/Test/UnitTests/UnitTest_DzC4DAction.h b/Test/UnitTests/UnitTest_DzC4DAction.h new file mode 100644 index 0000000..2630208 --- /dev/null +++ b/Test/UnitTests/UnitTest_DzC4DAction.h @@ -0,0 +1,23 @@ +#pragma once +#ifdef UNITTEST_DZBRIDGE + +#include +#include + +class UnitTest_DzC4DAction : public UnitTest { + Q_OBJECT +public: + UnitTest_DzC4DAction(); + bool runUnitTests(); + +private: + bool _DzBridgeC4DAction(UnitTest::TestResult* testResult); + bool executeAction(UnitTest::TestResult* testResult); + bool createUI(UnitTest::TestResult* testResult); + bool writeConfiguration(UnitTest::TestResult* testResult); + bool setExportOptions(UnitTest::TestResult* testResult); + bool readGuiRootFolder(UnitTest::TestResult* testResult); + +}; + +#endif diff --git a/Test/UnitTests/UnitTest_DzC4DDialog.cpp b/Test/UnitTests/UnitTest_DzC4DDialog.cpp new file mode 100644 index 0000000..881a754 --- /dev/null +++ b/Test/UnitTests/UnitTest_DzC4DDialog.cpp @@ -0,0 +1,68 @@ +#ifdef UNITTEST_DZBRIDGE + +#include "UnitTest_DzC4DDialog.h" +#include "DzC4DDialog.h" + + +UnitTest_DzC4DDialog::UnitTest_DzC4DDialog() +{ + m_testObject = (QObject*) new DzC4DDialog(); +} + +bool UnitTest_DzC4DDialog::runUnitTests() +{ + RUNTEST(_DzBridgeC4DDialog); + RUNTEST(getIntermediateFolderEdit); + RUNTEST(resetToDefaults); + RUNTEST(loadSavedSettings); + RUNTEST(HandleSelectIntermediateFolderButton); + RUNTEST(HandleAssetTypeComboChange); + + return true; +} + +bool UnitTest_DzC4DDialog::_DzBridgeC4DDialog(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(new DzC4DDialog()); + return bResult; +} + +bool UnitTest_DzC4DDialog::getIntermediateFolderEdit(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->getIntermediateFolderEdit()); + return bResult; +} + +bool UnitTest_DzC4DDialog::resetToDefaults(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->resetToDefaults()); + return bResult; +} + +bool UnitTest_DzC4DDialog::loadSavedSettings(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->loadSavedSettings()); + return bResult; +} + +bool UnitTest_DzC4DDialog::HandleSelectIntermediateFolderButton(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->HandleSelectIntermediateFolderButton()); + return bResult; +} + +bool UnitTest_DzC4DDialog::HandleAssetTypeComboChange(UnitTest::TestResult* testResult) +{ + bool bResult = true; + TRY_METHODCALL(qobject_cast(m_testObject)->HandleAssetTypeComboChange(0)); + return bResult; +} + + +#include "moc_UnitTest_DzC4DDialog.cpp" +#endif diff --git a/Test/UnitTests/UnitTest_DzC4DDialog.h b/Test/UnitTests/UnitTest_DzC4DDialog.h new file mode 100644 index 0000000..91d7992 --- /dev/null +++ b/Test/UnitTests/UnitTest_DzC4DDialog.h @@ -0,0 +1,24 @@ +#pragma once +#ifdef UNITTEST_DZBRIDGE + +#include +#include "UnitTest.h" + +class UnitTest_DzC4DDialog : public UnitTest { + Q_OBJECT +public: + UnitTest_DzC4DDialog(); + bool runUnitTests(); + +private: + bool _DzBridgeC4DDialog(UnitTest::TestResult* testResult); + bool getIntermediateFolderEdit(UnitTest::TestResult* testResult); + bool resetToDefaults(UnitTest::TestResult* testResult); + bool loadSavedSettings(UnitTest::TestResult* testResult); + bool HandleSelectIntermediateFolderButton(UnitTest::TestResult* testResult); + bool HandleAssetTypeComboChange(UnitTest::TestResult* testResult); + +}; + + +#endif diff --git a/dzbridge-common b/dzbridge-common new file mode 160000 index 0000000..a2f538b --- /dev/null +++ b/dzbridge-common @@ -0,0 +1 @@ +Subproject commit a2f538b8502f2a1ab01a1c7fd8a8626d4da68627