Index: trunk/src/Stability/StabilityModelValidator.cs =================================================================== diff -u -r7 -r36 --- trunk/src/Stability/StabilityModelValidator.cs (.../StabilityModelValidator.cs) (revision 7) +++ trunk/src/Stability/StabilityModelValidator.cs (.../StabilityModelValidator.cs) (revision 36) @@ -806,7 +806,7 @@ { if (property == "DikeTableHeight") { - IValidationResultList.Add(new ValidationResult(ValidationResultType.Error, "Zone Areas data is invalid: Diketable height is outside limits" + GetUserValue(model.GeometryData.MinGeometryZ) + " to " + GetUserValue(model.GeometryData.MaxGeometryZ + 20), + IValidationResultList.Add(new ValidationResult(ValidationResultType.Error, "Zone Areas data is invalid: Diketable height is outside limits" + GetUserValue(model.GeometryData.MinGeometryPointsZ) + " to " + GetUserValue(model.GeometryData.MaxGeometryPointsZ + 20), model.ZoneAreas, "DikeTableHeight", "Outside geometry", this)); } else @@ -1163,72 +1163,68 @@ return; } - model.GeometryData.UpdateMinMax(); - isOutsideGeometryX = " is outside geometry limits (" + GetUserValue(model.GeometryData.MinGeometryX) + " to " + GetUserValue(model.GeometryData.MaxGeometryX) + " )"; - isOutsideGeometryZ = " is outside geometry limits (" + GetUserValue(model.GeometryData.MinGeometryZ) + " to " + GetUserValue(model.GeometryData.MaxGeometryZ) + " )"; + isOutsideGeometryX = " is outside geometry limits (" + GetUserValue(model.GeometryData.MinGeometryPointsX) + " to " + GetUserValue(model.GeometryData.MaxGeometryPointsX) + " )"; + isOutsideGeometryZ = " is outside geometry limits (" + GetUserValue(model.GeometryData.MinGeometryPointsZ) + " to " + GetUserValue(model.GeometryData.MaxGeometryPointsZ) + " )"; + var maxZGeometry = model.GeometryData.MaxGeometryPointsZ; foreach (var forbiddenLine in model.ForbiddenLinesList) { - forbiddenLineErrorList.Add(GetInvalidProperties(forbiddenLine)); + forbiddenLineErrorList.Add(GetInvalidProperties(forbiddenLine, maxZGeometry)); } foreach (var geoTextile in model.Geotextiles) { - geoTextileErrorList.Add(GetInvalidProperties(geoTextile)); + geoTextileErrorList.Add(GetInvalidProperties(geoTextile, maxZGeometry)); } foreach (var slipPlane in model.SlipPlanes) { foreach (var point in slipPlane.Points) { - slipPlaneErrorList.Add(GetInvalidProperties(point)); + slipPlaneErrorList.Add(GetInvalidProperties(point, maxZGeometry)); } } if (model.ReferenceLevelLine != null) { foreach (var point in model.ReferenceLevelLine.Points) { - referenceLevelLineErrorList.Add(GetInvalidProperties(point)); + referenceLevelLineErrorList.Add(GetInvalidProperties(point, maxZGeometry)); } } foreach (var lineLoad in model.LineLoads) { - lineLoadErrorList.Add(GetInvalidProperties(lineLoad)); + lineLoadErrorList.Add(GetInvalidProperties(lineLoad, maxZGeometry)); } foreach (var nail in model.Nails) { - nailErrorList.Add(GetInvalidProperties(nail)); + nailErrorList.Add(GetInvalidProperties(nail, maxZGeometry)); } foreach (var uniformLoad in model.UniformLoads) { - uniformLoadErrorList.Add(GetInvalidProperties(uniformLoad)); + uniformLoadErrorList.Add(GetInvalidProperties(uniformLoad, maxZGeometry)); } if (model.SlipCircle != null) { - ErrorInputSlipCircle = GetInvalidProperties(model.SlipCircle); + ErrorInputSlipCircle = GetInvalidProperties(model.SlipCircle, maxZGeometry); } if (model.HorizontalBalance != null) { - HorizontalInputErrorInput = GetInvalidProperties(model.HorizontalBalance); + HorizontalInputErrorInput = GetInvalidProperties(model.HorizontalBalance, maxZGeometry); } if (model.SlipPlaneUpliftVan != null) { - model.GeometryData.MaxGeometryZ = 10000000; - ErrorInputSlipPlaneUpliftVanLeftGridAndTangentLine = GetInvalidProperties(model.SlipPlaneUpliftVan); - ErrorInputSlipPlaneUpliftVanRightGrid = GetInvalidProperties(model.SlipPlaneUpliftVan.SlipPlaneRightGrid); - model.GeometryData.UpdateMinMax(); + ErrorInputSlipPlaneUpliftVanLeftGridAndTangentLine = GetInvalidProperties(model.SlipPlaneUpliftVan, 10000000); + ErrorInputSlipPlaneUpliftVanRightGrid = GetInvalidProperties(model.SlipPlaneUpliftVan.SlipPlaneRightGrid, 10000000); } if (model.TreeOnSlope != null) { - model.GeometryData.MaxGeometryZ = 10000000; - ErrorInputTreeOnSlope = GetInvalidProperties(model.TreeOnSlope); - model.GeometryData.UpdateMinMax(); + ErrorInputTreeOnSlope = GetInvalidProperties(model.TreeOnSlope, 10000000); } if (model.ZoneAreas != null) { - ZoneAreasErrorInput = GetInvalidProperties(model.ZoneAreas); + ZoneAreasErrorInput = GetInvalidProperties(model.ZoneAreas, maxZGeometry); } } - private IValidationResult GetInvalidProperties(object objectToBeValidated) + private IValidationResult GetInvalidProperties(object objectToBeValidated, double zMax) { var err = new ValidationResult(); err.Repairer = this; @@ -1240,22 +1236,22 @@ case "Deltares.Stability.PressurePerLength": { var lineLoad = objectToBeValidated as LineLoad; - WriteInvalidPropertiesOutsideGeometry(ref err, lineLoad, "X", true); + WriteInvalidPropertiesOutsideGeometry(ref err, lineLoad, "X", true, zMax); break; } case "Deltares.Stability.UniformLoad": { var uniformLoad = objectToBeValidated as UniformLoad; - WriteInvalidPropertiesOutsideGeometry(ref err, uniformLoad, "XStart", true); - WriteInvalidPropertiesOutsideGeometry(ref err, uniformLoad, "XEnd", true); + WriteInvalidPropertiesOutsideGeometry(ref err, uniformLoad, "XStart", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, uniformLoad, "XEnd", true, zMax); break; } case "Deltares.Stability.Nail": { var nail = objectToBeValidated as Nail; if (nail != null) { - WriteInvalidPropertiesOutsideGeometry(ref err, nail, "X", true); + WriteInvalidPropertiesOutsideGeometry(ref err, nail, "X", true, zMax); if (nail.Length < 0.001) { err.AddPropertyAndID("Length", CANNOT_BE_ZERO); @@ -1275,10 +1271,10 @@ case "Deltares.Stability.Geotextile": { var geotextile = objectToBeValidated as Geotextile; - WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "StartX", true); - WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "EndX", true); - WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "StartZ", false); - WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "EndZ", false); + WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "StartX", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "EndX", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "StartZ", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, geotextile, "EndZ", false, zMax); if (Math.Abs(geotextile.StartX - geotextile.EndX) < 0.0001 && Math.Abs(geotextile.StartZ - geotextile.EndZ) < 0.0001) { err.AddPropertyAndID("GeometryPoint", AT_SAME_POINT); @@ -1288,10 +1284,10 @@ case "Deltares.Stability.ForbiddenLines": { var forbiddenLine = objectToBeValidated as ForbiddenLines; - WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "StartX", true); - WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "EndX", true); - WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "StartZ", false); - WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "EndZ", false); + WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "StartX", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "EndX", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "StartZ", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, forbiddenLine, "EndZ", false, zMax); if (Math.Abs(forbiddenLine.StartX - forbiddenLine.EndX) < 0.0001 && Math.Abs(forbiddenLine.StartZ - forbiddenLine.EndZ) < 0.0001) { err.AddPropertyAndID("GeometryPoint", AT_SAME_POINT); @@ -1309,9 +1305,9 @@ if (model.ReferenceLevelLine.Points.Contains(point)) { int pointIndex = model.ReferenceLevelLine.Points.IndexOf(point); - if (OutsideGeometryAlone(point, "X", true) != "UnKnown") //X Outside Geometry + if (OutsideGeometryAlone(point, "X", true, zMax) != "UnKnown") //X Outside Geometry { - if (OutsideGeometryAlone(point, "X", true) == LESS_THAN_MIN) + if (OutsideGeometryAlone(point, "X", true, zMax) == LESS_THAN_MIN) { err.AddPropertyAndID("X", LESS_THAN_MIN); } @@ -1332,7 +1328,7 @@ } } - WriteInvalidPropertiesOutsideGeometry(ref err, point, "Z", false); + WriteInvalidPropertiesOutsideGeometry(ref err, point, "Z", false, zMax); } } @@ -1362,9 +1358,9 @@ } if (isContains) { - if (OutsideGeometryAlone(point, "X", true) != "UnKnown") //X Outside Geometry + if (OutsideGeometryAlone(point, "X", true, zMax) != "UnKnown") //X Outside Geometry { - if (OutsideGeometryAlone(point, "X", true) == LESS_THAN_MIN) + if (OutsideGeometryAlone(point, "X", true, zMax) == LESS_THAN_MIN) { err.AddPropertyAndID("X", LESS_THAN_MIN); } @@ -1385,7 +1381,7 @@ } } - WriteInvalidPropertiesOutsideGeometry(ref err, point, "Z", false); + WriteInvalidPropertiesOutsideGeometry(ref err, point, "Z", false, zMax); } } @@ -1395,62 +1391,60 @@ } case "Deltares.Stability.SlipCircle": { - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleTangentLine, "TangentLineZTop", false); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleTangentLine, "TangentLineZBottom", false); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleTangentLine, "TangentLineZTop", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleTangentLine, "TangentLineZBottom", false, zMax); if (model.SlipCircle.SlipCircleFixedPoint.UseFixedPoint == true) { - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleFixedPoint, "XFixed", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleFixedPoint, "ZFixed", false); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleFixedPoint, "XFixed", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipCircle.SlipCircleFixedPoint, "ZFixed", false, zMax); } break; } case "Deltares.Stability.HorizontalBalance": { - WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "XLeft", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "XRight", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "ZBottom", false); - WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "ZTop", false); + WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "XLeft", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "XRight", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "ZBottom", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.HorizontalBalance, "ZTop", false, zMax); break; } case "Deltares.Stability.SlipPlaneUpliftVan": { - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridXLeft", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridXRight", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridZTop", false); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridZBottom", false); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridXLeft", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridXRight", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridZTop", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneLeftGrid, "GridZBottom", false, zMax); if (model.SlipPlaneUpliftVan.SlipPlaneTangentLine.AutomaticAtBoundaries) { - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneTangentLine, "TangentLineZTop", false); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneTangentLine, "TangentLineZBottom", false); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneTangentLine, "TangentLineZTop", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneTangentLine, "TangentLineZBottom", false, zMax); } break; } case "Deltares.Stability.SlipCircleGrid": { - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridXLeft", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridXRight", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridZTop", false); - WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridZBottom", false); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridXLeft", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridXRight", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridZTop", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.SlipPlaneUpliftVan.SlipPlaneRightGrid, "GridZBottom", false, zMax); break; } case "Deltares.Stability.TreeOnSlope": { - WriteInvalidPropertiesOutsideGeometry(ref err, model.TreeOnSlope, "X", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.TreeOnSlope, "Z", false); + WriteInvalidPropertiesOutsideGeometry(ref err, model.TreeOnSlope, "X", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.TreeOnSlope, "Z", false, zMax); break; } case "Deltares.Stability.ZoneAreas": { - model.GeometryData.MaxGeometryZ = model.GeometryData.MaxGeometryZ + 20; - WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "DikeTableHeight", false); - model.GeometryData.MaxGeometryZ = model.GeometryData.MaxGeometryZ - 20; - WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "RestProfileStartX", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "DesignLevelInfluenceX", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "DesignLevelInfluenceY", false); - WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "LeftSideMinimalRoad", true); - WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "RightSideMinimalRoad", true); + WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "DikeTableHeight", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "RestProfileStartX", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "DesignLevelInfluenceX", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "DesignLevelInfluenceY", false, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "LeftSideMinimalRoad", true, zMax); + WriteInvalidPropertiesOutsideGeometry(ref err, model.ZoneAreas, "RightSideMinimalRoad", true, zMax); break; } } @@ -1459,11 +1453,12 @@ return err; } - private void WriteInvalidPropertiesOutsideGeometry(ref ValidationResult dict, object objectToBeValidated, string proeprty, bool isHorizontal) + private void WriteInvalidPropertiesOutsideGeometry(ref ValidationResult dict, object objectToBeValidated, string proeprty, bool isHorizontal, + double zMax) { - if (OutsideGeometryAlone(objectToBeValidated, proeprty, isHorizontal) != "UnKnown") + if (OutsideGeometryAlone(objectToBeValidated, proeprty, isHorizontal, zMax) != "UnKnown") { - if (OutsideGeometryAlone(objectToBeValidated, proeprty, isHorizontal) == LESS_THAN_MIN) + if (OutsideGeometryAlone(objectToBeValidated, proeprty, isHorizontal, zMax) == LESS_THAN_MIN) { dict.AddPropertyAndID(proeprty, LESS_THAN_MIN); } @@ -1474,29 +1469,29 @@ } } - private string OutsideGeometryAlone(object objectTobeValidated, string property, bool isMinMaxHorizontal) + private string OutsideGeometryAlone(object objectTobeValidated, string property, bool isMinMaxHorizontal, double zMax) { - if (model.GeometryData.TopPoint.SurfaceCount > 0) + if (model.GeometryData.Surfaces.Count > 0) { double value = Convert.ToDouble(objectTobeValidated.GetType().GetProperty(property).GetValue(objectTobeValidated, null)); if (isMinMaxHorizontal) { - if (value < model.GeometryData.MinGeometryX) + if (value < model.GeometryData.MinGeometryPointsX) { return LESS_THAN_MIN; } - else if (value > model.GeometryData.MaxGeometryX) + else if (value > model.GeometryData.MaxGeometryPointsX) { return GREATER_THAN_MAX; } } else { - if (value < model.GeometryData.MinGeometryZ) + if (value < model.GeometryData.MinGeometryPointsZ) { return LESS_THAN_MIN; } - else if (value > model.GeometryData.MaxGeometryZ) + else if (value > zMax) { return GREATER_THAN_MAX; } @@ -1534,26 +1529,26 @@ { if (forbiddenLine.StartX < forbiddenLine.EndX) { - forbiddenLine.StartX = model.GeometryData.MinGeometryX; - forbiddenLine.EndX = model.GeometryData.MaxGeometryX; + forbiddenLine.StartX = model.GeometryData.MinGeometryPointsX; + forbiddenLine.EndX = model.GeometryData.MaxGeometryPointsX; } else { - forbiddenLine.StartX = model.GeometryData.MaxGeometryX; - forbiddenLine.EndX = model.GeometryData.MinGeometryX; + forbiddenLine.StartX = model.GeometryData.MaxGeometryPointsX; + forbiddenLine.EndX = model.GeometryData.MinGeometryPointsX; } } else { if (forbiddenLine.StartZ < forbiddenLine.EndZ) { - forbiddenLine.StartZ = model.GeometryData.MinGeometryZ; - forbiddenLine.EndZ = model.GeometryData.MaxGeometryZ; + forbiddenLine.StartZ = model.GeometryData.MinGeometryPointsZ; + forbiddenLine.EndZ = model.GeometryData.MaxGeometryPointsZ; } else { - forbiddenLine.StartZ = model.GeometryData.MaxGeometryZ; - forbiddenLine.EndZ = model.GeometryData.MinGeometryZ; + forbiddenLine.StartZ = model.GeometryData.MaxGeometryPointsZ; + forbiddenLine.EndZ = model.GeometryData.MinGeometryPointsZ; } } } @@ -1569,26 +1564,26 @@ { if (geotextile.StartX < geotextile.EndX) { - geotextile.StartX = model.GeometryData.MinGeometryX; - geotextile.EndX = model.GeometryData.MaxGeometryX; + geotextile.StartX = model.GeometryData.MinGeometryPointsX; + geotextile.EndX = model.GeometryData.MaxGeometryPointsX; } else { - geotextile.StartX = model.GeometryData.MaxGeometryX; - geotextile.EndX = model.GeometryData.MinGeometryX; + geotextile.StartX = model.GeometryData.MaxGeometryPointsX; + geotextile.EndX = model.GeometryData.MinGeometryPointsX; } } else { if (geotextile.StartZ < geotextile.EndZ) { - geotextile.StartZ = model.GeometryData.MinGeometryZ; - geotextile.EndZ = model.GeometryData.MaxGeometryZ; + geotextile.StartZ = model.GeometryData.MinGeometryPointsZ; + geotextile.EndZ = model.GeometryData.MaxGeometryPointsZ; } else { - geotextile.StartZ = model.GeometryData.MaxGeometryZ; - geotextile.EndZ = model.GeometryData.MinGeometryZ; + geotextile.StartZ = model.GeometryData.MaxGeometryPointsZ; + geotextile.EndZ = model.GeometryData.MinGeometryPointsZ; } } } @@ -1602,24 +1597,24 @@ { if (isValueX) { - if (geomPoint.X < model.GeometryData.MinGeometryX) + if (geomPoint.X < model.GeometryData.MinGeometryPointsX) { - geomPoint.X = model.GeometryData.MinGeometryX; + geomPoint.X = model.GeometryData.MinGeometryPointsX; } else { - geomPoint.X = model.GeometryData.MaxGeometryX; + geomPoint.X = model.GeometryData.MaxGeometryPointsX; } } else { - if (geomPoint.Z < model.GeometryData.MinGeometryZ) + if (geomPoint.Z < model.GeometryData.MinGeometryPointsZ) { - geomPoint.Z = model.GeometryData.MinGeometryZ; + geomPoint.Z = model.GeometryData.MinGeometryPointsZ; } else { - geomPoint.Z = model.GeometryData.MaxGeometryZ; + geomPoint.Z = model.GeometryData.MaxGeometryPointsZ; } } } @@ -1656,11 +1651,11 @@ { if (property == "XStart") { - ((UniformLoad) subject).XStart = (((UniformLoad) subject).XStart > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + ((UniformLoad) subject).XStart = (((UniformLoad) subject).XStart > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; } else if (property == "XEnd") { - ((UniformLoad) subject).XEnd = (((UniformLoad) subject).XEnd > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + ((UniformLoad) subject).XEnd = (((UniformLoad) subject).XEnd > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; } } else if (subject.GetType() == typeof(Geotextile)) @@ -1690,57 +1685,57 @@ var repairedGeotextile = (Geotextile) subject; GeotextileWidth = Math.Abs(repairedGeotextile.EndX - repairedGeotextile.StartX); GeotextileHeight = Math.Abs(repairedGeotextile.EndZ - repairedGeotextile.StartZ); - GeometryWidth = Math.Abs(model.GeometryData.MaxGeometryX - model.GeometryData.MinGeometryX); - GeometryHeight = Math.Abs(model.GeometryData.MaxGeometryZ - model.GeometryData.MinGeometryZ); + GeometryWidth = Math.Abs(model.GeometryData.MaxGeometryPointsX - model.GeometryData.MinGeometryPointsX); + GeometryHeight = Math.Abs(model.GeometryData.MaxGeometryPointsZ - model.GeometryData.MinGeometryPointsZ); #endregion #region Find difference From End Point to Geometry - if (repairedGeotextile.EndX > model.GeometryData.MaxGeometryX) + if (repairedGeotextile.EndX > model.GeometryData.MaxGeometryPointsX) { isEndXGreaterThanMax = true; - XEndToBeMoved = repairedGeotextile.EndX - model.GeometryData.MaxGeometryX; + XEndToBeMoved = repairedGeotextile.EndX - model.GeometryData.MaxGeometryPointsX; } - else if (repairedGeotextile.EndX < model.GeometryData.MinGeometryX) + else if (repairedGeotextile.EndX < model.GeometryData.MinGeometryPointsX) { isEndXLessThanMin = true; - XEndToBeMoved = model.GeometryData.MinGeometryX - repairedGeotextile.EndX; + XEndToBeMoved = model.GeometryData.MinGeometryPointsX - repairedGeotextile.EndX; } - if (repairedGeotextile.EndZ > model.GeometryData.MaxGeometryZ) + if (repairedGeotextile.EndZ > model.GeometryData.MaxGeometryPointsZ) { isEndZGreaterThanMax = true; - ZEndToBeMoved = repairedGeotextile.EndZ - model.GeometryData.MaxGeometryZ; + ZEndToBeMoved = repairedGeotextile.EndZ - model.GeometryData.MaxGeometryPointsZ; } - else if (repairedGeotextile.EndZ < model.GeometryData.MinGeometryZ) + else if (repairedGeotextile.EndZ < model.GeometryData.MinGeometryPointsZ) { isEndZLessThanMin = true; - ZEndToBeMoved = model.GeometryData.MinGeometryZ - repairedGeotextile.EndZ; + ZEndToBeMoved = model.GeometryData.MinGeometryPointsZ - repairedGeotextile.EndZ; } #endregion #region Find difference From Start Point to Geometry - if (repairedGeotextile.StartX > model.GeometryData.MaxGeometryX) + if (repairedGeotextile.StartX > model.GeometryData.MaxGeometryPointsX) { isStartXGreaterThanMax = true; - XToBeMoved = repairedGeotextile.StartX - model.GeometryData.MaxGeometryX; + XToBeMoved = repairedGeotextile.StartX - model.GeometryData.MaxGeometryPointsX; } - else if (repairedGeotextile.StartX < model.GeometryData.MinGeometryX) + else if (repairedGeotextile.StartX < model.GeometryData.MinGeometryPointsX) { isStartXLessThanMin = true; - XToBeMoved = model.GeometryData.MinGeometryX - repairedGeotextile.StartX; + XToBeMoved = model.GeometryData.MinGeometryPointsX - repairedGeotextile.StartX; } - if (repairedGeotextile.StartZ > model.GeometryData.MaxGeometryZ) + if (repairedGeotextile.StartZ > model.GeometryData.MaxGeometryPointsZ) { isStartZGreaterThanMax = true; - ZToBeMoved = repairedGeotextile.StartZ - model.GeometryData.MaxGeometryZ; + ZToBeMoved = repairedGeotextile.StartZ - model.GeometryData.MaxGeometryPointsZ; } - else if (repairedGeotextile.StartZ < model.GeometryData.MinGeometryZ) + else if (repairedGeotextile.StartZ < model.GeometryData.MinGeometryPointsZ) { isStartZLessThanMin = true; - ZToBeMoved = model.GeometryData.MinGeometryZ - repairedGeotextile.StartZ; + ZToBeMoved = model.GeometryData.MinGeometryPointsZ - repairedGeotextile.StartZ; } #endregion @@ -1831,19 +1826,19 @@ } else if (property == "StartX") { - ((Geotextile) subject).StartX = (((Geotextile) subject).StartX > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + ((Geotextile) subject).StartX = (((Geotextile) subject).StartX > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; } else if (property == "StartZ") { - ((Geotextile) subject).StartZ = (((Geotextile) subject).StartZ > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((Geotextile) subject).StartZ = (((Geotextile) subject).StartZ > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "EndX") { - ((Geotextile) subject).EndX = (((Geotextile) subject).EndX > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + ((Geotextile) subject).EndX = (((Geotextile) subject).EndX > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; } else if (property == "EndZ") { - ((Geotextile) subject).EndZ = (((Geotextile) subject).EndZ > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((Geotextile) subject).EndZ = (((Geotextile) subject).EndZ > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } } else if (subject.GetType() == typeof(ForbiddenLines)) @@ -1873,57 +1868,57 @@ var repairedForbiddenLine = (ForbiddenLines) subject; ForbiddenLineWidth = Math.Abs(repairedForbiddenLine.EndX - repairedForbiddenLine.StartX); ForbiddenLineHeight = Math.Abs(repairedForbiddenLine.EndZ - repairedForbiddenLine.StartZ); - GeometryWidth = Math.Abs(model.GeometryData.MaxGeometryX - model.GeometryData.MinGeometryX); - GeometryHeight = Math.Abs(model.GeometryData.MaxGeometryZ - model.GeometryData.MinGeometryZ); + GeometryWidth = Math.Abs(model.GeometryData.MaxGeometryPointsX - model.GeometryData.MinGeometryPointsX); + GeometryHeight = Math.Abs(model.GeometryData.MaxGeometryPointsZ - model.GeometryData.MinGeometryPointsZ); #endregion #region Find difference From End Point to Geometry - if (repairedForbiddenLine.EndX > model.GeometryData.MaxGeometryX) + if (repairedForbiddenLine.EndX > model.GeometryData.MaxGeometryPointsX) { isEndXGreaterThanMax = true; - XEndToBeMoved = repairedForbiddenLine.EndX - model.GeometryData.MaxGeometryX; + XEndToBeMoved = repairedForbiddenLine.EndX - model.GeometryData.MaxGeometryPointsX; } - else if (repairedForbiddenLine.EndX < model.GeometryData.MinGeometryX) + else if (repairedForbiddenLine.EndX < model.GeometryData.MinGeometryPointsX) { isEndXLessThanMin = true; - XEndToBeMoved = model.GeometryData.MinGeometryX - repairedForbiddenLine.EndX; + XEndToBeMoved = model.GeometryData.MinGeometryPointsX - repairedForbiddenLine.EndX; } - if (repairedForbiddenLine.EndZ > model.GeometryData.MaxGeometryZ) + if (repairedForbiddenLine.EndZ > model.GeometryData.MaxGeometryPointsZ) { isEndZGreaterThanMax = true; - ZEndToBeMoved = repairedForbiddenLine.EndZ - model.GeometryData.MaxGeometryZ; + ZEndToBeMoved = repairedForbiddenLine.EndZ - model.GeometryData.MaxGeometryPointsZ; } - else if (repairedForbiddenLine.EndZ < model.GeometryData.MinGeometryZ) + else if (repairedForbiddenLine.EndZ < model.GeometryData.MinGeometryPointsZ) { isEndZLessThanMin = true; - ZEndToBeMoved = model.GeometryData.MinGeometryZ - repairedForbiddenLine.EndZ; + ZEndToBeMoved = model.GeometryData.MinGeometryPointsZ - repairedForbiddenLine.EndZ; } #endregion #region Find difference From Start Point to Geometry - if (repairedForbiddenLine.StartX > model.GeometryData.MaxGeometryX) + if (repairedForbiddenLine.StartX > model.GeometryData.MaxGeometryPointsX) { isStartXGreaterThanMax = true; - XToBeMoved = repairedForbiddenLine.StartX - model.GeometryData.MaxGeometryX; + XToBeMoved = repairedForbiddenLine.StartX - model.GeometryData.MaxGeometryPointsX; } - else if (repairedForbiddenLine.StartX < model.GeometryData.MinGeometryX) + else if (repairedForbiddenLine.StartX < model.GeometryData.MinGeometryPointsX) { isStartXLessThanMin = true; - XToBeMoved = model.GeometryData.MinGeometryX - repairedForbiddenLine.StartX; + XToBeMoved = model.GeometryData.MinGeometryPointsX - repairedForbiddenLine.StartX; } - if (repairedForbiddenLine.StartZ > model.GeometryData.MaxGeometryZ) + if (repairedForbiddenLine.StartZ > model.GeometryData.MaxGeometryPointsZ) { isStartZGreaterThanMax = true; - ZToBeMoved = repairedForbiddenLine.StartZ - model.GeometryData.MaxGeometryZ; + ZToBeMoved = repairedForbiddenLine.StartZ - model.GeometryData.MaxGeometryPointsZ; } - else if (repairedForbiddenLine.StartZ < model.GeometryData.MinGeometryZ) + else if (repairedForbiddenLine.StartZ < model.GeometryData.MinGeometryPointsZ) { isStartZLessThanMin = true; - ZToBeMoved = model.GeometryData.MinGeometryZ - repairedForbiddenLine.StartZ; + ZToBeMoved = model.GeometryData.MinGeometryPointsZ - repairedForbiddenLine.StartZ; } #endregion @@ -2014,114 +2009,114 @@ } else if (property == "StartX") { - ((ForbiddenLines) subject).StartX = (((ForbiddenLines) subject).StartX > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + ((ForbiddenLines) subject).StartX = (((ForbiddenLines) subject).StartX > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; } else if (property == "StartZ") { - ((ForbiddenLines) subject).StartZ = (((ForbiddenLines) subject).StartZ > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((ForbiddenLines) subject).StartZ = (((ForbiddenLines) subject).StartZ > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "EndX") { - ((ForbiddenLines) subject).EndX = (((ForbiddenLines) subject).EndX > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + ((ForbiddenLines) subject).EndX = (((ForbiddenLines) subject).EndX > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; } else if (property == "EndZ") { - ((ForbiddenLines) subject).EndZ = (((ForbiddenLines) subject).EndZ > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((ForbiddenLines) subject).EndZ = (((ForbiddenLines) subject).EndZ > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } } else if (subject.GetType() == typeof(SlipCircle)) { if (property == "TangentLineZTop") { - ((SlipCircle) subject).SlipCircleTangentLine.TangentLineZTop = (((SlipCircle) subject).SlipCircleTangentLine.TangentLineZTop > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircle) subject).SlipCircleTangentLine.TangentLineZTop = (((SlipCircle) subject).SlipCircleTangentLine.TangentLineZTop > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "TangentLineZBottom") { - ((SlipCircle) subject).SlipCircleTangentLine.TangentLineZBottom = (((SlipCircle) subject).SlipCircleTangentLine.TangentLineZBottom > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircle) subject).SlipCircleTangentLine.TangentLineZBottom = (((SlipCircle) subject).SlipCircleTangentLine.TangentLineZBottom > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "XFixed") { - ((SlipCircle) subject).SlipCircleFixedPoint.XFixed = (((SlipCircle) subject).SlipCircleFixedPoint.XFixed > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircle) subject).SlipCircleFixedPoint.XFixed = (((SlipCircle) subject).SlipCircleFixedPoint.XFixed > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "ZFixed") { - ((SlipCircle) subject).SlipCircleFixedPoint.ZFixed = (((SlipCircle) subject).SlipCircleFixedPoint.ZFixed > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircle) subject).SlipCircleFixedPoint.ZFixed = (((SlipCircle) subject).SlipCircleFixedPoint.ZFixed > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } } else if (subject.GetType() == typeof(HorizontalBalance)) { if (property == "XLeft") { - ((HorizontalBalance) subject).XLeft = (((HorizontalBalance) subject).XLeft > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((HorizontalBalance) subject).XLeft = (((HorizontalBalance) subject).XLeft > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "XRight") { - ((HorizontalBalance) subject).XRight = (((HorizontalBalance) subject).XRight > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((HorizontalBalance) subject).XRight = (((HorizontalBalance) subject).XRight > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "ZBottom") { - ((HorizontalBalance) subject).ZBottom = (((HorizontalBalance) subject).ZBottom > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((HorizontalBalance) subject).ZBottom = (((HorizontalBalance) subject).ZBottom > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "ZTop") { - ((HorizontalBalance) subject).ZTop = (((HorizontalBalance) subject).ZTop > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((HorizontalBalance) subject).ZTop = (((HorizontalBalance) subject).ZTop > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } } else if (subject.GetType() == typeof(SlipPlaneUpliftVan)) { if (property == "GridXLeft") { - ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXLeft = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXLeft > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXLeft = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXLeft > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "GridXRight") { - ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXRight = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXRight > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXRight = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridXRight > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "GridZBottom") { - ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZBottom = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZBottom > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZBottom = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZBottom > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "GridZTop") { - ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZTop = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZTop > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZTop = (((SlipPlaneUpliftVan) subject).SlipPlaneLeftGrid.GridZTop > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "TangentLineZTop") { - ((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZTop = (((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZTop > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZTop = (((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZTop > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "TangentLineZBottom") { - ((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZBottom = (((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZBottom > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZBottom = (((SlipPlaneUpliftVan) subject).SlipPlaneTangentLine.TangentLineZBottom > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } } else if (subject.GetType() == typeof(SlipCircleGrid)) { if (property == "GridXLeft") { - ((SlipCircleGrid) subject).GridXLeft = (((SlipCircleGrid) subject).GridXLeft > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircleGrid) subject).GridXLeft = (((SlipCircleGrid) subject).GridXLeft > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "GridXRight") { - ((SlipCircleGrid) subject).GridXRight = (((SlipCircleGrid) subject).GridXRight > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircleGrid) subject).GridXRight = (((SlipCircleGrid) subject).GridXRight > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "GridZBottom") { - ((SlipCircleGrid) subject).GridZBottom = (((SlipCircleGrid) subject).GridZBottom > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircleGrid) subject).GridZBottom = (((SlipCircleGrid) subject).GridZBottom > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else if (property == "GridZTop") { - ((SlipCircleGrid) subject).GridZTop = (((SlipCircleGrid) subject).GridZTop > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((SlipCircleGrid) subject).GridZTop = (((SlipCircleGrid) subject).GridZTop > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } } else if (subject.GetType() == typeof(TreeOnSlope)) { if (property == "X") { - ((TreeOnSlope) subject).X = (((TreeOnSlope) subject).X > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + ((TreeOnSlope) subject).X = (((TreeOnSlope) subject).X > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; } else if (property == "Z") { - ((TreeOnSlope) subject).Z = (((TreeOnSlope) subject).Z > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + ((TreeOnSlope) subject).Z = (((TreeOnSlope) subject).Z > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } } else if (subject.GetType() == typeof(GeometryPoint)) @@ -2215,16 +2210,16 @@ { if (property == "DikeTableHeight") { - model.ZoneAreas.DikeTableHeight = (model.ZoneAreas.DikeTableHeight > model.GeometryData.MaxGeometryZ + 20) ? model.GeometryData.MaxGeometryZ + 20 : model.GeometryData.MinGeometryZ; + model.ZoneAreas.DikeTableHeight = (model.ZoneAreas.DikeTableHeight > model.GeometryData.MaxGeometryPointsZ + 20) ? model.GeometryData.MaxGeometryPointsZ + 20 : model.GeometryData.MinGeometryPointsZ; } else if (property == "DesignLevelInfluenceY") { - model.ZoneAreas.DesignLevelInfluenceY = (model.ZoneAreas.DesignLevelInfluenceY > model.GeometryData.MaxGeometryZ) ? model.GeometryData.MaxGeometryZ : model.GeometryData.MinGeometryZ; + model.ZoneAreas.DesignLevelInfluenceY = (model.ZoneAreas.DesignLevelInfluenceY > model.GeometryData.MaxGeometryPointsZ) ? model.GeometryData.MaxGeometryPointsZ : model.GeometryData.MinGeometryPointsZ; } else { double value = Convert.ToDouble(subject.GetType().GetProperty(property).GetValue(subject, null)); - double validValue = (value > model.GeometryData.MaxGeometryX) ? model.GeometryData.MaxGeometryX : model.GeometryData.MinGeometryX; + double validValue = (value > model.GeometryData.MaxGeometryPointsX) ? model.GeometryData.MaxGeometryPointsX : model.GeometryData.MinGeometryPointsX; subject.GetType().GetProperty(property).SetValue(subject, validValue, null); } } Index: trunk/src/Stability/StabilityModel.cs =================================================================== diff -u -r7 -r36 --- trunk/src/Stability/StabilityModel.cs (.../StabilityModel.cs) (revision 7) +++ trunk/src/Stability/StabilityModel.cs (.../StabilityModel.cs) (revision 36) @@ -845,60 +845,25 @@ return -1; } - public void UpdateTopPoints(object aSender) - { - if (aSender.GetType() == typeof(GeometryPoint) || aSender.GetType() == typeof(UniformLoad) || aSender.GetType() == typeof(GeometryCurve) || aSender.GetType() == typeof(GeometrySurface) || aSender.GetType().Equals(typeof(SoilLayer2D)) || aSender.GetType().Equals(typeof(LineLoad)) || aSender.GetType() == typeof(TreeOnSlope)) - { - if (TreeOnSlope != null) - { - DataEventPublisher.Changed(typeof(TopPoint), TreeOnSlope, true); - } - - if (LineLoads.Count > 0) - { - foreach (var lineLoad in LineLoads) - { - DataEventPublisher.Changed(typeof(TopPoint), lineLoad, true); - } - } - - if (Nails.Count > 0) - { - foreach (var nail in Nails) - { - DataEventPublisher.Changed(typeof(TopPoint), nail, true); - } - } - - if (UniformLoads.Count > 0) - { - foreach (var uniformLoad in UniformLoads) - { - DataEventPublisher.Changed(typeof(TopPoint), uniformLoad, true); - } - } - } - } - public void CreateLineLoad(Point3D vertex3D, bool aIsMainInput) { if (aIsMainInput) { UndoRedoManager.Instance.BeginAction(); var newLineLoad = new LineLoad(); Create(newLineLoad); - Point3D topPoint = GeometryData.TopPoint.GetNearest3DTopPoint(vertex3D); - if (topPoint != null) + var top = GeometryData.SurfaceLine.GetZAtX(vertex3D.X); + if (!double.IsNaN(top)) { - newLineLoad.Z = topPoint.Z; + newLineLoad.Z = top; } else { newLineLoad.Z = 0.0; } newLineLoad.X = vertex3D.X; newLineLoad.Y = vertex3D.Y; - DataEventPublisher.Changed(typeof(TopPoint), newLineLoad, true); + DataEventPublisher.Changed(typeof(GeometryPoint), newLineLoad, true); UndoRedoManager.Instance.EndAction(); } else @@ -909,7 +874,7 @@ newLineLoad.X = vertex3D.X; newLineLoad.Y = vertex3D.Y; newLineLoad.Z = vertex3D.Z; - DataEventPublisher.Changed(typeof(TopPoint), newLineLoad, true); + DataEventPublisher.Changed(typeof(GeometryPoint), newLineLoad, true); UndoRedoManager.Instance.EndAction(); } } @@ -921,18 +886,18 @@ UndoRedoManager.Instance.BeginAction(); var newNail = new Nail(); Create(newNail); - Point3D topPoint = GeometryData.TopPoint.GetNearest3DTopPoint(vertex3D); - if (topPoint != null) + var top = GeometryData.SurfaceLine.GetZAtX(vertex3D.X); + if (!double.IsNaN(top)) { - newNail.Z = topPoint.Z; + newNail.Z = top; } else { newNail.Z = 0.0; } newNail.X = vertex3D.X; newNail.Y = vertex3D.Y; - DataEventPublisher.Changed(typeof(TopPoint), newNail, true); + DataEventPublisher.Changed(typeof(GeometryPoint), newNail, true); UndoRedoManager.Instance.EndAction(); } else @@ -943,7 +908,7 @@ newNail.X = vertex3D.X; newNail.Y = vertex3D.Y; newNail.Z = vertex3D.Z; - DataEventPublisher.Changed(typeof(TopPoint), newNail, true); + DataEventPublisher.Changed(typeof(GeometryPoint), newNail, true); UndoRedoManager.Instance.EndAction(); } } @@ -959,7 +924,7 @@ Create(newReferenceLevelLine); referenceLevelLine = newReferenceLevelLine; - DataEventPublisher.Changed(typeof(TopPoint), referenceLevelLine, true); + DataEventPublisher.Changed(typeof(GeometryPoint), referenceLevelLine, true); UndoRedoManager.Instance.EndAction(); } } @@ -981,7 +946,7 @@ newTreeOnSlope.WindForce = 10.0; TreeOnSlope = newTreeOnSlope; - DataEventPublisher.Changed(typeof(TopPoint), TreeOnSlope, true); + DataEventPublisher.Changed(typeof(GeometryPoint), TreeOnSlope, true); UndoRedoManager.Instance.EndAction(); } } @@ -993,7 +958,7 @@ TreeOnSlope.Z = vertex3D.Z; TreeOnSlope.WindForce = 10.0; - DataEventPublisher.Changed(typeof(TopPoint), TreeOnSlope, true); + DataEventPublisher.Changed(typeof(GeometryPoint), TreeOnSlope, true); UndoRedoManager.Instance.EndAction(); } } @@ -1020,7 +985,7 @@ newUnfiormLoad.XEnd = vertexPointList[1].X; newUnfiormLoad.Magnitude = 10; //default value in graphical input Create(newUnfiormLoad); - DataEventPublisher.Changed(typeof(TopPoint), newUnfiormLoad, true); + DataEventPublisher.Changed(typeof(GeometryPoint), newUnfiormLoad, true); UndoRedoManager.Instance.EndAction(); } } @@ -4307,7 +4272,6 @@ } } } - UpdateTopPoints(aSender); } public void ReNumberObjects(Type aObjectType, ref long aStartIndex) { }