Official Stable Release of Version 0.8.0
Version 0.8.0 introduces a port of the previously EcmaScript 5 syntax and brings it to modern day JavaScript coding practices with EcmaScript 6 features supported in all major browsers.
📋 This is a more-or-less entire rewrite of Two.js to use EcmaScript 6 features. In particular:
const/letinstead ofvarfor tighter scopingclassconstruction instead of prototypical modifications- Expanded classification of classes. For instance:
Two.Eventsis now a classTwo.Elementis a new base class ofTwo.Shape,Two.Gradient, and anything else that can be queried in the scenegraph
- Where possible functions are named instead of anonymous
- Removes all
MakeObservablemethods in favor ofObject.definePropertyinvocations onconstructor - Module imports are through typical
exports and except for the root Two.js class, not withdefault. So you'll need to import specific modules like so:
import { Vector } from 'two.js/src/vector.js';
var v = new Vector();🏁 These changes allow for improved:
- TypeScript Declarations (fully expanded and invoked through TypeScript's types compiler)
- Improved documentation
- Code legibility and OOP style
- More legible performance debugging
- Easier to identify culprit functions in Chrome et al. performance debug consoles
- And improved SVG interpretation
- Loose interoperability between
Two.VectorandTwo.Anchor. For any curve, it's required you use anchors instead of vectors now.
🗒️ All tests and first party examples are passing with documentation updated on two.js.org/docs