Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve DIMASSOC object #1029

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions bindings/dwg.i
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,7 @@ EXPORT Dwg_Object_BLOCKXYGRIP** dwg_getall_BLOCKXYGRIP (Dwg_Data* dwg);
EXPORT Dwg_Object_BLOCKXYPARAMETER** dwg_getall_BLOCKXYPARAMETER (Dwg_Data* dwg);
EXPORT Dwg_Object_DATALINK** dwg_getall_DATALINK (Dwg_Data* dwg);
EXPORT Dwg_Object_DBCOLOR** dwg_getall_DBCOLOR (Dwg_Data* dwg);
EXPORT Dwg_Object_DIMASSOC** dwg_getall_DIMASSOC (Dwg_Data* dwg);
EXPORT Dwg_Object_EVALUATION_GRAPH** dwg_getall_EVALUATION_GRAPH (Dwg_Data* dwg);
EXPORT Dwg_Object_FCFOBJECTCONTEXTDATA** dwg_getall_FCFOBJECTCONTEXTDATA (Dwg_Data* dwg);
EXPORT Dwg_Object_GRADIENT_BACKGROUND** dwg_getall_GRADIENT_BACKGROUND (Dwg_Data* dwg);
Expand Down Expand Up @@ -485,7 +486,6 @@ EXPORT Dwg_Object_ASSOCARRAYRECTANGULARPARAMETERS** dwg_getall_ASSOCARRAYRECTANG
EXPORT Dwg_Object_CSACDOCUMENTOPTIONS** dwg_getall_CSACDOCUMENTOPTIONS (Dwg_Data* dwg);
EXPORT Dwg_Object_CURVEPATH** dwg_getall_CURVEPATH (Dwg_Data* dwg);
EXPORT Dwg_Object_DATATABLE** dwg_getall_DATATABLE (Dwg_Data* dwg);
EXPORT Dwg_Object_DIMASSOC** dwg_getall_DIMASSOC (Dwg_Data* dwg);
EXPORT Dwg_Object_DMDIMOBJECTCONTEXTDATA** dwg_getall_DMDIMOBJECTCONTEXTDATA (Dwg_Data* dwg);
EXPORT Dwg_Object_DYNAMICBLOCKPROXYNODE** dwg_getall_DYNAMICBLOCKPROXYNODE (Dwg_Data* dwg);
EXPORT Dwg_Object_GEOMAPIMAGE** dwg_getall_GEOMAPIMAGE (Dwg_Data* dwg);
Expand Down Expand Up @@ -751,6 +751,7 @@ EXPORT Dwg_Object_BLOCKXYGRIP* dwg_object_to_BLOCKXYGRIP (Dwg_Object* obj);
EXPORT Dwg_Object_BLOCKXYPARAMETER* dwg_object_to_BLOCKXYPARAMETER (Dwg_Object* obj);
EXPORT Dwg_Object_DATALINK* dwg_object_to_DATALINK (Dwg_Object* obj);
EXPORT Dwg_Object_DBCOLOR* dwg_object_to_DBCOLOR (Dwg_Object* obj);
EXPORT Dwg_Object_DIMASSOC* dwg_object_to_DIMASSOC (Dwg_Object* obj);
EXPORT Dwg_Object_EVALUATION_GRAPH* dwg_object_to_EVALUATION_GRAPH (Dwg_Object* obj);
EXPORT Dwg_Object_FCFOBJECTCONTEXTDATA* dwg_object_to_FCFOBJECTCONTEXTDATA (Dwg_Object* obj);
EXPORT Dwg_Object_GRADIENT_BACKGROUND* dwg_object_to_GRADIENT_BACKGROUND (Dwg_Object* obj);
Expand Down Expand Up @@ -815,7 +816,6 @@ EXPORT Dwg_Object_ASSOCARRAYRECTANGULARPARAMETERS* dwg_object_to_ASSOCARRAYRECTA
EXPORT Dwg_Object_CSACDOCUMENTOPTIONS* dwg_object_to_CSACDOCUMENTOPTIONS (Dwg_Object* obj);
EXPORT Dwg_Object_CURVEPATH* dwg_object_to_CURVEPATH (Dwg_Object* obj);
EXPORT Dwg_Object_DATATABLE* dwg_object_to_DATATABLE (Dwg_Object* obj);
EXPORT Dwg_Object_DIMASSOC* dwg_object_to_DIMASSOC (Dwg_Object* obj);
EXPORT Dwg_Object_DMDIMOBJECTCONTEXTDATA* dwg_object_to_DMDIMOBJECTCONTEXTDATA (Dwg_Object* obj);
EXPORT Dwg_Object_DYNAMICBLOCKPROXYNODE* dwg_object_to_DYNAMICBLOCKPROXYNODE (Dwg_Object* obj);
EXPORT Dwg_Object_GEOMAPIMAGE* dwg_object_to_GEOMAPIMAGE (Dwg_Object* obj);
Expand Down
12 changes: 9 additions & 3 deletions doc/dynapi.texi
Original file line number Diff line number Diff line change
Expand Up @@ -14116,12 +14116,18 @@ BL, DXF 91
BS
@item xrefpaths
TV*, DXF 301
@item num_intersec_xrefpaths
BS
@item intersec_xrefpaths
TV*
@item has_lastpt_ref
B, DXF 75
@item lastpt_ref
3BD
@item intersec_subent_type
BS, DXF 74
@item intersec_gsmarker
BL, DXF 92
@item num_intsectobj
BL, DXF 74
BL
@item intsectobj
H*, DXF 332

