|
53 | 53 | # define DEBUGGING_DXF(action, name) ALLOW_DXF(action, name) |
54 | 54 | # define DEBUGGING_CLASS(action, name) UNSTABLE_CLASS(action, name) |
55 | 55 | # define DEBUGGING_CLASS_DXF(action, name, _dxfname) UNSTABLE_CLASS_DXF(action, name, _dxfname) |
| 56 | +# define DEBUGGING_CLASS_CPP(action, name, cppname) UNSTABLE_CLASS_CPP(action, name, cppname) |
56 | 57 | #else |
57 | 58 | # define DEBUGGING_DXF(action, name) DISALLOW_DXF(action, name) |
58 | 59 | # define DEBUGGING_CLASS(action, name) UNHANDLED_CLASS(action, name) |
59 | 60 | # define DEBUGGING_CLASS_DXF(action, name, _dxfname) UNHANDLED_CLASS_DXF(action, name, _dxfname) |
| 61 | +# define DEBUGGING_CLASS_CPP(action, name, cppname) UNHANDLED_CLASS_CPP(action, name, cppname) |
60 | 62 | #endif |
61 | 63 |
|
62 | 64 | //#define _DWG_FUNC_N(action,name) dwg_ ## action ## _ ## name |
|
149 | 151 | /* return dwg_##action_##name(dat, obj); */ \ |
150 | 152 | return DWG_ERR_UNHANDLEDCLASS; \ |
151 | 153 | } |
| 154 | +#define UNHANDLED_CLASS_CPP(action, _name, _cppname) \ |
| 155 | + if (klass->cppname && strEQc (klass->cppname, #_cppname)) \ |
| 156 | + { \ |
| 157 | + WARN_UNHANDLED_CLASS; \ |
| 158 | + if (strEQc (_STR(action), "decode") || !memcmp (_STR(action), "in", 2)) { \ |
| 159 | + obj->name = (char*) #_name; \ |
| 160 | + obj->dxfname = (char*) #_name; \ |
| 161 | + obj->fixedtype = DWG_TYPE_##_name; \ |
| 162 | + } \ |
| 163 | + /* return dwg_##action_##name(dat, obj); */ \ |
| 164 | + return DWG_ERR_UNHANDLEDCLASS; \ |
| 165 | + } |
152 | 166 |
|
153 | 167 | /* Entities */ |
154 | 168 | STABLE_CLASS (ACTION, CAMERA) /*ent, not persistent in a DWG */ |
|
220 | 234 | DEBUGGING_CLASS (ACTION, SWEPTSURFACE) /*ent */ |
221 | 235 | DEBUGGING_CLASS_DXF (ACTION, TABLE, ACAD_TABLE) /*ent, r2010+ needs subclassing */ |
222 | 236 | DEBUGGING_CLASS (ACTION, ARC_DIMENSION) //ent |
223 | | - DEBUGGING_CLASS (ACTION, TABLECONTENT) //wrong values |
| 237 | + DEBUGGING_CLASS_CPP (ACTION, TABLECONTENT, AcDbTableContent) |
224 | 238 | DEBUGGING_CLASS (ACTION, TABLEGEOMETRY) //wrong geom_data |
225 | 239 | DEBUGGING_CLASS (ACTION, CELLSTYLEMAP) //broken |
226 | 240 | DEBUGGING_CLASS (ACTION, MATERIAL) //working on |
|
0 commit comments