The logic behind locator transform freezing

Hi,

I’m curious how Maya freezes locator transformations. I’ve searched and found a couple of explanations of this but I’m not sure I get it completely.
What I understood is, when you freeze transformations, with meshes Maya moves the transform node to the origin and counter-moves the components so they appear in the same place.

Since locators don’t have components this method doesn’t work.

Now, when I freeze a locator which was moved , it will zero out the translation values and transfer the values to the localPosition values. Alright, I can make my peace with this. (if there are no components what is it that gets translated?)

But there are also localScale attributes. Why aren’t scale values get transferred over to localScale values when they are freezed? This is very interesting to me.

Also, why there are no localRotate attributes?

Thanks for your time. I don’t mind a technical explanation. I hope someone can shed some light on this.

Im not sure if this is completely correct but this is my theory.

Locators have a shape node much like geo, but, as you stated, no actual geo to translate when you freeze one. Unlike other shape nodes though, locators have an additional localPosition attribute as well as the worldPosition attribute. My guess is that the worldPosition is used for “geo” position offset by the LocalPosition and then the transform node on top of that works the same as it would on any real piece of geo. This is all just a guess though.

edit: the LocalScale attribute is strange. Its weird that they have it but that it functions so differently from the local Position in that manner. Also like you said, its peculiar to have these two attributes but not a localRotate. Possible it was just a choice to keep the locators simpler, although that seams unlikely.