From 6717065a2bbc4d39d2fcfe1c8b2110f71ab63f5e Mon Sep 17 00:00:00 2001 From: Mark Peres Date: Sun, 11 Feb 2024 19:47:27 +0300 Subject: [PATCH] refactor getSubVolume method -> use early exit --- src/Mod/Arch/ArchRoof.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/Mod/Arch/ArchRoof.py b/src/Mod/Arch/ArchRoof.py index 74ec30b5b6..2ddad1a8e6 100644 --- a/src/Mod/Arch/ArchRoof.py +++ b/src/Mod/Arch/ArchRoof.py @@ -825,21 +825,22 @@ class _Roof(ArchComponent.Component): def getSubVolume(self, obj): '''returns a volume to be subtracted''' - if obj.Base: - if hasattr(obj.Base, "Shape"): - if obj.Base.Shape.Solids: - return obj.Shape - else : - if hasattr(self, "sub"): - if self.sub: - return self.sub - else : - self.execute(obj) - return self.sub - else : - self.execute(obj) - return self.sub - return None + if not obj.Base: + return None + + if not hasattr(obj.Base, "Shape"): + return None + + if obj.Base.Shape.Solids: + return obj.Shape + + # self.sub is auto-generated subvolume for wire-based roof + sub_field = getattr(self, 'sub', None) + if not sub_field: + self.execute(obj) + + return self.sub + def computeAreas(self, obj): '''computes border and ridge roof edges length'''