(test) add bounding box test to asset_tests

This commit is contained in:
Nick Fisher
2025-06-23 12:22:13 +08:00
parent 668c001b49
commit 832319ee1b

View File

@@ -9,98 +9,114 @@ void main() async {
final testHelper = TestHelper("assets"); final testHelper = TestHelper("assets");
await testHelper.setup(); await testHelper.setup();
test('load/clear skybox', () async { test('load/clear skybox', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
await viewer.loadSkybox( await viewer.loadSkybox(
"file://${testHelper.testDir}/assets/default_env_skybox.ktx"); "file://${testHelper.testDir}/assets/default_env_skybox.ktx");
await testHelper.capture(viewer.view, "load_skybox"); await testHelper.capture(viewer.view, "load_skybox");
await viewer.removeSkybox(); await viewer.removeSkybox();
await testHelper.capture(viewer.view, "remove_skybox"); await testHelper.capture(viewer.view, "remove_skybox");
await viewer.setPostProcessing(true); await viewer.setPostProcessing(true);
await viewer.setBloom(false, 0.01); await viewer.setBloom(false, 0.01);
await viewer.loadSkybox( await viewer.loadSkybox(
"file://${testHelper.testDir}/assets/default_env_skybox.ktx"); "file://${testHelper.testDir}/assets/default_env_skybox.ktx");
await testHelper.capture( await testHelper.capture(viewer.view, "load_skybox_with_postprocessing");
viewer.view, "load_skybox_with_postprocessing"); await viewer.removeSkybox();
await viewer.removeSkybox(); await testHelper.capture(
await testHelper.capture( viewer.view, "remove_skybox_with_postprocessing");
viewer.view, "remove_skybox_with_postprocessing"); }, createRenderTarget: true);
}, createRenderTarget: true); });
});
test('sync load/remove gltf from uri', () async { test('sync load/remove gltf from uri', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var asset = await viewer.loadGltf( var asset = await viewer
"file://${testHelper.testDir}/assets/cube.gltf"); .loadGltf("file://${testHelper.testDir}/assets/cube.gltf");
await viewer await viewer
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
await testHelper.capture(viewer.view, "gltf_loaded"); await testHelper.capture(viewer.view, "gltf_loaded");
await viewer.removeFromScene(asset); await viewer.removeFromScene(asset);
await testHelper.capture(viewer.view, "gltf_removed"); await testHelper.capture(viewer.view, "gltf_removed");
}, cameraPosition: Vector3(0, 0, 5)); }, cameraPosition: Vector3(0, 0, 5));
}); });
test('async load/remove gltf from uri', () async { test('async load/remove gltf from uri', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var asset = await viewer.loadGltf("file://${testHelper.testDir}/assets/cube.gltf", loadAsync: true); var asset = await viewer.loadGltf(
await viewer "file://${testHelper.testDir}/assets/cube.gltf",
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); loadAsync: true);
await testHelper.capture(viewer.view, "gltf_async_loaded"); await viewer
await viewer.removeFromScene(asset); .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
await testHelper.capture(viewer.view, "gltf_async_removed"); await testHelper.capture(viewer.view, "gltf_async_loaded");
}, cameraPosition: Vector3(0, 0, 5)); await viewer.removeFromScene(asset);
}); await testHelper.capture(viewer.view, "gltf_async_removed");
}, cameraPosition: Vector3(0, 0, 5));
});
test('sync load/remove gltf from buffer', () async { test('sync load/remove gltf from buffer', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var assetData = var assetData =
File("${testHelper.testDir}/assets/cube.gltf").readAsBytesSync(); File("${testHelper.testDir}/assets/cube.gltf").readAsBytesSync();
var asset = await viewer.loadGltfFromBuffer(assetData, var asset = await viewer.loadGltfFromBuffer(assetData,
resourceUri: "${testHelper.testDir}/assets", loadResourcesAsync: false); resourceUri: "${testHelper.testDir}/assets",
await viewer loadResourcesAsync: false);
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); await viewer
await testHelper.capture(viewer.view, "gltf_load_from_buffer"); .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
}, cameraPosition: Vector3(0, 0, 5)); await testHelper.capture(viewer.view, "gltf_load_from_buffer");
}); }, cameraPosition: Vector3(0, 0, 5));
});
test('transform gltf to unit cube', () async { test('transform gltf to unit cube', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var asset = await viewer.loadGltf( var asset = await viewer
"file://${testHelper.testDir}/assets/cube.gltf"); .loadGltf("file://${testHelper.testDir}/assets/cube.gltf");
await viewer await viewer
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
await asset.setTransform(Matrix4.compose( await asset.setTransform(Matrix4.compose(
Vector3.zero(), Quaternion.identity(), Vector3.all(2))); Vector3.zero(), Quaternion.identity(), Vector3.all(2)));
await testHelper.capture(viewer.view, "gltf_before_unit_cube"); await testHelper.capture(viewer.view, "gltf_before_unit_cube");
await asset.transformToUnitCube(); await asset.transformToUnitCube();
await testHelper.capture(viewer.view, "gltf_after_unit_cube"); await testHelper.capture(viewer.view, "gltf_after_unit_cube");
}, cameraPosition: Vector3(0, 0, 5)); }, cameraPosition: Vector3(0, 0, 5));
}); });
test('add/remove asset from scene ', () async { test('add/remove asset from scene ', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var asset = await viewer var asset =
.loadGltf("file://${testHelper.testDir}/assets/cube.glb"); await viewer.loadGltf("file://${testHelper.testDir}/assets/cube.glb");
await viewer await viewer
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
await testHelper.capture(viewer.view, "asset_added"); await testHelper.capture(viewer.view, "asset_added");
await viewer.removeFromScene(asset); await viewer.removeFromScene(asset);
await testHelper.capture(viewer.view, "asset_removed"); await testHelper.capture(viewer.view, "asset_removed");
}, cameraPosition: Vector3(0, 0, 5)); }, cameraPosition: Vector3(0, 0, 5));
}); });
test('destroy assets', () async { test('destroy assets', () async {
await testHelper.withViewer((viewer) async { await testHelper.withViewer((viewer) async {
var asset = await viewer var asset =
.loadGltf("file://${testHelper.testDir}/assets/cube.glb"); await viewer.loadGltf("file://${testHelper.testDir}/assets/cube.glb");
await viewer await viewer
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx"); .loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
await testHelper.capture(viewer.view, "assets_present"); await testHelper.capture(viewer.view, "assets_present");
await viewer.destroyAssets(); await viewer.destroyAssets();
await testHelper.capture(viewer.view, "assets_destroyed"); await testHelper.capture(viewer.view, "assets_destroyed");
}, cameraPosition: Vector3(0, 0, 5)); }, cameraPosition: Vector3(0, 0, 5));
}); });
test('add/remove bounding box', () async {
await testHelper.withViewer((viewer) async {
var asset =
await viewer.loadGltf("file://${testHelper.testDir}/assets/cube.glb");
await viewer
.loadIbl("file://${testHelper.testDir}/assets/default_env_ibl.ktx");
await viewer.showBoundingBox(asset);
await testHelper.capture(viewer.view, "show_bounding_box");
await viewer.hideBoundingBox(asset);
await testHelper.capture(viewer.view, "hide_bounding_box");
await viewer.hideBoundingBox(asset, destroy: true);
await testHelper.capture(viewer.view, "destroy_bounding_box");
}, cameraPosition: Vector3(0, 0, 5));
});
} }