1 // TODO coverage
2 #define DWG_TYPE DWG_TYPE_ASSOCARRAYMODIFYACTIONBODY
3 #include "common.c"
4
5 void
6 api_process (dwg_object *obj)
7 {
8 int error, isnew;
9 ASSOCARRAYACTIONBODY_fields;
10 BITCODE_H *deps;
11 BITCODE_BS status;
12 BITCODE_BL num_items;
13 Dwg_ARRAYITEMLOCATOR *items;
14
15 Dwg_Version_Type dwg_version = obj->parent->header.version;
16 #ifdef DEBUG_CLASSES
17 dwg_obj_assocarraymodifyactionbody *_obj
18 = dwg_object_to_ASSOCARRAYMODIFYACTIONBODY (obj);
19 bool good = 1;
20
21 // ASSOCACTIONBODY:
22 CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, aab_version, BL);
23 CHK_ASSOCPARAMBASEDACTIONBODY (ASSOCARRAYMODIFYACTIONBODY);
24
25 CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, aaab_version, BL);
26 CHK_ENTITY_UTF8TEXT (_obj, ASSOCARRAYMODIFYACTIONBODY, paramblock);
27 if (!dwg_dynapi_entity_value (_obj, "ASSOCARRAYMODIFYACTIONBODY",
28 "transmatrix", &transmatrix, NULL))
29 fail ("ASSOCARRAYMODIFYACTIONBODY.transmatrix");
30 for (unsigned i = 0; i < 16; i += 4)
31 {
32 for (unsigned j = i; j < i + 4; j++)
33 { /* catches nan */
34 if (transmatrix[j] != _obj->transmatrix[j])
35 good = 0;
36 }
37 if (good)
38 ok ("ASSOCARRAYMODIFYACTIONBODY.transmatrix[%d]: (%f, %f, %f, %f)", i,
39 transmatrix[i], transmatrix[i + 1], transmatrix[i + 2],
40 transmatrix[i + 3]);
41 else
42 fail ("ASSOCARRAYMODIFYACTIONBODY.transmatrix[%d]: (%f, %f, %f, %f)",
43 i, transmatrix[i], transmatrix[i + 1], transmatrix[i + 2],
44 transmatrix[i + 3]);
45 }
46
47 CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, status, BS);
48 CHK_ENTITY_TYPE (_obj, ASSOCARRAYMODIFYACTIONBODY, num_items, BL);
49 if (!dwg_dynapi_entity_value (_obj, "ASSOCARRAYMODIFYACTIONBODY", "items",
50 &items, NULL))
51 fail ("ASSOCARRAYMODIFYACTIONBODY.items");
52 for (unsigned i = 0; i < num_items; i++)
53 {
54 CHK_SUBCLASS_TYPE (items[i], ARRAYITEMLOCATOR, itemloc1, BL);
55 CHK_SUBCLASS_TYPE (items[i], ARRAYITEMLOCATOR, itemloc2, BL);
56 CHK_SUBCLASS_TYPE (items[i], ARRAYITEMLOCATOR, itemloc3, BL);
57 // FIXME CHK_SUBCLASS_VECTOR_TYPE (items[i], ARRAYITEMLOCATOR,
58 // "itemloc[3]", 3, BL);
59 // ok ("ASSOCARRAYMODIFYACTIONBODY.items[%d].itemloc[0]: " FORMAT_BL, i,
60 // items[i].itemloc[0]); ok
61 // ("ASSOCARRAYMODIFYACTIONBODY.items[%d].itemloc[1]: " FORMAT_BL, i,
62 // items[i].itemloc[1]); ok
63 // ("ASSOCARRAYMODIFYACTIONBODY.items[%d].itemloc[2]: " FORMAT_BL, i,
64 // items[i].itemloc[2]);
65 }
66 #endif
67 }