diff --git a/Brio/Capabilities/Posing/ModelPosingCapability.cs b/Brio/Capabilities/Posing/ModelPosingCapability.cs index ac110d37..820eac10 100644 --- a/Brio/Capabilities/Posing/ModelPosingCapability.cs +++ b/Brio/Capabilities/Posing/ModelPosingCapability.cs @@ -67,9 +67,9 @@ public override void Dispose() ResetTransform(); } - public void ImportModelPose(PoseFile poseFile, PoseImporterOptions options, bool isLoadingAsScene) + public void ImportModelPose(PoseFile poseFile, PoseImporterOptions options, bool isLoadingAsScene, bool applyModelTransform) { - if(options.ApplyModelTransform) + if(applyModelTransform) { if(isLoadingAsScene) { diff --git a/Brio/Capabilities/Posing/PosingCapability.cs b/Brio/Capabilities/Posing/PosingCapability.cs index 7ab85303..9f33c4db 100644 --- a/Brio/Capabilities/Posing/PosingCapability.cs +++ b/Brio/Capabilities/Posing/PosingCapability.cs @@ -159,7 +159,7 @@ public void ImportPose(OneOf rawPoseFile, PoseImporter actionTimeline.StopSpeedAndResetTimeline(() => { ImportPose_Internal(rawPoseFile, options, reset: false, reconcile: false, asExpression: asExpression, asScene: asScene, - asIPCpose: asIPCpose, asBody: asBody, asProp: asProp, transformComponents: transformComponents); + asIPCpose: asIPCpose, asBody: asBody, asProp: asProp, transformComponents: transformComponents, applyModelTransformOverride: applyModelTransformOverride); }, !(ConfigurationService.Instance.Configuration.Posing.FreezeActorOnPoseImport || freezeOnLoad)); } @@ -189,6 +189,7 @@ internal void ImportPose_Internal(OneOf rawPoseFile, P poseFile.SanitizeBoneNames(); + bool applyModelTransform = false; if(asExpression) { Brio.Log.Info("Loading as Expression"); @@ -204,7 +205,7 @@ internal void ImportPose_Internal(OneOf rawPoseFile, P { options = _posingService.SceneImporterOptions; - options.ApplyModelTransform = ConfigurationService.Instance.Configuration.Import.ApplyModelTransform; + applyModelTransform |= ConfigurationService.Instance.Configuration.Import.ApplyModelTransform; } else if(asIPCpose) { @@ -215,6 +216,8 @@ internal void ImportPose_Internal(OneOf rawPoseFile, P options ??= _posingService.DefaultImporterOptions; } + applyModelTransform |= options.ApplyModelTransform; + if(transformComponents.HasValue) { options.TransformComponents = transformComponents.Value; @@ -222,16 +225,16 @@ internal void ImportPose_Internal(OneOf rawPoseFile, P if(applyModelTransformOverride.HasValue) { - options.ApplyModelTransform = applyModelTransformOverride.Value; + applyModelTransform = applyModelTransformOverride.Value; } - if(options.ApplyModelTransform && reset) + if(applyModelTransform && reset) ModelPosing.ResetTransform(); SkeletonPosing.ImportSkeletonPose(poseFile, options, expressionPhase2); if(asExpression == false) - ModelPosing.ImportModelPose(poseFile, options, asScene); + ModelPosing.ImportModelPose(poseFile, options, asScene, applyModelTransform); if(generateSnapshot) _framework.RunOnTick(() => Snapshot(reset, reconcile, asExpression: asExpression), delayTicks: 4); diff --git a/Brio/UI/Controls/Stateless/FileUIHelpers.cs b/Brio/UI/Controls/Stateless/FileUIHelpers.cs index 19a0a5e0..8f6b83f8 100644 --- a/Brio/UI/Controls/Stateless/FileUIHelpers.cs +++ b/Brio/UI/Controls/Stateless/FileUIHelpers.cs @@ -161,6 +161,11 @@ public static void DrawImportPoseMenuPopup(PosingCapability capability, bool sho if(ImGui.Button("Import", new(size.X, 25))) { + //bool? modelTransformOverride = null; + //if(doTransform) + //{ + // modelTransformOverride = doTransform; + //} ShowImportPoseModal(capability, freezeOnLoad: freezeOnLoad, transformComponents: transformComponents, applyModelTransformOverride: doTransform); }