jsketcher/test/coreTests/testCases/craftBoolean.js
2020-03-24 00:08:30 -07:00

92 lines
No EOL
2.4 KiB
JavaScript

import {DATUM} from '../../../web/app/cad/scene/entites';
import {assertEquals, assertTrue} from '../utils/asserts';
export const TEST_MODE = 'modellerUI';
export function testBooleanUnion(env, ui) {
ui.openWizard('BOX');
ui.wizardOK();
ui.openWizard('DATUM_CREATE');
ui.wizardContext.updateParam('x', 0);
ui.wizardContext.updateParam('y', 500);
ui.wizardContext.updateParam('z', 500);
ui.wizardOK();
ui.selectFirst(DATUM);
ui.openWizard('SPHERE');
ui.wizardOK();
ui.openWizard('UNION');
ui.select([-10, 250, 250], [10, 250, 250]);
ui.select([-260, 500, 500], [-240, 500, 500]);
ui.wizardOK();
assertEquals(1, ui.context.services.cadRegistry.models.length);
let [m1] = ui.rayCast([-10, 250, 250], [10, 250, 250]);
let [m2] = ui.rayCast([-260, 500, 500], [-240, 500, 500]);
assertEquals(m1.shell, m2.shell);
env.done();
}
export function testBooleanIntersect(env, ui) {
ui.openWizard('BOX');
ui.wizardOK();
ui.openWizard('DATUM_CREATE');
ui.wizardContext.updateParam('x', 0);
ui.wizardContext.updateParam('y', 500);
ui.wizardContext.updateParam('z', 500);
ui.wizardOK();
ui.selectFirst(DATUM);
ui.openWizard('SPHERE');
ui.wizardOK();
ui.openWizard('INTERSECTION');
ui.select([-10, 250, 250], [10, 250, 250]);
ui.select([-260, 500, 500], [-240, 500, 500]);
ui.wizardOK();
assertEquals(1, ui.context.services.cadRegistry.models.length);
let [m1] = ui.rayCast([-10, 250, 250], [10, 250, 250]);
let [m2] = ui.rayCast([-260, 500, 500], [-240, 500, 500]);
assertTrue(m1 === undefined);
assertTrue(m2 === undefined);
ui.select([-10, 450, 450], [10, 450, 450]);
assertTrue(ui.context.services.selection.face.single !== undefined);
env.done();
}
export function testBooleanSubtract(env, ui) {
ui.openWizard('BOX');
ui.wizardOK();
ui.openWizard('DATUM_CREATE');
ui.wizardContext.updateParam('x', 0);
ui.wizardContext.updateParam('y', 500);
ui.wizardContext.updateParam('z', 500);
ui.wizardOK();
ui.selectFirst(DATUM);
ui.openWizard('SPHERE');
ui.wizardOK();
ui.openWizard('SUBTRACT');
ui.select([-10, 250, 250], [10, 250, 250]);
ui.select([-260, 500, 500], [-240, 500, 500]);
ui.wizardOK();
assertEquals(1, ui.context.services.cadRegistry.models.length);
let [m1] = ui.rayCast([-10, 250, 250], [10, 250, 250]);
let [m2] = ui.rayCast([-260, 500, 500], [-240, 500, 500]);
assertTrue(m1 !== undefined);
assertTrue(m2 === undefined);
env.done();
}