Expand Down
42 changes: 22 additions & 20 deletions include/dwg.h
Original file line number Diff line number Diff line change
Expand Up @@ -5333,37 +5333,39 @@ typedef struct _dwg_object_DATALINK
} Dwg_Object_DATALINK;

/**
Object DIMASSOC (varies) DEBUGGING
--enable-debug only
Object DIMASSOC (varies) unstable
*/
typedef struct _dwg_DIMASSOC_Ref
{
struct _dwg_object_DIMASSOC *parent;
BITCODE_T classname; /*!< DXF 1 constant */
BITCODE_RC osnap_type; /*!< DXF 72 */
BITCODE_BD osnap_dist; /*!< DXF 40 */
BITCODE_3BD osnap_pt; /*!< DXF 10-30 */
BITCODE_T classname; /*!< DXF 1 constant */
BITCODE_RC osnap_type; /*!< DXF 72 */
BITCODE_BD osnap_dist; /*!< DXF 40 */
BITCODE_3BD osnap_pt; /*!< DXF 10-30 */
BITCODE_BS num_xrefs;
BITCODE_H *xrefs; /*!< DXF 331 the geometry objects, 1 or 2 */
BITCODE_BS main_subent_type; /*!< DXF 73 */
BITCODE_BL main_gsmarker; /*!< DXF 91 */
BITCODE_H *xrefs; /*!< DXF 331 the geometry objects, 1 or 2 */
BITCODE_BS main_subent_type; /*!< DXF 73 */
BITCODE_BL main_gsmarker; /*!< DXF 91 */
BITCODE_BS num_xrefpaths;
BITCODE_T *xrefpaths; /*!< DXF 301 */
BITCODE_B has_lastpt_ref; /*!< DXF 75 */
BITCODE_3BD lastpt_ref; /*!< DXF ?? */
BITCODE_BL num_intsectobj; /*!< DXF 74 */
BITCODE_H* intsectobj; /*!< DXF 332 the intersection objects, 1 or 2 */
BITCODE_T *xrefpaths; /*!< DXF 301 */
BITCODE_BS num_intersec_xrefpaths;
BITCODE_T *intersec_xrefpaths; /*!< DXF 302 */
BITCODE_B has_lastpt_ref; /*!< DXF 75 */
BITCODE_BS intersec_subent_type; /*!< DXF 74 */
BITCODE_BL intersec_gsmarker; /*!< DXF 92 */
BITCODE_BL num_intsectobj;
BITCODE_H* intsectobj; /*!< DXF 332 the intersection objects, 1 or 2 */
} Dwg_DIMASSOC_Ref;

