1 // TODO DEBUGGING
2 #define DWG_TYPE DWG_TYPE_ACSH_EXTRUSION_CLASS
3 #include "common.c"
4
5 void
6 api_process (dwg_object *obj)
7 {
8 int error, isnew;
9 // Dwg_EvalExpr evalexpr;
10 // Dwg_ACSH_HistoryNode history_node;
11 BITCODE_BD *trans;
12 // AcDbShSweepBase
13 BITCODE_BL major; /*!< DXF 90 */
14 BITCODE_BL minor; /*!< DXF 91 */
15 BITCODE_3BD direction; /*!< DXF 10 */
16 BITCODE_BL bl92; /*!< DXF 92 */
17 BITCODE_BL shsw_text_size; /*!< DXF 90 */
18 BITCODE_TF shsw_text; /*!< DXF 310 */
19 BITCODE_BL shsw_bl93; /*!< DXF 93 */
20 BITCODE_BL shsw_text2_size; /*!< DXF 90 */
21 BITCODE_TF shsw_text2; /*!< DXF 310 */
22 BITCODE_BD draft_angle; /*!< DXF 42 0.0 */
23 BITCODE_BD start_draft_dist; /*!< DXF 43 0.0 */
24 BITCODE_BD end_draft_dist; /*!< DXF 44 0.0 */
25 BITCODE_BD scale_factor; /*!< DXF 45 1.0 */
26 BITCODE_BD twist_angle; /*!< DXF 48 0.0 */
27 BITCODE_BD align_angle; /*!< DXF 49 0.0 */
28 BITCODE_BD *sweepentity_transform; /*!< DXF 46 16x */
29 BITCODE_BD *pathentity_transform; /*!< DXF 47 16x */
30 BITCODE_RC align_option; /*!< DXF 70 2 */
31 BITCODE_RC miter_option; /*!< DXF 71 2 */
32 BITCODE_B has_align_start; /*!< DXF 290 1 */
33 BITCODE_B bank; /*!< DXF 292 1 */
34 BITCODE_B check_intersections; /*!< DXF 293 0 */
35 BITCODE_B shsw_b294; /*!< DXF 294 1 */
36 BITCODE_B shsw_b295; /*!< DXF 295 1 */
37 BITCODE_B shsw_b296; /*!< DXF 296 1 */
38 BITCODE_3BD pt2; /*!< DXF 11 0,0,0 */
39 // AcDbShExtrusion
40
41 Dwg_Version_Type dwg_version = obj->parent->header.version;
42 #ifdef DEBUG_CLASSES
43 dwg_obj_acsh_extrusion_class *_obj
44 = dwg_object_to_ACSH_EXTRUSION_CLASS (obj);
45
46 CHK_EVALEXPR (ACSH_EXTRUSION_CLASS);
47 CHK_ACSH_HISTORYNODE ();
48
49 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, major, BL); /*!< DXF 90 */
50 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, minor, BL); /*!< DXF 91 */
51 CHK_ENTITY_3RD (_obj, ACSH_EXTRUSION_CLASS, direction); /*!< DXF 10 */
52 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, bl92, BL); /*!< DXF 92 */
53 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_text_size,
54 BL); /*!< DXF 90 */
55 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_text, TF); /*!< DXF 310 */
56 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_bl93, BL); /*!< DXF 93 */
57 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_text2_size,
58 BL); /*!< DXF 90 */
59 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_text2, TF); /*!< DXF 310 */
60 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, draft_angle,
61 BD); /*!< DXF 42 0.0 */
62 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, start_draft_dist,
63 BD); /*!< DXF 43 0.0 */
64 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, end_draft_dist,
65 BD); /*!< DXF 44 0.0 */
66 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, scale_factor,
67 BD); /*!< DXF 45 1.0 */
68 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, twist_angle,
69 BD); /*!< DXF 48 0.0 */
70 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, align_angle,
71 BD); /*!< DXF 49 0.0 */
72 if (!dwg_dynapi_entity_value (_obj, "ACSH_EXTRUSION_CLASS",
73 "sweepentity_transform",
74 &sweepentity_transform, NULL))
75 fail ("ACSH_EXTRUSION_CLASS.sweepentity_transform");
76 if (!sweepentity_transform)
77 ok ("ACSH_EXTRUSION_CLASS.sweepentity_transform: NULL");
78 else
79 for (int i = 0; i < 16; i++)
80 {
81 if (sweepentity_transform[i] == _obj->sweepentity_transform[i])
82 ok ("ACSH_EXTRUSION_CLASS.sweepentity_transform[%d]: %f", i,
83 sweepentity_transform[i]);
84 else
85 fail ("ACSH_EXTRUSION_CLASS.sweepentity_transform[%d]: %f", i,
86 sweepentity_transform[i]);
87 }
88 if (!dwg_dynapi_entity_value (_obj, "ACSH_EXTRUSION_CLASS",
89 "pathentity_transform", &pathentity_transform,
90 NULL))
91 fail ("ACSH_EXTRUSION_CLASS.pathentity_transform");
92 else if (!pathentity_transform)
93 ok ("ACSH_EXTRUSION_CLASS.pathentity_transform: NULL");
94 else
95 for (int i = 0; i < 16; i++)
96 {
97 if (pathentity_transform[i] == _obj->pathentity_transform[i])
98 ok ("ACSH_EXTRUSION_CLASS.pathentity_transform[%d]: %f", i,
99 pathentity_transform[i]);
100 else
101 fail ("ACSH_EXTRUSION_CLASS.pathentity_transform[%d]: %f", i,
102 pathentity_transform[i]);
103 }
104 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, align_option,
105 RC); /*!< DXF 70 2 */
106 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, miter_option,
107 RC); /*!< DXF 71 2 */
108 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, has_align_start,
109 B); /*!< DXF 290 1 */
110 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, bank, B); /*!< DXF 292 1 */
111 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, check_intersections,
112 B); /*!< DXF 293 0 */
113 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_b294,
114 B); /*!< DXF 294 1 */
115 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_b295,
116 B); /*!< DXF 295 1 */
117 CHK_ENTITY_TYPE (_obj, ACSH_EXTRUSION_CLASS, shsw_b296,
118 B); /*!< DXF 296 1 */
119 CHK_ENTITY_3RD (_obj, ACSH_EXTRUSION_CLASS, pt2); /*!< DXF 11 0,0,0 */
120 #endif
121 }