- Specify "types" explicitly in
[package.json].exports
in order to support TypescriptmoduleResolution: node16
.
- improved TS defintions for color, vector, matrix, and quaternion based properties. #55
- Changed how Mathbox imports ThreeJS. Previously, Mathbox (usually) imported from
three/src
. Now it consistently imports fromthree
. This change should generally not affect users unless they were usinginstanceof
checks. #53 - Added TS support for
area.rangeX
,area.rangeY
, and other X/Y/Z/W-suffixed properties #50 - Fixed documentation generation #51
- Documented and added typings for
unbind()
. #45
- Add Typescript support for live properties and
bind
. #43
-
#32 and #34Ported Steven's changes from 0.0.6-dev:
- When specifying
fps
on a data buffer, catch up correctly if starting late (e.g. on a slide) - Add
indices
andchannels
props to<shader />
to match<resample />
. - Add missing docs for line
width
. - Rename
expr
in script steps (steps, play, ...) tobind
to avoid collision withexpr
prop. - Fix origin/range changes not being picked up
- Force
<layer />
to flatten to an orthogonal view - Fix rendering of partially filled buffers
- Make closed lines/vectors work properly
- Make closed surfaces work properly
- Add optional
normals
to<surface />
- Add
<latch />
to control expr/data updates when conditions change
- When specifying
Some bugfixes:
- Fix issue with shaded surfaces being too dark Surface shading now looks like it did in 0.0.5. Previously both sides were being shaded as the backside.
- Fix issue with gridlines on filled surfaces Gridlines now appear as the surface's color if surface is unfilled, and as slightly darker if surfaces are filled.
- Remove the releases directory Old releases, including the zipped bundles, are available at https://github.com/unconed/mathbox/releases
Some bugfixes:
- do not call inspect if mathbox was destroyed Fixes an issue where Mathbox would asynchronously error if instances were destroyed immediately after creation.
- Add a Jupyter Notebook example Note: This currently uses an outdated version of Mathbox.
- Fix sampling bug Fixes a bug where
width
,height
, anddepth
could be increased but not decreased - Mathbox has been moved from GitGud to Github. Various CI/Development enhancements:
- Typescript Improvements:
- Make mathbox work better with Webpack 5 Workflows: (See https://gitgud.io/unconed/mathbox/-/issues/20)
- Linting improvements:
- Miscellaneous
ported patches from the following open merge requests:
- https://gitgud.io/unconed/mathbox/-/merge_requests/11/
- https://gitgud.io/unconed/mathbox/-/merge_requests/10
- https://gitgud.io/unconed/mathbox/-/merge_requests/9
- https://gitgud.io/unconed/mathbox/-/merge_requests/8
- https://gitgud.io/unconed/mathbox/-/merge_requests/7
- https://gitgud.io/unconed/mathbox/-/merge_requests/6
- https://gitgud.io/unconed/mathbox/-/merge_requests/5
Thanks to @bobqwatsonsapphire, @carl00s01 and @Beddington for these fixes.
⚠️ Rename arraylength
towidth
for consistency.⚠️ Reverse the polarity onzOrder
, higher zOrder should be drawn later.⚠️ Rename resample/lerpcenteredWidth
,centeredHeight
, ... tocenteredX
,centeredY
for consistency.⚠️ Change data sampler to not auto-wrap/repeat since it was 2D only. Out-of-bounds sampling is now undefined unless you add<repeat />
or<clamp />
(works in 4D).- Add miter/round/bevel
join
prop for lines, with improved handling of degenerate cases in 3D. - Fix anchor logic on
<grow />
being applied to unpinned axes. - Add 'binary' / 'hold' ease to force a binary (halfway) or hold (to end) transition.
- Flatten selector arrays recursively, e.g.
sources: [array1, "#array2"]
now works. - Refactor
<resample />
and<lerp />
to handle relative sizes/padding correctly with uncentered sampling. - Add
<subdivide />
operator to lerp geometries non-evenly, seetest/subdivide.html
for uses. - Add
<clamp />
for clamp-to-edge sampling in 4D. - Round fractional sample indices for 3D/4D buffers to ensure correct alignment when resampling. Set
aligned: true
onarray
/matrix
/... to disable this when integer lookups are guaranteed. - Fix bug when a text atlas is emptied completely.
- Minor documentation improvements (basic API).
- New
<readback />
sink that exposes internal readback functionality. - Make
<array />
,<matrix />
,<voxel />
and<text />
auto-detectnull
dimensions fromdata
if given. - Fix
<text />
not parsing >1 string from an array. - Fix public
channels
on<text />
being 4 instead of 1. - Removed unused font properties from
<retext />
. - Fix final/const props being overwritable on initial set.
- Rename
<text expand={n} />
to<text sdf={n} />
(signed distance field) to avoid confusion with<label expand={n} />
- Change default
<label />
color from black to gray to match other primitives. - Fix data array emitters for larger item sizes.
- Add thunk lerper to animate data arrays on keyframe tracks.
- Remove default zOrder on
<axis />
and<grid />
. - Clean slate NPM dependencies.
- Fix
gulp-rename
compatibility. - Improved axis, grid, helix, lerp, label, strip examples.
- Improved idiomatic time examples.
- New color cube, vertex color, fragment color, tiles and ortho examples.
- Document instanced traits (e.g.
divideX
) and non-standard defaults. - Support fragment passes on unshaded geometry.
- Added
lineBias
prop to set Z-bias between surface/face and its wireframe. - Allow passing modified STPQ coordinates from
<vertex />
to<fragment />
(seefragmentcolor.html
example)
- New
docs/intro.md
, add nullable examples todocs/primitives.md
. - Add
sizes
binding to<point />
to change per-point size. - New
<mask />
pass for custom transition effects, remove clip leftover. - Fix
<clock>
reporting incorrect real time and delta. - Fix
<step />
counting repeated stops as skips. - Fix docs on
<transition>
durationEnter
/Exit
. - Fix
<scale />
not tracking span changes. - Fix color [r, g, b] syntax parser.
- Remove children in reverse order to avoid reindexing.