Metin, 

Here are some notes about how the properties in the sketch system
currently work.  Things are changing even as I write this, but I
*think* this is the way things are ending up.

The running example that I will use is the derived-property "width"
for a cross.  Say in Tracy's language it looks something like this:

(define Cross
  (Components
     (Line line1)
     (Line line2))
  ...
   (derived-properties    //I know they are called something different
			  // now, I just can't remember what
      (width (/ (line1.p1.x - line1.p2.x) 2)))) 

Basically we agreed that we would just put a method for calculating
width in the Cross java object.  But the problem is that we need to
keep a level of indirection so that we can refer to properties of the
object even before the object has been drawn.  So, the Cross object
(in fact all composite objects) have a method called "getProperty"
that takes a property type and a list of arguments, and returns the
value of that property.  For an example, take a look at the Cross.java
file.  I have made some more comments on what is going on in this
file.  This is the file your program will be generating from the DDL
files.  

OK, we should probably meet to make sure this is all clear.  Let me
know when you are free and if there is anything that you don't
understand.  Like I said, I am in the process of changing things over
so they actually work this way, so some things might still be a bit
hazy.  :)

Christine
