public Spatial deepClone() {
        // Set up the cloner for the type of cloning we want to do.
        Cloner cloner = new Cloner();

        // First, we definitely do not want to clone our own parent
        cloner.setClonedValue(parent, null);

        Spatial clone = cloner.clone(this);

        // Because we've nulled the parent out we need to make sure
        // the transforms and stuff get refreshed.
        clone.setTransformRefresh();
        clone.setLightListRefresh();
        clone.setMatParamOverrideRefresh();

        return clone;
    }
@return Similar to Spatial.clone() except will create a deep clone of all
geometries' meshes. Normally this method shouldn't be used. Instead, use
Spatial.clone()

@see Spatial#clone()
jme3-core/src/main/java/com/jme3/scene/Spatial.java