/// <summary>
        /// Create an <see cref="IsometricEmbedding" /> such that if a 2D point is converted to 3D via the embedding and
        /// then projected back to 2D via this projection, the result is the original 2D point.
        /// </summary>
        /// <param name="pointInEmbeddedSpace">
        /// a point in 3D that is contained in the plane represented by the embedding to be returned
        /// </param>
        public IsometricEmbedding GetCorrespondingIsometricEmbeddingContaining(Point pointInEmbeddedSpace)
        {
            var normalDirection = XAxis.CrossProduct(YAxis);
            var origin          = pointInEmbeddedSpace.VectorFromOrigin.ProjectOntoDirection(normalDirection).ImageOfOrigin;

            return(new IsometricEmbedding(XAxis, YAxis, origin));
        }