-
Notifications
You must be signed in to change notification settings - Fork 521
JSCAD V3
Mister JSCAD edited this page Jan 6, 2023
·
55 revisions
These are thoughts about V3 of JSCAD, which includes API breaking changes across several core libraries. In addition, applications may need changes in order to support core library changes.
- switch to Rollup (replace browserify) to package libraries with UMD / ES6 import bindings
- NOTE: web UI cannot use Rollup due to webworkify / most libraries
- publish UMD / ES6 librares
- NEW add dependency on array-utils (and drop duplicate functions)
- Rework poly2 into a complete geometry
- Rework geom2 into a list of outlines
- Move slice to geometries
- Remove Orthonormalbasis (rework functions that used Orthonormalbasis)
- ALTERNATIVE: create 'basis' object for providing to/from matrices
- Rework vectorChar() and vectorText() to return array of path2 objects #1067
- Allow empty / sparse lists in all operations
- Unify offset and expand, and add a new parameter to control
- Correct parameter names which are not camelCase
- Remove axes parameter for ellipsoid (rework expand 3D)
- Unify path2.create and path2.fromPoints
- Unify poly3.create and poly3.fromPoints
- NEW union / intersect / subtract for paths (See http://tavmjong.free.fr/INKSCAPE/MANUAL/html/Paths-Combining.html)
- NEW add support for GLOBAL segments
- NEW add support for GLOBAL EPS
- NEW Connectors
- re-implement as supported geometry (anonymous object form)
- contains plane, and perpendicular (vector)
- created from...
- plane and perpendicular
- three points (of plane), and perpendicular
- closest point on GEOMETRY to POINT, and perpendicular
- adding attributes (name, id, etc) is possible
- usable as parameter to transforms; align, center, mirror, rotate, scale, translate ==> transform(mat4)
- re-implement as supported geometry (anonymous object form)
- NEW Curves (See http://verbnurbs.com/ for inspiration)
- NEW arc
- NEW nurbs
- NEW pipeline operation (see https://github.com/jscad/csg.js/issues/114 )
- Drop AMF support / code
- Drop GCODE support / code
- Drop SCAD support / code
- NEW functionality for converting external formats to JSCAD (separate functionality from Core)
- Package and publish all IO libraries
- NEW 'use' function to include / evaluate a single source file (remote loading)
- Rework evaluation to support async functions, both cli and web
- Rework to use NEW IO functionality
- Rework to remove AMF support (if needed)
- Rework to call main asynchronous
- Rework to remove AMF support
- Create reusable viewer components
- Rework to call main asynchronous
- Rework to remove AMF support
- Adjust viewer for geom2 changes
- NEW conversion and rendering of slice