Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader/SoilProfile2DDataModel.cs
===================================================================
diff -u -r5433 -r5922
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader/SoilProfile2DDataModel.cs (.../SoilProfile2DDataModel.cs) (revision 5433)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader/SoilProfile2DDataModel.cs (.../SoilProfile2DDataModel.cs) (revision 5922)
@@ -38,8 +38,9 @@
/// Converts a to a .
///
///
+ ///
///
- public SoilProfile2D Create(PersistableDataModel dataModel)
+ public SoilProfile2D Create(PersistableDataModel dataModel, double offsetX)
{
string geometryId = dataModel.Scenarios.Last().Stages.Last().GeometryId;
PersistableGeometry geometry = dataModel.Geometry.First(g => g.Id == geometryId);
@@ -48,13 +49,13 @@
foreach (PersistableLayer layer in geometry.Layers)
{
- CreateCurvesFromLayer(layer, soilProfile2D.Geometry.Curves);
- GeometrySurface surface = CreateSurfacesFromLayer(layer, soilProfile2D.Geometry.Surfaces);
+ CreateCurvesFromLayer(layer, soilProfile2D.Geometry.Curves, offsetX);
+ GeometrySurface surface = CreateSurfacesFromLayer(layer, soilProfile2D.Geometry.Surfaces, offsetX);
foreach (PersistablePoint point in layer.Points)
{
- if (!IsPointPresent(point, soilProfile2D.Geometry.Points))
+ if (!IsPointPresent(point, soilProfile2D.Geometry.Points, offsetX))
{
- soilProfile2D.Geometry.Points.Add(new GeometryPoint(point.X, 0, point.Z));
+ soilProfile2D.Geometry.Points.Add(new GeometryPoint(point.X + offsetX, 0, point.Z));
}
}
@@ -74,17 +75,10 @@
};
soilProfile2D.Surfaces.Add(soilLayer2D);
}
- SetLimits(soilProfile2D);
+ soilProfile2D.Geometry.Rebox();
return soilProfile2D;
}
- private static void SetLimits(SoilProfile2D soilProfile2D)
- {
- soilProfile2D.Geometry.Left = soilProfile2D.Geometry.MinGeometryPointsX;
- soilProfile2D.Geometry.Right = soilProfile2D.Geometry.MaxGeometryPointsX;
- soilProfile2D.Geometry.Bottom = soilProfile2D.Geometry.MinGeometryPointsZ;
- }
-
private Color FetchSoilColor(PersistableSoil persistableSoil, PersistableDataModel dataModel)
{
var color = new Color();
@@ -123,16 +117,16 @@
return soilId == string.Empty ? null : dataModel.Soils.Soils.FirstOrDefault(soil => soil.Id == soilId);
}
- private GeometrySurface CreateSurfacesFromLayer(PersistableLayer layer, ICollection geometrySurface)
+ private GeometrySurface CreateSurfacesFromLayer(PersistableLayer layer, ICollection geometrySurface, double offsetX)
{
var surface = new GeometrySurface();
for (var i = 0; i < layer.Points.Count(); i++)
{
- surface.OuterLoop.Points.Add(new GeometryPoint(layer.Points.ElementAt(i).X, 0, layer.Points.ElementAt(i).Z));
+ surface.OuterLoop.Points.Add(new GeometryPoint(layer.Points.ElementAt(i).X + offsetX, 0, layer.Points.ElementAt(i).Z));
for (var j = 0; j < layer.Points.Count(); j++)
{
- GeometryCurve curve = CreateCurveFromLayer(layer, j);
+ GeometryCurve curve = CreateCurveFromLayer(layer, j, offsetX);
if (!IsCurvePresent(curve, surface.OuterLoop.CurveList))
{
surface.OuterLoop.CurveList.Add(curve);
@@ -148,42 +142,43 @@
return surface;
}
- private void CreateCurvesFromLayer(PersistableLayer layer, ICollection geometryCurves)
+ private void CreateCurvesFromLayer(PersistableLayer layer, ICollection geometryCurves, double offsetX)
{
for (var i = 0; i < layer.Points.Count(); i++)
{
- GeometryCurve curve = CreateCurveFromLayer(layer, i);
+ GeometryCurve curve = CreateCurveFromLayer(layer, i, offsetX);
if (!IsCurvePresent(curve, geometryCurves))
{
geometryCurves.Add(curve);
}
}
+ //GeometryCurve curve = CreateCurveFromLayer(layer, i, offsetX);
}
- private GeometryCurve CreateCurveFromLayer(PersistableLayer layer, int index)
+ private GeometryCurve CreateCurveFromLayer(PersistableLayer layer, int index, double offsetX)
{
GeometryCurve curve;
if (index == layer.Points.Count() - 1)
{
- curve = CreateCurve(layer.Points.ElementAt(index), layer.Points.ElementAt(0));
+ curve = CreateCurve(layer.Points.ElementAt(index), layer.Points.ElementAt(0), offsetX);
}
else
{
- curve = CreateCurve(layer.Points.ElementAt(index), layer.Points.ElementAt(index + 1));
+ curve = CreateCurve(layer.Points.ElementAt(index), layer.Points.ElementAt(index + 1), offsetX);
}
return curve;
}
- private GeometryCurve CreateCurve(PersistablePoint firstPoint, PersistablePoint secondPoint)
+ private GeometryCurve CreateCurve(PersistablePoint firstPoint, PersistablePoint secondPoint, double offsetX)
{
return new GeometryCurve
{
- HeadPoint = new GeometryPoint(firstPoint.X, 0, firstPoint.Z),
- EndPoint = new GeometryPoint(secondPoint.X, 0, secondPoint.Z)
+ HeadPoint = new GeometryPoint(firstPoint.X + offsetX, 0, firstPoint.Z),
+ EndPoint = new GeometryPoint(secondPoint.X + offsetX, 0, secondPoint.Z)
};
}
-
+
private bool IsCurvePresent(GeometryCurve curve, IEnumerable geometryCurves)
{
return geometryCurves.Any(geometryCurve =>
@@ -193,9 +188,9 @@
ArePointsEqual(geometryCurve.HeadPoint, curve.EndPoint)));
}
- private bool IsPointPresent(PersistablePoint point, IEnumerable geometryPoints)
+ private bool IsPointPresent(PersistablePoint point, IEnumerable geometryPoints, double offsetX)
{
- return geometryPoints.Any(geometryPoint => ArePointsEqual(geometryPoint, point));
+ return geometryPoints.Any(geometryPoint => ArePointsEqual(geometryPoint, point, offsetX));
}
private bool ArePointsEqual(GeometryPoint firstPoint, GeometryPoint secondPoint)
@@ -206,11 +201,11 @@
(Math.Abs(firstPoint.Z - secondPoint.Z) < pointTolerance);
}
- private bool ArePointsEqual(GeometryPoint firstPoint, PersistablePoint secondPoint)
+ private bool ArePointsEqual(GeometryPoint firstPoint, PersistablePoint secondPoint, double offsetX)
{
const double pointTolerance = 1E-6;
- return (Math.Abs(firstPoint.X - secondPoint.X) < pointTolerance) &&
+ return (Math.Abs(firstPoint.X - (secondPoint.X + offsetX)) < pointTolerance) &&
(Math.Abs(firstPoint.Z - secondPoint.Z) < pointTolerance);
}
}
\ No newline at end of file