UNPKG

@kitware/vtk.js

Version:

Visualization Toolkit for the Web

93 lines (75 loc) 3.42 kB
import macro from '../../macros.js'; import vtkActor from '../../Rendering/Core/Actor.js'; import vtkSphereMapper from '../../Rendering/Core/SphereMapper.js'; import vtkStickMapper from '../../Rendering/Core/StickMapper.js'; import vtkMoleculeToRepresentation from '../../Filters/General/MoleculeToRepresentation.js'; import vtkAbstractRepresentationProxy from '../Core/AbstractRepresentationProxy.js'; // vtkMoleculeRepresentationProxy methods // ---------------------------------------------------------------------------- function vtkMoleculeRepresentationProxy(publicAPI, model) { // Set our className model.classHierarchy.push('vtkMoleculeRepresentationProxy'); // Internals model.filter = vtkMoleculeToRepresentation.newInstance(); model.sphereMapper = vtkSphereMapper.newInstance(); model.stickMapper = vtkStickMapper.newInstance(); model.sphereActor = vtkActor.newInstance(); model.stickActor = vtkActor.newInstance(); model.sourceDependencies.push(model.filter); // render sphere model.sphereMapper.setInputConnection(model.filter.getOutputPort(0)); model.sphereMapper.setScaleArray(model.filter.getSphereScaleArrayName()); model.sphereActor.setMapper(model.sphereMapper); // render sticks model.stickMapper.setInputConnection(model.filter.getOutputPort(1)); model.stickMapper.setScaleArray('stickScales'); model.stickMapper.setOrientationArray('orientation'); model.stickActor.setMapper(model.stickMapper); // Add actors model.actors.push(model.sphereActor); model.actors.push(model.stickActor); // API ---------------------------------------------------------------------- publicAPI.setColorBy = function () {}; publicAPI.getColorBy = function () { return []; }; publicAPI.listDataArrays = function () { return []; }; } // ---------------------------------------------------------------------------- // Object factory // ---------------------------------------------------------------------------- var DEFAULT_VALUES = {}; // ---------------------------------------------------------------------------- function extend(publicAPI, model) { var initialValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; Object.assign(model, DEFAULT_VALUES, initialValues); // Object methods vtkAbstractRepresentationProxy.extend(publicAPI, model, initialValues); // Object specific methods vtkMoleculeRepresentationProxy(publicAPI, model); macro.proxyPropertyMapping(publicAPI, model, { tolerance: { modelKey: 'filter', property: 'tolerance' }, atomicRadiusScaleFactor: { modelKey: 'filter', property: 'atomicRadiusScaleFactor' }, bondRadius: { modelKey: 'filter', property: 'bondRadius' }, deltaBondFactor: { modelKey: 'filter', property: 'deltaBondFactor' }, radiusType: { modelKey: 'filter', property: 'radiusType' }, hideElements: { modelKey: 'filter', property: 'hideElements' } }); } // ---------------------------------------------------------------------------- var newInstance = macro.newInstance(extend, 'vtkMoleculeRepresentationProxy'); // ---------------------------------------------------------------------------- var vtkMoleculeRepresentationProxy$1 = { newInstance: newInstance, extend: extend }; export { vtkMoleculeRepresentationProxy$1 as default, extend, newInstance };