UNPKG

molstar

Version:

A comprehensive macromolecular library.

32 lines (31 loc) 1.81 kB
"use strict"; /** * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ Object.defineProperty(exports, "__esModule", { value: true }); exports.addAxes = void 0; var linear_algebra_1 = require("../../../../mol-math/linear-algebra"); var mesh_builder_1 = require("../mesh-builder"); var geometry_1 = require("../../../../mol-math/geometry"); var cage_1 = require("../../../primitive/cage"); var tmpVec = (0, linear_algebra_1.Vec3)(); var tmpMatrix = linear_algebra_1.Mat4.identity(); var tmpVertices = new Float32Array(6 * 3); var tmpEdges = new Uint8Array([0, 1, 2, 3, 4, 5]); function addAxes(state, axes, radiusScale, detail, radialSegments) { var origin = axes.origin, dirA = axes.dirA, dirB = axes.dirB, dirC = axes.dirC; linear_algebra_1.Vec3.add(tmpVec, origin, dirA); linear_algebra_1.Vec3.toArray(linear_algebra_1.Vec3.add(tmpVec, origin, dirA), tmpVertices, 0); linear_algebra_1.Vec3.toArray(linear_algebra_1.Vec3.sub(tmpVec, origin, dirA), tmpVertices, 3); linear_algebra_1.Vec3.toArray(linear_algebra_1.Vec3.add(tmpVec, origin, dirB), tmpVertices, 6); linear_algebra_1.Vec3.toArray(linear_algebra_1.Vec3.sub(tmpVec, origin, dirB), tmpVertices, 9); linear_algebra_1.Vec3.toArray(linear_algebra_1.Vec3.add(tmpVec, origin, dirC), tmpVertices, 12); linear_algebra_1.Vec3.toArray(linear_algebra_1.Vec3.sub(tmpVec, origin, dirC), tmpVertices, 15); var cage = (0, cage_1.createCage)(tmpVertices, tmpEdges); var volume = geometry_1.Axes3D.volume(axes); var radius = (Math.cbrt(volume) / 300) * radiusScale; mesh_builder_1.MeshBuilder.addCage(state, tmpMatrix, cage, radius, detail, radialSegments); } exports.addAxes = addAxes;