diff --git a/src/mol-geo/primitive/tetrahedron.ts b/src/mol-geo/primitive/tetrahedron.ts new file mode 100644 index 0000000000000000000000000000000000000000..fd89bf8e118636b3b7efa934461e57eca1549dd9 --- /dev/null +++ b/src/mol-geo/primitive/tetrahedron.ts @@ -0,0 +1,36 @@ +/** + * Copyright (c) 2019 mol* contributors, licensed under MIT, See LICENSE file for more info. + * + * @author Alexander Rose <alexander.rose@weirdbyte.de> + */ + +import { createPrimitive, Primitive } from './primitive'; +import { createCage, Cage } from './cage'; + +export const tetrahedronVertices: ReadonlyArray<number> = [ + 0.7071, 0, 0, -0.3535, 0.6123, 0, -0.3535, -0.6123, 0, + 0, 0, 0.7071, 0, 0, -0.7071 + +]; + +export const tetrahedronIndices: ReadonlyArray<number> = [ + 4, 1, 0, 4, 2, 1, 4, 0, 2, + 0, 1, 3, 1, 2, 3, 2, 0, 3, +]; + +const tetrahedronEdges: ReadonlyArray<number> = [ + 0, 1, 1, 2, 2, 0, + 0, 3, 1, 3, 2, 3, + 0, 4, 1, 4, 2, 4, +] + +let tetrahedron: Primitive +export function Tetrahedron(): Primitive { + if (!tetrahedron) tetrahedron = createPrimitive(tetrahedronVertices, tetrahedronIndices) + return tetrahedron +} + +const tetrahedronCage = createCage(tetrahedronVertices, tetrahedronEdges) +export function TetrahedronCage(): Cage { + return tetrahedronCage +} \ No newline at end of file