INTERFACE AttributesIso2D; IMPORT Neighborhood2D; CONST N = 5; (* Number of local attributes per texel *) TYPE T = ARRAY [0..N-1] OF REAL; (* A set of local attributes *) VAR Name: TEXT; PROCEDURE FromNeighborhood(READONLY z: Neighborhood2D.T; VAR (*OUT*) a: T); (* Computes the attribute set from a texel neighborhood. *) PROCEDURE EnergyAndStateForcesFromStateNeigborhood( READONLY z: ARRAY OF Neighborhood2D.T; (* Multi-layer neighborhood *) energy: LocalEvaluator.T; (* Local energy evaluator *) VAR (*OUT*) E: LONGREAL; (* Computed local energy *) VAR (*OUT*) dEdz: ARRAY OF Neighborhood2D.T; (* Derivatives of "E" rel.to "z" *) ); (* Computes the energy term associated with one texel, and its partial derivatives relative to the texel values, from the texel's neighborhood. *) END Attributes2D.