Skip to content

Commit e4e9e98

Browse files
committed
HMD : Removed unnamed root if it has only one real children.
1 parent 97932da commit e4e9e98

1 file changed

Lines changed: 24 additions & 21 deletions

File tree

hxd/fmt/fbx/HMDOut.hx

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1467,31 +1467,34 @@ class HMDOut extends BaseLibrary {
14671467
}
14681468
}
14691469

1470-
var meshCount = 0;
14711470
var rootIndex = -1;
1472-
for ( m in d.models ) {
1473-
if ( m.geometry >= 0 && !m.isLOD() && !m.isCollider() ) {
1474-
if ( m.parent == -1 )
1475-
break;
1476-
meshCount++;
1477-
var root = d.models[m.parent];
1478-
if ( root.parent != -1 || root.geometry != -1 || root.name != null || !root.position.isIdentity() )
1479-
break;
1480-
rootIndex = m.parent;
1471+
for ( i => m in d.models ) {
1472+
if ( m.parent == -1 && m.geometry == -1 && m.name == null && m.position.isIdentity() ) {
1473+
rootIndex = i;
1474+
break;
14811475
}
14821476
}
1483-
if ( meshCount == 1 && rootIndex != -1 ) {
1484-
d.models.remove(d.models[rootIndex]);
1477+
if ( rootIndex != -1 ) {
1478+
var meshCount = 0;
14851479
for ( m in d.models ) {
1486-
if ( m.parent == rootIndex )
1487-
m.parent = -1;
1488-
else if ( m.parent > rootIndex )
1489-
m.parent--;
1490-
if ( m.lods != null ) {
1491-
for ( i in 0...m.lods.length ) {
1492-
var lodIndex = m.lods[i];
1493-
if ( lodIndex > rootIndex )
1494-
m.lods[i] = lodIndex - 1;
1480+
if ( m.geometry >= 0 && !m.isLOD() && !m.isCollider() && m.parent == rootIndex )
1481+
meshCount++;
1482+
if ( meshCount > 1 )
1483+
break;
1484+
}
1485+
if ( meshCount == 1 ) {
1486+
d.models.remove(d.models[rootIndex]);
1487+
for ( m in d.models ) {
1488+
if ( m.parent == rootIndex )
1489+
m.parent = -1;
1490+
else if ( m.parent > rootIndex )
1491+
m.parent--;
1492+
if ( m.lods != null ) {
1493+
for ( i in 0...m.lods.length ) {
1494+
var lodIndex = m.lods[i];
1495+
if ( lodIndex > rootIndex )
1496+
m.lods[i] = lodIndex - 1;
1497+
}
14951498
}
14961499
}
14971500
}

0 commit comments

Comments
 (0)