render-lines.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info.
  3. *
  4. * @author Alexander Rose <alexander.rose@weirdbyte.de>
  5. */
  6. import './index.html';
  7. import { resizeCanvas } from '../../mol-canvas3d/util';
  8. import { Canvas3D, Canvas3DContext } from '../../mol-canvas3d/canvas3d';
  9. import { LinesBuilder } from '../../mol-geo/geometry/lines/lines-builder';
  10. import { Mat4 } from '../../mol-math/linear-algebra';
  11. import { DodecahedronCage } from '../../mol-geo/primitive/dodecahedron';
  12. import { Lines } from '../../mol-geo/geometry/lines/lines';
  13. import { Color } from '../../mol-util/color';
  14. import { createRenderObject } from '../../mol-gl/render-object';
  15. import { Representation } from '../../mol-repr/representation';
  16. import { ParamDefinition } from '../../mol-util/param-definition';
  17. import { AssetManager } from '../../mol-util/assets';
  18. const parent = document.getElementById('app')!;
  19. parent.style.width = '100%';
  20. parent.style.height = '100%';
  21. const canvas = document.createElement('canvas');
  22. parent.appendChild(canvas);
  23. resizeCanvas(canvas, parent);
  24. const assetManager = new AssetManager();
  25. const canvas3d = Canvas3D.create(Canvas3DContext.fromCanvas(canvas, assetManager));
  26. canvas3d.animate();
  27. function linesRepr() {
  28. const linesBuilder = LinesBuilder.create();
  29. const t = Mat4.identity();
  30. const dodecahedronCage = DodecahedronCage();
  31. linesBuilder.addCage(t, dodecahedronCage, 0);
  32. const lines = linesBuilder.getLines();
  33. const props = ParamDefinition.getDefaultValues(Lines.Utils.Params);
  34. const values = Lines.Utils.createValuesSimple(lines, props, Color(0xFF0000), 3);
  35. const state = Lines.Utils.createRenderableState(props);
  36. const renderObject = createRenderObject('lines', values, state, -1);
  37. const repr = Representation.fromRenderObject('cage-lines', renderObject);
  38. return repr;
  39. }
  40. canvas3d.add(linesRepr());
  41. canvas3d.requestCameraReset();