molstar
Version:
A comprehensive macromolecular library.
56 lines • 2.15 kB
JavaScript
/**
* Copyright (c) 2018-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.WedgeCage = exports.Wedge = exports.createWedge = void 0;
var linear_algebra_1 = require("../../mol-math/linear-algebra");
var primitive_1 = require("./primitive");
var polygon_1 = require("./polygon");
var prism_1 = require("./prism");
var a = linear_algebra_1.Vec3.zero(), b = linear_algebra_1.Vec3.zero(), c = linear_algebra_1.Vec3.zero(), d = linear_algebra_1.Vec3.zero();
var points = (0, polygon_1.polygon)(3, false);
/**
* Create a prism with a triangular base
*/
function createWedge() {
var builder = (0, primitive_1.PrimitiveBuilder)(8);
// create sides
for (var i = 0; i < 3; ++i) {
var ni = (i + 1) % 3;
linear_algebra_1.Vec3.set(a, points[i * 3], points[i * 3 + 1], -0.5);
linear_algebra_1.Vec3.set(b, points[ni * 3], points[ni * 3 + 1], -0.5);
linear_algebra_1.Vec3.set(c, points[ni * 3], points[ni * 3 + 1], 0.5);
linear_algebra_1.Vec3.set(d, points[i * 3], points[i * 3 + 1], 0.5);
builder.add(a, b, c);
builder.add(c, d, a);
}
// create bases
linear_algebra_1.Vec3.set(a, points[0], points[1], -0.5);
linear_algebra_1.Vec3.set(b, points[3], points[4], -0.5);
linear_algebra_1.Vec3.set(c, points[6], points[7], -0.5);
builder.add(c, b, a);
linear_algebra_1.Vec3.set(a, points[0], points[1], 0.5);
linear_algebra_1.Vec3.set(b, points[3], points[4], 0.5);
linear_algebra_1.Vec3.set(c, points[6], points[7], 0.5);
builder.add(a, b, c);
return builder.getPrimitive();
}
exports.createWedge = createWedge;
var wedge;
function Wedge() {
if (!wedge)
wedge = createWedge();
return wedge;
}
exports.Wedge = Wedge;
var wedgeCage;
function WedgeCage() {
if (!wedgeCage)
wedgeCage = (0, prism_1.PrismCage)(points);
return wedgeCage;
}
exports.WedgeCage = WedgeCage;
//# sourceMappingURL=wedge.js.map
;