dwg_obj_is_3dsolid (const Dwg_Object *obj)
{
  const Dwg_Object_Type type = obj->fixedtype;
  return
    (obj->supertype == DWG_SUPERTYPE_OBJECT
     && (type == DWG_TYPE_ACSH_BREP_CLASS ||
         type == DWG_TYPE_ASSOCASMBODYACTIONPARAM))
     ||
    (obj->supertype == DWG_SUPERTYPE_ENTITY
     && (type == DWG_TYPE__3DSOLID ||
         type == DWG_TYPE_REGION ||
         type == DWG_TYPE_BODY ||
         type == DWG_TYPE_EXTRUDEDSURFACE ||
         type == DWG_TYPE_LOFTEDSURFACE ||
         type == DWG_TYPE_NURBSURFACE ||
         type == DWG_TYPE_PLANESURFACE ||
         type == DWG_TYPE_REVOLVEDSURFACE ||
         type == DWG_TYPE_SWEPTSURFACE));
}
dwg_obj_is_3dsolid (const Dwg_Object *obj)
{
  const Dwg_Object_Type type = obj->fixedtype;
  return
    (obj->supertype == DWG_SUPERTYPE_OBJECT
     && (type == DWG_TYPE_ACSH_BREP_CLASS ||
         type == DWG_TYPE_ASSOCASMBODYACTIONPARAM))
     ||
    (obj->supertype == DWG_SUPERTYPE_ENTITY
     && (type == DWG_TYPE__3DSOLID ||
         type == DWG_TYPE_REGION ||
         type == DWG_TYPE_BODY ||
         type == DWG_TYPE_EXTRUDEDSURFACE ||
         type == DWG_TYPE_LOFTEDSURFACE ||
         type == DWG_TYPE_NURBSURFACE ||
         type == DWG_TYPE_PLANESURFACE ||
         type == DWG_TYPE_REVOLVEDSURFACE ||
         type == DWG_TYPE_SWEPTSURFACE));
}