Beispiel #1
0
        public override async void OnInvalidate(InvalidateArgs invalidateArgs)
        {
            additonalInvalidate = invalidateArgs.InvalidateType;

            if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children) ||
                 invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix) ||
                 invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh)) &&
                invalidateArgs.Source != this &&
                !RebuildLocked)
            {
                await Rebuild();
            }
            else if ((invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) && invalidateArgs.Source == this))
            {
                await Rebuild();
            }
            else if (SheetObject3D.NeedsRebuild(this, invalidateArgs))
            {
                await Rebuild();
            }
            else if (invalidateArgs.InvalidateType.HasFlag(InvalidateType.Properties) ||
                     invalidateArgs.InvalidateType.HasFlag(InvalidateType.Matrix) ||
                     invalidateArgs.InvalidateType.HasFlag(InvalidateType.Mesh) ||
                     invalidateArgs.InvalidateType.HasFlag(InvalidateType.Children))
            {
                base.OnInvalidate(invalidateArgs);
            }

            base.OnInvalidate(invalidateArgs);

            additonalInvalidate = InvalidateType.None;
        }
Beispiel #2
0
 public InvalidateArgs(IObject3D source, InvalidateType invalidateType)
 {
     this.Source         = source;
     this.InvalidateType = invalidateType;
 }
Beispiel #3
0
 public InvalidateArgs(IObject3D source, InvalidateType invalidateType, UndoBuffer undoBuffer = null)
 {
     this.Source         = source;
     this.InvalidateType = invalidateType;
     this.UndoBuffer     = undoBuffer;
 }