4.3 Render State 267
does not need to change when you add new effects. Thus, the core engine is isolated
from the addition of new effects. This is yet another manifestation of the open-closed
principle of object-oriented programming. The core engine is closed to changes, thus
protecting its integrity, but it is open to changes in that its interface supports the
needs of any new features added to the special effects system.
The
Spatial class has an interface to support attaching and detaching Effect ob-
jects. If the
Effect is attached to a Geometry object, the effect is considered to be a
local effect. Otherwise, the
Effect is attached to a Node object and the effect is con-
sidered to be a global effect. Effects such as projected textures have both