Snapshot exports (#1223)
* delete old exports * update test * tweaks and assets * install kittycad cli * fix weird typo * A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu) --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2
.github/workflows/playwright.yml
vendored
@ -14,6 +14,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
node-version-file: '.nvmrc'
|
node-version-file: '.nvmrc'
|
||||||
cache: 'yarn'
|
cache: 'yarn'
|
||||||
|
- uses: KittyCAD/action-install-cli@v0.2.16
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: yarn
|
run: yarn
|
||||||
- name: Install Playwright Browsers
|
- name: Install Playwright Browsers
|
||||||
@ -33,6 +34,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
CI: true
|
CI: true
|
||||||
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
|
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
|
||||||
|
snapshottoken: ${{ secrets.KITTYCAD_API_TOKEN }}
|
||||||
- uses: actions/upload-artifact@v3
|
- uses: actions/upload-artifact@v3
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
|
7
.gitignore
vendored
@ -37,6 +37,13 @@ src/wasm-lib/lcov.info
|
|||||||
e2e/playwright/playwright-secrets.env
|
e2e/playwright/playwright-secrets.env
|
||||||
e2e/playwright/temp1.png
|
e2e/playwright/temp1.png
|
||||||
e2e/playwright/temp2.png
|
e2e/playwright/temp2.png
|
||||||
|
# exports from snapshot-tests.spec.ts
|
||||||
|
e2e/playwright/export-snapshots/*.ply
|
||||||
|
e2e/playwright/export-snapshots/*.obj
|
||||||
|
e2e/playwright/export-snapshots/*.step
|
||||||
|
e2e/playwright/export-snapshots/*.stl
|
||||||
|
|
||||||
|
|
||||||
/test-results/
|
/test-results/
|
||||||
/playwright-report/
|
/playwright-report/
|
||||||
/blob-report/
|
/blob-report/
|
||||||
|
@ -183,7 +183,7 @@ For more information on fuzzing you can check out
|
|||||||
First time running plawright locally, you'll need to add the secrets file
|
First time running plawright locally, you'll need to add the secrets file
|
||||||
```bash
|
```bash
|
||||||
touch ./e2e/playwright/playwright-secrets.env
|
touch ./e2e/playwright/playwright-secrets.env
|
||||||
echo 'token="your-token"' > ./e2e/playwright/playwright-secrets.env
|
echo 'token="your-token"\nsnapshottoken="your-snapshot-token"' > ./e2e/playwright/playwright-secrets2.env
|
||||||
```
|
```
|
||||||
then replace "your-token" with a dev token from dev.kittycad.io/account/api-tokens
|
then replace "your-token" with a dev token from dev.kittycad.io/account/api-tokens
|
||||||
|
|
||||||
|
@ -1,189 +0,0 @@
|
|||||||
v 0 -4 0
|
|
||||||
v 0 0 0
|
|
||||||
v 0 -4 -1
|
|
||||||
v 0 0 -1
|
|
||||||
v 3.0950184 -4 -1
|
|
||||||
v 3.0950184 0 -1
|
|
||||||
v 5.9513144 -4 -3
|
|
||||||
v 5.9513144 0 -3
|
|
||||||
v 9.5 -4 -3
|
|
||||||
v 9.5 0 -3
|
|
||||||
v 9.5 -4 -2.5
|
|
||||||
v 9.5 0 -2.5
|
|
||||||
v 6.108964 -4 -2.5
|
|
||||||
v 6.108964 0 -2.5
|
|
||||||
v 3.4311862 -4 -0.625
|
|
||||||
v 4.323779 -4 -1.25
|
|
||||||
v 4.323779 -0 -1.25
|
|
||||||
v 3.4311862 -0 -0.625
|
|
||||||
v 2.5385938 0 0
|
|
||||||
v 2.5385938 -4 0
|
|
||||||
v 3.342784 -4 0.375
|
|
||||||
v 4.146974 -4 0.75
|
|
||||||
v 3.342784 -0 0.375
|
|
||||||
v 4.146974 -0 0.75
|
|
||||||
v 5.755354 0 1.5
|
|
||||||
v 5.755354 -4 1.5
|
|
||||||
v 9.5 -4 1.5
|
|
||||||
v 9.5 0 1.5
|
|
||||||
v 9.5 -4 2
|
|
||||||
v 9.5 0 2
|
|
||||||
v 5.644507 -4 2
|
|
||||||
v 5.644507 0 2
|
|
||||||
v 3.5 -4 1
|
|
||||||
v 3.5 0 1
|
|
||||||
v 0 -4 1
|
|
||||||
v 0 0 1
|
|
||||||
vt 0.0127 -0.0508
|
|
||||||
vt 0.0127 0.0508
|
|
||||||
vt -0.0127 -0.0508
|
|
||||||
vt -0.0127 0.0508
|
|
||||||
vt -0.039306734 0.0508
|
|
||||||
vt -0.039306734 -0.0508
|
|
||||||
vt 0.039306734 0.0508
|
|
||||||
vt 0.039306734 -0.0508
|
|
||||||
vt -0.04428355 0.0508
|
|
||||||
vt -0.04428355 -0.0508
|
|
||||||
vt 0.04428355 0.0508
|
|
||||||
vt 0.04428355 -0.0508
|
|
||||||
vt -0.045068305 0.0508
|
|
||||||
vt -0.045068305 -0.0508
|
|
||||||
vt 0.045068305 0.0508
|
|
||||||
vt 0.045068305 -0.0508
|
|
||||||
vt -0.00635 0.0508
|
|
||||||
vt -0.00635 -0.0508
|
|
||||||
vt 0.00635 0.0508
|
|
||||||
vt 0.00635 -0.0508
|
|
||||||
vt 0.04306616 -0.0508
|
|
||||||
vt 0.04306616 0.0508
|
|
||||||
vt -0.04306616 -0.0508
|
|
||||||
vt -0.04306616 0.0508
|
|
||||||
vt -0.027677217 -0.0508
|
|
||||||
vt 0.000000000000000048572257 -0.0508
|
|
||||||
vt 0.000000000000000048572257 0.0508
|
|
||||||
vt 0.055354435 -0.0508
|
|
||||||
vt 0.055354435 0.0508
|
|
||||||
vt -0.027677217 0.0508
|
|
||||||
vt -0.055354435 0.0508
|
|
||||||
vt -0.055354435 -0.0508
|
|
||||||
vt -0.02253807 0.0508
|
|
||||||
vt -0.04507614 0.0508
|
|
||||||
vt -0.04507614 -0.0508
|
|
||||||
vt 0.00000000000000005551115 0.0508
|
|
||||||
vt -0.02253807 -0.0508
|
|
||||||
vt 0.00000000000000005551115 -0.0508
|
|
||||||
vt 0.04507614 -0.0508
|
|
||||||
vt 0.04507614 0.0508
|
|
||||||
vt -0.047557 0.0508
|
|
||||||
vt -0.047557 -0.0508
|
|
||||||
vt 0.047557 0.0508
|
|
||||||
vt 0.047557 -0.0508
|
|
||||||
vt 0.04896476 -0.0508
|
|
||||||
vt 0.04896476 0.0508
|
|
||||||
vt -0.04896476 -0.0508
|
|
||||||
vt -0.04896476 0.0508
|
|
||||||
vt 0.03005076 -0.0508
|
|
||||||
vt 0.03005076 0.0508
|
|
||||||
vt -0.03005076 -0.0508
|
|
||||||
vt -0.03005076 0.0508
|
|
||||||
vt 0.04445 -0.0508
|
|
||||||
vt 0.04445 0.0508
|
|
||||||
vt -0.04445 -0.0508
|
|
||||||
vt -0.04445 0.0508
|
|
||||||
vt 0.08490671 0.009525
|
|
||||||
vt 0.06448028 0
|
|
||||||
vt 0.0889 0.0254
|
|
||||||
vt 0.08715213 -0.015875
|
|
||||||
vt 0.10982399 -0.03175
|
|
||||||
vt 0.07861347 -0.0254
|
|
||||||
vt 0.10533314 0.01905
|
|
||||||
vt 0.15116338 -0.0762
|
|
||||||
vt 0 -0.0254
|
|
||||||
vt 0 0
|
|
||||||
vt 0.2413 -0.0762
|
|
||||||
vt 0.15516768 -0.0635
|
|
||||||
vt 0.2413 -0.0635
|
|
||||||
vt 0.14337048 0.0508
|
|
||||||
vt 0.146186 0.0381
|
|
||||||
vt 0.2413 0.0381
|
|
||||||
vt 0.2413 0.0508
|
|
||||||
vt 0 0.0254
|
|
||||||
vn -1 -0 0
|
|
||||||
vn 0 -0 -1
|
|
||||||
vn -0.57357645 -0 -0.81915206
|
|
||||||
vn 1 -0 0
|
|
||||||
vn 0 -0 1
|
|
||||||
vn 0.57357645 -0 0.81915206
|
|
||||||
vn 0.42261827 -0 -0.9063078
|
|
||||||
vn -0.42261827 -0 0.9063078
|
|
||||||
vn -0 1 -0
|
|
||||||
vn 0 -1 0
|
|
||||||
o Unnamed-0
|
|
||||||
f 1/1/1 2/2/1 3/3/1
|
|
||||||
f 3/3/1 2/2/1 4/4/1
|
|
||||||
f 3/5/2 4/6/2 5/7/2
|
|
||||||
f 5/7/2 4/6/2 6/8/2
|
|
||||||
f 5/9/3 6/10/3 7/11/3
|
|
||||||
f 7/11/3 6/10/3 8/12/3
|
|
||||||
f 7/13/2 8/14/2 9/15/2
|
|
||||||
f 9/15/2 8/14/2 10/16/2
|
|
||||||
f 9/17/4 10/18/4 11/19/4
|
|
||||||
f 11/19/4 10/18/4 12/20/4
|
|
||||||
f 11/21/5 12/22/5 13/23/5
|
|
||||||
f 13/23/5 12/22/5 14/24/5
|
|
||||||
f 15/25/6 16/26/6 17/27/6
|
|
||||||
f 16/26/6 13/28/6 14/29/6
|
|
||||||
f 18/30/6 19/31/6 20/32/6
|
|
||||||
f 15/25/6 18/30/6 20/32/6
|
|
||||||
f 16/26/6 14/29/6 17/27/6
|
|
||||||
f 18/30/6 15/25/6 17/27/6
|
|
||||||
f 21/33/7 20/34/7 19/35/7
|
|
||||||
f 22/36/7 21/33/7 23/37/7
|
|
||||||
f 23/37/7 24/38/7 22/36/7
|
|
||||||
f 24/38/7 25/39/7 26/40/7
|
|
||||||
f 21/33/7 19/35/7 23/37/7
|
|
||||||
f 26/40/7 22/36/7 24/38/7
|
|
||||||
f 26/41/2 25/42/2 27/43/2
|
|
||||||
f 27/43/2 25/42/2 28/44/2
|
|
||||||
f 27/17/4 28/18/4 29/19/4
|
|
||||||
f 29/19/4 28/18/4 30/20/4
|
|
||||||
f 29/45/5 30/46/5 31/47/5
|
|
||||||
f 31/47/5 30/46/5 32/48/5
|
|
||||||
f 31/49/8 32/50/8 33/51/8
|
|
||||||
f 33/51/8 32/50/8 34/52/8
|
|
||||||
f 33/53/5 34/54/5 35/55/5
|
|
||||||
f 35/55/5 34/54/5 36/56/5
|
|
||||||
f 35/1/1 36/2/1 1/3/1
|
|
||||||
f 1/3/1 36/2/1 2/4/1
|
|
||||||
f 23/57/9 19/58/9 34/59/9
|
|
||||||
f 18/60/9 17/61/9 6/62/9
|
|
||||||
f 23/57/9 34/59/9 24/63/9
|
|
||||||
f 17/61/9 8/64/9 6/62/9
|
|
||||||
f 4/65/9 19/58/9 6/62/9
|
|
||||||
f 4/65/9 2/66/9 19/58/9
|
|
||||||
f 10/67/9 14/68/9 12/69/9
|
|
||||||
f 10/67/9 8/64/9 14/68/9
|
|
||||||
f 8/64/9 17/61/9 14/68/9
|
|
||||||
f 32/70/9 25/71/9 24/63/9
|
|
||||||
f 6/62/9 19/58/9 18/60/9
|
|
||||||
f 24/63/9 34/59/9 32/70/9
|
|
||||||
f 28/72/9 25/71/9 30/73/9
|
|
||||||
f 25/71/9 32/70/9 30/73/9
|
|
||||||
f 19/58/9 2/66/9 36/74/9
|
|
||||||
f 34/59/9 19/58/9 36/74/9
|
|
||||||
f 21/57/10 33/59/10 20/58/10
|
|
||||||
f 22/63/10 33/59/10 21/57/10
|
|
||||||
f 15/60/10 5/62/10 16/61/10
|
|
||||||
f 22/63/10 26/71/10 31/70/10
|
|
||||||
f 35/74/10 20/58/10 33/59/10
|
|
||||||
f 35/74/10 1/66/10 20/58/10
|
|
||||||
f 31/70/10 26/71/10 29/73/10
|
|
||||||
f 29/73/10 26/71/10 27/72/10
|
|
||||||
f 22/63/10 31/70/10 33/59/10
|
|
||||||
f 20/58/10 5/62/10 15/60/10
|
|
||||||
f 16/61/10 5/62/10 7/64/10
|
|
||||||
f 13/68/10 16/61/10 7/64/10
|
|
||||||
f 11/69/10 13/68/10 9/67/10
|
|
||||||
f 13/68/10 7/64/10 9/67/10
|
|
||||||
f 20/58/10 3/65/10 5/62/10
|
|
||||||
f 3/65/10 20/58/10 1/66/10
|
|
BIN
e2e/playwright/export-snapshots/obj-.png
Normal file
After Width: | Height: | Size: 60 KiB |
@ -1,282 +0,0 @@
|
|||||||
ply
|
|
||||||
format ascii 1.0
|
|
||||||
comment Generated by kittycad.io
|
|
||||||
element vertex 204
|
|
||||||
property float x
|
|
||||||
property float y
|
|
||||||
property float z
|
|
||||||
element face 68
|
|
||||||
property list uchar uint vertex_indices
|
|
||||||
end_header
|
|
||||||
0 0 4
|
|
||||||
0 0 0
|
|
||||||
0 -1 4
|
|
||||||
0 -1 4
|
|
||||||
0 0 0
|
|
||||||
0 -1 0
|
|
||||||
0 -1 4
|
|
||||||
0 -1 0
|
|
||||||
3.0950184 -1 4
|
|
||||||
3.0950184 -1 4
|
|
||||||
0 -1 0
|
|
||||||
3.0950184 -1 0
|
|
||||||
3.0950184 -1 4
|
|
||||||
3.0950184 -1 0
|
|
||||||
5.9513144 -3 4
|
|
||||||
5.9513144 -3 4
|
|
||||||
3.0950184 -1 0
|
|
||||||
5.9513144 -3 0
|
|
||||||
5.9513144 -3 4
|
|
||||||
5.9513144 -3 0
|
|
||||||
9.5 -3 4
|
|
||||||
9.5 -3 4
|
|
||||||
5.9513144 -3 0
|
|
||||||
9.5 -3 0
|
|
||||||
9.5 -3 4
|
|
||||||
9.5 -3 0
|
|
||||||
9.5 -2.5 4
|
|
||||||
9.5 -2.5 4
|
|
||||||
9.5 -3 0
|
|
||||||
9.5 -2.5 0
|
|
||||||
9.5 -2.5 4
|
|
||||||
9.5 -2.5 0
|
|
||||||
6.108964 -2.5 4
|
|
||||||
6.108964 -2.5 4
|
|
||||||
9.5 -2.5 0
|
|
||||||
6.108964 -2.5 0
|
|
||||||
3.4311862 -0.625 4
|
|
||||||
4.323779 -1.25 4
|
|
||||||
4.323779 -1.25 0
|
|
||||||
4.323779 -1.25 4
|
|
||||||
6.108964 -2.5 4
|
|
||||||
6.108964 -2.5 0
|
|
||||||
3.4311862 -0.625 0
|
|
||||||
2.5385938 0 0
|
|
||||||
2.5385938 0 4
|
|
||||||
3.4311862 -0.625 4
|
|
||||||
3.4311862 -0.625 0
|
|
||||||
2.5385938 0 4
|
|
||||||
4.323779 -1.25 4
|
|
||||||
6.108964 -2.5 0
|
|
||||||
4.323779 -1.25 0
|
|
||||||
3.4311862 -0.625 0
|
|
||||||
3.4311862 -0.625 4
|
|
||||||
4.323779 -1.25 0
|
|
||||||
3.342784 0.375 4
|
|
||||||
2.5385938 0 4
|
|
||||||
2.5385938 0 0
|
|
||||||
4.146974 0.75 4
|
|
||||||
3.342784 0.375 4
|
|
||||||
3.342784 0.375 0
|
|
||||||
3.342784 0.375 0
|
|
||||||
4.146974 0.75 0
|
|
||||||
4.146974 0.75 4
|
|
||||||
4.146974 0.75 0
|
|
||||||
5.755354 1.5 0
|
|
||||||
5.755354 1.5 4
|
|
||||||
3.342784 0.375 4
|
|
||||||
2.5385938 0 0
|
|
||||||
3.342784 0.375 0
|
|
||||||
5.755354 1.5 4
|
|
||||||
4.146974 0.75 4
|
|
||||||
4.146974 0.75 0
|
|
||||||
5.755354 1.5 4
|
|
||||||
5.755354 1.5 0
|
|
||||||
9.5 1.5 4
|
|
||||||
9.5 1.5 4
|
|
||||||
5.755354 1.5 0
|
|
||||||
9.5 1.5 0
|
|
||||||
9.5 1.5 4
|
|
||||||
9.5 1.5 0
|
|
||||||
9.5 2 4
|
|
||||||
9.5 2 4
|
|
||||||
9.5 1.5 0
|
|
||||||
9.5 2 0
|
|
||||||
9.5 2 4
|
|
||||||
9.5 2 0
|
|
||||||
5.644507 2 4
|
|
||||||
5.644507 2 4
|
|
||||||
9.5 2 0
|
|
||||||
5.644507 2 0
|
|
||||||
5.644507 2 4
|
|
||||||
5.644507 2 0
|
|
||||||
3.5 1 4
|
|
||||||
3.5 1 4
|
|
||||||
5.644507 2 0
|
|
||||||
3.5 1 0
|
|
||||||
3.5 1 4
|
|
||||||
3.5 1 0
|
|
||||||
0 1 4
|
|
||||||
0 1 4
|
|
||||||
3.5 1 0
|
|
||||||
0 1 0
|
|
||||||
0 1 4
|
|
||||||
0 1 0
|
|
||||||
0 0 4
|
|
||||||
0 0 4
|
|
||||||
0 1 0
|
|
||||||
0 0 0
|
|
||||||
3.342784 0.375 0
|
|
||||||
2.5385938 0 0
|
|
||||||
3.5 1 0
|
|
||||||
3.4311862 -0.625 0
|
|
||||||
4.323779 -1.25 0
|
|
||||||
3.0950184 -1 0
|
|
||||||
3.342784 0.375 0
|
|
||||||
3.5 1 0
|
|
||||||
4.146974 0.75 0
|
|
||||||
4.323779 -1.25 0
|
|
||||||
5.9513144 -3 0
|
|
||||||
3.0950184 -1 0
|
|
||||||
0 -1 0
|
|
||||||
2.5385938 0 0
|
|
||||||
3.0950184 -1 0
|
|
||||||
0 -1 0
|
|
||||||
0 0 0
|
|
||||||
2.5385938 0 0
|
|
||||||
9.5 -3 0
|
|
||||||
6.108964 -2.5 0
|
|
||||||
9.5 -2.5 0
|
|
||||||
9.5 -3 0
|
|
||||||
5.9513144 -3 0
|
|
||||||
6.108964 -2.5 0
|
|
||||||
5.9513144 -3 0
|
|
||||||
4.323779 -1.25 0
|
|
||||||
6.108964 -2.5 0
|
|
||||||
5.644507 2 0
|
|
||||||
5.755354 1.5 0
|
|
||||||
4.146974 0.75 0
|
|
||||||
3.0950184 -1 0
|
|
||||||
2.5385938 0 0
|
|
||||||
3.4311862 -0.625 0
|
|
||||||
4.146974 0.75 0
|
|
||||||
3.5 1 0
|
|
||||||
5.644507 2 0
|
|
||||||
9.5 1.5 0
|
|
||||||
5.755354 1.5 0
|
|
||||||
9.5 2 0
|
|
||||||
5.755354 1.5 0
|
|
||||||
5.644507 2 0
|
|
||||||
9.5 2 0
|
|
||||||
2.5385938 0 0
|
|
||||||
0 0 0
|
|
||||||
0 1 0
|
|
||||||
3.5 1 0
|
|
||||||
2.5385938 0 0
|
|
||||||
0 1 0
|
|
||||||
3.342784 0.375 4
|
|
||||||
3.5 1 4
|
|
||||||
2.5385938 0 4
|
|
||||||
4.146974 0.75 4
|
|
||||||
3.5 1 4
|
|
||||||
3.342784 0.375 4
|
|
||||||
3.4311862 -0.625 4
|
|
||||||
3.0950184 -1 4
|
|
||||||
4.323779 -1.25 4
|
|
||||||
4.146974 0.75 4
|
|
||||||
5.755354 1.5 4
|
|
||||||
5.644507 2 4
|
|
||||||
0 1 4
|
|
||||||
2.5385938 0 4
|
|
||||||
3.5 1 4
|
|
||||||
0 1 4
|
|
||||||
0 0 4
|
|
||||||
2.5385938 0 4
|
|
||||||
5.644507 2 4
|
|
||||||
5.755354 1.5 4
|
|
||||||
9.5 2 4
|
|
||||||
9.5 2 4
|
|
||||||
5.755354 1.5 4
|
|
||||||
9.5 1.5 4
|
|
||||||
4.146974 0.75 4
|
|
||||||
5.644507 2 4
|
|
||||||
3.5 1 4
|
|
||||||
2.5385938 0 4
|
|
||||||
3.0950184 -1 4
|
|
||||||
3.4311862 -0.625 4
|
|
||||||
4.323779 -1.25 4
|
|
||||||
3.0950184 -1 4
|
|
||||||
5.9513144 -3 4
|
|
||||||
6.108964 -2.5 4
|
|
||||||
4.323779 -1.25 4
|
|
||||||
5.9513144 -3 4
|
|
||||||
9.5 -2.5 4
|
|
||||||
6.108964 -2.5 4
|
|
||||||
9.5 -3 4
|
|
||||||
6.108964 -2.5 4
|
|
||||||
5.9513144 -3 4
|
|
||||||
9.5 -3 4
|
|
||||||
2.5385938 0 4
|
|
||||||
0 -1 4
|
|
||||||
3.0950184 -1 4
|
|
||||||
0 -1 4
|
|
||||||
2.5385938 0 4
|
|
||||||
0 0 4
|
|
||||||
3 0 1 2
|
|
||||||
3 3 4 5
|
|
||||||
3 6 7 8
|
|
||||||
3 9 10 11
|
|
||||||
3 12 13 14
|
|
||||||
3 15 16 17
|
|
||||||
3 18 19 20
|
|
||||||
3 21 22 23
|
|
||||||
3 24 25 26
|
|
||||||
3 27 28 29
|
|
||||||
3 30 31 32
|
|
||||||
3 33 34 35
|
|
||||||
3 36 37 38
|
|
||||||
3 39 40 41
|
|
||||||
3 42 43 44
|
|
||||||
3 45 46 47
|
|
||||||
3 48 49 50
|
|
||||||
3 51 52 53
|
|
||||||
3 54 55 56
|
|
||||||
3 57 58 59
|
|
||||||
3 60 61 62
|
|
||||||
3 63 64 65
|
|
||||||
3 66 67 68
|
|
||||||
3 69 70 71
|
|
||||||
3 72 73 74
|
|
||||||
3 75 76 77
|
|
||||||
3 78 79 80
|
|
||||||
3 81 82 83
|
|
||||||
3 84 85 86
|
|
||||||
3 87 88 89
|
|
||||||
3 90 91 92
|
|
||||||
3 93 94 95
|
|
||||||
3 96 97 98
|
|
||||||
3 99 100 101
|
|
||||||
3 102 103 104
|
|
||||||
3 105 106 107
|
|
||||||
3 108 109 110
|
|
||||||
3 111 112 113
|
|
||||||
3 114 115 116
|
|
||||||
3 117 118 119
|
|
||||||
3 120 121 122
|
|
||||||
3 123 124 125
|
|
||||||
3 126 127 128
|
|
||||||
3 129 130 131
|
|
||||||
3 132 133 134
|
|
||||||
3 135 136 137
|
|
||||||
3 138 139 140
|
|
||||||
3 141 142 143
|
|
||||||
3 144 145 146
|
|
||||||
3 147 148 149
|
|
||||||
3 150 151 152
|
|
||||||
3 153 154 155
|
|
||||||
3 156 157 158
|
|
||||||
3 159 160 161
|
|
||||||
3 162 163 164
|
|
||||||
3 165 166 167
|
|
||||||
3 168 169 170
|
|
||||||
3 171 172 173
|
|
||||||
3 174 175 176
|
|
||||||
3 177 178 179
|
|
||||||
3 180 181 182
|
|
||||||
3 183 184 185
|
|
||||||
3 186 187 188
|
|
||||||
3 189 190 191
|
|
||||||
3 192 193 194
|
|
||||||
3 195 196 197
|
|
||||||
3 198 199 200
|
|
||||||
3 201 202 203
|
|
BIN
e2e/playwright/export-snapshots/ply-ascii.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
e2e/playwright/export-snapshots/ply-binary_big_endian.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
e2e/playwright/export-snapshots/ply-binary_little_endian.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
e2e/playwright/export-snapshots/step-.png
Normal file
After Width: | Height: | Size: 72 KiB |
@ -74,171 +74,171 @@ DATA;
|
|||||||
#58 = CARTESIAN_POINT('NONE', (0, 0.0254, 0.1016));
|
#58 = CARTESIAN_POINT('NONE', (0, 0.0254, 0.1016));
|
||||||
#59 = VERTEX_POINT('NONE', #58);
|
#59 = VERTEX_POINT('NONE', #58);
|
||||||
#60 = DIRECTION('NONE', (0, -1, 0));
|
#60 = DIRECTION('NONE', (0, -1, 0));
|
||||||
#61 = VECTOR('NONE', #60, 0.0254);
|
#61 = VECTOR('NONE', #60, 1);
|
||||||
#62 = CARTESIAN_POINT('NONE', (0, 0, -0));
|
#62 = CARTESIAN_POINT('NONE', (0, 0, -0));
|
||||||
#63 = LINE('NONE', #62, #61);
|
#63 = LINE('NONE', #62, #61);
|
||||||
#64 = DIRECTION('NONE', (0, 0, 1));
|
#64 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#65 = VECTOR('NONE', #64, 0.1016);
|
#65 = VECTOR('NONE', #64, 1);
|
||||||
#66 = CARTESIAN_POINT('NONE', (0, -0.0254, -0));
|
#66 = CARTESIAN_POINT('NONE', (0, -0.0254, -0));
|
||||||
#67 = LINE('NONE', #66, #65);
|
#67 = LINE('NONE', #66, #65);
|
||||||
#68 = DIRECTION('NONE', (0, -1, 0));
|
#68 = DIRECTION('NONE', (0, -1, 0));
|
||||||
#69 = VECTOR('NONE', #68, 0.0254);
|
#69 = VECTOR('NONE', #68, 1);
|
||||||
#70 = CARTESIAN_POINT('NONE', (0, 0, 0.1016));
|
#70 = CARTESIAN_POINT('NONE', (0, 0, 0.1016));
|
||||||
#71 = LINE('NONE', #70, #69);
|
#71 = LINE('NONE', #70, #69);
|
||||||
#72 = DIRECTION('NONE', (0, 0, 1));
|
#72 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#73 = VECTOR('NONE', #72, 0.1016);
|
#73 = VECTOR('NONE', #72, 1);
|
||||||
#74 = CARTESIAN_POINT('NONE', (0, 0, -0));
|
#74 = CARTESIAN_POINT('NONE', (0, 0, -0));
|
||||||
#75 = LINE('NONE', #74, #73);
|
#75 = LINE('NONE', #74, #73);
|
||||||
#76 = DIRECTION('NONE', (1, 0, 0));
|
#76 = DIRECTION('NONE', (1, 0, 0));
|
||||||
#77 = VECTOR('NONE', #76, 0.07861346939195568);
|
#77 = VECTOR('NONE', #76, 1);
|
||||||
#78 = CARTESIAN_POINT('NONE', (0, -0.0254, -0));
|
#78 = CARTESIAN_POINT('NONE', (0, -0.0254, -0));
|
||||||
#79 = LINE('NONE', #78, #77);
|
#79 = LINE('NONE', #78, #77);
|
||||||
#80 = DIRECTION('NONE', (0, 0, 1));
|
#80 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#81 = VECTOR('NONE', #80, 0.1016);
|
#81 = VECTOR('NONE', #80, 1);
|
||||||
#82 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, -0));
|
#82 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, -0));
|
||||||
#83 = LINE('NONE', #82, #81);
|
#83 = LINE('NONE', #82, #81);
|
||||||
#84 = DIRECTION('NONE', (1, 0, 0));
|
#84 = DIRECTION('NONE', (1, 0, 0));
|
||||||
#85 = VECTOR('NONE', #84, 0.07861346939195568);
|
#85 = VECTOR('NONE', #84, 1);
|
||||||
#86 = CARTESIAN_POINT('NONE', (0, -0.0254, 0.1016));
|
#86 = CARTESIAN_POINT('NONE', (0, -0.0254, 0.1016));
|
||||||
#87 = LINE('NONE', #86, #85);
|
#87 = LINE('NONE', #86, #85);
|
||||||
#88 = DIRECTION('NONE', (0.8191520442889919, -0.5735764363510459, 0));
|
#88 = DIRECTION('NONE', (0.8191520442889919, -0.5735764363510459, 0));
|
||||||
#89 = VECTOR('NONE', #88, 0.08856709721755177);
|
#89 = VECTOR('NONE', #88, 1);
|
||||||
#90 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, -0));
|
#90 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, -0));
|
||||||
#91 = LINE('NONE', #90, #89);
|
#91 = LINE('NONE', #90, #89);
|
||||||
#92 = DIRECTION('NONE', (0, 0, 1));
|
#92 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#93 = VECTOR('NONE', #92, 0.1016);
|
#93 = VECTOR('NONE', #92, 1);
|
||||||
#94 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, -0));
|
#94 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, -0));
|
||||||
#95 = LINE('NONE', #94, #93);
|
#95 = LINE('NONE', #94, #93);
|
||||||
#96 = DIRECTION('NONE', (0.8191520442889919, -0.5735764363510459, 0));
|
#96 = DIRECTION('NONE', (0.8191520442889919, -0.5735764363510459, 0));
|
||||||
#97 = VECTOR('NONE', #96, 0.08856709721755177);
|
#97 = VECTOR('NONE', #96, 1);
|
||||||
#98 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, 0.1016));
|
#98 = CARTESIAN_POINT('NONE', (0.07861346939195568, -0.0254, 0.1016));
|
||||||
#99 = LINE('NONE', #98, #97);
|
#99 = LINE('NONE', #98, #97);
|
||||||
#100 = DIRECTION('NONE', (1, -0.0000000000000003079278779307945, 0));
|
#100 = DIRECTION('NONE', (1, -0.0000000000000003079278779307945, 0));
|
||||||
#101 = VECTOR('NONE', #100, 0.09013661186554489);
|
#101 = VECTOR('NONE', #100, 1);
|
||||||
#102 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, -0));
|
#102 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, -0));
|
||||||
#103 = LINE('NONE', #102, #101);
|
#103 = LINE('NONE', #102, #101);
|
||||||
#104 = DIRECTION('NONE', (0, 0, 1));
|
#104 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#105 = VECTOR('NONE', #104, 0.1016);
|
#105 = VECTOR('NONE', #104, 1);
|
||||||
#106 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, -0));
|
#106 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, -0));
|
||||||
#107 = LINE('NONE', #106, #105);
|
#107 = LINE('NONE', #106, #105);
|
||||||
#108 = DIRECTION('NONE', (1, -0.0000000000000003079278779307945, 0));
|
#108 = DIRECTION('NONE', (1, -0.0000000000000003079278779307945, 0));
|
||||||
#109 = VECTOR('NONE', #108, 0.09013661186554489);
|
#109 = VECTOR('NONE', #108, 1);
|
||||||
#110 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, 0.1016));
|
#110 = CARTESIAN_POINT('NONE', (0.1511633881344551, -0.07619999999999998, 0.1016));
|
||||||
#111 = LINE('NONE', #110, #109);
|
#111 = LINE('NONE', #110, #109);
|
||||||
#112 = DIRECTION('NONE', (0, 1, 0));
|
#112 = DIRECTION('NONE', (0, 1, 0));
|
||||||
#113 = VECTOR('NONE', #112, 0.012700000000000003);
|
#113 = VECTOR('NONE', #112, 1);
|
||||||
#114 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, -0));
|
#114 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, -0));
|
||||||
#115 = LINE('NONE', #114, #113);
|
#115 = LINE('NONE', #114, #113);
|
||||||
#116 = DIRECTION('NONE', (0, 0, 1));
|
#116 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#117 = VECTOR('NONE', #116, 0.1016);
|
#117 = VECTOR('NONE', #116, 1);
|
||||||
#118 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, -0));
|
#118 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, -0));
|
||||||
#119 = LINE('NONE', #118, #117);
|
#119 = LINE('NONE', #118, #117);
|
||||||
#120 = DIRECTION('NONE', (0, 1, 0));
|
#120 = DIRECTION('NONE', (0, 1, 0));
|
||||||
#121 = VECTOR('NONE', #120, 0.012700000000000003);
|
#121 = VECTOR('NONE', #120, 1);
|
||||||
#122 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, 0.1016));
|
#122 = CARTESIAN_POINT('NONE', (0.2413, -0.0762, 0.1016));
|
||||||
#123 = LINE('NONE', #122, #121);
|
#123 = LINE('NONE', #122, #121);
|
||||||
#124 = DIRECTION('NONE', (-1, 0, 0));
|
#124 = DIRECTION('NONE', (-1, 0, 0));
|
||||||
#125 = VECTOR('NONE', #124, 0.08613231724678178);
|
#125 = VECTOR('NONE', #124, 1);
|
||||||
#126 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, -0));
|
#126 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, -0));
|
||||||
#127 = LINE('NONE', #126, #125);
|
#127 = LINE('NONE', #126, #125);
|
||||||
#128 = DIRECTION('NONE', (0, 0, 1));
|
#128 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#129 = VECTOR('NONE', #128, 0.1016);
|
#129 = VECTOR('NONE', #128, 1);
|
||||||
#130 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, -0));
|
#130 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, -0));
|
||||||
#131 = LINE('NONE', #130, #129);
|
#131 = LINE('NONE', #130, #129);
|
||||||
#132 = DIRECTION('NONE', (-1, 0, 0));
|
#132 = DIRECTION('NONE', (-1, 0, 0));
|
||||||
#133 = VECTOR('NONE', #132, 0.08613231724678178);
|
#133 = VECTOR('NONE', #132, 1);
|
||||||
#134 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, 0.1016));
|
#134 = CARTESIAN_POINT('NONE', (0.2413, -0.0635, 0.1016));
|
||||||
#135 = LINE('NONE', #134, #133);
|
#135 = LINE('NONE', #134, #133);
|
||||||
#136 = DIRECTION('NONE', (-0.8191520442889918, 0.573576436351046, 0));
|
#136 = DIRECTION('NONE', (-0.8191520442889919, 0.573576436351046, 0));
|
||||||
#137 = VECTOR('NONE', #136, 0.11070887152193974);
|
#137 = VECTOR('NONE', #136, 1);
|
||||||
#138 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, -0));
|
#138 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, -0));
|
||||||
#139 = LINE('NONE', #138, #137);
|
#139 = LINE('NONE', #138, #137);
|
||||||
#140 = DIRECTION('NONE', (0, 0, 1));
|
#140 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#141 = VECTOR('NONE', #140, 0.1016);
|
#141 = VECTOR('NONE', #140, 1);
|
||||||
#142 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, -0));
|
#142 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, -0));
|
||||||
#143 = LINE('NONE', #142, #141);
|
#143 = LINE('NONE', #142, #141);
|
||||||
#144 = DIRECTION('NONE', (-0.8191520442889918, 0.573576436351046, 0));
|
#144 = DIRECTION('NONE', (-0.8191520442889919, 0.573576436351046, 0));
|
||||||
#145 = VECTOR('NONE', #144, 0.11070887152193974);
|
#145 = VECTOR('NONE', #144, 1);
|
||||||
#146 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, 0.1016));
|
#146 = CARTESIAN_POINT('NONE', (0.1551676827532182, -0.0635, 0.1016));
|
||||||
#147 = LINE('NONE', #146, #145);
|
#147 = LINE('NONE', #146, #145);
|
||||||
#148 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406993, 0));
|
#148 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406993, 0));
|
||||||
#149 = VECTOR('NONE', #148, 0.09015228031811025);
|
#149 = VECTOR('NONE', #148, 1);
|
||||||
#150 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, -0));
|
#150 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, -0));
|
||||||
#151 = LINE('NONE', #150, #149);
|
#151 = LINE('NONE', #150, #149);
|
||||||
#152 = DIRECTION('NONE', (0, 0, 1));
|
#152 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#153 = VECTOR('NONE', #152, 0.1016);
|
#153 = VECTOR('NONE', #152, 1);
|
||||||
#154 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, -0));
|
#154 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, -0));
|
||||||
#155 = LINE('NONE', #154, #153);
|
#155 = LINE('NONE', #154, #153);
|
||||||
#156 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406993, 0));
|
#156 = DIRECTION('NONE', (0.90630778703665, 0.4226182617406993, 0));
|
||||||
#157 = VECTOR('NONE', #156, 0.09015228031811025);
|
#157 = VECTOR('NONE', #156, 1);
|
||||||
#158 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, 0.1016));
|
#158 = CARTESIAN_POINT('NONE', (0.06448028432509392, 0, 0.1016));
|
||||||
#159 = LINE('NONE', #158, #157);
|
#159 = LINE('NONE', #158, #157);
|
||||||
#160 = DIRECTION('NONE', (1, -0.00000000000000007295344279228718, 0));
|
#160 = DIRECTION('NONE', (1, -0.00000000000000007295344279228718, 0));
|
||||||
#161 = VECTOR('NONE', #160, 0.09511400200349182);
|
#161 = VECTOR('NONE', #160, 1);
|
||||||
#162 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, -0));
|
#162 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, -0));
|
||||||
#163 = LINE('NONE', #162, #161);
|
#163 = LINE('NONE', #162, #161);
|
||||||
#164 = DIRECTION('NONE', (0, 0, 1));
|
#164 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#165 = VECTOR('NONE', #164, 0.1016);
|
#165 = VECTOR('NONE', #164, 1);
|
||||||
#166 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, -0));
|
#166 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, -0));
|
||||||
#167 = LINE('NONE', #166, #165);
|
#167 = LINE('NONE', #166, #165);
|
||||||
#168 = DIRECTION('NONE', (1, -0.00000000000000007295344279228718, 0));
|
#168 = DIRECTION('NONE', (1, -0.00000000000000007295344279228718, 0));
|
||||||
#169 = VECTOR('NONE', #168, 0.09511400200349182);
|
#169 = VECTOR('NONE', #168, 1);
|
||||||
#170 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, 0.1016));
|
#170 = CARTESIAN_POINT('NONE', (0.14618599799650817, 0.03810000000000001, 0.1016));
|
||||||
#171 = LINE('NONE', #170, #169);
|
#171 = LINE('NONE', #170, #169);
|
||||||
#172 = DIRECTION('NONE', (0, 1, 0));
|
#172 = DIRECTION('NONE', (0, 1, 0));
|
||||||
#173 = VECTOR('NONE', #172, 0.012699999999999996);
|
#173 = VECTOR('NONE', #172, 1);
|
||||||
#174 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, -0));
|
#174 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, -0));
|
||||||
#175 = LINE('NONE', #174, #173);
|
#175 = LINE('NONE', #174, #173);
|
||||||
#176 = DIRECTION('NONE', (0, 0, 1));
|
#176 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#177 = VECTOR('NONE', #176, 0.1016);
|
#177 = VECTOR('NONE', #176, 1);
|
||||||
#178 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, -0));
|
#178 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, -0));
|
||||||
#179 = LINE('NONE', #178, #177);
|
#179 = LINE('NONE', #178, #177);
|
||||||
#180 = DIRECTION('NONE', (0, 1, 0));
|
#180 = DIRECTION('NONE', (0, 1, 0));
|
||||||
#181 = VECTOR('NONE', #180, 0.012699999999999996);
|
#181 = VECTOR('NONE', #180, 1);
|
||||||
#182 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, 0.1016));
|
#182 = CARTESIAN_POINT('NONE', (0.2413, 0.0381, 0.1016));
|
||||||
#183 = LINE('NONE', #182, #181);
|
#183 = LINE('NONE', #182, #181);
|
||||||
#184 = DIRECTION('NONE', (-1, 0, 0));
|
#184 = DIRECTION('NONE', (-1, 0, 0));
|
||||||
#185 = VECTOR('NONE', #184, 0.0979295242190572);
|
#185 = VECTOR('NONE', #184, 1);
|
||||||
#186 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, -0));
|
#186 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, -0));
|
||||||
#187 = LINE('NONE', #186, #185);
|
#187 = LINE('NONE', #186, #185);
|
||||||
#188 = DIRECTION('NONE', (0, 0, 1));
|
#188 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#189 = VECTOR('NONE', #188, 0.1016);
|
#189 = VECTOR('NONE', #188, 1);
|
||||||
#190 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, -0));
|
#190 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, -0));
|
||||||
#191 = LINE('NONE', #190, #189);
|
#191 = LINE('NONE', #190, #189);
|
||||||
#192 = DIRECTION('NONE', (-1, 0, 0));
|
#192 = DIRECTION('NONE', (-1, 0, 0));
|
||||||
#193 = VECTOR('NONE', #192, 0.0979295242190572);
|
#193 = VECTOR('NONE', #192, 1);
|
||||||
#194 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, 0.1016));
|
#194 = CARTESIAN_POINT('NONE', (0.2413, 0.0508, 0.1016));
|
||||||
#195 = LINE('NONE', #194, #193);
|
#195 = LINE('NONE', #194, #193);
|
||||||
#196 = DIRECTION('NONE', (-0.9063077870366499, -0.42261826174069944, 0));
|
#196 = DIRECTION('NONE', (-0.90630778703665, -0.42261826174069944, 0));
|
||||||
#197 = VECTOR('NONE', #196, 0.06010152021207346);
|
#197 = VECTOR('NONE', #196, 1);
|
||||||
#198 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, -0));
|
#198 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, -0));
|
||||||
#199 = LINE('NONE', #198, #197);
|
#199 = LINE('NONE', #198, #197);
|
||||||
#200 = DIRECTION('NONE', (0, 0, 1));
|
#200 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#201 = VECTOR('NONE', #200, 0.1016);
|
#201 = VECTOR('NONE', #200, 1);
|
||||||
#202 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, -0));
|
#202 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, -0));
|
||||||
#203 = LINE('NONE', #202, #201);
|
#203 = LINE('NONE', #202, #201);
|
||||||
#204 = DIRECTION('NONE', (-0.9063077870366499, -0.42261826174069944, 0));
|
#204 = DIRECTION('NONE', (-0.90630778703665, -0.42261826174069944, 0));
|
||||||
#205 = VECTOR('NONE', #204, 0.06010152021207346);
|
#205 = VECTOR('NONE', #204, 1);
|
||||||
#206 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, 0.1016));
|
#206 = CARTESIAN_POINT('NONE', (0.14337047578094278, 0.0508, 0.1016));
|
||||||
#207 = LINE('NONE', #206, #205);
|
#207 = LINE('NONE', #206, #205);
|
||||||
#208 = DIRECTION('NONE', (-1, 0, 0));
|
#208 = DIRECTION('NONE', (-1, 0, 0));
|
||||||
#209 = VECTOR('NONE', #208, 0.08889999999999999);
|
#209 = VECTOR('NONE', #208, 1);
|
||||||
#210 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, -0));
|
#210 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, -0));
|
||||||
#211 = LINE('NONE', #210, #209);
|
#211 = LINE('NONE', #210, #209);
|
||||||
#212 = DIRECTION('NONE', (0, 0, 1));
|
#212 = DIRECTION('NONE', (0, 0, 1));
|
||||||
#213 = VECTOR('NONE', #212, 0.1016);
|
#213 = VECTOR('NONE', #212, 1);
|
||||||
#214 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
|
#214 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
|
||||||
#215 = LINE('NONE', #214, #213);
|
#215 = LINE('NONE', #214, #213);
|
||||||
#216 = DIRECTION('NONE', (-1, 0, 0));
|
#216 = DIRECTION('NONE', (-1, 0, 0));
|
||||||
#217 = VECTOR('NONE', #216, 0.08889999999999999);
|
#217 = VECTOR('NONE', #216, 1);
|
||||||
#218 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, 0.1016));
|
#218 = CARTESIAN_POINT('NONE', (0.08889999999999999, 0.0254, 0.1016));
|
||||||
#219 = LINE('NONE', #218, #217);
|
#219 = LINE('NONE', #218, #217);
|
||||||
#220 = DIRECTION('NONE', (0, -1, 0));
|
#220 = DIRECTION('NONE', (0, -1, 0));
|
||||||
#221 = VECTOR('NONE', #220, 0.0254);
|
#221 = VECTOR('NONE', #220, 1);
|
||||||
#222 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
|
#222 = CARTESIAN_POINT('NONE', (0, 0.0254, -0));
|
||||||
#223 = LINE('NONE', #222, #221);
|
#223 = LINE('NONE', #222, #221);
|
||||||
#224 = DIRECTION('NONE', (0, -1, 0));
|
#224 = DIRECTION('NONE', (0, -1, 0));
|
||||||
#225 = VECTOR('NONE', #224, 0.0254);
|
#225 = VECTOR('NONE', #224, 1);
|
||||||
#226 = CARTESIAN_POINT('NONE', (0, 0.0254, 0.1016));
|
#226 = CARTESIAN_POINT('NONE', (0, 0.0254, 0.1016));
|
||||||
#227 = LINE('NONE', #226, #225);
|
#227 = LINE('NONE', #226, #225);
|
||||||
#228 = EDGE_CURVE('NONE', #5, #7, #63, .T.);
|
#228 = EDGE_CURVE('NONE', #5, #7, #63, .T.);
|
||||||
|
BIN
e2e/playwright/export-snapshots/stl-ascii.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
e2e/playwright/export-snapshots/stl-binary.png
Normal file
After Width: | Height: | Size: 60 KiB |
@ -14,6 +14,7 @@ try {
|
|||||||
} catch (err) {
|
} catch (err) {
|
||||||
// probably running in CI
|
// probably running in CI
|
||||||
secrets.token = process.env.token || ''
|
secrets.token = process.env.token || ''
|
||||||
|
secrets.snapshottoken = process.env.snapshottoken || ''
|
||||||
// add more env vars here to make them available in CI
|
// add more env vars here to make them available in CI
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import { v4 as uuidv4 } from 'uuid'
|
|||||||
import { getUtils } from './test-utils'
|
import { getUtils } from './test-utils'
|
||||||
import { Models } from '@kittycad/lib'
|
import { Models } from '@kittycad/lib'
|
||||||
import fsp from 'fs/promises'
|
import fsp from 'fs/promises'
|
||||||
|
import { spawn } from 'child_process'
|
||||||
|
|
||||||
test.beforeEach(async ({ context, page }) => {
|
test.beforeEach(async ({ context, page }) => {
|
||||||
await context.addInitScript(async (token) => {
|
await context.addInitScript(async (token) => {
|
||||||
@ -137,6 +138,7 @@ test('change camera, show planes', async ({ page, context }) => {
|
|||||||
|
|
||||||
test('exports of each format should work', async ({ page, context }) => {
|
test('exports of each format should work', async ({ page, context }) => {
|
||||||
// FYI this test doesn't work with only engine running locally
|
// FYI this test doesn't work with only engine running locally
|
||||||
|
// And you will need to have the KittyCAD CLI installed
|
||||||
const u = getUtils(page)
|
const u = getUtils(page)
|
||||||
await context.addInitScript(async () => {
|
await context.addInitScript(async () => {
|
||||||
;(window as any).playwrightSkipFilePicker = true
|
;(window as any).playwrightSkipFilePicker = true
|
||||||
@ -196,7 +198,14 @@ const part001 = startSketchOn('-XZ')
|
|||||||
|
|
||||||
await page.getByRole('button', { name: 'KittyCAD Modeling App' }).click()
|
await page.getByRole('button', { name: 'KittyCAD Modeling App' }).click()
|
||||||
|
|
||||||
const doExport = async (output: Models['OutputFormat_type']) => {
|
interface Paths {
|
||||||
|
modelPath: string
|
||||||
|
imagePath: string
|
||||||
|
outputType: string
|
||||||
|
}
|
||||||
|
const doExport = async (
|
||||||
|
output: Models['OutputFormat_type']
|
||||||
|
): Promise<Paths> => {
|
||||||
await page.getByRole('button', { name: 'Export Model' }).click()
|
await page.getByRole('button', { name: 'Export Model' }).click()
|
||||||
|
|
||||||
const exportSelect = page.getByTestId('export-type')
|
const exportSelect = page.getByTestId('export-type')
|
||||||
@ -210,10 +219,10 @@ const part001 = startSketchOn('-XZ')
|
|||||||
const downloadPromise = page.waitForEvent('download')
|
const downloadPromise = page.waitForEvent('download')
|
||||||
await page.getByRole('button', { name: 'Export', exact: true }).click()
|
await page.getByRole('button', { name: 'Export', exact: true }).click()
|
||||||
const download = await downloadPromise
|
const download = await downloadPromise
|
||||||
const downloadLocationer = (extra = '') =>
|
const downloadLocationer = (extra = '', isImage = false) =>
|
||||||
`./e2e/playwright/export-snapshots/${output.type}-${
|
`./e2e/playwright/export-snapshots/${output.type}-${
|
||||||
'storage' in output ? output.storage : ''
|
'storage' in output ? output.storage : ''
|
||||||
}${extra}.${output.type}`
|
}${extra}.${isImage ? 'png' : output.type}`
|
||||||
const downloadLocation = downloadLocationer()
|
const downloadLocation = downloadLocationer()
|
||||||
const downloadLocation2 = downloadLocationer('-2')
|
const downloadLocation2 = downloadLocationer('-2')
|
||||||
|
|
||||||
@ -249,6 +258,11 @@ const part001 = startSketchOn('-XZ')
|
|||||||
)
|
)
|
||||||
await fsp.writeFile(downloadLocation, newFileContents)
|
await fsp.writeFile(downloadLocation, newFileContents)
|
||||||
}
|
}
|
||||||
|
return {
|
||||||
|
modelPath: downloadLocation,
|
||||||
|
imagePath: downloadLocationer('', true),
|
||||||
|
outputType: output.type,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const axisDirectionPair: Models['AxisDirectionPair_type'] = {
|
const axisDirectionPair: Models['AxisDirectionPair_type'] = {
|
||||||
axis: 'z',
|
axis: 'z',
|
||||||
@ -258,13 +272,73 @@ const part001 = startSketchOn('-XZ')
|
|||||||
forward: axisDirectionPair,
|
forward: axisDirectionPair,
|
||||||
up: axisDirectionPair,
|
up: axisDirectionPair,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const exportLocations: Paths[] = []
|
||||||
|
|
||||||
// NOTE it was easiest to leverage existing types and have doExport take Models['OutputFormat_type'] as in input
|
// NOTE it was easiest to leverage existing types and have doExport take Models['OutputFormat_type'] as in input
|
||||||
// just note that only `type` and `storage` are used for selecting the drop downs is the app
|
// just note that only `type` and `storage` are used for selecting the drop downs is the app
|
||||||
// the rest are only there to make typescript happy
|
// the rest are only there to make typescript happy
|
||||||
await doExport({
|
exportLocations.push(
|
||||||
type: 'step',
|
await doExport({
|
||||||
coords: sysType,
|
type: 'step',
|
||||||
})
|
coords: sysType,
|
||||||
|
})
|
||||||
|
)
|
||||||
|
exportLocations.push(
|
||||||
|
await doExport({
|
||||||
|
type: 'ply',
|
||||||
|
coords: sysType,
|
||||||
|
selection: { type: 'default_scene' },
|
||||||
|
storage: 'ascii',
|
||||||
|
units: 'in',
|
||||||
|
})
|
||||||
|
)
|
||||||
|
exportLocations.push(
|
||||||
|
await doExport({
|
||||||
|
type: 'ply',
|
||||||
|
storage: 'binary_little_endian',
|
||||||
|
coords: sysType,
|
||||||
|
selection: { type: 'default_scene' },
|
||||||
|
units: 'in',
|
||||||
|
})
|
||||||
|
)
|
||||||
|
exportLocations.push(
|
||||||
|
await doExport({
|
||||||
|
type: 'ply',
|
||||||
|
storage: 'binary_big_endian',
|
||||||
|
coords: sysType,
|
||||||
|
selection: { type: 'default_scene' },
|
||||||
|
units: 'in',
|
||||||
|
})
|
||||||
|
)
|
||||||
|
exportLocations.push(
|
||||||
|
await doExport({
|
||||||
|
type: 'stl',
|
||||||
|
storage: 'ascii',
|
||||||
|
coords: sysType,
|
||||||
|
units: 'in',
|
||||||
|
selection: { type: 'default_scene' },
|
||||||
|
})
|
||||||
|
)
|
||||||
|
exportLocations.push(
|
||||||
|
await doExport({
|
||||||
|
type: 'stl',
|
||||||
|
storage: 'binary',
|
||||||
|
coords: sysType,
|
||||||
|
units: 'in',
|
||||||
|
selection: { type: 'default_scene' },
|
||||||
|
})
|
||||||
|
)
|
||||||
|
exportLocations.push(
|
||||||
|
await doExport({
|
||||||
|
// obj seems to be a little flaky, times out tests sometimes
|
||||||
|
type: 'obj',
|
||||||
|
coords: sysType,
|
||||||
|
units: 'in',
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
// TODO: gltfs don't seem to work with snap shots. push onto exportLocations once it's figured out
|
||||||
await doExport({
|
await doExport({
|
||||||
type: 'gltf',
|
type: 'gltf',
|
||||||
storage: 'embedded',
|
storage: 'embedded',
|
||||||
@ -280,45 +354,30 @@ const part001 = startSketchOn('-XZ')
|
|||||||
storage: 'standard',
|
storage: 'standard',
|
||||||
presentation: 'pretty',
|
presentation: 'pretty',
|
||||||
})
|
})
|
||||||
await doExport({
|
|
||||||
type: 'ply',
|
// close page to disconnect websocket since we can only have one open atm
|
||||||
coords: sysType,
|
await page.close()
|
||||||
selection: { type: 'default_scene' },
|
|
||||||
storage: 'ascii',
|
// snapshot exports, good compromise to capture that exports are healthy without getting bogged down in "did the formatting change" changes
|
||||||
units: 'in',
|
// context: https://github.com/KittyCAD/modeling-app/issues/1222
|
||||||
})
|
for (const { modelPath, imagePath, outputType } of exportLocations) {
|
||||||
await doExport({
|
const cliCommand = `export KITTYCAD_TOKEN=${secrets.snapshottoken} && cat ${modelPath} | kittycad file snapshot --output-format=png --src-format=${outputType} - ${imagePath}`
|
||||||
type: 'ply',
|
const child = spawn(cliCommand, { shell: true })
|
||||||
storage: 'binary_little_endian',
|
await new Promise((resolve, reject) => {
|
||||||
coords: sysType,
|
child.on('error', (code: any, msg: any) => {
|
||||||
selection: { type: 'default_scene' },
|
console.log('error', code, msg)
|
||||||
units: 'in',
|
reject()
|
||||||
})
|
})
|
||||||
await doExport({
|
child.on('exit', (code, msg) => {
|
||||||
type: 'ply',
|
console.log('exit', code, msg)
|
||||||
storage: 'binary_big_endian',
|
if (code !== 0) {
|
||||||
coords: sysType,
|
reject(`exit code ${code} for model ${modelPath}`)
|
||||||
selection: { type: 'default_scene' },
|
} else {
|
||||||
units: 'in',
|
resolve(true)
|
||||||
})
|
}
|
||||||
await doExport({
|
})
|
||||||
type: 'stl',
|
child.stderr.on('data', (data) => console.log(`stderr: ${data}`))
|
||||||
storage: 'ascii',
|
child.stdout.on('data', (data) => console.log(`stdout: ${data}`))
|
||||||
coords: sysType,
|
})
|
||||||
units: 'in',
|
}
|
||||||
selection: { type: 'default_scene' },
|
|
||||||
})
|
|
||||||
await doExport({
|
|
||||||
type: 'stl',
|
|
||||||
storage: 'binary',
|
|
||||||
coords: sysType,
|
|
||||||
units: 'in',
|
|
||||||
selection: { type: 'default_scene' },
|
|
||||||
})
|
|
||||||
await doExport({
|
|
||||||
// obj seems to be a little flaky, times out tests sometimes
|
|
||||||
type: 'obj',
|
|
||||||
coords: sysType,
|
|
||||||
units: 'in',
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|