ToothAlignment {Toothnroll} | R Documentation |
ToothAlignment
Description
Align dental meshes using as reference the cervical outline and five landmarks
Usage
ToothAlignment(mesh1, mesh2, mesh3 = NULL, set, outline, analyse = c("r", "c"))
Arguments
mesh1 |
3D mesh: dental mesh (enamel) |
mesh2 |
3D mesh: dental mesh (dentin) |
mesh3 |
3D mesh: dental mesh (dental pulp) |
set |
matrix: 5 landmarks acquired on the mesh (see details) |
outline |
matrix: set of coordinates along the cerical outline |
analyse |
character: "r" for root, "c" for crown |
Details
The function needs five landmarks to align the dental meshes. Usually landmarks from 1 to 4 define the Lingual, Mesial, Buccal and Distal margins. The fifth landmark defines the end of the z axis (biomechanical length). The centroid of the cervical outline defines the origin of axes.
Value
almesh1: mesh of the aligned mesh1
almesh2: mesh of the aligned mesh2
almesh3: mesh of the aligned mesh3
alset: coordinates of the aligned landmark configuration
length: biomechanical length of the root (see details)
margins: coordinates of the landmarks in correspondence of the four margins
margins_sel: position of the margin along the outline
aloutline: coordinates of the aligned cervical outline
diamBL: bucco-lingual diameter
diamMD: mesio-distal diameter
Author(s)
Antonio Profico; Mathilde Augoyard
Examples
data("URI1_tooth")
Enamel<-URI1_tooth$mesh1
Dentin<-URI1_tooth$mesh2
Pulp<-URI1_tooth$mesh3
outline<-URI1_tooth$outline
set<-URI1_tooth$set
#Example on the root
AlignMeshesR<-ToothAlignment(mesh1=Enamel,mesh2=Dentin,mesh3=Pulp,set,outline,analyse = "r")
require(rgl)
open3d()
shade3d(AlignMeshesR$almesh1$mesh,col="white",alpha=0.5)
shade3d(AlignMeshesR$almesh2$mesh,col="pink",alpha=0.5,add=TRUE)
shade3d(AlignMeshesR$almesh3$mesh,col="orange",alpha=0.5,add=TRUE)
spheres3d(AlignMeshesR$alset,radius=0.25)
spheres3d(AlignMeshesR$outline,radius=0.1,col="blue")
lines3d(AlignMeshesR$outline)
text3d(rbind(AlignMeshesR$outline[AlignMeshesR$margins_sel,],AlignMeshesR$alset[4,]),
texts=1:5,cex=4)
spheres3d(AlignMeshesR$alset[2,],radius=0.3,col="red")
arrow3d(colMeans(AlignMeshesR$aloutline),AlignMeshesR$alset[4,],lwd=3,col="green",
type="lines",s=1/10)
lines3d(rbind(AlignMeshesR$alset[2,],AlignMeshesR$alset[1,]),lwd=3,col="green")
axes3d()
#Example on the crown
AlignMeshesC<-ToothAlignment(mesh1=Enamel,mesh2=Dentin,mesh3=Pulp,set,outline,
analyse = "c")
require(rgl)
open3d()
shade3d(AlignMeshesC$almesh1$mesh,col="white",alpha=0.5)
shade3d(AlignMeshesC$almesh2$mesh,col="pink",alpha=0.5,add=TRUE)
shade3d(AlignMeshesC$almesh3$mesh,col="orange",alpha=0.5,add=TRUE)
spheres3d(AlignMeshesC$alset,radius=0.25)
spheres3d(AlignMeshesC$outline,radius=0.1,col="blue")
lines3d(AlignMeshesC$outline)
text3d(rbind(AlignMeshesC$outline[AlignMeshesC$margins_sel,],AlignMeshesC$alset[4,]),
texts=1:5,cex=4)
spheres3d(AlignMeshesC$alset[2,],radius=0.3,col="red")
arrow3d(colMeans(AlignMeshesC$aloutline),AlignMeshesC$alset[4,],lwd=3,col="green",
type="lines",s=1/10)
lines3d(rbind(AlignMeshesC$alset[2,],AlignMeshesC$alset[1,]),lwd=3,col="green")
lines3d(rbind(AlignMeshesC$alset[2,],AlignMeshesC$alset[1,]),lwd=3,col="green")
axes3d()