// Copyright (C) Stichting Deltares 2024. All rights reserved. // // This file is part of the D-Soil Model application. // // The D-Soil Model application is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using Deltares.Geotechnics.Soils; using Deltares.Probabilistic; using Deltares.Standard; namespace Deltares.DSoilModel.Data { public class DSoilModelStiFileTransformer : ITransformer { public double GetTransformedValue(object owner, string property, double defaultValue) { using (var soil = owner as Soil) { if (soil != null) { var stochast = soil.GetStochastByName(property); if (stochast != null) { return stochast.ActualValue; } } } return defaultValue; } public double SetTransformedValue(object owner, string property, double transformedValue) { using (var soil = owner as Soil) { if (soil != null) { var stochast = soil.GetStochastByName(property); if (stochast != null) { // Set all ditributions to Deterministic as we do not know anything about them. stochast.DistributionType = DistributionType.Deterministic; stochast.ActualValue = transformedValue; stochast.Mean = transformedValue; // In property setter, the return value of this method is used to set the stochast mean return stochast.Mean; } } } return transformedValue; } } }