// Copyright (C) Stichting Deltares 2025. All rights reserved.
//
// This file is part of the Dam Engine.
//
// The Dam Engine is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero 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.DamEngine.Data.Geometry;
using Deltares.DamEngine.Data.Standard;
namespace Deltares.DamEngine.Data.General.PlLines;
public class PlLinePoint : Point2D
{
public PlLinePoint() : this(0, 0) {}
public PlLinePoint(double aX, double aZ) : base(aX, aZ) {}
}
public class PlLine : PolyLine, ICloneable
{
private PlLineType plLineType;
public PlLineType PlLineType
{
get
{
return plLineType;
}
set
{
plLineType = value;
PlLineTypeSpecified = true;
}
}
public bool PlLineTypeSpecified { get; private set; }
public bool IsPhreatic { get; set; }
public int BoundaryLayer { get; set; }
public PlLine Clone()
{
var plLine = new PlLine
{
IsPhreatic = IsPhreatic,
BoundaryLayer = BoundaryLayer
};
foreach (PlLinePoint point in Points)
{
var newPoint = new PlLinePoint
{
X = point.X,
Z = point.Z
};
plLine.Points.Add(newPoint);
}
return plLine;
}
}