Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* build(dep): `@babylonjs` & `@types/node`: - @BabylonJS:4.1.0-beta.9 - @types/node:12.12.16 * feat(apps/frontend): select initial tool * fix(apps/frontend): import hammerjs * refactor(frontend): scene-viewer into container * feat(frontend): dispatch `pointerPick` action * feat(frontend): dispatch `add|removeVoxel` action * build(packaging): simplify `prettier:check` command * doc(frontend): add readme with ngrx resources * feat(frontend): support adding voxel * refactor(frontend): don't inject `GridService` * feat(frontend): effects for when app goes on/offline * test(frontend): on/offline effects * test(vdb): remove `normals` from test * feat(vdb): add `setValueOff` & `isValueOn` * test(frontend): set expected position to pass * fix(frontend): make public for use in template * build(dep): `@types/node` & `core-js` * feat(frontend): enable `removeVoxel` * build(dep): `@babylonjs/*` * build(github): keep `develop` after PR merge * build(dep): `cypress` to `v3.8.0` * build(dep): `cypress` to `v3.7.0` * test(vdb): set value with float coordinates: - coordinates get always rounded down * build(dep): `cypress` to `v3.7.0` * feat(frontend): support adding and removing voxels * test(ui): remove unused imported components * build(CircleCi): use `13.3.0` due failing tests: - Test suite failed to run - Call retries were exceeded at ChildProcessWorker.initialize() - jest-community/vscode-jest#486 (comment) * fix(frontend): add voxel on positive normal - but negative position * test(frontend): set `setupFilesAfterEnv` - to run in Jest tests within WebStorm - nrwl/nx#1439 (comment) * test(frontend): set `globals`>`tsConfig` - to run in Jest tests within WebStorm with SCSS imports in component * build(CircleCi): use `13.4.0` * build(dep): update diverse dependencies: - @ngrx/effects, @ngrx/store - core-js, mnemonist, codelyzer - @types/jest, @types/node * doc(readme): record macro & git setup * build(dep): `@angular-devkit/build-angular` & `@angular/cli` * feat(frontend): draw separate mesh per InternalNode1 (#9) * feat(frontend): add multiple voxels * feat(ui): add output for dropped files * doc(readme): add openVDB repo link * feat(vdb): implement `beginLeafOn` iterator * feat(frontend/vdb): draw InternalNode1 chunks * feat(frontend/vdb): don't return LeafNode * feat(frontend/vdb): don't return `LeafNode` in `setValueAndCache` * feat(frontend/vdb): use only key from accessor * feat(frontend/vdb): remove `getLeafNodeAndCache` * feat(frontend/vdb): remove `beginLeafOn` * feat(frontend/vdb): remove `getLeafNodeAndCache` & `beginLeafOn` * fix(frontend/vdb): dispose mesh instead of just remove it: - so we resolve memory issue * refactor(frontend): optimize scene & mesh - https://doc.babylonjs.com/how_to/optimizing_your_scene * refactor(frontend): remove unused method & obj loader * refactor(vdb): increase `InternalNode1` size to reduce draw calls * refactor(vdb): remove inspector & loading obj * refactor(vdb): align to `probeNode` & `probeNodeAndCache` * refactor(vdb): s/grid-to-mesh/node-to-mesh * refactor(vdb): use un-indexed mesh * fix(ui): read normal directly from picked mesh * refactor(frontend): remove `objFileLoader` * refactor(frontend): s/updateGridMesh/updateNodeMesh & key/Node1Origin * feat(benchmark): test single vs. multiple `array.push()` * build(CircleCi): update node to `13.5.0` & cypress `3.8.1` * build(nx): nx migrate @nrwl/workspace (v8.11.0) - nx migrate --run-migrations=migrations.json * fix(benchmark): add `.nxignore` to get benchmark through linter * build(dep): update dependencies * feat(frontend): add undo/redo & enable `strictNullChecks` (#10) * feat(frontend): add undo/redo & enforce `strictNullChecks` * feat(frontend): undo/redo with max buffer size * test(frontend): handle possible `undefined` * feat(frontend): make remove a voxel undoable * feat(frontend): place initial voxel at [0, 0, 0] * fix(frontend): dispose previous history if new `addUndo` * refactor(frontend): extract method for creating `addUndo` * feat(frontend): set active state of voxel, return color when deleting (#11) * feat(ui/frontend): add menu-bar (#12) * feat(frontend): add menu-bar * feat(frontend): add menu-bar-container * test(frontend): inject mock store for menu-bar-container * refactor(frontend): add missing `menu-bar.component` * test(frontend): import `MenuBarModule` * feat(frontend): undo/redo with start/end actions (#13) * feat(frontend): undo/redo with start/end actions * test(frontend): provide `valueToColor()` * feat(frontend): set random color when adding a voxel * test(frontend): add same color of voxel * refactor(frontend): use directly `props<VoxelChange>` * refactor(frontend): throw error when coord&values not same length * build(dep): update dependencies * build(dep): update cypress to `v3.8.2` * build(dep): update stylelint to `v13.0.0` * refactor(ui): prefix UI components with `Ui` like Angular does with `Mat` (#14) * refactor(ui): prefix `MenuBar` with `Ui` like Angular does with `Mat` * refactor(ui): prefix `SceneViewer` with `Ui` as Angular does with `Mat` * test(ui): check `menu-bar` menus & items * refactor(ui): remove ctor & onInit * test(ui): check if sidnav has left & right navigation * refactor(ui): prefix `SidenavShell` with `Ui` as Angular does with `Mat` * refactor(ui): prefix `SceneViewerService` with `Ui` (ng with `Mat`) * refactor(ui): prefix `SceneViewerTestModule` with `Ui` (ng with `Mat`) * refactor(ui): prefix `ToolbarModule` with `Ui` (ng with `Mat`) * refactor(ui): prefix `UiPointer[Button|PickInfo]` with `Ui` * build(dep): update handlebars to `v4.7.2` due to security issues * test(ui): should emit `value` of clicked menu items * test(ui): should emit on tool select * test(ui): should close left & right sidenav * test(frontend): should dispatch action * test(frontend): check `scene-viewer-container.reducer` * test(frontend): check `scene-viewer-container.reducer` selector * refactor(ui): import `hammerjs` to remove warning in test run * test(frontend): check `tools-panel.reducer` * test(frontend): check `undo-redo.reducer` * test(frontend): check `undo-redo.reducer` with `stepX` * test(frontend): check `undo-redo.reducer` too many undo/redo's * style(prettier): fix imports * test(vdb): add tests for `tree` * test(vdb): improve coverage * test(vdb): check coord * test(vdb): check grid * test(vdb): check `nodeToMesh` * feat(ui): add `Storybook` (#16) * feat(ui): add `Storybook` * feat(ui): add `Storybook` e2e test * doc(ui): how to watch e2e * build(dep): update storybook to `v5.3.6` * build(dep): back to storybook `v5.3.2` due to: - info => Using angular project 'frontend' for configuring Storybook. * build(dep): back to storybook `v5.3.6` since it works * test(ui-e2e): open/close `menu-bar` * ci(storybook): run, build & deploy storybook for `ui-e2e` (#17) * ci(storybook): build storybook * ci(storybook): move `frontend e2e` step down * ci(storybook): store storybook & deploy to gh-pages * ci(storybook): extract git(hub) configs * ci(storybook): extract deploy to gh-pages * ci(storybook): change to `test-results` folder & use `junit` reporter * ci(storybook): run `ui-e2e` and store test-results & artifacts * ci(storybook): run `ui-e2e` only on `master` & `develop` * fix(ui): to high/large canvas by setting `display: block;` * feat(frontend): paint voxel (#18) * feat(frontend): dispatch paint-voxel action * feat(frontend): set voxel on paint * feat(frontend): finish renaming `addVoxel` to `setVoxel` * feat(frontend): save old/new values and undo/redo painting * refactor(frontend): s/positions/coord * refactor(frontend): fix prettier issue * refactor(frontend): s/position/xyz * build(dep): update `@nrwl` to `v8.11.2` * build(dep): update `@angular/(cli|core)` to `v8.3.22` - `ng update @angular/cli @angular/core` * build(dep): update @BabylonJS, @babel, @storybook, @types * feat(ui): color-dialog (#19) * feat(ui): color-dialog * refactor(ui): always open dialog in story * refactor(ui): flatten config to just menus & type safety in story * feat(ui): pass colors to color-dialog * refactor(ui): make data & return value type-safe. * refactor(ui): extract interface `UiColorDialogData` * refactor(ui): extract open into `UiColorDialogService` * test(ui): s/UiMenuBarConfig/UiMenuBarMenu * refactor(ui): provide `selectedColorIndex` * build(dep): update `circleci/node` to `v13.6.0` * feat(frontend): use color-dialog (#20) * feat(frontend): use color-dialog * refactor(ui): s/draggable-dialog/color-dialog * feat(frontend): open (empty) color-dialog * feat(frontend): provide some first colors * feat(frontend): use effects to open color-dialog * feat(frontend): use effects to set selected color in store * feat(frontend): temp. consider just `color.r` * feat(frontend): save colors and selected-index * refactor(frontend): move `tool.model.ts` to `model` (put in lib later) * feat(frontend): `intToRgba` & `rgbaToInt` * refactor(frontend): s/model/value * refactor(frontend): use `Rgba` and `rgbaToInt` to set voxel in grid * refactor(frontend): provide selector for retrieving CSS colors * refactor(frontend): move comment `Front` * refactor(vdb): define all colors * refactor(frontend): fix prettier * test(frontend): import `OptionsPanelModule` * refactor(frontend): prettier * refactor(ui): `forceDepthWrite` for transparent cubes - there are still some artifacts (seeing through cubes behind) * refactor(ui): use `rgba` to set initial voxel at [0, 0, 0] * test(frontend): provide stub component in `AppComponent` test * test(frontend): provide `initialMockState` * test(frontend): mock & expect proper `Rgba` values * test(ui): fix type of dialog result (`UiColorDialogColor` to `number`) * feat(frontend): support dark & light theme (#21) * feat(ui): add theme toggle to storybook (#22) * feat(ui): remove `mat-button` from story * build(dep): update `@storybook` to `v5.3.8` * build(dep): update `tslint` to `v6.0.0` * build(dep): back to `tslint` `v5.20.1` * refactor(model): extract `Rgba` & `Tool` to lib `model` (#24) * refactor(model): extract `Rgba` & `Tool` to lib `model` * refactor(model): remove mapping path to non-existing `@talus/math` * refactor(vdb): use `eslint` over `tslint` (#25) * refactor(benchmark): use `eslint` over `tslint` (#26) * refactor(benchmark): use `eslint` over `tslint` * refactor(benchmark): s/benchmarkjs/Benchmark * ci(circle): `git pull` before `gh-pages` deploy * refactor(frontend): prefix unused variables with `_` * refactor(frontend): register pointer events * refactor(frontend): draw initial chessboard * docs(talus): add ui-e2e command & update deploy url * docs(frontend): add most used commands * docs(vdb): move install & test to blog * docs(ui): clean-up storybook commands * feat(vdb): implement raytracing (#27) * refactor(vdb): move `ValueType` & `Index` to `types.ts` * feat(vdb): add delta value * feat(vdb): add `floor()` to `Coord` * feat(vdb): add `Vec3` * feat(vdb): add `minValue` to `Vec3` * feat(vdb): add `Ray` * feat(vdb): implement `probeLeafNodeAndCache` * test(vdb): improve comments about cache misses * test(vdb): check if correct cache level was hit * feat(frontend): add selection tool & stop moving camera on voxel hit * refactor(benchmark): reduce amount of values (CircleCI) * build(dep): update `node` to `v13.7.0` * ci: start using `yarn nx ...` * refactor(benchmark): set `--maxWorkers` to 10 (was 32 on CircleCI) * ci: uniform calls by using `yarn nx ...` * doc: add debug CircleCI via `ssh` * feat(vdb): add `empty()` & `numBackgroundTiles()` * feat(vdb): add `keyToCoord()` * feat(vdb): `expand()` on `CoordBBox` * feat(vdb): `isInside()` on `CoordBBox` * feat(vdb): add `offset`, `expand`, `reset`, `translate` * feat(vdb): add `add`, `divide` to `Vec3` * feat(vdb): add `clip`, `intersects` & `setTimes` to `Ray` * test(vdb): add C++ tests for `VolumeRayIntersector`, `Ray`, `Coord` * feat(vdb): add `VolumeRayIntersector` * style(vdb): eslint-disable @typescript-eslint/no-explicit-any * test(vdb): min coord is `Number.MIN_SAFE_INTEGER` * test(vdb): remove `console.log()` * refactor(vdb): export `VolumeRayIntersector` * test(vdb): add test with checking all voxels intersecting given ray * refactor(vdb): organize imports with barrel files (1) * feat(frontend): add basic line drawing (#28) * refactor(frontend/vdb): remove `colors` & comments for `beginValueOn()` * feat(vdb): add `removeFraction()` * feat(frontend): add `Select line point` tool * feat(frontend): add basic line drawing * test(model): improve test description for `Rgba` * style(frontend): fix prettier (imports) * refactor(frontend): extract methods * refactor(frontend): move declaration `dda` to usage * build(dep): update @storybook, @types, @typescript-eslint, eslint * build(CircleCI): `git co gh-pages` before pull and commit * build(CircleCI): use `checkout` over not-existing `co` alias * build(dep): migrate to `@nrwl` `v8.12.1` * build(dep): keep `cypress` `v3.8.3` * build(dep): `ng update @angular/cli` `v8.3.24` * build(dep): `@babel/core` `v7.8.4` * build(CircleCI): deploy in `$DEPLOY_CONTEXT` folder on `gh-pages` * build(CircleCI): echo variables and `git fetch origin gh-pages:gh-pages` * build(CircleCI): echo variables and `git pull` * build(CircleCI): don't `echo` variables * feat(ui): `pointUnderPointer$` emitting when hover over mesh * build(CircleCI): adjust base-path (`apps/frontend` * fix(frontend): return all `VoxelChange` & filter dupl. origins in effect * test(vdb): check if accessor returns background * test(vdb): should fill buffer with `0` * test(vdb): should initialise with `0` * test(vdb): check if accessor returns background * feat(frontend): bg value = -1, `removeVoxel` uses `setValueOff` * fix(frontned): import `VoxelChange` * feat(frontend): preview line (#29) * feat(frontend): preview line * style(frontned): prettier * test(frontend): provide `GridService` * test(vdb): add C++ tests `testSetActiveState` * feat(frontend): start & finish line drawing * feat(frontend): temporary set start & end voxel of line * feat(frontend): use `voxelsSet` action * feat(frontend): support undo line drawing * feat(frontend): pass position to chessboard * refactor(frontend): use only one coord `selectedLineStartCoord` * test(frontend): check `scene-viewer-container.reducer.ts` * test(frontend): check filter out duplicate origins in effect * test(frontend): check `setVoxel(s)` & `setVoxel(s)Failed` * doc(frontend): update readme with 'Angular Update Guide' * test(frontend): extract voxel change * refactor: update to @angular 9.0.0 & cypress 4.0.0 (#30) * refactor(ui/frontend): import deeply to specific material component * build(dep): update `@angular/cli` to `v8.3.25` * build(dep): update `@nrwl/*` to `v8.12.2` * build(dep): update `@angular/*` to `v9` * build(dep): update `@angular/material` to `v9` * build(dep): update `@storybook`, `@typescript-eslint` * build(dep): update `cypress` to `v4.0.0` * build(dep): remove `handlebars` * build(dep): update `@babylonjs` * feat(vdb): add `touchLeafAndCache()` (#31) * feat(vdb): add `touchLeafAndCache()` * refactor(frontend): only set `end` temporary in `selectLine()` * refactor(frontend): don't initialize with chessboard * fix(frontend): not drawing of line in same node: - probe for InternalNode1 for affected origin, don't use accessor * refactor(frontend): use `tap` over `map` * build(dep): update to `nx` `v9.0.0` (#34) * build(dep): update to `nx` `v9.0.0` * build(dep): update @storybook, @typescript-eslint, cypress, stylelint * build(dep): update @BabylonJS & conform to newly created nx workspace * style(frontend): disable stylelint for angular theme color keys * build(dep): update @angular to `9.0.1` * build(dep): @storybook/*, @types/node, stylelint * feat(ui): add basic status-bar with connection status * feat(frontend): add empty status-bar * feat(ui): use outlined icon for changing theme & put icon at bottom * test(frontend): include `UiStatusBarModule` * build(CircleCi): set upstream * feat(ui): session-dialog with radio-group (#37) * feat(ui): add basic skeleton for session-dialog * feat(ui): session-dialog with radio-group * test(ui): fix providers for session-dialog spec * feat(frontend): open session-dialog via menu-bar * test(frontend): check emitted action `selectSession` * refactor(lib): s/session/topic * refactor(lib): select or create a topic * fix(frontend): voxels on wrong position due unresized canvas * test(frontend): mock dialog result `UiTopicDialogSelectionResult` * feat(kafka): add kafka-proxy (websocket) & kafka with docker-comp… (#38) * feat(kafka): use `docker-compose` to start `kafka` & `Kafdrop` * feat(kafka): start kafka, use kafka-proxy to send msg via WS to kafka * feat(kafka): start kafka, use kafka-proxy to send msg via WS to kafka 2 * feat(kafka): compress ws data & regsiter to connection state * fix(frontend): missing dep. & comment out initial ws test emit * feat(frontend): use `connectionStatus$` for status-bar * feat(frontend): basic synchronisation of actions between ws-connections * feat(frontend): sync editor & undo/redo actions * feat(frontend): set `needsSync` in effect * feat(frontend): set `needsSync` in effect * feat(kafka-proxy): remove `identity` method * test(frontend): mock & check dispatch * test(frontend): add `needsSync: true` * refactor(kafka): add project to nx ignore since it's not a real nx-app * doc(kafka-proxy): add readme * test(frontend): add generic parameter to fix error: - Error: connect ECONNREFUSED 127.0.0.1:80 * test(frontend): put correct describe name (MenuBarContainerComponent) * test(ui): import relative * test(frontend/ui): specify globals in `jest.config.js` - preventing `Error: connect ECONNREFUSED 127.0.0.1:80` when started from WebStorm * test(frontend/kafka-proxy): use `socket.broadcast` (send to all but me) * test(frontend): prefer `io.connect` for readability * refactor(kafka-proxy): extract kafka logic into `KafkaService` + tests * refactor(frontend/kafka-proxy): basic create/delete/get topic(s) * refactor(frontend/kafka-proxy): make topics an observable * refactor(frontend): don't wrap observable with `new Actions()` * refactor(frontend): emit `updateTopics` action when `kafkaPrSer.topics$` * test(frontend): add `sessions` to state & update tests * feat(frontend): set sessions in store & provide it in session-dialog * feat(frontend): set `session` * feat(frontend): s/AllActions/SyncAction * feat(frontend/kafka-proxy): Consume topic & emit actions for viewer * feat(kafka-proxy): remove old consumers on connection close * refactor(frontend/kafka-proxy): extract `EventName` to `@talus/model` * refactor(shared): extract `notNil()` to `@talus/shared` * refactor(kafka-proxy): remove scaffolded files * test(kafka-proxy): update gate tests * fix(frontend): s/session(s)/topic(s) after rebase * refactor(frontend): s/session/topic * feat(kafka): start-up 'kafka-manager' to have more info * refactor(frontend): extract `initialize()` for reuse * feat(kafka-proxy): provide `resetOffsets()` * feat(frontend): add `createTopic` action * feat(ui): provide `disposeSceneAndRestartRendering()` * feat(frontend/kafka-proxy): consumption of different topics * fix(frontend): don't sync start/end-line action (effects emit them) * fix(frontend): only emit action from kafka which have a diff. socket-id * fix(frontend): load all messages from current "session" when re-open it * refactor(frontend): remove `AfterViewInit` and order ctor arguments * refactor(kafka): add (commented) `kafka-magic` UI as alternative * refactor(kafka-proxy): move consumer management into `kafka.service.ts` * doc(kafka-proxy): add links about REST proxy & kafkajs issue to readme * style(kafka): fix prettier * fix(frontend): filter `__consumer_offsets` from topics * feat(frontend): get topics with total topic offset * feat(ui): support status text in status-bar * refactor(frontend): remove voxel count from state/reducer/specs * refactor(frontend): update state if connection-status changed & fix test * refactor(frontend): don't sync undo/redo, but setVoxels action * fix(frontend): remove old parameter for undo action * refactor(frontend): remove duplicated undo/redo action * doc: add last generation step, macro & release links * refactor(frontend): use `Promise.resolve()` * fix(frontend): don't add initial voxel when existing topic loaded * fix(kafka-proxy): return observable, so frontend gets new topic names * test(frontend): adapt test for `needsSync` & initial action * build(dep): update `@nrwl/workspace` to `v9.0.4` * build(dep): update `@angular` to `v9.0.4` * build(dep): update `@babylonjs` to `v4.1.0` * build(dep): update `@babel` & '@nestjs' and use `--async=false` (CI) * build(dep): update `tslib`, `@storybook`, `@types`, `@typescript-eslint` * build(dep): update `cypress` * test(kafka-proxy): mock `disconnectConsumer()` * build(dep): update `@angular` to `v9.0.5` * feat(ui): leaf empty space on top/bottom of sidenav panel * refactor(frontend): use h6 and materials typography * refactor(ui): make collapse button smaller * feat(ui): add story for sidenav-shell component * build(dep): update `@babel/core` to `v7.8.7` * refactor(frontend): remove unused `Nil` type (moved to shared) * refactor(kafka): specify specific image versions * refactor(ui): make canvas background color transparent * feat(frontend): get `lastLoadedMessageOffset` for future loading status
- Loading branch information