-
Notifications
You must be signed in to change notification settings - Fork 521
JSCAD V3
Z3 Development edited this page Feb 26, 2023
·
55 revisions
These are thoughts about V3 of JSCAD, which includes API breaking changes across several core libraries. Some of these thoughts may become impractical or undesirable, so consider everything in flux and changing.
In addition, CLI / WEB applications will require changes in order to support the 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 2D booleans to use martinez
- Rework poly2 into a complete geometry
- Rework geom2 into a list of outlines
- Rework slice into a list of contours
- 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 poly3.create and poly3.fromPoints
- Unify geom2.create and geom2.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 'properties' (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)
- NEW 3MF deserializer
- 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
- cli evaluation requires dynamic import (async)
- 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