Dear Maia
There are currently no transformations in Scalismo, which use homogeneous transformation matrices. Instead we build transformations by composing several simpler transformations.
It is, however, simple to write that yourself if you need it. Just extend the trait Transformation[_3D] and override the method f. Here is an example
import scalismo.common.{Domain, RealSpace} import scalismo.registration._ import scalismo.geometry._
class MyOTransformation extends Transformation[_3D] {
override val f: (Point[_3D]) => Point[_3D] = { // implement your transformation here. E.g.for a flipping trasnformation p => Point3D(p.x, p.y, -p.z); }
override def domain: Domain[_3D] = RealSpace[_3D] }
|
|
The rotation center should usually be chosen such that the rotation is performed around the center of mass of the object you want to rotate. Typically this is not (0,0,0). I only choose a center of 0,0,0 when I do a landmark registration, where the rotation matrix can be computed analytically.
Best regards,
Marcel
ps., Transformations in Scalismo are currently a mess. In the next version of Scalismo, that we plan to release shortly, they will be completely redesigned.