- Specify "types" explicitly in
[package.json].exportsin 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 usinginstanceofchecks. #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
fpson a data buffer, catch up correctly if starting late (e.g. on a slide) - Add
indicesandchannelsprops to<shader />to match<resample />. - Add missing docs for line
width. - Rename
exprin script steps (steps, play, ...) tobindto avoid collision withexprprop. - 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
normalsto<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, anddepthcould 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 arraylengthtowidthfor consistency.⚠️ Reverse the polarity onzOrder, higher zOrder should be drawn later.⚠️ Rename resample/lerpcenteredWidth,centeredHeight, ... tocenteredX,centeredYfor 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
joinprop 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.htmlfor 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: trueonarray/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-detectnulldimensions fromdataif given. - Fix
<text />not parsing >1 string from an array. - Fix public
channelson<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-renamecompatibility. - 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
lineBiasprop to set Z-bias between surface/face and its wireframe. - Allow passing modified STPQ coordinates from
<vertex />to<fragment />(seefragmentcolor.htmlexample)
- New
docs/intro.md, add nullable examples todocs/primitives.md. - Add
sizesbinding 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.