Did you know ... | Search Documentation: |
portray_object.pl -- Create Human readable XPCE object descriptions |
Note: you may wish to incorporate portray_object/2 with the standard portray mechanism of your Prolog. In that case:
portray(Object) :- object(Object), !, portray_object(Object).
Sometimes the use of object references can be a new nuisance, in particular while writing and debugging PCE programs. Suppose you have done:
new(@s, spatial(xref=x+w, yref=x+h/2, xref=x, yref=y+h))
then
object(@s, S) S = spatial(@1234, @1235, @1236, @1237, @default, @default)
is not of much use. portray_object/2 makes life easier:
portray_object(@s, S) S = spatial(xref=x+w, yref=x+h/2, xref=x, yref=y+h)
More or less expanding the arguments until they become readable. portray_object/3 uses rules which specify how each object will be portrayed. You can make private extensions to these rules if you like.
portray_class(constraint(A, B, C), _, constraint(A, B, p/C)).
Which should not touch the first two arguments (A and B), but portrays C recursively.