An interactive function to define which landmarks will "slide" along two-dimensional (2D) or three-dimensional (3D) curves.
define.sliders(landmarks, nsliders, surfsliders = NULL, write.file = TRUE)
A matrix containing 2D or 3D landmark coordinates of landmarks and semilandmarks, OR A vector containing a sequence of numbers corresponding to the landmarks in the order they appear along the curve (for AUTO mode)
Number of landmarks to be semilandmarks that slide along curves
(3D only) If 'landmarks' contains "surface sliders",
e.g. made by buildtemplate
, these should be given as a vector or use surfsliders = T, and function looks for "surfslide.csv" in working directory.
A logical value indicating whether the matrix is written to file as .csv.
Function returns a 'nsliders-x-3' matrix containing the landmark address of the curve sliders, indicating the landmarks between which the slider landmarks will "slide". If write.file = T the matrix is also written to working directory as "curveslide.csv". Matrix (or "curveslide.csv") is designed for use by gpagen
during GPA.
Function takes a matrix of digitized landmark coordinates, such as made by digitize2d
or digit.fixed
,
and helps user choose which landmarks will be treated as "sliders" in Generalized Procrustes analysis
gpagen
. This type of semilandmark "slides" along curves lacking known landmarks
(see Bookstein 1997 for algorithm details).
Each sliding semilandmark ("sliders") will slide between two designated points, along a line
tangent to the specified curvature.
Defining landmarks is an interactive procedure (see below for 2D and 3D routines). The procedure is overlapping. For example: there are 5 landmarks (1:5), 1 and 5 are landmarks and 2,3,4 are sliders, the user must select '1' '2' '3', and then '2' '3' '4', and then '3' '4' '5'.
Choosing which landmarks will be sliders involves landmark selection using a mouse in the plot window. To define the sliders, for each sliding landmark along the curve in the format 'before-slider-after', using the LEFT mouse button (or regular button for Mac users), click on the hollow circle to choose the landmark in the following order:
Click to choose the first landmark between which semi-landmark will "slide",
Click to choose sliding landmark,
Click to choose the last landmark between which semi-landmark will "slide", Selected landmarks will be filled in and lines are drawn connecting the three landmarks, and will highlight the sliding semilandmark in red and the flanking landmarks in blue.
Choosing which landmarks will be sliders involves landmark selection using a mouse in the rgl plot window. With a standard 3-button (PC) buildtemplate uses:
the RIGHT mouse button (primary) to choose points to be defined as sliders,
the LEFT mouse button (secondary) is used to rotate mesh,
the mouse SCROLLER (third/middle) is used to zoom in and out.
press button to rotate 3D mesh,
press button while pressing COMMAND key to select points to be defined as sliders,
press button while pressing OPTION key to adjust mesh perspective.
the mouse SCROLLER or trackpad two finger scroll is used to zoom in an out.
To define the sliders, for each sliding landmark along the curve in the format 'before-slider-after':
Click to choose the first landmark between which semi-landmark will "slide",
Click to choose sliding landmark,
Click to choose the last landmark between which semi-landmark will "slide", Screen will show lines connecting the three landmarks, and will highlight the sliding semilandmark in red.
The input 'landmarks' can be simply a vector of numbers corresponding to the "sliders" (semilandmarks) in the order they appear along a curve on the specimen. This can be made by c() or seq() or any other reasonable method.
If the sliders form a closed curve, then the function assumes that the first and last landmarks in the 'landmarks' vector are THE SAME are fixed (not sliders). e.g. if landmark 1 is a fixed landmark, and 2, 3 and 4 are semilandmarks, then sliders = c(1,2,3,4,1).
Bookstein, F. J. 1997 Landmark Methods for Forms without Landmarks: Morphometrics of Group Differences in Outline Shape. Medical Image Analysis 1(3):225-243.