typedef struct _dwg_object_DIMASSOC
{
struct _dwg_object_object *parent;
BITCODE_H dimensionobj;
BITCODE_BL associativity; /*!< DXF 90, bitmask 0-15*/
BITCODE_BL associativity; /*!< DXF 90, bitmask 0-15 */
BITCODE_B trans_space_flag; /*!< DXF 70 boolean */
BITCODE_RC rotated_type; /*!< DXF 71 */
Dwg_DIMASSOC_Ref *ref; /* 1-4x, with possible holes,
depend. on associativity bitmask */
BITCODE_RC rotated_type; /*!< DXF 71 */
Dwg_DIMASSOC_Ref *ref; /* 1-4x, with possible holes,
depends on associativity bitmask */
} Dwg_Object_DIMASSOC;

typedef struct _dwg_ACTIONBODY
Expand Down Expand Up @@ -8921,6 +8923,7 @@ typedef struct _dwg_object_object
Dwg_Object_BLOCKXYPARAMETER *BLOCKXYPARAMETER;
Dwg_Object_DATALINK *DATALINK;
Dwg_Object_DBCOLOR *DBCOLOR;
Dwg_Object_DIMASSOC *DIMASSOC;
Dwg_Object_EVALUATION_GRAPH *EVALUATION_GRAPH;
Dwg_Object_FCFOBJECTCONTEXTDATA *FCFOBJECTCONTEXTDATA;
Dwg_Object_GRADIENT_BACKGROUND *GRADIENT_BACKGROUND;
Expand Down Expand Up @@ -8985,7 +8988,6 @@ typedef struct _dwg_object_object
Dwg_Object_CSACDOCUMENTOPTIONS *CSACDOCUMENTOPTIONS;
Dwg_Object_CURVEPATH *CURVEPATH;
Dwg_Object_DATATABLE *DATATABLE;
Dwg_Object_DIMASSOC *DIMASSOC;
Dwg_Object_DMDIMOBJECTCONTEXTDATA *DMDIMOBJECTCONTEXTDATA;
Dwg_Object_DYNAMICBLOCKPROXYNODE *DYNAMICBLOCKPROXYNODE;
Dwg_Object_GEOMAPIMAGE *GEOMAPIMAGE;
Expand Down Expand Up @@ -10312,6 +10314,7 @@ EXPORT int dwg_setup_BLOCKXYGRIP (Dwg_Object *obj);
EXPORT int dwg_setup_BLOCKXYPARAMETER (Dwg_Object *obj);
EXPORT int dwg_setup_DATALINK (Dwg_Object *obj);
EXPORT int dwg_setup_DBCOLOR (Dwg_Object *obj);
EXPORT int dwg_setup_DIMASSOC (Dwg_Object *obj);
EXPORT int dwg_setup_EVALUATION_GRAPH (Dwg_Object *obj);
EXPORT int dwg_setup_FCFOBJECTCONTEXTDATA (Dwg_Object *obj);
EXPORT int dwg_setup_GRADIENT_BACKGROUND (Dwg_Object *obj);
Expand Down Expand Up @@ -10401,7 +10404,6 @@ EXPORT int dwg_setup_ASSOCARRAYRECTANGULARPARAMETERS (Dwg_Object *obj);
EXPORT int dwg_setup_CSACDOCUMENTOPTIONS (Dwg_Object *obj);
EXPORT int dwg_setup_CURVEPATH (Dwg_Object *obj);
EXPORT int dwg_setup_DATATABLE (Dwg_Object *obj);
EXPORT int dwg_setup_DIMASSOC (Dwg_Object *obj);
EXPORT int dwg_setup_DMDIMOBJECTCONTEXTDATA (Dwg_Object *obj);
EXPORT int dwg_setup_DYNAMICBLOCKPROXYNODE (Dwg_Object *obj);
EXPORT int dwg_setup_GEOMAPIMAGE (Dwg_Object *obj);
Expand Down
8 changes: 4 additions & 4 deletions include/dwg_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -824,6 +824,7 @@ extern "C"
typedef struct _dwg_object_BLOCKXYPARAMETER dwg_obj_blockxyparameter;
typedef struct _dwg_object_DATALINK dwg_obj_datalink;
typedef struct _dwg_object_DBCOLOR dwg_obj_dbcolor;
typedef struct _dwg_object_DIMASSOC dwg_obj_dimassoc;
typedef struct _dwg_object_EVALUATION_GRAPH dwg_obj_evaluation_graph;
typedef struct _dwg_object_FCFOBJECTCONTEXTDATA dwg_obj_fcfobjectcontextdata;
typedef struct _dwg_object_GRADIENT_BACKGROUND dwg_obj_gradient_background;
Expand Down Expand Up @@ -917,7 +918,6 @@ extern "C"
typedef struct _dwg_object_CSACDOCUMENTOPTIONS dwg_obj_csacdocumentoptions;
typedef struct _dwg_object_CURVEPATH dwg_obj_curvepath;
typedef struct _dwg_object_DATATABLE dwg_obj_datatable;
typedef struct _dwg_object_DIMASSOC dwg_obj_dimassoc;
typedef struct _dwg_object_DMDIMOBJECTCONTEXTDATA
dwg_obj_dmdimobjectcontextdata;
typedef struct _dwg_object_DYNAMICBLOCKPROXYNODE
Expand Down Expand Up @@ -1207,6 +1207,7 @@ extern "C"
dwg_get_OBJECT_DECL (obj_blockxyparameter, BLOCKXYPARAMETER);
dwg_get_OBJECT_DECL (obj_datalink, DATALINK);
dwg_get_OBJECT_DECL (obj_dbcolor, DBCOLOR);
dwg_get_OBJECT_DECL (obj_dimassoc, DIMASSOC);
dwg_get_OBJECT_DECL (obj_evaluation_graph, EVALUATION_GRAPH);
dwg_get_OBJECT_DECL (obj_fcfobjectcontextdata, FCFOBJECTCONTEXTDATA);
dwg_get_OBJECT_DECL (obj_gradient_background, GRADIENT_BACKGROUND);
Expand Down Expand Up @@ -1286,7 +1287,6 @@ extern "C"
dwg_get_OBJECT_DECL (obj_csacdocumentoptions, CSACDOCUMENTOPTIONS);
dwg_get_OBJECT_DECL (obj_curvepath, CURVEPATH);
dwg_get_OBJECT_DECL (obj_datatable, DATATABLE);
dwg_get_OBJECT_DECL (obj_dimassoc, DIMASSOC);
dwg_get_OBJECT_DECL (obj_dmdimobjectcontextdata, DMDIMOBJECTCONTEXTDATA);
dwg_get_OBJECT_DECL (obj_dynamicblockproxynode, DYNAMICBLOCKPROXYNODE);
dwg_get_OBJECT_DECL (obj_geomapimage, GEOMAPIMAGE);
Expand Down Expand Up @@ -1568,6 +1568,7 @@ extern "C"
DWG_GETALL_OBJECT_DECL (BLOCKXYPARAMETER);
DWG_GETALL_OBJECT_DECL (DATALINK);
DWG_GETALL_OBJECT_DECL (DBCOLOR);
DWG_GETALL_OBJECT_DECL (DIMASSOC);
DWG_GETALL_OBJECT_DECL (EVALUATION_GRAPH);
DWG_GETALL_OBJECT_DECL (FCFOBJECTCONTEXTDATA);
DWG_GETALL_OBJECT_DECL (GRADIENT_BACKGROUND);
Expand Down Expand Up @@ -1634,7 +1635,6 @@ extern "C"
DWG_GETALL_OBJECT_DECL (CSACDOCUMENTOPTIONS);
DWG_GETALL_OBJECT_DECL (CURVEPATH);
DWG_GETALL_OBJECT_DECL (DATATABLE);
DWG_GETALL_OBJECT_DECL (DIMASSOC);
DWG_GETALL_OBJECT_DECL (DMDIMOBJECTCONTEXTDATA);
DWG_GETALL_OBJECT_DECL (DYNAMICBLOCKPROXYNODE);
DWG_GETALL_OBJECT_DECL (GEOMAPIMAGE);
Expand Down Expand Up @@ -1920,6 +1920,7 @@ extern "C"
CAST_DWG_OBJECT_TO_OBJECT_DECL (BLOCKXYPARAMETER);
CAST_DWG_OBJECT_TO_OBJECT_DECL (DATALINK);
CAST_DWG_OBJECT_TO_OBJECT_DECL (DBCOLOR);
CAST_DWG_OBJECT_TO_OBJECT_DECL (DIMASSOC);
CAST_DWG_OBJECT_TO_OBJECT_DECL (EVALUATION_GRAPH);
CAST_DWG_OBJECT_TO_OBJECT_DECL (FCFOBJECTCONTEXTDATA);
CAST_DWG_OBJECT_TO_OBJECT_DECL (GRADIENT_BACKGROUND);
Expand Down Expand Up @@ -1986,7 +1987,6 @@ extern "C"
CAST_DWG_OBJECT_TO_OBJECT_DECL (CSACDOCUMENTOPTIONS);
CAST_DWG_OBJECT_TO_OBJECT_DECL (CURVEPATH);
CAST_DWG_OBJECT_TO_OBJECT_DECL (DATATABLE);
CAST_DWG_OBJECT_TO_OBJECT_DECL (DIMASSOC);
CAST_DWG_OBJECT_TO_OBJECT_DECL (DMDIMOBJECTCONTEXTDATA);
CAST_DWG_OBJECT_TO_OBJECT_DECL (DYNAMICBLOCKPROXYNODE);
CAST_DWG_OBJECT_TO_OBJECT_DECL (GEOMAPIMAGE);
Expand Down
2 changes: 1 addition & 1 deletion src/classes.inc
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,7 @@
UNSTABLE_CLASS_DXF (ACTION, EVALUATION_GRAPH, ACAD_EVALUATION_GRAPH) /* almost */
UNSTABLE_CLASS (ACTION, DATALINK)
UNSTABLE_CLASS (ACTION, DBCOLOR)
UNSTABLE_CLASS (ACTION, DIMASSOC)
UNSTABLE_CLASS (ACTION, HELIX) /* ent, looks very stable */
UNSTABLE_CLASS (ACTION, LARGE_RADIAL_DIMENSION) /* ent */
UNSTABLE_CLASS (ACTION, LAYOUTPRINTCONFIG) /* ent. CSD_APP, probably a mistake as ent */
Expand Down Expand Up @@ -368,7 +369,6 @@
DEBUGGING_CLASS (ACTION, MPOLYGON) // hatch-like ent
DEBUGGING_CLASS_CPP (ACTION, NAVISWORKSMODEL, AcDbNavisworksModel) /* ent,
dxfname COORDINATION_MODEL? */
DEBUGGING_CLASS (ACTION, DIMASSOC)
DEBUGGING_CLASS_CPP (ACTION, TABLECONTENT, AcDbTableContent) // dxfname: "TABLE"
DEBUGGING_CLASS (ACTION, ACSH_EXTRUSION_CLASS)
DEBUGGING_CLASS (ACTION, ACSH_LOFT_CLASS)
Expand Down
89 changes: 49 additions & 40 deletions src/dwg.spec
Original file line number Diff line number Diff line change
Expand Up @@ -9934,13 +9934,32 @@ DWG_ENTITY_END
FIELD_B (dimension.flip_arrow2, 296); \
FIELD_B (dimension.flip_arrow1, 297)

