/*! Adds a line object to pattern (\a p) starting at the absolute position (\a x1,\a y1) and ending at the absolute position (\a x2,\a y2). Positive y is up. Units are in millimeters. */ void embPattern_addLineObjectAbs(EmbPattern* p, double x1, double y1, double x2, double y2) { EmbLineObject lineObj = embLineObject_make(x1, y1, x2, y2); if(!p) { embLog_error("emb-pattern.c embPattern_addLineObjectAbs(), p argument is null\n"); return; } if(embLineObjectList_empty(p->lineObjList)) { p->lineObjList = p->lastLineObj = embLineObjectList_create(lineObj); } else { p->lastLineObj = embLineObjectList_add(p->lastLineObj, lineObj); } }
/* Adds a line starting at the absolute position (x1,y1) and ending at the absolute position (x2,y2). Positive y is up. Units are in millimeters. */ void embPattern_addLineObjectAbs(EmbPattern* p, double x1, double y1, double x2, double y2) { EmbLineObject lineObj = embLineObject_make(x1, y1, x2, y2); if(!p) { embLog_error("emb-pattern.c embPattern_addLineObjectAbs(), p argument is null\n"); return; } if(!(p->lineObjList)) { p->lineObjList = (EmbLineObjectList*)malloc(sizeof(EmbLineObjectList)); if(!p->lineObjList) { embLog_error("emb-pattern.c embPattern_addLineObjectAbs(), cannot allocate memory for p->lineObjList\n"); return; } p->lineObjList->lineObj = lineObj; p->lineObjList->next = 0; p->lastLineObj = p->lineObjList; } else { embLineObjectList_add(p->lastLineObj, lineObj); p->lastLineObj = p->lastLineObj->next; } }
/* Adds a line starting at the absolute position (x1,y1) and ending at the absolute position (x2,y2). Positive y is up. Units are in millimeters. */ void embPattern_addLineObjectAbs(EmbPattern* p, double x1, double y1, double x2, double y2) { /* TODO: pointer safety */ EmbLineObject lineObj = embLineObject_make(x1, y1, x2, y2); if(!(p->lineObjList)) { p->lineObjList = (EmbLineObjectList*)malloc(sizeof(EmbLineObjectList)); /* TODO: malloc fail error */ p->lineObjList->lineObj = lineObj; p->lineObjList->next = 0; p->lastLineObj = p->lineObjList; } else { embLineObjectList_add(p->lastLineObj, lineObj); p->lastLineObj = p->lastLineObj->next; } }