UNPKG

@jscad/modeling

Version:

Constructive Solid Geometry (CSG) Library for JSCAD

23 lines (19 loc) 687 B
const mat4 = require('../../maths/mat4') const vec3 = require('../../maths/vec3') const create = require('./create') /** * Transform the given polygon using the given matrix. * @param {mat4} matrix - the matrix to transform with * @param {poly3} polygon - the polygon to transform * @returns {poly3} a new polygon * @alias module:modeling/geometries/poly3.transform */ const transform = (matrix, polygon) => { const vertices = polygon.vertices.map((vertex) => vec3.transform(vec3.create(), vertex, matrix)) if (mat4.isMirroring(matrix)) { // reverse the order to preserve the orientation vertices.reverse() } return create(vertices) } module.exports = transform