Getting new coordinates of points after rotation

Hi! I have these set of points witch make a polygon, I would like to rotate the polygon and get new points coordinates (with the rotation applied).

I’ve tried the following:

// points is an ordered list of Vector3 which define the polygon
const geo1 = new THREE.Geometry()
points.forEach(p =geo1.vertices.push(p))
console.log(geo1.vertices)
const line1 = new THREE.Line(geo1, new THREE.LineBasicMaterial({color: 0xff0000}))
line1.rotation.y += Math.PI
line1.rotation.z += Math.PI

const geo2 = line1.geometry.clone()
geo2.applyMatrix(line1.matrix)
console.log(geo2.vertices) // this gives me the same vertices of geo1, why?

I guess I am missing something obvious here!_!

You can try this snippet I often reuse.

function rotateAboutPoint(obj, point, axis, theta){  
    obj.position.sub(point);
    obj.position.applyAxisAngle(axis, theta);
    obj.position.add(point);
    obj.rotateOnAxis(axis, theta);
    return obj;
}

It can rotate an object around an arbitrary point (in your case) would be the polygon center I guess.

Also I think directly modifying mesh geometry through its vertices requires you to set a verticesNeedUpdate (or something similar on the mesh geometry) to true.