Lines Matching defs:self

19 static RAreaList *RAreaListCopy(const RAreaList *self);
20 static void RAreaListDelete(RAreaList *self, int index);
21 static void RAreaListAddList(RAreaList *self, const RAreaList *other);
22 static RAreaList *RAreaListIntersectCrop(const RAreaList *self,
27 static void RAreaListSortX(const RAreaList *self);
29 static void RAreaListSortY(const RAreaList *self);
77 RAreaListCopy(const RAreaList *self)
79 RAreaList *new = RAreaListNew(self->cap, NULL);
81 RAreaListAddList(new, self);
93 RAreaListCopyCropped(const RAreaList *self, int left_margin,
100 RArea big_area = RAreaListBigArea(self);
129 return RAreaListIntersectCrop(self, &big_area);
141 RAreaListFree(RAreaList *self)
143 if(self == NULL) {
146 free(self->areas);
147 free(self);
155 RAreaListDelete(RAreaList *self, int index)
157 if(index >= self->len) {
161 self->len--;
163 if(index == self->len) {
167 memcpy(&self->areas[index], &self->areas[index + 1],
168 (self->len - index) * sizeof(RArea));
176 RAreaListAdd(RAreaList *self, const RArea *area)
178 if(self->cap == self->len) {
179 RArea *new_list = realloc(self->areas, (self->cap + 1) * sizeof(RArea));
184 self->cap++;
185 self->areas = new_list;
188 self->areas[self->len++] = *area;
196 RAreaListAddList(RAreaList *self, const RAreaList *other)
198 if(self->cap - self->len < other->len) {
199 RArea *new_list = realloc(self->areas,
200 (self->len + other->len) * sizeof(RArea));
205 self->cap = self->len + other->len;
206 self->areas = new_list;
209 memcpy(&self->areas[self->len], other->areas, other->len * sizeof(RArea));
211 self->len += other->len;
239 RAreaListSortX(const RAreaList *self)
241 if(self->len <= 1) {
245 qsort(self->areas, self->len, sizeof(RArea), _cmpX);
273 RAreaListSortY(const RAreaList *self)
275 if(self->len <= 1) {
279 qsort(self->areas, self->len, sizeof(RArea), _cmpY);
288 RAreaListHorizontalUnion(const RAreaList *self)
290 RAreaList *copy = RAreaListCopy(self);
326 RAreaListVerticalUnion(const RAreaList *self)
328 RAreaList *copy = RAreaListCopy(self);
359 RAreaListIntersect(const RAreaList *self, const RArea *area)
361 RAreaList *new = RAreaListNew(self->len, NULL);
363 for(int i = 0; i < self->len; i++) {
364 if(RAreaIsIntersect(&self->areas[i], area)) {
365 RAreaListAdd(new, &self->areas[i]);
378 RAreaListForeach(const RAreaList *self,
382 for(int i = 0 ; i < self->len ; i++) {
383 if(func(&(self->areas[i]), data) == true) {
396 RAreaListIntersectCrop(const RAreaList *self, const RArea *area)
398 RAreaList *new = RAreaListNew(self->len, NULL);
400 for(int i = 0; i < self->len; i++) {
401 RArea it = RAreaIntersect(&self->areas[i], area);
421 RAreaListBigArea(const RAreaList *self)
426 if(self->len < 1) {
430 for(int i = 0 ; i < self->len ; i++) {
431 const RArea *area = &(self->areas[i]);
460 RAreaListBestTarget(const RAreaList *self, const RArea *area)
465 for(int i = 0; i < self->len; i++) {
466 RArea it = RAreaIntersect(area, &self->areas[i]);
469 full_area = self->areas[i];
481 RAreaListMaxX(const RAreaList *self)
483 RArea *cur_area = &self->areas[0], *area_end = &self->areas[self->len];
484 int max_x = self->len ? cur_area->x : 0;
486 // While a for(i=0 ; i<self->len ; i++) loop is generally nicer for
503 RAreaListMaxY(const RAreaList *self)
505 RArea *cur_area = &self->areas[0], *area_end = &self->areas[self->len];
506 int max_y = self->len ? cur_area->y : 0;
523 RAreaListMinX2(const RAreaList *self)
525 RArea *cur_area = &self->areas[0], *area_end = &self->areas[self->len];
526 int min_x = self->len ? RAreaX2(cur_area) : 0;
543 RAreaListMinY2(const RAreaList *self)
545 RArea *cur_area = &self->areas[0], *area_end = &self->areas[self->len];
546 int min_y = self->len ? RAreaY2(cur_area) : 0;
564 RAreaListPrint(const RAreaList *self)
566 fprintf(stderr, "[len=%d cap=%d", self->len, self->cap);
568 for(int i = 0 ; i < self->len ; i++) {
569 RArea *area = &self->areas[i];