(root)/
libredwg-0.13/
TODO
* pre-R13: finish remaining entities and the blocks. Add tests.
* add API for more complex entities, like 3dsolids, hatch, ACSH solids, dynblocks.
* PROXY subentities, PROXY_ENTITY
* rename all internal ent->tio.ENTITY to ent->tio._ENTITY, so that all 3D names can
  stay asis. Which fixes the public API for all _3D names, to be more consistent.
* extract seldomly used objects into extra sharedlib(s) as dynaloaded or linked plugin.
  dynblocks, ACSH solids, ... to keep compile times managable.
* TABLE_Cell
* Enabled, but un(der)tested:
  ASSOCDEPENDENCY ASSOC*SURFACEACTIONBODY DBCOLOR HELIX
  OBJECT_PTR PROXY_OBJECT PLOTSETTINGS VISUALSTYLE TABLESTYLE (works only pre-2010)
* Unhandled (fields spec'ed but broken/untested):
  ARCALIGNEDTEXT GEOPOSITIONMARKER PLANESURFACE EXTRUDEDSURFACE DIMASSOC
  LOFTEDSURFACE REVOLVEDSURFACE SWEPTSURFACE TABLE
  TABLECONTENT CELLSTYLEMAP MATERIAL PLOTSETTINGS SUN
  SUNSTUDY ASSOCACTION ASSOCNETWORK ASSOCALIGNEDDIMACTIONBODY ASSOCOSNAPPOINTREFACTIONPARAM
  ASSOCPERSSUBENTMANAGER PERSUBENTMGR ASSOC2DCONSTRAINTGROUP EVALUATION_GRAPH
  ACSH_SWEEP_CLASS ACDBNAVISWORKSMODELDEF
  LIGHTLIST *OBJECTCONTEXTDATA ARC_DIMENSION ASSOCGEOMDEPENDENCY
  ASSOCOSNAPPOINTREFACTIONPARAM ASSOCVERTEXACTIONPARAM DATATABLE
  DATALINK LAYOUTPRINTCONFIG ...
* Unhandled (i.e. passed through, no DXF and fields):
  ACDSRECORD ACDSSCHEMA NPOCOLLECTION RAPIDRTRENDERENVIRONMENT
  XREFPANELOBJECT
* add test coverage - i.e. an extended example_2018.dwg with all types,
  for the following missing entities:
  BODY CAMERA DIMENSION_ANG3PT DIMENSION_DIAMETER
  DIMENSION_RADIUS DUMMY DGNUNDERLAY DWFUNDERLAY
  GEOPOSITIONMARKER IMAGE LEADER LONG_TRANSACTION MESH MINSERT
  OLE2FRAME OLEFRAME POLYLINE_2D POLYLINE_MESH
  PROXY_ENTITY SHAPE TOLERANCE VERTEX_2D VERTEX_MESH BACKGROUND
* likewise for the following missing objects:
  ARCALIGNEDTEXT CSACDOCUMENTOPTIONS  DETAILVIEWSTYLE
  DWFDEFINITION DGNDEFINITION
  XREFPANELOBJECT IDBUFFER IMAGEDEF
  IMAGEDEF_REACTOR LIGHTLIST
  NPOCOLLECTION OBJECT_PTR PROXY_OBJECT
  RASTERVARIABLES UCS VBA_PROJECT
* check-dxf/outdxf: DXFIN coverage for all generated dxfs. some objects even crash acad:
  VERTEX_3D, MLINE.
* DXFIN errors:
  Drawing_2007-18: XRECORD starting at line 5318: Could not set the Color dictionary:
  *2010: Updating handle seed. Invalid or incomplete DXF input
  *2007: XRECORD read error
  example_2000: REGION starting at line 2506: Xdata wasn't read
  Drawing_2000_min: crash at AcDbLine

* convert XRECORD xdata linked-list ResBuf to array of eed[],
  same structure as common EED.
* merge decode_r2007 with the 2004 decoder. It is almost the same, just
  the sections have multiple pages. Only for this version. 2010+ uses
  the 2004 format.
* encode for 2004+: fix the remaining bugs, almost done.
* finish binary DXF (easy). cross-check via: filedia 0, dxfout => Binary
* finish GeoJSON http://geojson.org/geojson-spec.html
  ELLIPSE, ARC, CIRCLE: needs segmentation into lines
  MLINE, SPLINE, MINSERT, SOLID, TRACE, RAY(?), XLINE(?)
* more dwgfilter examples, as from the osmctools, with keep and drop rules.
* check osm tools https://gitlab.com/osm-c-tools/osmctools how
  they could import GIS data easier.
  Check OpenStreetMap XML and PBF formats.
* add one of the easy OGR formats: gml, gpx. See the xmlsuite which does it also.
  See https://wiki.openstreetmap.org/wiki/Dxf2gpx
  https://grass.osgeo.org/grass74/manuals/v.in.dxf.html and dwg (teigha and opencad)
  But only as external sharedlib plugin.
* add more geom.c utils to tessellate curves (e.g. GeoJSON)
* ACIS: We already convert the binary SAB to ASCII SAT version 2 (ASM ShapeManager,
  forked from ACIS 7.0), but the add API is still struggling to create them.
  At least I found proper docs for the ACIS SDK.
* map DWG constraints to FreeCAD and SolveSpace constraints
  https://www.freecadweb.org/wiki/Sketcher_Workbench#Sketcher_Constraints
* check valabind vapi files to generate more and better bindings
  (e.g. radare2-bindings). c++, c#, rust, go, node, java, perl, ruby, php,
  autolisp (via ARX).
  Did so, I dislike it. Too much work, valabind crashes and requires glib and gobject.
  See the work/vapi branch.
* Finalize the gambas3 bindings, a Visual Basic variant for linux. See the gambas3-bindings
  repo and GauchoCAD on gitlab.
* Add some UI to inspect the DWG internal structs (dwgiview), and maybe a viewer (dwgview).
  Started with perl-tk

* fix the remaining leaks: indxf
* finish documentation of the API functions, refman.
* add the basic DWG layout, sections and API to the docs.
* add fuzzing and solver-based test generation (bits)
* check testsuite errors when cross-compiled under wine.
* check for a waiver/copyright assignment from
  Alex Papazoglou <papazoga> for his reed-solomon code (yet unused).
  Otherwise use rscode-1.3 by Henry Minsky <hqm@alum.mit.edu> which is GPLv3.