public override void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r)
{
var record = this.Data.Record ?? r;
if (State.Flags.HasFlag(ShapeStateFlags.Visible))
{
renderer.Draw(dc, this, dx, dy, db, record);
}
if (renderer.State.SelectedShape != null)
{
if (this == renderer.State.SelectedShape)
{
var points = this.GetPoints();
foreach (var point in points)
{
point.Draw(dc, renderer, dx, dy, db, record);
}
}
else
{
var points = this.GetPoints();
foreach (var point in points)
{
if (point == renderer.State.SelectedShape)
{
point.Draw(dc, renderer, dx, dy, db, record);
}
}
}
}
if (renderer.State.SelectedShapes != null)
{
if (renderer.State.SelectedShapes.Contains(this))
{
var points = this.GetPoints();
foreach (var point in points)
{
point.Draw(dc, renderer, dx, dy, db, record);
}
}
}
}