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