Naming of the `Isometry` type?

Naming things is really hard! I’m discovering the different geometric types of the library and just realized that the Isometry type is what I was trying to define myself as extrinsic parameters of cameras. Except in theory it shouldn’t. Isometries are the elements of the Eclidean group also written E(3) (in dim 3). While extrinsic parameters are parameters of rigid body motions, which are transformations of the Special Euclidean group SE(3). The tiny difference between E(3) and SE(3) is that isometries can contain reflexions (mirrors) which have determinant of (-1), while rigid body motions, which can be written as the combination of rotation and translation, all have determinant of (+1).

I guess the difference is subtle enough, and “isometry” much more common than “rigid body motion” or “Special Euclidean”, to have the tradoff in favor of keeping the current name. I was thinking that it was worth mentionning in the documentation though?

The doc actually mensions that the Isometry type represents a direct isometry, which I think designs elements of SE(n). Though the documentations of the Isometry2 and Isometry3 type aliases are indeed wrong since they don’t mention “direct”. I agree the docs should be improved here.

1 Like

Oh oops my bad, I read it and yet my mind skipped the “direct” word. You’re right, sorry for the noise here ^^.

When encountering nalgebra I had to go read the wikipedia page on isometries to determine this type is indeed what one uses for rigid motions. I already had “Rigid body motion” and “SE(3)” in my head; maybe the doc string could append “aka rigid body motion aka element of SE(3)”

Good idea! I’ve created an issue to keep this in mind.