Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

add(2) [plan9 man page]

ADD(2)								System Calls Manual							    ADD(2)

NAME
add, sub, mul, div, raddp, rsubp, rmul, rdiv, rshift, inset, rcanon, eqpt, eqrect, ptinrect, rectinrect, rectXrect, rectclip, Dx, Dy, Pt, Rect, Rpt - arithmetic on points and rectangles SYNOPSIS
#include <u.h> #include <libc.h> #include <libg.h> Point add(Point p, Point q) Point sub(Point p, Point q) Point mul(Point p, int a) Point div(Point p, int a) Rectangle raddp(Rectangle r, Point p) Rectangle rsubp(Rectangle r, Point p) Rectangle rmul(Rectangle r, int a) Rectangle rdiv(Rectangle r, int a) Rectangle rshift(Rectangle r, int a) Rectangle inset(Rectangle r, int n) Rectangle rcanon(Rectangle r) int eqpt(Point p, Point q) int eqrect(Rectangle r, Rectangle s) int ptinrect(Point p, Rectangle r) int rectinrect(Rectangle r, Rectangle s) int rectXrect(Rectangle r, Rectangle s) int rectclip(Rectangle *rp, Rectangle b) int Dx(Rectangle r) int Dy(Rectangle r) Point Pt(int x, int y) Rectangle Rect(int x0, int y0, int x1, int y1) Rectangle Rpt(Point p, Point q) DESCRIPTION
The functions Pt, Rect and Rpt construct geometrical data types from their components. These are implemented as macros. Add returns the Point sum of its arguments: Pt(p.x+q.x, p.y+q.y). Sub returns the Point difference of its arguments: Pt(p.x-q.x, p.y-q.y). Mul returns the Point Pt(p.x*a, p.y*a). Div returns the Point Pt(p.x/a, p.y/a). Raddp returns the Rectangle Rect(add(r.min, p), add(r.max, p)); rsubp returns the Rectangle Rpt(sub(r.min, p), sub(r.max, p)). Rmul returns the Rectangle Rpt(mul(r.min,a), mul(r.max,a)); Rdiv returns the Rectangle Rpt(div(r.min,a), div(r.max,a)). Rshift returns the rectangle r with all coordinates either left-shifted or right-shifted by a, depending on whether a is positive or nega- tive, respectively. Inset returns the Rectangle Rect(r.min.x+n, r.min.y+n, r.max.x-n, r.max.y-n). Rcanon returns a rectangle with the same extent as r, canonicalized so that min.x <= max.x, and min.y <= max.y. Eqpt compares its argument Points and returns 0 if unequal, 1 if equal. Eqrect does the same for its argument Rectangles. Ptinrect returns 1 if p is a point within r, and 0 otherwise. Rectinrect returns 1 if all the pixels in r are also in s, and 0 otherwise. RectXrect returns 1 if r and s share any point, and 0 otherwise. Rectclip clips in place the Rectangle pointed to by rp so that it is completely contained within b. The return value is 1 if any part of *rp is within b. Otherwise, the return value is 0 and *rp is unchanged. The functions Dx and Dy give the width (x) and height (y) of a Rectangle. They are implemented as macros. SOURCE
/sys/src/libg SEE ALSO
graphics(2) ADD(2)

Check Out this Related Man Page

ADDRDSFIGREC(3) 					      RDS PHYSICAL FUNCTIONS						   ADDRDSFIGREC(3)

NAME
addrdsfigrec - adds a rectangle to a figure ORIGIN
This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of Universite Pierre et Marie CURIE, in Paris, France. Web : http://asim.lip6.fr/recherche/alliance/ E-mail : alliance-users@asim.lip6.fr SYNOPSYS
#include "rdsnnn.h" rdsrec_list *addrdsfigrec( Figure, Name, Layer, X, Y, Dx, Dy ) rdsfig_list *Figure; char *Name; char Layer; long X; long Y; long Dx; long Dy; PARAMETER
Figure figure which contains the rectangle to add. Name name of the rectangle to add. Layer Layer of the rectangle to add. X,Y,DX,DY Dimensions of the rectangle to add. DESCRIPTION
addrdsfigrec creates an adds a rectangle in the figure called Figure. The size of the user structure to add next to the structure rdsrec_list (if it exists) is defined by the field SIZE of the figure who has to contain the rectangle. The rectangle is added in front of the list, and becomes itself the list head associated to the defined layer in parameters of the function. The fields of the rectangle structure are modified as follows : The field NAME is set to Name. The field X is set to X. The field Y is set to Y. The field DX is set to Dx. The field DY is set to Dy. The field FLAGS is modified with the value Layer. RETURN VALUE
addrdsfigrec returns a pointer to the newly added rectangle. ERRORS
"Rds202: rdsalloc error, can't continue !" it's impossible to allocate the memory size desired EXAMPLE
#include "mutnnn.h" #include "rdsnnn.h" #include "rtlnnn.h" typedef struct UserStruct { char *STRING; void *USER1; } UserStruct; # define POINTER_STRING(R) (((UserStruct *)((char *)(R)+sizeof(rdsrec_list)))->STRING ) main() { rdsfig_list *RdsFigure; rdsrec_list *Rectangle; char Layer; rdsrec_list *ScanRec; mbkenv(); rdsenv(); loadrdsparam(); RdsFigure = addrdsfig ("core",sizeof ( UserStruct ) ); Rectangle = addrdsfigrec (RdsFigure, "Alu1",RDS_ALU1, 2,4,12,1); POINTER_STRING(Rectangle) = namealloc ("rectangle_alu1"); ... /* print caracteristics of all rectangles of the Rds figure */ for ( Layer = 0 ; Layer < RDS_MAX_LAYER ; Layer ++ ) { for ( ScanRec = RdsFigure->LAYERTAB[Layer] ; ScanRec != (rdsrec_list *) NULL ; ScanRec = ScanRec->NEXT ) { printf("Rectangle->LAYER = %s ", RDS_LAYER_NAME[GetRdsLayer(ScanRec)]); printf("Rectangle->NAME = %s ",ScanRec->NAME); printf("Rectangle->X = %ld ",ScanRec->X); printf("Rectangle->Y = %ld ",ScanRec->Y); printf("Rectangle->DX = %ld ",ScanRec->DX); printf("Rectangle->DY = %ld ",ScanRec->DY); printf("Rectangle->STRING = %s ",POINTER_STRING(ScanRec)); } } } SEE ALSO
librds, delrdsfigrec, viewrdsfig BUG REPORT
This tool is under development at the ASIM department of the LIP6 laboratory. We need your feedback to improve documentation and tools. ASIM
/LIP6 October 1, 1997 ADDRDSFIGREC(3)
Man Page