# Mirror vertices procedurally

For a mesh being edited procedurally, how do you mirror the manipulation operation across a particular axis/plane?

Can you assume the vertices are always zeroed around the origin?

--

Would you necessarily have to create a "buffer" to store the coordinates, to know which vertex/normal index to invert to mirror?

Is this the idea on mirroring a manipulation on position coord with yz plane symmetry?

```function storeGlobal(mesh){
var vertices=mesh.vertices;
var normals=mesh.normals;
for(i=0;i<vertices.length;i++){
globalMeshVar[vertices_]=normals*;*_
_*}*_
_*}*_
_*function mirror(coord,plane,disp){*_
_*var vertices=globalMeshVar.vertices;*_
_*var normals=globalMeshVar.normals;*_
_*for(i=0;i<vertices.length;i++){*_
_if((vertices *- coord)==0){*_
globalMeshVar[vertices_]+=disp*normals*;*_
globalMeshVar[plane - vertices_]+=disp*(-normals*);*_
_*}*_
_*}*_
_*}*_
_*```
*_

Yes, vertices in mesh data are stored in local coordinates, so to mirror them about any of the three local axes, you can just invert the sign of the position value.

For example, flipping the vertices on the mesh's local X axis:

``````var vertices = mesh.vertices;

for (var i = 0; i < vertices.Length; ++i) {
var v = vertices*;*
_vertices *= Vector3( -v.x, v.y, v.z );*_
_*}*_
_*mesh.vertices = vertices;*_
_*mesh.RecalculateBounds();*_
_*```*_``````

I can mirror my mesh but some faces are not visible.
I recalculate the normal vector from the faces.
Is their anything to do else?,I can mirror my mesh with this but some areas are not visible.
Is thier any workaround?