public override void Reset()
 {
     Parent       = null;
     _flags       = TransformFlags.All;
     _localMatrix = Matrix2D.Identity;
     _worldMatrix = Matrix2D.Identity;
     _position    = Vector2.Zero;
     _origin      = Vector2.Zero;
     _rotation    = 0.0f;
     _scale       = Vector2.One;
     _zIndex      = 0;
 }
 private void OnParentChanged(Transform2DComponent oldParent, Transform2DComponent newParent)
 {
     for (Transform2DComponent transform2DComponent = oldParent;
          transform2DComponent != null;
          transform2DComponent = transform2DComponent.Parent)
     {
         transform2DComponent.TransformBecameDirty -= ParentOnTransformBecameDirty;
     }
     for (Transform2DComponent transform2DComponent = newParent;
          transform2DComponent != null;
          transform2DComponent = transform2DComponent.Parent)
     {
         transform2DComponent.TransformBecameDirty += ParentOnTransformBecameDirty;
     }
 }