/* Copyright (C) 2018-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: wxdcomp.ctr */ /** @file wxdcomp.c The wxdcomp module. */ #line 50 "wxdcomp.ctr" #include "wxd2lat.h" #line 56 "wxdcomp.ctr" int wxd2lat_object_category(int8_t ot) { int back = WXD_OC_CONTROL; #line 64 "wxdcomp.ctr" switch (ot) { case WXD_OT_TEXT : { back = WXD_OC_TEXT ; } break; case WXD_OT_POLYLINE : case WXD_OT_O_SPLINE : case WXD_OT_O_ARC : { back = WXD_OC_OPEN ; } break; case WXD_OT_POLYGON : case WXD_OT_C_SPLINE : case WXD_OT_C_ARC : case WXD_OT_CIRCLE : case WXD_OT_ELLIPSE : case WXD_OT_BOX : { back = WXD_OC_CLOSED ; } break; case WXD_OT_IMAGE : { back = WXD_OC_IMAGE ; } break; } #line 80 "wxdcomp.ctr" return back; } static int cmp_u8(uint8_t a, uint8_t b) { return ((a > b) ? (1) : ((a < b) ? (-1) : (0))); } static int cmp_i8(int8_t a, int8_t b) { return ((a > b) ? (1) : ((a < b) ? (-1) : (0))); } #if 0 static int cmp_u16(uint16_t a, uint16_t b) { return ((a > b) ? (1) : ((a < b) ? (-1) : (0))); } #endif static int cmp_i16(int16_t a, int16_t b) { return ((a > b) ? (1) : ((a < b) ? (-1) : (0))); } static int cmp_int(int a, int b) { return ((a > b) ? (1) : ((a < b) ? (-1) : (0))); } static int cmp_dbl(double a, double b) { return ((a > b) ? (1) : ((a < b) ? (-1) : (0))); } int wxd2lat_compare_object(const void *l, const void *r, int DK4_ARG_UNUSED(cr)) { const wxd_object_t *pl; const wxd_object_t *pr; int cal; int car; int back = 0; DK4_UNUSED_ARG(cr) #line 150 "wxdcomp.ctr" if (NULL != l) { if (NULL != r) { pl = (const wxd_object_t *)l; pr = (const wxd_object_t *)r; back = cmp_i16(pl->lay, pr->lay); if (0 == back) { cal = wxd2lat_object_category(pl->ot); car = wxd2lat_object_category(pr->ot); back = cmp_int(cal, car); if (0 == back) { #if 0 back = cmp_u16(pl->lw, pr->lw); #endif back = cmp_dbl(pl->lw, pr->lw); if (0 == back) { back = cmp_u8(pl->ls, pr->ls); if (0 == back) { back = cmp_u8(pl->sl, pr->sl); if (0 == back) { back = cmp_u8(pl->js, pr->js); if (0 == back) { back = cmp_u8(pl->csfs, pr->csfs); if (0 == back) { back = cmp_u8(pl->ml, pr->ml); if (0 == back) { back = cmp_u8(pl->sc[0], pr->sc[0]); if (0 == back) { back = cmp_u8(pl->sc[1], pr->sc[1]); if (0 == back) { back = cmp_u8(pl->sc[2], pr->sc[2]); if (0 == back) { back = cmp_u8(pl->fc[0], pr->fc[0]); if (0 == back) { back = cmp_u8(pl->fc[1], pr->fc[1]); if (0 == back) { back = cmp_u8(pl->fc[2], pr->fc[2]); if (0 == back) { back = cmp_i8(pl->ot, pr->ot); } } } } } } } } } } } } } } } else { back = 1; } } else { if (NULL != r) { back = -1; } } #line 213 "wxdcomp.ctr" return back; } /* vim: set ai sw=4 ts=4 : */