FUNCTION acyclic_surface_replica
(rep : surface_replica, parent : surface) : BOOLEAN;
IF NOT (('GEOMETRY_SCHEMA.SURFACE_REPLICA') IN TYPEOF(parent)) THEN RETURN (TRUE); END_IF; (* RETURN TRUE IF the parent is NOT OF TYPE surface_replica *) IF (parent :=: rep) THEN RETURN (FALSE); (* RETURN FALSE IF the parent is the same surface_replica, otherwise, call FUNCTION again WITH the parents own parent_surface. *) ELSE RETURN(acyclic_surface_replica(rep, parent\surface_replica.parent_surface)); END_IF; END_FUNCTION; -- acyclic_surface_replica
|