forked from LibreDWG/libredwg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
88 lines (86 loc) · 4.71 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
* 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
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 SUN
* 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
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 <[email protected]> which is GPLv3.