protected void setRequiresUpdates(boolean f) {
        // Note to explorers, the reason this was done as a protected setter
        // instead of passed on construction is because it frees all subclasses
        // from having to make sure to always pass the value up in case they
        // are subclassed.
        // The reason that requiresUpdates() isn't just a protected method to
        // override (which would be more correct) is because the flag provides
        // some flexibility in how we break subclasses.  A protected method
        // would require that all subclasses that required updates need implement
        // this method, or they would silently stop processing updates.  A flag
        // lets us set a default when a subclass is detected that is different
        // from the internal "more efficient" default.
        // Spatial's default is 'true' for this flag requiring subclasses to
        // override it for more optimal behavior.  Node and Geometry will override
        // it to false if the class is Node.class or Geometry.class.
        // This means that all subclasses will default to the old behavior
        // unless they opt in.
        if (parent != null) {
            throw new IllegalStateException("setRequiresUpdates() cannot be called once attached.");
        }
        this.requiresUpdates = f;
    }
Subclasses can call this with true to denote that they require
updateLogicalState() to be called even if they contain no controls.
Setting this to false reverts to the default behavior of only
updating if the spatial has controls.  This is not meant to
indicate dynamic state in any way and must be called while
unattached or an IllegalStateException is thrown.  It is designed
to be called during object construction and then never changed, ie:
it's meant to be subclass specific state and not runtime state.
Subclasses of Node or Geometry that do not set this will get the
old default behavior as if this was set to true.  Subclasses should
call setRequiresUpdate(false) in their constructors to receive
optimal behavior if they don't require updateLogicalState() to be
called even if there are no controls.

@param f true&rarr;require updates, false&rarr;don't require updates
jme3-core/src/main/java/com/jme3/scene/Spatial.java