R/Face_Normals.R

Defines functions Face_Normals

#' Function to find Face Normals
#'
#' This function re-computes the face normals in a way consistent with MorphoTester.
#' @param plyFile a stanford PLY file  
#' @noRd

Face_Normals <- function(plyFile){
Faces <- plyFile$it

plyFile$Face_Normals <- matrix(0, nrow=length(Faces[1,]), ncol=3)
FNormals <- plyFile$Face_Normals
verts <- plyFile$vb
verts <- verts[1:3,]

Vec1 <- verts[,Faces[2,]] - verts[,Faces[1,]]; 
Vec2 <- verts[,Faces[3,]] - verts[,Faces[1,]];

FNormals <- cross(Vec1,Vec2)
FNormals <- FNormals/repmat(sqrt(colSums(FNormals^2)),3,1)

plyFile$Face_Normals <- FNormals
return(plyFile)
}

Try the molaR package in your browser

Any scripts or data that you put into this service are public.

molaR documentation built on Feb. 16, 2023, 10:33 p.m.