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
/let
instead ofvar
for tighter scopingclass
construction instead of prototypical modifications- Expanded classification of classes. For instance:
Two.Events
is now a classTwo.Element
is 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
MakeObservable
methods in favor ofObject.defineProperty
invocations onconstructor
- Module imports are through typical
export
s 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.Vector
andTwo.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