ToothShape {Toothnroll}R Documentation

ToothShape

Description

Tool for the extraction of equiangular landmarks on the entire dental region of interest

Usage

ToothShape(
  tooth.core,
  num.land,
  sects_vector,
  cent.out = "E",
  delta = 0.1,
  direction = "c",
  out.sur = NULL,
  inn.sur = NULL
)

Arguments

tooth.core

list: tooth.core object

num.land

numeric: number of landmarks defining each section

sects_vector

numeric: number of sections

cent.out

how to define the center of each section. The method allowed are "CCA" (center of cortical area), "E" (barycenter of the external outline) and "I" (barycenter of the internal outline)

delta

pixel size used to calculate the CCA

direction

clockwise if "c", anticlockwise if"a"

out.sur

mesh: if provided, the external outlines will be projected back on the surface

inn.sur

mesh: if provided, the internal outlines will be projected back on the surface

Value

out3D num.pointsx3xnum.sect array in which the external outlines are stored

inn3D num.pointsx3xnum.sect array in which the internal outlines are stored

out2D num.pointsx2xnum.sect array in which the external outlines are stored

inn2D num.pointsx2xnum.sect array in which the interal outlines are stored

ALPM_inn array with the coordinates of ALPM coordinates on the external outline

ALPM_out array with the coordinates of ALPM coordinates on the internal outline

mech_length length of the selected region of interest

start percentage of the mechanical length from which the first section is defined

end percentage of the mechanical length from which the last section is defined

centroids of the cross-sections

Author(s)

Antonio Profico; Mathilde Augoyard

Examples


data("URI1_tooth")
require(morphomap)
require(rgl)
Enamel<-URI1_tooth$mesh1
Dentin<-URI1_tooth$mesh2
Pulp<-URI1_tooth$mesh3
outline<-URI1_tooth$outline
set<-URI1_tooth$set

#Unrolling the crown
AlignMeshes<-ToothAlignment(mesh1=Enamel,mesh2=Dentin,mesh3=Pulp,set,outline,analyse = "c")
#Virtual sectioning dentine-pulp
External<-AlignMeshes$almesh1$mesh
Internal<-AlignMeshes$almesh2$mesh
#Define 16 cross-sections from the 30% to the 90% along the crown
Core<-ToothCore(External,Internal,num.points = 1000,num.sect =16,
                bio.len = AlignMeshes$length,start=0.3,end=0.9)
Shape<-ToothShape(Core,num.land = 21,sects_vector = NULL,direction = "a")

plot3d(morphomapArray2matrix(Shape$"out3D"),type="s",radius = 0.1,aspect=FALSE,
xlab="x",ylab="y",zlab="z")
plot3d(morphomapArray2matrix(Shape$"inn3D"),type="s",radius = 0.1,aspect=FALSE,
add=TRUE)
wire3d(AlignMeshes$almesh2$mesh,col="white")
wire3d(AlignMeshes$almesh1$mesh,col="violet")

#Unrolling the rooth
AlignMeshes<-ToothAlignment(mesh1=Enamel,mesh2=Dentin,mesh3=Pulp,set,outline,
analyse = "r")
#Virtual sectioning dentine-pulp
External<-AlignMeshes$almesh2$mesh
Internal<-AlignMeshes$almesh3$mesh
#Define 16 cross-sections from the 10% to the 50% along the root
Core<-ToothCore(External,Internal,num.points = 1000,num.sect =16,
                bio.len = AlignMeshes$length,start=0.1,end=0.5)
Shape<-ToothShape(Core,num.land = 21,sects_vector = NULL,direction = "a")

plot3d(morphomapArray2matrix(Shape$"out3D"),type="s",radius = 0.1,aspect=FALSE,
xlab="x",ylab="y",zlab="z")
plot3d(morphomapArray2matrix(Shape$"inn3D"),type="s",radius = 0.1,aspect=FALSE,
add=TRUE)
wire3d(AlignMeshes$almesh3$mesh,col="red")
wire3d(AlignMeshes$almesh2$mesh,col="lightblue")
wire3d(AlignMeshes$almesh1$mesh,col="white")


[Package Toothnroll version 1.11 Index]