using System; using System.Runtime.Serialization; using Deltares.MStab; using Deltares.Stability.Calculation.Inner; #if DELPHI using Geotextiles; using InterfaceData; #else #endif namespace Deltares.Stability.Calculation { [Serializable] public class GeoTextileException : Exception { // // For guidelines regarding the creation of new exception types, see // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconerrorraisinghandlingguidelines.asp // and // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp07192001.asp // public GeoTextileException() {} public GeoTextileException(string message) : base(message) {} public GeoTextileException(string message, Exception inner) : base(message, inner) {} protected GeoTextileException( SerializationInfo info, StreamingContext context) : base(info, context) {} } public static partial class LoadObjects { public static void LoadGeoTextiles(MStabProject aMStabProject, ref TInterfaceData aStabilityObjects) { if (aMStabProject == null) { throw new GeoTextileException("Empty aMStabProject"); } GeoTextiles(aMStabProject, ref aStabilityObjects); } private static void GeoTextiles(MStabProject aMStabProject, ref TInterfaceData aStabilityObjects) { if (aMStabProject.Stability == null) { throw new GeometryException("Empty ReinforcementsModel object in GeoTextiles"); } if (aMStabProject.Stability.Geotextiles == null) { throw new GeometryException("Empty Geotextiles object in GeoTextiles"); } TGeotextiles[] geoTextiles = aStabilityObjects.GetGeoTextiles(); aMStabProject.Stability.HasGeotextile = (aMStabProject.Stability.Geotextiles.Count > 0); geoTextiles = new TGeotextiles[aMStabProject.Stability.Geotextiles.Count]; if (aMStabProject.Stability.HasGeotextile) { for (int geoTextile = 0; geoTextile < aMStabProject.Stability.Geotextiles.Count; geoTextile++) { geoTextiles[geoTextile] = new TGeotextiles(); geoTextiles[geoTextile].TextileName = aMStabProject.Stability.Geotextiles[geoTextile].Name; geoTextiles[geoTextile].ETS = aMStabProject.Stability.Geotextiles[geoTextile].EffectiveTensileStrength; geoTextiles[geoTextile].LengthOfReductionZone = aMStabProject.Stability.Geotextiles[geoTextile].ReductionArea; geoTextiles[geoTextile].Addpoint(aMStabProject.Stability.Geotextiles[geoTextile].StartX, aMStabProject.Stability.Geotextiles[geoTextile].StartZ); geoTextiles[geoTextile].Addpoint(aMStabProject.Stability.Geotextiles[geoTextile].EndX, aMStabProject.Stability.Geotextiles[geoTextile].EndZ); } } aStabilityObjects.SetGeoTextiles(geoTextiles); } } }