From 0e06e47f6ebce1ae442293095373e8765c08f0cf Mon Sep 17 00:00:00 2001 From: Pyogenics Date: Sun, 27 Apr 2025 20:23:45 +0100 Subject: [PATCH] Correct parent behaviour for both import and export on version 2 models --- io_scene_a3d/A3DBlenderExporter.py | 6 +++--- io_scene_a3d/A3DBlenderImporter.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/io_scene_a3d/A3DBlenderExporter.py b/io_scene_a3d/A3DBlenderExporter.py index 0f3f922..7e5d875 100644 --- a/io_scene_a3d/A3DBlenderExporter.py +++ b/io_scene_a3d/A3DBlenderExporter.py @@ -79,11 +79,11 @@ class A3DBlenderExporter: transformParentIDs = [] for ob in self.objects: parentOB = ob.parent - if (parentOB == None) or (ob.name not in transforms): + if (parentOB == None) or (parentOB.name not in transforms): transformParentIDs.append(0) #XXX: this is only for version 2 else: - parentIndex = list(transforms.keys()).index(ob.name) - transformParentIDs.append(parentIndex) + parentIndex = list(transforms.keys()).index(parentOB.name) + transformParentIDs.append(parentIndex+1) self.modelData.materials = materials.values() self.modelData.meshes = meshes diff --git a/io_scene_a3d/A3DBlenderImporter.py b/io_scene_a3d/A3DBlenderImporter.py index c0be3c2..7635340 100644 --- a/io_scene_a3d/A3DBlenderImporter.py +++ b/io_scene_a3d/A3DBlenderImporter.py @@ -71,11 +71,11 @@ class A3DBlenderImporter: for obI, ob in enumerate(objects): # Assign parents parentID = self.modelData.transformParentIDs[obI] - if parentID == 0 and self.modelData.version < 3: + if self.modelData.version < 3: # version 2 models use 0 to signify empty parent - continue - elif parentID == -1: - # version 3 models use -1 to signify empty parent + parentID -= 1 + if parentID == -1: + # empty parent continue parentOB = objects[parentID] ob.parent = parentOB