/*=============================================================================*/

/* In work area:
The following entities/objects are only stored as raw UNKNOWN_ENT/OBJ,
unless enabled via --enable-debug/-DDEBUG_CLASSES */

#if defined (DEBUG_CLASSES) || defined (IS_FREE)
#define AcDbOsnapPointRef_fields(index) \
LOG_HANDLE ("DIMASSOC_Ref.rcount1: %d\n", index); \
SUB_FIELD_T (ref[index], classname, 1); /* "AcDbOsnapPointRef" */ \
SUB_FIELD_RC (ref[index], osnap_type, 72); /* 0-13 */ \
SUB_FIELD_BL (ref[index], num_xrefs, 0); \
SUB_HANDLE_VECTOR (ref[index], xrefs, num_xrefs, 4, 331); \
if (FIELD_VALUE (ref[index].osnap_type) != 0) \
{ \
SUB_FIELD_BL (ref[index], main_subent_type, 73); \
SUB_FIELD_BL (ref[index], main_gsmarker, 91); \
SUB_FIELD_BL (ref[index], num_xrefpaths, 0); \
FIELD_VECTOR_T (ref[index].xrefpaths, T, ref[4].num_xrefpaths, 301) \
} \
SUB_FIELD_BD (ref[index], osnap_dist, 40); \
SUB_FIELD_3BD (ref[index], osnap_pt, 10); \
if (FIELD_VALUE (ref[index].osnap_type) == 6 \
|| FIELD_VALUE (ref[index].osnap_type) == 11) \
{ \
SUB_FIELD_BL (ref[index], num_intsectobj, 0); \
SUB_HANDLE_VECTOR (ref[index], intsectobj, num_intsectobj, 5, 332); \
SUB_FIELD_BL (ref[index], intersec_subent_type, 74); \
SUB_FIELD_BL (ref[index], intersec_gsmarker, 92); \
SUB_FIELD_BL (ref[index], num_intersec_xrefpaths, 0); \
FIELD_VECTOR_T (ref[index].intersec_xrefpaths, T, ref[index].num_intersec_xrefpaths, 302) \
} \
SUB_FIELD_B (ref[index], has_lastpt_ref, 75);

