Annotation of researchv9/jtools/src/cip/transform.c, revision 1.1

1.1     ! root        1: /*
        !             2:   %Z%  %M%  version %I% %Q%of %H% %T%
        !             3:   Last Delta:  %G% %U% to %P%
        !             4: */
        !             5: 
        !             6: #include "cip.h"
        !             7: 
        !             8: struct thing *
        !             9: reflect(master,p) 
        !            10: register struct thing *master; 
        !            11: Point p;
        !            12: {
        !            13:   register struct thing *t; 
        !            14:   register Point *plist;  
        !            15:   register int i;
        !            16:   Point temp;
        !            17: 
        !            18:   if ((t = (struct thing *) getSpace(sizeof(struct thing))) != TNULL) {
        !            19:     *t = *master;
        !            20:     if (p.y!=0) {              /* x-axis - change y coordinate */
        !            21:       t->origin.y = p.y - t->origin.y;
        !            22:     }
        !            23:     else {             /* y-axis - change x coordinate */
        !            24:       t->origin.x = p.x - t->origin.x;
        !            25:     }
        !            26:     switch(t->type) {
        !            27:       case CIRCLE:
        !            28:       case ELLIPSE:
        !            29:       case TEXT: {
        !            30:        break;
        !            31:       }
        !            32:       case BOX: {
        !            33:        if (p.y!=0) {
        !            34:          t->otherValues.corner.y = p.y - t->otherValues.corner.y;
        !            35:        }
        !            36:        else {
        !            37:          t->otherValues.corner.x = p.x - t->otherValues.corner.x;
        !            38:        }
        !            39:        break;
        !            40:       }
        !            41:       case LINE: {
        !            42:        if (p.y!=0) {
        !            43:          t->otherValues.end.y = p.y - t->otherValues.end.y;
        !            44:        }
        !            45:        else {
        !            46:          t->otherValues.end.x = p.x - t->otherValues.end.x;
        !            47:        }
        !            48:        break;
        !            49:       }
        !            50:       case ARC: {
        !            51:        if (p.y!=0) {
        !            52:          t->otherValues.arc.start.y = p.y - t->otherValues.arc.start.y;
        !            53:          t->otherValues.arc.end.y = p.y - t->otherValues.arc.end.y;
        !            54:        }
        !            55:        else {
        !            56:          t->otherValues.arc.start.x = p.x - t->otherValues.arc.start.x;
        !            57:          t->otherValues.arc.end.x = p.x - t->otherValues.arc.end.x;
        !            58:        }
        !            59:        temp = t->otherValues.arc.start;
        !            60:        t->otherValues.arc.start = t->otherValues.arc.end;
        !            61:        t->otherValues.arc.end = temp;
        !            62:        break;
        !            63:       }
        !            64:       case SPLINE: {
        !            65:        if ((plist = (Point *) getSpace((t->otherValues.spline.used+3)
        !            66:                                *sizeof(Point))) != (Point *) NULL) {
        !            67:          for (i=0; i<t->otherValues.spline.used+3; i++) {
        !            68:            plist[i] = t->otherValues.spline.plist[i];
        !            69:            if (p.y==0) {
        !            70:              plist[i].x = p.x - plist[i].x;
        !            71:            }
        !            72:            else {
        !            73:              plist[i].y = p.y - plist[i].y;
        !            74:            }
        !            75:          }
        !            76:          t->otherValues.spline.plist = plist;
        !            77:        }
        !            78:        break;
        !            79:       }
        !            80:       case MACRO: {
        !            81:        break;
        !            82:       }
        !            83:     }
        !            84:     BoundingBox(t);
        !            85:     return(t);
        !            86:   }
        !            87:   return (master);
        !            88: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.