object HelloScalismo extends App {
scalismo.initialize()
implicit val rng = scalismo.utils.Random(42)
val ui = ScalismoUI()
import scalismo.io.MeshIO
//Import skull meshes
val meshFiles = new java.io.File("skulls/").listFiles.take(5)
val dataset = meshFiles.map{ f => MeshIO.readMesh(f).get}
val mesh: TriangleMesh[_3D] = dataset(0)
val meshView = ui.show(mesh, "reference")
meshView.color = java.awt.Color.RED
(1 until 5).foreach{i :Int => ui.show(dataset(i), "skull_"+i)}
//After landmarking (4 points each), carry out rigid alignment
import scalismo.registration.LandmarkRegistration
import scalismo.io.LandmarkIO
// val Lms : IndexedSeq[Landmark[_3D]] = LandmarkIO.readLandmarksJson3D(new java.io.File("landmarks/")).get.toIndexedSeq
// println(Lms)
val reference_Lms = LandmarkIO.getLandmarksOf("reference").get
val skull_1_Lms = LandmarkIO.getLandmarksOf("skull_1").get
val bestTransform : RigidTransformation[_3D] = LandmarkRegistration.rigid3DLandmarkRegistration(
reference_Lms,
skull_1_Lms,
center = Point(0, 0, 0)
)
val aligned_skull_1 = mesh.transform(bestTransform)
val alignedPaola = mesh.transform(bestTransform)
val alignedView = ui.show(aligned_skull_1, "aligned_skull_1")
alignedView.color = java.awt.Color.BLUE
}