/// <inheritdoc/>
 public override SegmentViewModelBase CreateSegmentViewModel(SegmentModelBase segmentModel)
 {
     return(segmentModel switch
     {
         PolygonMaskShapeModel polygonMaskShapeModel
         => new PolygonMaskShapeViewModel(polygonMaskShapeModel, _scriptVideoContext, _rootUndoObject, _undoService, _undoChangeFactory, _clipboardService),
         RectangleMaskShapeModel rectangleMaskShapeModel
         => new RectangleMaskShapeViewModel(rectangleMaskShapeModel, _scriptVideoContext, _rootUndoObject, _undoService, _undoChangeFactory, _clipboardService),
         EllipseMaskShapeModel ellipseMaskShapeModel
         => new EllipseMaskShapeViewModel(ellipseMaskShapeModel, _scriptVideoContext, _rootUndoObject, _undoService, _undoChangeFactory, _clipboardService),
         _   // default
         => throw new ArgumentException("Invalid or null SegmentModelBase instance", nameof(segmentModel)),
     });
 /// <inheritdoc/>
 public override SegmentViewModelBase CreateSegmentViewModel(SegmentModelBase segmentModel)
 {
     return(new MockSegmentViewModel((MockSegmentModel)segmentModel, _scriptVideoContext, _rootUndoObject, _undoService, _undoChangeFactory, _clipboardService));
 }
 /// <inheritdoc/>
 public abstract SegmentViewModelBase CreateSegmentViewModel(SegmentModelBase segmentModel);
 /// <summary>
 /// Base constructor for masking shape segment view models derived from the <see cref="MaskShapeViewModelBase"/> class.
 /// </summary>
 /// <inheritdoc cref="SegmentViewModelBase(SegmentModelBase, IScriptVideoContext, object, IUndoService, IChangeFactory, IClipboardService, KeyFrameViewModelCollection)"/>
 protected MaskShapeViewModelBase(SegmentModelBase model, IScriptVideoContext scriptVideoContext, object rootUndoObject, IUndoService undoService, IChangeFactory undoChangeFactory, IClipboardService clipboardService, KeyFrameViewModelCollection keyFrameViewModels = null) : base(model, scriptVideoContext, rootUndoObject, undoService, undoChangeFactory, clipboardService, keyFrameViewModels)
 {
 }