Ver Fonte

Inherit SubsurfModifierData and MirrorModifierData from SharedModifierData

This makes the cast in BlenderModifierShowcase::ApplyModifiers work
correctly and not invoke UB.
Turo Lamminen há 3 anos atrás
pai
commit
2e64880abf
1 ficheiros alterados com 2 adições e 5 exclusões
  1. 2 5
      code/AssetLib/Blender/BlenderScene.h

+ 2 - 5
code/AssetLib/Blender/BlenderScene.h

@@ -656,7 +656,7 @@ struct SharedModifierData : ElemBase {
 
 
 // -------------------------------------------------------------------------------
-struct SubsurfModifierData : ElemBase {
+struct SubsurfModifierData : SharedModifierData {
 
     enum Type {
 
@@ -669,7 +669,6 @@ struct SubsurfModifierData : ElemBase {
         FLAGS_SubsurfUV = 1 << 3
     };
 
-    ModifierData modifier FAIL;
     short subdivType WARN;
     short levels FAIL;
     short renderLevels;
@@ -677,7 +676,7 @@ struct SubsurfModifierData : ElemBase {
 };
 
 // -------------------------------------------------------------------------------
-struct MirrorModifierData : ElemBase {
+struct MirrorModifierData : SharedModifierData {
 
     enum Flags {
         Flags_CLIPPING = 1 << 0,
@@ -689,8 +688,6 @@ struct MirrorModifierData : ElemBase {
         Flags_VGROUP = 1 << 6
     };
 
-    ModifierData modifier FAIL;
-
     short axis, flag;
     float tolerance;
     std::shared_ptr<Object> mirror_ob;