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)
{
_point1.Draw(dc, renderer, dx, dy, db, record);
_point2.Draw(dc, renderer, dx, dy, db, record);
_point3.Draw(dc, renderer, dx, dy, db, record);
_point4.Draw(dc, renderer, dx, dy, db, record);
}
else if (_point1 == renderer.State.SelectedShape)
{
_point1.Draw(dc, renderer, dx, dy, db, record);
}
else if (_point2 == renderer.State.SelectedShape)
{
_point2.Draw(dc, renderer, dx, dy, db, record);
}
else if (_point3 == renderer.State.SelectedShape)
{
_point3.Draw(dc, renderer, dx, dy, db, record);
}
else if (_point4 == renderer.State.SelectedShape)
{
_point4.Draw(dc, renderer, dx, dy, db, record);
}
}
if (renderer.State.SelectedShapes != null)
{
if (renderer.State.SelectedShapes.Contains(this))
{
_point1.Draw(dc, renderer, dx, dy, db, record);
_point2.Draw(dc, renderer, dx, dy, db, record);
_point3.Draw(dc, renderer, dx, dy, db, record);
_point4.Draw(dc, renderer, dx, dy, db, record);
}
}
}