Virtual call to allocate a new spacial data object, duplicate this spatial data into and parent the new metadata with this class metadata (if asked). Should be way cheaper than DuplicateObject, since we avoid duplicating metadata. It will not deep copy references. Some data are marked mutable and therefore are not threadsafe to copy, so they are not copied. They are mainly cached values (and octree for points). TODO: If we want to also copy those values (can be an optimization), we need to guard the copy.