// (varies) UNSTABLE
// 1-4 references, see associativity bits 1-8.
Expand All @@ -9952,53 +9971,43 @@ DWG_OBJECT (DIMASSOC)
FIELD_B (trans_space_flag, 70);
FIELD_RC (rotated_type, 71);
FIELD_HANDLE (dimensionobj, 4, 330);
REPEAT_CN (4, ref, Dwg_DIMASSOC_Ref) // i.e. AcDbOsnapPointRef
REPEAT_CN (6, ref, Dwg_DIMASSOC_Ref) // i.e. AcDbOsnapPointRef
REPEAT_BLOCK
// TODO: there could be much more blocks, up to 5.
// 0 1 2 3 => 1 2 4 8. skip unset bits
if (!(FIELD_VALUE (associativity) & (1<<rcount1)))
// index 0 1 2 3 => bits 1 2 4 8. skip unset bits
if (!(FIELD_VALUE (associativity) & (1 << rcount1)))
{
#ifdef IS_JSON
ENDHASH;
#endif
continue;
}
LOG_HANDLE ("DIMASSOC_Ref.rcount1: %d\n", rcount1);
// DXF: 1, 72, 10, ??, 75
SUB_FIELD_T (ref[rcount1], classname, 1); // "AcDbOsnapPointRef"
SUB_FIELD_RC (ref[rcount1], osnap_type, 72); // 0-13
// idpaths:
SUB_FIELD_BL0 (ref[rcount1], num_intsectobj, 74);
SUB_HANDLE_VECTOR (ref[rcount1], intsectobj, num_intsectobj, 5, 332);

