UNPKG

@thewtex/vtk.js-esm

Version:

Visualization Toolkit for the Web

53 lines (40 loc) 1.85 kB
import macro from '../../macro.js'; import vtkCoordinate from '../../Rendering/Core/Coordinate.js'; // vtkPointPlacer methods // ---------------------------------------------------------------------------- function vtkPointPlacer(publicAPI, model) { // Set our className model.classHierarchy.push('vtkPointPlacer'); publicAPI.computeWorldPosition = function (renderer, displayPos, worldPos) { if (renderer) { var dPos = vtkCoordinate.newInstance(); dPos.setCoordinateSystemToDisplay(); dPos.setValue(displayPos[0], displayPos[1]); worldPos[0] = dPos.getComputedWorldValue(renderer)[0]; worldPos[1] = dPos.getComputedWorldValue(renderer)[1]; worldPos[2] = dPos.getComputedWorldValue(renderer)[2]; return 1; } return 0; }; } // ---------------------------------------------------------------------------- // Object factory // ---------------------------------------------------------------------------- var DEFAULT_VALUES = { pixelTolerance: 5, worldTolerance: 0.001 }; // ---------------------------------------------------------------------------- function extend(publicAPI, model) { var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; Object.assign(model, DEFAULT_VALUES, initialValues); // Build VTK API macro.obj(publicAPI, model); macro.setGet(publicAPI, model, ['pixelTolerance', 'worldTolerance']); // Object methods vtkPointPlacer(publicAPI, model); } // ---------------------------------------------------------------------------- var newInstance = macro.newInstance(extend, 'vtkPointPlacer'); // ---------------------------------------------------------------------------- var vtkPointPlacer$1 = { newInstance: newInstance, extend: extend }; export default vtkPointPlacer$1; export { extend, newInstance };