pyjallib 0.1.19__tar.gz → 0.1.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyjallib-0.1.19 → pyjallib-0.1.20}/PKG-INFO +1 -1
- {pyjallib-0.1.19 → pyjallib-0.1.20}/pyproject.toml +1 -1
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/__init__.py +1 -1
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/toolManager.py +22 -6
- pyjallib-0.1.20/src/pyjallib/max/ui/__init__.py +10 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/uv.lock +1 -1
- {pyjallib-0.1.19 → pyjallib-0.1.20}/.gitignore +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/.python-version +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/PRD/BIPPY_/353/260/224/354/235/264/355/214/250/353/223/234_/354/203/235/354/204/261_/353/266/204/354/204/235.md" +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/PRD/PyJalLib_Mocap_Module_PRD.md +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/PRD//353/241/234/352/271/205 /353/252/250/353/223/210 /354/240/234/354/236/221.md" +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/README.md +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/index.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/max.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/namePart.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/nameToPath.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/naming.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/namingConfig.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/p4module.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/perforce.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib/reloadModules.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/pyjallib.html +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/docs/search.js +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/generate_docs.ps1 +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/20250702_max_fbx_export.log +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/20250702_project_specific.log +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/20250702_pyjallib.log +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/logs/pyjallib.log +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/ref/BIPPY.ms +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ConfigFiles/namingConfig.json +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/exceptions.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/logger.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/ConfigFiles/3DSMaxNamingConfig.json +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/ConfigFiles/Default_3DSMaxNamingConfig.json +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/__init__.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/align.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/anim.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/autoClavicle.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/bip.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/bone.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/boneChain.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/constraint.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/elbow.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/fbxHandler.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/groinBone.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/header.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/helper.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/hip.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/inguinal.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/kneeBone.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/layer.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/link.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_align.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_bone.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_constraint.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_helper.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_link.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/macro/jal_macro_select.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/mirror.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/mocap.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/morph.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/name.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/progress.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/rootMotion.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/select.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/shoulder.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/skeleton.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/skin.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/twistBone.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/ui/Container.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/volumeBone.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/wrist.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/namePart.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/nameToPath.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/naming.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/namingConfig.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/perforce.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/progressEvent.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/py.typed +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/reloadModules.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/ConfigFiles/UE5NamingConfig.json +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/__init__.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/disableInterchangeFrameWork.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/__init__.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/animationImporter.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/baseImporter.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/importerSettings.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/skeletalMeshImporter.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/inUnreal/skeletonImporter.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/logger.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templateProcessor.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/__init__.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/animImportTemplate.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/batchAnimImportTemplate.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/skeletalMeshImportTemplate.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/skeletonImportTemplate.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/test_debug.log +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/animImportTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/animNodeTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/autoclavicleTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/example_perforce_usage.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/fbxExportTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/globalVarTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/moduleImportTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/p4Test.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/perforce_exception_test.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/perforce_logging_example.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/skelImportTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/template_processor_test.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/ueImportTest.py +0 -0
- {pyjallib-0.1.19 → pyjallib-0.1.20}/tests/volumePreserveBoneTest.py +0 -0
@@ -10,11 +10,23 @@ from PySide2 import QtWidgets, QtCore
|
|
10
10
|
import gc
|
11
11
|
|
12
12
|
class ToolManager:
|
13
|
+
"""
|
14
|
+
3DS Max에서 실행되는 도구(툴) 인스턴스를 통합 관리하는 클래스입니다.
|
15
|
+
도구의 등록, 닫기, 표시 등 라이프사이클을 관리합니다.
|
16
|
+
"""
|
13
17
|
def __init__(self):
|
18
|
+
"""
|
19
|
+
ToolManager 인스턴스를 초기화합니다.
|
20
|
+
"""
|
14
21
|
self.tools = {} # {tool_class_name: [instances]} 형태로 관리
|
15
22
|
|
16
23
|
def register_tool(self, tool_instance):
|
17
|
-
"""
|
24
|
+
"""
|
25
|
+
도구 인스턴스를 등록합니다.
|
26
|
+
|
27
|
+
Args:
|
28
|
+
tool_instance: 등록할 도구 인스턴스
|
29
|
+
"""
|
18
30
|
class_name = tool_instance.__class__.__name__
|
19
31
|
|
20
32
|
if class_name not in self.tools:
|
@@ -23,7 +35,12 @@ class ToolManager:
|
|
23
35
|
self.tools[class_name].append(tool_instance)
|
24
36
|
|
25
37
|
def close_tool_by_type(self, tool_class):
|
26
|
-
"""
|
38
|
+
"""
|
39
|
+
특정 클래스의 모든 도구 인스턴스를 닫고 정리합니다.
|
40
|
+
|
41
|
+
Args:
|
42
|
+
tool_class: 닫을 도구의 클래스
|
43
|
+
"""
|
27
44
|
class_name = tool_class.__name__
|
28
45
|
|
29
46
|
if class_name not in self.tools:
|
@@ -66,13 +83,12 @@ class ToolManager:
|
|
66
83
|
def show_tool(self, tool_class, **kwargs):
|
67
84
|
"""
|
68
85
|
도구를 표시합니다. 중복 실행을 방지하고 항상 새 인스턴스를 생성합니다.
|
69
|
-
|
86
|
+
|
70
87
|
Args:
|
71
|
-
tool_class: 도구 클래스
|
88
|
+
tool_class: 표시할 도구 클래스
|
72
89
|
**kwargs: 도구 클래스 생성자에 전달할 인자들
|
73
|
-
|
74
90
|
Returns:
|
75
|
-
새로 생성된 도구 인스턴스
|
91
|
+
object: 새로 생성된 도구 인스턴스
|
76
92
|
"""
|
77
93
|
# 기존 인스턴스 모두 정리
|
78
94
|
self.close_tool_by_type(tool_class)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/max/ConfigFiles/Default_3DSMaxNamingConfig.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pyjallib-0.1.19 → pyjallib-0.1.20}/src/pyjallib/ue5/templates/skeletalMeshImportTemplate.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|