/// <summary>
 /// 放置。
 /// </summary>
 /// <param name="predicate">筛选器。</param>
 /// <param name="location">位置。</param>
 /// <returns>形状候补建造者。</returns>
 public ShapeAlterationBuilder Placement(Func<ShapePlacementContext, bool> predicate, PlacementInfo location)
 {
     return Configure(descriptor =>
     {
         var next = descriptor.Placement;
         descriptor.Placement = ctx => predicate(ctx) ? location : next(ctx);
     });
 }
 /// <summary>
 /// 放置。
 /// </summary>
 /// <param name="predicate">筛选器。</param>
 /// <param name="location">位置。</param>
 /// <returns>形状候补建造者。</returns>
 public ShapeAlterationBuilder Placement(Func <ShapePlacementContext, bool> predicate, PlacementInfo location)
 {
     return(Configure(descriptor =>
     {
         var next = descriptor.Placement;
         descriptor.Placement = ctx => predicate(ctx) ? location : next(ctx);
     }));
 }