Skip to content

Commit 769326b

Browse files
committed
- Bumed version number to 3.0.4
- Accelerated the importer
1 parent 05d0916 commit 769326b

File tree

2 files changed

+41
-14
lines changed

2 files changed

+41
-14
lines changed

ArmaToolbox/MDLImporter.py

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,18 @@ def loadLOD(context, filePtr, objectName, materialData, layerFlag, lodnr):
295295
#scn.objects.link(obj)
296296
#scn.objects.active = obj
297297

298+
# Build Edge database to make finding sharp edges easier
299+
edgeDict = dict()
300+
for edge in mymesh.edges:
301+
v1 = edge.vertices[0]
302+
v2 = edge.vertices[1]
303+
if (v1 > v2): # Swap if out of order
304+
temp = v2
305+
v2 = v1
306+
v1 = temp
307+
#print(f"adding edge index {edge.index} as ({v1},{v2}) to edge dictionary")
308+
edgeDict[(v1,v2)] = edge.index
309+
298310
print("taggs")
299311
loop = True
300312
sharpEdges = None
@@ -320,7 +332,7 @@ def loadLOD(context, filePtr, objectName, materialData, layerFlag, lodnr):
320332
n1 = readULong(filePtr)
321333
n2 = readULong(filePtr)
322334
sharpEdges.append([n1, n2])
323-
#print (sharpEdges)
335+
#print ("sharp edges", sharpEdges)
324336
elif tagName == "#Property#":
325337
# Read named property
326338
propName = struct.unpack("64s", filePtr.read(64))[0].decode("utf-8")
@@ -432,14 +444,29 @@ def loadLOD(context, filePtr, objectName, materialData, layerFlag, lodnr):
432444

433445
print("sharp edges")
434446
# Set sharp edges
447+
#if sharpEdges is not None:
448+
# for edge in mymesh.edges:
449+
# v1 = edge.vertices[0]
450+
# v2 = edge.vertices[1]
451+
# if [v1,v2] in sharpEdges:
452+
# mymesh.edges[edge.index].use_edge_sharp = True
453+
# elif [v2,v1] in sharpEdges:
454+
# mymesh.edges[edge.index].use_edge_sharp = True
455+
456+
# New Code
435457
if sharpEdges is not None:
436-
for edge in mymesh.edges:
437-
v1 = edge.vertices[0]
438-
v2 = edge.vertices[1]
439-
if [v1,v2] in sharpEdges:
440-
mymesh.edges[edge.index].use_edge_sharp = True
441-
elif [v2,v1] in sharpEdges:
442-
mymesh.edges[edge.index].use_edge_sharp = True
458+
for sharpEdge in sharpEdges:
459+
v1 = sharpEdge[0]
460+
v2 = sharpEdge[1]
461+
if (v1 > v2): # Swap if out of order
462+
temp = v2
463+
v2 = v1
464+
v1 = temp
465+
idx = edgeDict[(v1,v2)]
466+
mymesh.edges[idx].use_edge_sharp = True
467+
468+
469+
443470
#for pair in sharpEdges:
444471
# p1 = pair[0]
445472
# p2 = pair[1]

ArmaToolbox/__init__.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "Arma: Toolbox",
33
"description": "Collection of tools for editing Arma 2/3 content",
44
"author": "Hans-Joerg \"Alwarren\" Frieden.",
5-
"version": (3, 0, 0),
5+
"version": (3, 0, 4),
66
"blender": (2, 80, 0),
77
"location": "View3D > Panels",
88
"warning": '',
@@ -150,14 +150,14 @@ class ATBX_OT_rtm_export(bpy.types.Operator, bpy_extras.io_utils.ExportHelper):
150150
bl_description = "Export an Arma 2/3 RTM Animation file"
151151

152152
filename_ext = ".rtm"
153-
filter_glob = bpy.props.StringProperty(
153+
filter_glob : bpy.props.StringProperty(
154154
default="*.rtm",
155155
options={'HIDDEN'})
156-
staticPose = bpy.props.BoolProperty(
156+
staticPose : bpy.props.BoolProperty(
157157
name="Static Pose",
158158
description="Export the current pose as a static pose",
159159
default=False)
160-
clipFrames = bpy.props.BoolProperty(
160+
clipFrames : bpy.props.BoolProperty(
161161
name="Clip Frames to [0,1]",
162162
description="Do not export frames that are outside the 0,1 interval for RTM files",
163163
default=True)
@@ -216,11 +216,11 @@ class ATBX_OT_p3d_export(bpy.types.Operator, bpy_extras.io_utils.ExportHelper):
216216
def execute(self, context):
217217
if context.view_layer.objects.active == None:
218218
context.view_layer.objects.active = bpy.data.objects[0]
219-
219+
220220
#try:
221221
# Open the file and export
222222
filePtr = open(self.filepath, "wb")
223-
exportMDL(filePtr, self.selectionOnly);
223+
exportMDL(self, filePtr, self.selectionOnly);
224224
filePtr.close()
225225

226226
# Write a temporary O2script file for this

0 commit comments

Comments
 (0)