Code covered by the BSD License

# Defining Cartesian Reference Frames based on Point Positions

### Paolo de Leva (view profile)

21 Oct 2005 (Updated )

Defining 3-D Cartesian reference frames based on the positions of at least 3 non-collinear points

footBAF(HEEL, MET1, MET5, MET2, side, varargin)
```function [Rft, Tft] = footBAF(HEEL, MET1, MET5, MET2, side, varargin)
%FOOTBAF  Bone-embedded anatomical reference frame(s) of the foot
%   This function features an ARRAYLAB (MULTIMATRIX) engine.
%
%   [Rft, Tft] = footBAF(HEEL, MET1, MET5, MET2, SIDE) is equivalent to
%   [Rft, Tft] = footBAF(HEEL, MET1, MET5, MET2, SIDE, DIM), where DIM is
%   the first dimension of length 3 in arrays HEEL, MET1, MET5, MET2.
%
%   [Rft, Tft] = footBAF(HEEL, MET1, MET5, MET2, SIDE, DIM) returns arrays
%   containing M 3-by-3 orientation matrices (Rft) and M 3-element position
%   vectors (Tft), representing the angular and linear 3-D position(s) of
%   the anatomical reference frame of a foot. Each matrix and each vector
%   is computed using a "Non Optimal Pose Estimator", based on the position
%   of 4 anatomical landmarks. M = SIZE(HEEL) / 3.
%
%   HEEL, MET1, MET5, MET2:
%         Arrays with N dimensions and the same size (see function REFSYS)
%         containing, along dimension DIM, M 3-element vectors representing
%         the linear 3-D positions of 4 anatomical landmarks.
%   SIDE: Scalar indicating right (SIDE = 0) or left (SIDE = 1) foot.
%   DIM:  Dimension along which the landmark position vectors are found.
%   Rft:  Array with N + 1 dimensions (see function REFSYS), containing
%         the M reference frame orientation matrices along dimensions DIM
%         and DIM + 1.
%   Tft:  Array with the same size as HEEL, MET1, MET5, MET2, containing
%         the M origin position vectors along dimension DIM.
%
%   Reference:
%       Cappozzo et al. (1995). Position and orientation in space of bones
%                       during movement: anatomical frame definition and
%                       determination. Clinical Biomechanics, 10, 171-178.
%
%   Examples:
%       See function FRAME
%
%   See also FRAME, PELVISBAF, THIGHBAF, SHANKBAF, FOOTBAF.

% \$ Version: 1.0 \$
% CODE      by:                 Paolo de Leva (IUSM, Rome, IT) 2005 Oct 1
% COMMENTS  by:                 Code author                    2006 Dec 4
% OUTPUT    tested by:          Code author                    2005 Oct 1
% -------------------------------------------------------------------------

if side == 0 % Right foot
Rft = frame(-HEEL+MET5,-MET5+MET1, 'x', -MET2+HEEL, 'y', varargin{:});
else % Left foot
Rft = frame(-HEEL+MET1,-MET1+MET5, 'x', -MET2+HEEL, 'y', varargin{:});
end

Tft = HEEL;
```

Contact us