SUB_FIELD_BD (ref[rcount1], osnap_dist, 40);
SUB_FIELD_3BD (ref[rcount1], osnap_pt, 10);

// XrefFullSubentPath
SUB_FIELD_BL (ref[rcount1], num_xrefs, 0); // 1 or 2
SUB_VALUEOUTOFBOUNDS (ref[rcount1], num_xrefs, 100)
SUB_HANDLE_VECTOR (ref[rcount1], xrefs, num_xrefs, 4, 331);

// restrict only when writing, not when reading?
//if (FIELD_VALUE (ref[rcount1].osnap_type) == 6 || FIELD_VALUE (ref[rcount1].osnap_type) == 11)
// {
SUB_FIELD_BL0 (ref[rcount1], main_subent_type, 73);
SUB_FIELD_BL (ref[rcount1], main_gsmarker, 91);
SUB_FIELD_BL (ref[rcount1], num_xrefpaths, 0);
FIELD_VECTOR_T (ref[rcount1].xrefpaths, T, ref[rcount1].num_xrefpaths, 301)
// }
SUB_FIELD_B (ref[rcount1], has_lastpt_ref, 75);
if (FIELD_VALUE (ref[rcount1].has_lastpt_ref))
{
SUB_FIELD_3BD (ref[rcount1], lastpt_ref, 0);
}
AcDbOsnapPointRef_fields(rcount1)
SET_PARENT_OBJ (ref[rcount1]);
END_REPEAT_BLOCK
if (FIELD_VALUE (ref[0].has_lastpt_ref)
|| FIELD_VALUE (ref[1].has_lastpt_ref)
|| FIELD_VALUE (ref[2].has_lastpt_ref)
|| FIELD_VALUE (ref[3].has_lastpt_ref))
{
AcDbOsnapPointRef_fields(4)
}
if (FIELD_VALUE (ref[4].has_lastpt_ref))
{
AcDbOsnapPointRef_fields(5)
}
END_REPEAT (ref)

