Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import macro from 'vtk.js/Sources/macros'; import vtkCircleSource from 'vtk.js/Sources/Filters/Sources/CircleSource'; import vtkGlyphRepresentation from 'vtk.js/Sources/Widgets/Representations/GlyphRepresentation'; import { Behavior } from 'vtk.js/Sources/Widgets/Representations/WidgetRepresentation/Constants'; import { Resolve } from 'vtk.js/Sources/Rendering/Core/Mapper/CoincidentTopologyHelper'; // ---------------------------------------------------------------------------- // vtkCircleContextRepresentation methods // ---------------------------------------------------------------------------- function vtkCircleContextRepresentation(publicAPI, model) { // Set our className model.classHierarchy.push('vtkCircleContextRepresentation'); // -------------------------------------------------------------------------- // Generic rendering pipeline // -------------------------------------------------------------------------- model._pipeline.actor.getProperty().setOpacity(0.2); model._pipeline.mapper.setResolveCoincidentTopology(Resolve.PolygonOffset); model._pipeline.mapper.setRelativeCoincidentTopologyPolygonOffsetParameters( -1, -1 ); // -------------------------------------------------------------------------- publicAPI.setGlyphResolution = macro.chain( publicAPI.setGlyphResolution, model._pipeline.glyph.setResolution ); // -------------------------------------------------------------------------- publicAPI.setDrawBorder = macro.chain(publicAPI.setDrawBorder, (draw) => model._pipeline.glyph.setLines(draw) ); // -------------------------------------------------------------------------- publicAPI.setDrawFace = macro.chain(publicAPI.setDrawFace, (draw) => model._pipeline.glyph.setFace(draw) ); // -------------------------------------------------------------------------- publicAPI.setOpacity = (opacity) => { model._pipeline.actor.getProperty().setOpacity(opacity); }; } // ---------------------------------------------------------------------------- // Object factory // ---------------------------------------------------------------------------- function defaultValues(initialValues) { return { behavior: Behavior.CONTEXT, glyphResolution: 32, drawBorder: false, drawFace: true, ...initialValues, _pipeline: { glyph: initialValues?.pipeline?.glyph ?? vtkCircleSource.newInstance({ resolution: initialValues.glyphResolution ?? 32, radius: 1, lines: initialValues.drawBorder ?? false, face: initialValues.drawFace ?? true, direction: [0, 0, 1], }), ...initialValues?.pipeline, }, }; } // ---------------------------------------------------------------------------- export function extend(publicAPI, model, initialValues = {}) { vtkGlyphRepresentation.extend(publicAPI, model, defaultValues(initialValues)); macro.setGet(publicAPI, model, ['glyphResolution', 'drawFace', 'drawBorder']); macro.get(publicAPI, model._pipeline, ['glyph', 'mapper', 'actor']); // Object specific methods vtkCircleContextRepresentation(publicAPI, model); } // ---------------------------------------------------------------------------- export const newInstance = macro.newInstance( extend, 'vtkCircleContextRepresentation' ); // ---------------------------------------------------------------------------- export default { newInstance, extend }; |