From b438810b6ba83453e995f1d95ba37237c0dabdf5 Mon Sep 17 00:00:00 2001
From: Marek Roszko <mark.roszko@gmail.com>
Date: Sun, 20 Feb 2022 18:50:57 -0500
Subject: [PATCH] Fix double parsing solids from step models resulting in
 triangle z-fighting

Fix https://gitlab.com/kicad/code/kicad/-/issues/9416
Fix https://gitlab.com/kicad/code/kicad/-/issues/9835
Fix https://gitlab.com/kicad/code/kicad/-/issues/10554
---
 plugins/3d/oce/loadmodel.cpp | 2 +-
 plugins/3d/oce/oce.cpp       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/plugins/3d/oce/loadmodel.cpp b/plugins/3d/oce/loadmodel.cpp
index 89ca27b154..81ea5d2735 100644
--- a/plugins/3d/oce/loadmodel.cpp
+++ b/plugins/3d/oce/loadmodel.cpp
@@ -1020,7 +1020,7 @@ bool processLabel( const TDF_Label& aLabel, DATA& aData, SGNODE* aParent,
     if( nullptr != aItems )
         aItems->push_back( pptr );
 
-    if( shapeLabel.HasChild() )
+    if( stype != TopAbs_SOLID && shapeLabel.HasChild() )
     {
         wxLogTrace( MASK_OCE, wxT( "Label %s has children" ), labelTag );
         TDF_ChildIterator it;
diff --git a/plugins/3d/oce/oce.cpp b/plugins/3d/oce/oce.cpp
index 2fc52fe738..584203bf95 100644
--- a/plugins/3d/oce/oce.cpp
+++ b/plugins/3d/oce/oce.cpp
@@ -37,7 +37,7 @@ SCENEGRAPH* LoadModel( char const* filename );
 
 #define PLUGIN_OCE_MAJOR 1
 #define PLUGIN_OCE_MINOR 3
-#define PLUGIN_OCE_PATCH 0
+#define PLUGIN_OCE_PATCH 1
 #define PLUGIN_OCE_REVNO 0