Annotation of doc/rat/rat.txt, revision 1.1.1.1

1.1       albertel    1: Scott Harrison's RAT Notes
                      2: (written in RAN format.. "ridiculous ascii notation")
                      3: 09/27/1999
                      4: 
                      5: Start
                      6: 
                      7: Who is using RAT?
                      8:     Instructor/Student/Guest
                      9:     Domain
                     10: 
                     11: file names
                     12:  [domain]_[user]_[resource].rat
                     13: 
                     14: to do:
                     15: * implement fancy resource rat widget
                     16: 
                     17: 
                     18: * implement fancy resource linking information interface
                     19:   widget
                     20: 
                     21: 
                     22: * implement resources on rat
                     23: 
                     24: 
                     25: 
                     26: Program documentation
                     27: GLOBAL VARIABLES
                     28: 
                     29: row    array	maps row id to display  (example, d=row[i] where 'd' is display and 'i' is id)
                     30:        used by	insertrow, findrow, horizontal, joinres, draw, main
                     31: 
                     32: maxrow scalar	number of elements-2 in row array    (the last element number in the array, -1 for empty array)
                     33:        used by	insertrow, findrow, horizontal, joinres, draw
                     34: 
                     35: col    array	maps col id to display  (example, d=row[i] where 'd' is display and 'i' is id)
                     36:        used by	insertrow, insertcol, findcol, maprow, comingthru, horizontal, joinres, drawrow, draw, main
                     37: 
                     38: maxcol scalar	number of elements-2 in col array    (the last element number in the array, -1 for empty array)
                     39:        used by	insertcol, findcol, maprow, comingthru, insertport, drawrow, draw
                     40: 
                     41: colmap array	in order of display ids which object is in which column
                     42:        used by	maprow, comingthru, insertport, horizontal, drawrow, draw, 
                     43: 
                     44: colmap2	    array	temporary
                     45: 	    used by	drawrow
                     46: colmap3	    array	temporary
                     47: 	    used by	drawrow
                     48: colmap4	    array	temporary
                     49: 	    used by	drawrow
                     50: colmap5	    array	temporary
                     51: 	    used by	drawrow
                     52: 
                     53: obj	    array	appended array with drawing objects (which are blocks, verticals, horizontals, and conditions), never emptied
                     54: 	    used by	insertrow, maprow, insertport, addobj, horizontal, joinres, drawrow, draw, main
                     55: 
                     56: maxobj	    scalar	number of values in obj array-2 (last element, -1 for empty)
                     57: 	    used by	NOTHING
                     58: 
                     59: rowcont	    array	object ids in a row
                     60: 	    used by	insertrow, maprow, addobj, drawrow, draw, main
                     61: 
                     62: rowtype	    array	row ids to type
                     63: 	    used by	insertrow, drawrow, main
                     64: 
                     65: coltype	    array	col ids to type
                     66: 	    used by	insertcol, insertport, drawrow, main
                     67: 
                     68: rrow	    array	display to id (reverse hash of row)
                     69: 	    used by	draw
                     70: 
                     71: rcol	    array	display to id (reverse hash of row)
                     72: 	    used by	drawrow, draw
                     73: 
                     74: cw	    array	column width (temporary)
                     75: 	    used by	drawcell, draw
                     76: 
                     77: rh	    array	row height (temporary)
                     78: 	    used by	drawrow, draw, 
                     79: 
                     80: data1,data2,data3,data4	array	 used to buffer memory so that javascript does not CRASH!
                     81: 			used by  drawrow, insertrow, insertport
                     82: 
                     83: 
                     84: 
                     85: functions
                     86: 
                     87: main - invokes RAT
                     88:   \
                     89:    \
                     90:     initializes rows, with resources labelled 5, 4, 3, and 7
                     91:     insert thirteen columns from the left side
                     92:     perform 3 testing swaps 
                     93:     initialize maxrow
                     94:     define starting objects (blocks: 3,4,5,7)
                     95:     create 12 joinings between these resources! (joinres ... see below)
                     96:     draw in debugging editting mode!
                     97:      \                                                                                 b&rowID&colID:inObj:outObj:outCond&...
                     98:       \                                                                                h&rowID&incolID:outcolID&inObj:outObj&inupdown:outupdown
                     99:        \                                                                               v&colID&inObj:outObj&updown
                    100:         \                                                       simple javascript    /
                    101:          \                                                     /                    /
                    102:       open, configure, and clear a debugging javascript window/                    /
                    103:                        |                                                          |
                    104:       go through all objects and display object information -----------------------
                    105:                        |
                    106:       write out the value of col array ------- counting col ids from 0 to maxcol, print out a comma separated list of display locations
                    107:                        |
                    108:       write out the value of row array ------- counting row ids from 0 to maxrow, print out a comma separated list of display locations
                    109:                        |
                    110:       find all the display rows (findrow) from 0 to last row, ------------------------------ findrow: does this my running through all rows and waiting till the value of an array
                    111:                        |                                                                     index matches the row to display, returns row id
                    112:         map this row (maprow), and output the results (colmap and rowcont) onto
                    113:                        |________________________________
                    114:                        |                                \
                    115:                        |                                 -- a debugging window with column id, colmap, and rowcont
                    116:                        |                                        where colmap specifies where objects occur within a row based on "display column" location
                    117:                        |                                        where rowcont is the objects within a row and
                    118: 	    	       |  
                    119:                        |
                    120:                        |
                    121:                initialize display-to-id array rrow (so that rrow[display] equals original row id)
                    122:                        |
                    123:                initialize display-to-id array rcol (so that rcol[display] equals original col id)
                    124:                        |
                    125:                initialize row height and column width values where rh[1] is short row, rh[2] is tall row, cw[1] is skinny column, cw[2] is fat column
                    126:                        |
                    127:                set javascript RAT display window options (javascript stuff...)
                    128:                        |
                    129:                output HTML beginning to RAT display window
                    130:                        |
                    131:                run through the rows to display, convert from display row # to row id (rrow) and draw in edit mode (drawrow)
                    132:                                                                                                                       |
                    133:                                                                                                                       |
                    134:                                                                                                            drawrow begins by clearing out and initializing
                    135:                                                                                                            these temporary arrays
                    136:                                                                                                                colmap,colmap2,colmap3,colmap4,colmap5
                    137:                                                                                                            output HTML beginning to row set to rowtype height (from row id)
                    138:                                                                                                            if there are contents in the row (rowcont[jid] display them (else just end HTML row)
                    139:                                                                                                              run through all the objects in row
                    140:                                                                                                              if object is a 'b'lock object
                    141:                                                                                                                do a lot of amazing things to position resource within block
                    142:                                                                                                                  and draw arrows connecting into block in another amazing feat of code
                    143:                                                                                                              if object is a 'h'orizontal object
                    144:                                                                                                                grab input column id and output column id
                    145:                                                                                                                and depending whether input is less than output in display position
                    146:                                                                                                                  draw left-right arrow line or right-left arrow line
                    147:                                                                                                                  and set leftmost position and rightmost position
                    148:                                                                                                                look at inupdown and outupdown
                    149:                                                                                                                if inupdown (means what ??) then
                    150:                                                                                                                  draw top-to-right line, set colmap2 and colmap3
                    151:                                                                                                                else draw right-to-down line
                    152:                                                                                                                if outupdown (means what ??) then
                    153:                                                                                                                  draw top-to-left line, set colmap2 and colmap3
                    154:                                                                                                                else draw left-to-down line
                    155:                                                                                                              if object is a 'v'ertical object
                    156:                                                                                                                set left to display column and USE THIS as the position
                    157:                                                                                                                if there is another element found in the colmap
                    158:                                                                                                                  it must be horizontal so draw top-down-right-left intersection ('tdrl')
                    159:                                                                                                                else draw top-to-down or down-to-top depending on 'v'ertical object specification
                    160:                                                                                                                set colmap2[left] and colmap3[left] to a plain vertical line
                    161:                                                                                                              run through columns and draw cells
                    162:                                  drawcell draws in edit mode html stuff  ------------------------------------- rtype is set to type of row, the cell is drawn with drawcell
                    163:                                                                                                                then using colmap2 and colmap3 draw two more up-down elements
                    164:                                                                                                                in rows below if rowtype is 2
                    165: 
                    166: 
                    167: 
                    168: 
                    169: 
                    170: 
                    171: ***************
                    172: joinres from A to B
                    173: 
                    174: calculate where in the middle of first object is a good place to insert outcoming path
                    175: calculate where in the middle of second object is a good place to insert incoming path
                    176: insert the ports based on the objects, the distance from middle of one object to other object, and direction
                    177: if A is below B, then loop around..set updown!
                    178: else set updown the other way
                    179: if inrow equals outrow
                    180:   just draw connecting horizontal element
                    181: if updown one way then go from row to row finding good columns to go through (comingthru)
                    182:      if there is NO GOOD COLUMN THEN INSERT A ROW! (insertrow)
                    183: if updown the other way then go from row to row finding good columns to go through (comingthru)
                    184:      if there is NO GOOD COLUMN THEN INSERT A ROW! (insertrow)
                    185: 
                    186: ***************
                    187: comingthru
                    188: see where you can bulldoze..more to write here
                    189: 
                    190: ***************
                    191: insertrow
                    192: make sure you can bulldoze..more to write here
                    193: 
                    194: 
                    195: Help Documentation
                    196: on RAT
                    197: 
                    198: Developer Documentation
                    199: on RAT
                    200: 
                    201: 
                    202: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>