START_OBJECT_HANDLE_STREAM;
DWG_OBJECT_END

/*=============================================================================*/

/* In work area:
The following entities/objects are only stored as raw UNKNOWN_ENT/OBJ,
unless enabled via --enable-debug/-DDEBUG_CLASSES */

#if defined (DEBUG_CLASSES) || defined (IS_FREE)

// (varies) fails the unit-test
// See AcDbAssocActionBody.h and ASSOCPLANESURFACEACTIONBODY
DWG_OBJECT (ASSOCSWEPTSURFACEACTIONBODY)
Expand Down
7 changes: 3 additions & 4 deletions src/dwg_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,7 @@ dwg_get_OBJECT (obj_blockxygrip, BLOCKXYGRIP)
dwg_get_OBJECT (obj_blockxyparameter, BLOCKXYPARAMETER)
dwg_get_OBJECT (obj_datalink, DATALINK)
dwg_get_OBJECT (obj_dbcolor, DBCOLOR)
dwg_get_OBJECT (obj_dimassoc, DIMASSOC)
dwg_get_OBJECT (obj_evaluation_graph, EVALUATION_GRAPH)
dwg_get_OBJECT (obj_fcfobjectcontextdata, FCFOBJECTCONTEXTDATA)
dwg_get_OBJECT (obj_gradient_background, GRADIENT_BACKGROUND)
Expand Down Expand Up @@ -464,7 +465,6 @@ dwg_get_OBJECT (obj_assocarrayrectangularparameters, ASSOCARRAYRECTANGULARPARAME
dwg_get_OBJECT (obj_csacdocumentoptions, CSACDOCUMENTOPTIONS)
dwg_get_OBJECT (obj_curvepath, CURVEPATH)
dwg_get_OBJECT (obj_datatable, DATATABLE)
dwg_get_OBJECT (obj_dimassoc, DIMASSOC)
dwg_get_OBJECT (obj_dmdimobjectcontextdata, DMDIMOBJECTCONTEXTDATA)
dwg_get_OBJECT (obj_dynamicblockproxynode, DYNAMICBLOCKPROXYNODE)
dwg_get_OBJECT (obj_geomapimage, GEOMAPIMAGE)
Expand Down Expand Up @@ -757,6 +757,7 @@ DWG_GETALL_OBJECT (BLOCKXYGRIP)
DWG_GETALL_OBJECT (BLOCKXYPARAMETER)
DWG_GETALL_OBJECT (DATALINK)
DWG_GETALL_OBJECT (DBCOLOR)
DWG_GETALL_OBJECT (DIMASSOC)
DWG_GETALL_OBJECT (EVALUATION_GRAPH)
DWG_GETALL_OBJECT (FCFOBJECTCONTEXTDATA)
DWG_GETALL_OBJECT (GRADIENT_BACKGROUND)
Expand Down Expand Up @@ -821,7 +822,6 @@ DWG_GETALL_OBJECT (ASSOCARRAYRECTANGULARPARAMETERS)
DWG_GETALL_OBJECT (CSACDOCUMENTOPTIONS)
DWG_GETALL_OBJECT (CURVEPATH)
DWG_GETALL_OBJECT (DATATABLE)
DWG_GETALL_OBJECT (DIMASSOC)
DWG_GETALL_OBJECT (DMDIMOBJECTCONTEXTDATA)
DWG_GETALL_OBJECT (DYNAMICBLOCKPROXYNODE)
DWG_GETALL_OBJECT (GEOMAPIMAGE)
Expand Down Expand Up @@ -1108,6 +1108,7 @@ CAST_DWG_OBJECT_TO_OBJECT (BLOCKXYGRIP)
CAST_DWG_OBJECT_TO_OBJECT (BLOCKXYPARAMETER)
CAST_DWG_OBJECT_TO_OBJECT (DATALINK)
CAST_DWG_OBJECT_TO_OBJECT (DBCOLOR)
CAST_DWG_OBJECT_TO_OBJECT (DIMASSOC)
CAST_DWG_OBJECT_TO_OBJECT (EVALUATION_GRAPH)
CAST_DWG_OBJECT_TO_OBJECT (FCFOBJECTCONTEXTDATA)
CAST_DWG_OBJECT_TO_OBJECT (GRADIENT_BACKGROUND)
Expand Down Expand Up @@ -1172,7 +1173,6 @@ CAST_DWG_OBJECT_TO_OBJECT (ASSOCARRAYRECTANGULARPARAMETERS)
CAST_DWG_OBJECT_TO_OBJECT (CSACDOCUMENTOPTIONS)
CAST_DWG_OBJECT_TO_OBJECT (CURVEPATH)
CAST_DWG_OBJECT_TO_OBJECT (DATATABLE)
CAST_DWG_OBJECT_TO_OBJECT (DIMASSOC)
CAST_DWG_OBJECT_TO_OBJECT (DMDIMOBJECTCONTEXTDATA)
CAST_DWG_OBJECT_TO_OBJECT (DYNAMICBLOCKPROXYNODE)
CAST_DWG_OBJECT_TO_OBJECT (GEOMAPIMAGE)
Expand Down Expand Up @@ -27998,7 +27998,6 @@ dwg_add_WEDGE (Dwg_Object_BLOCK_HEADER *restrict blkhdr,
// DBCOLOR
// DETAILVIEWSTYLE
// DICTIONARYVAR
// DIMASSOC
// DMDIMOBJECTCONTEXTDATA
// DYNAMICBLOCKPROXYNODE
// DYNAMICBLOCKPURGEPREVENTER
Expand Down
Loading
Loading