# Mythbuster: Mirror Operation with Quaternion

Mirror operation : all vertex positions must be reflected by a specific plane (here YZ).
Synonyms: FlipHorizontal, SymmetryX, MirrorX,

What implementations I already know that work:
1) Multiplying by -1 scale. Unfortunately that is not allowed in unity because it messes with physics and lighting.
2) Vertex Manipulation. Yes, it works!!!

And now here comes the "Myth" from mr. evil person...
Mirror operation can be implemented if you get a "lucky" quaternion rotation. He says that:
a) if "euler rotation" suffers from Gimbal Lock, and Quaternion doesnt.
b) Then If quaternion (Matrix 4x4) cannot represent mirror operation, then increasing the #dimensions to Pentaternion (Matrix 5x5), Or Hexaternion (Matrix 6x6) is sure to solve the problem.

Note: I am not looking for "Reverse" operation (15 degree rotation converted to (360-15) degree rotation at that axis). I am looking for a way to "free" my model from those rotation limiting axes... I tried everything but couldn't achieve "Red" projection with a quaternion, maybe I miss something...

Is he right ? Or a quaternion cannot implement reflection and that myth is Busted?

Unity allows me to use all transform operations (Translation, Rotation, Instancing) but not scaling (messes up physics and lighting).

• It's true that a quaternion as used in Unity can't stand in for a reflection. (So for instance, if you had a chain of objects that represented a left arm, you could mirror all of the orientations to pose it like a right arm - but the hand mesh would still be a left hand when you look at it. There's no way to turn a hand in 3D space to get its mirror image) BUT, if your objects are symmetrical (like the boxes in your example image) then you can mirror their pose. It's only asymmetric mesh/texture details you need to watch out for. Would that suit your needs? – DMGregory Jun 15 '17 at 0:31
• so that confirms that it is impossible for a rotation to manage to mirror an object – user2186597 Jun 15 '17 at 7:01