This packages has two utilities to help testing [JsCad] objects using image snapshots with [AVA].
Based on @jscad-regl-rendere the csgReglRenderer provides an easy way to generate a png file from a CSG object.
var sphere = CSG.sphere({
center: [0, 0, 0],
radius: 2, // must be scalar
resolution: 128
});
if (fs.existsSync("test.png")) fs.unlinkSync("test.png");
csgReglRenderer(sphere, "test.png");
-
csgImageSnapshot(testpathname, title, data, [options]) ⇒
Promise
-
Image testing with a snapshot image for CSG objects. Uses looks-same to comare the images. If there is a differnece, the new
temp.png
file andadiff.png
file are created. - csgReglRenderer(data, filename, [options])
-
Renders a JsCad CSG data object into a png file
- glRenderOptions
-
GL render options
- cameraRenderOptions
-
Camera render options
- RenderOptions
-
Options for the csgReglRenderer
Image testing with a snapshot image for CSG objects. Uses looks-same
to comare the images. If there is a differnece,
the new temp.png
file anda diff.png
file are created.
Kind: global function
Returns: Promise
- A promise that resolves true if the rendered images matches the snapshot, false if there is a difference.
Param | Type | Default | Description |
---|---|---|---|
testpathname | string |
The test path name to. | |
title | string |
The title of the test. | |
data | CSG |
CSG data to render | |
[options] | object |
Options to pass to the ReglRenderer. | |
[options.camera] | object |
Options to pass to the ReglRenderer camera. | |
[options.camera.position] | Array.<number> |
[50, -50, 50] |
The position of the camera while rendering. |
[options.gl] | object |
Options to pass to the ReglRenderer glRenderer. | |
[options.gl.width] | number |
1024 |
The width of the rendered image. |
[options.gl.height] | number |
768 |
The height of the rendered image. |
Example
In the test, create a CSG object then call csgImageSnapshot
with
the test object and the CSG data.
Creates a snapshot of the sphere.
test('create a sphere', async t => {
var sphere2 = CSG.sphere({
center: [0, 0, 0],
radius: 11, // must be scalar
resolution: 128
});
var result = await csgImageSnapshot(t, sphere2);
t.false(result);
}
If the test fails, a diff.png
file is created showing the differneces.
Renders a JsCad CSG data object into a png file
Kind: global function
Param | Type | Default | Description |
---|---|---|---|
data | CSG |
A JsCad CSG object. | |
filename | String |
The filename to render the png image. | |
[options] | object |
Options to pass to the ReglRenderer. | |
[options.camera] | object |
Options to pass to the ReglRenderer camera. | |
[options.camera.position] | Array.<number> |
[50, -50, 50] |
The position of the camera while rendering. |
[options.gl] | object |
Options to pass to the ReglRenderer glRenderer. | |
[options.gl.width] | number |
1024 |
The width of the rendered image. |
[options.gl.height] | number |
768 |
The height of the rendered image. |
Example
Render a CSG sphere to the file test.png
.
var sphere = CSG.sphere({
center: [0, 0, 0],
radius: 2, // must be scalar
resolution: 128
});
if (fs.existsSync("test.png")) fs.unlinkSync("test.png");
csgReglRenderer(sphere, "test.png");
GL render options
Kind: global typedef
Param | Type | Description |
---|---|---|
width | number |
The width of the rendered image (default 1024). |
height | number |
The height of the rendered image (default 768). |
Camera render options
Kind: global typedef
Param | Type | Description |
---|---|---|
position | Array |
The position of the camera while rendering (default [50, -50, 50]). |
Options for the csgReglRenderer
Kind: global typedef
Param | Type |
---|---|
camera | cameraRenderOptions |
gl | glRenderOptions |