The 2 other methods follow the same procedure except that the direction $`\boldsymbol{d}^i`$ is computed in a more realistic way. Indeed, if a triangle does not have a direct line of sight to the focal point (Figure 2, right), the direction calculated by the latter method gives a compressive force towards the interior of the bone, although the muscle fibres wrap the surface of the bone. The forces should thus be mainly oriented along a tangent to the surface. This remark leads to a second model of force distribution – the Tangential-Traction model – which is implemented as follows. Let us define $`\boldsymbol{n}`$, the outward unit normal to a given triangle of the surface mesh. If $`\boldsymbol{d}.\boldsymbol{n}>0`$ (as in Figure 2, left), the previous direction $`\boldsymbol{d}^i`$ is kept and the forces acting on the triangle are the same as before. However, if $`\boldsymbol{d}.\boldsymbol{n}<0`$ (Figure 2, right), the direction is projected onto the plane of the triangle and normalised again. The corrected direction $`\boldsymbol{d}_T`$ becomes (note that the index $$i$$ will be omitted in the following expressions to simplify the notations):
The 2 other methods follow the same procedure except that the direction $`\boldsymbol{d}^i`$ is computed in a more realistic way. Indeed, if a triangle does not have a direct line of sight to the focal point (Figure 2, right), the direction calculated by the latter method gives a compressive force towards the interior of the bone, although the muscle fibres wrap the surface of the bone. The forces should thus be mainly oriented along a tangent to the surface. This remark leads to a second model of force distribution – the Tangential-Traction model – which is implemented as follows. Let us define $`\boldsymbol{n}`$, the outward unit normal to a given triangle of the surface mesh. If $`\boldsymbol{d}.\boldsymbol{n}>0`$ (as in Figure 2, left), the previous direction $`\boldsymbol{d}^i`$ is kept and the forces acting on the triangle are the same as before. However, if $`\boldsymbol{d}.\boldsymbol{n}<0`$ (Figure 2, right), the direction is projected onto the plane of the triangle and normalised again. The corrected direction $`\boldsymbol{d}_T`$ becomes (note that the index $`i`$ will be omitted in the following expressions to simplify the notations):
@@ -40,17 +40,17 @@ where $`\boldsymbol{d}_U`$ is the direction computed as in the Uniform-Traction

*Figure 3: Calculation of the approximation* $`\tilde{\boldsymbol{s}`$ *of fibre length* $`\boldsymbol{s}`$ *from the origin of the muscle fibre bundle to the centre of the current triangle and the local radius* $$R$$ *of curvature at the same point. These 2 lengths must be measured in the plane defined by the focal point* $`\boldsymbol{o}`$ *and the normal vector* $`\boldsymbol{n}`$.
*Figure 3: Calculation of the approximation* $`\tilde{\boldsymbol{s}`$ *of fibre length* $`\boldsymbol{s}`$ *from the origin of the muscle fibre bundle to the centre of the current triangle and the local radius* $`R`$ *of curvature at the same point. These 2 lengths must be measured in the plane defined by the focal point* $`\boldsymbol{o}`$ *and the normal vector* $`\boldsymbol{n}`$.
The third model – the Tangent-Plus-Normal model – starts from the previous method and adds a normal component to the tangential contribution which models the compressive action of the muscle fibres that wrap around the bone on top of each other. This additional pressure acts only if the surface is locally convex, and its amplitude is proportional to the length $`s`$ of the muscle fibre bundle in the plane defined by the focal point $`\boldsymbol{o}`$ and the normal vector $`\boldsymbol{n}`$ as schematised in Figure 3. The new direction $`\boldsymbol{d}_{T+N}`$ including both tangential and normal components is evaluated as
where $$R$$ is the local radius of curvature in the plane defined by $`\boldsymbol{o}`$ and $`\boldsymbol{n}`$. Note that $`\boldsymbol{d}_{T+N}`$ is not a unit vector anymore.
where $`R`$ is the local radius of curvature in the plane defined by $`\boldsymbol{o}`$ and $`\boldsymbol{n}`$. Note that $`\boldsymbol{d}_{T+N}`$ is not a unit vector anymore.
Contrary to the Tangential-Traction model, the evaluation of this expression is extremely costly since it requires to cut the surface mesh by a plane. The cutting operation has been implemented with the help of the VTK library[[1\]](#_ftn1) which is commonly used for displaying meshes on computer screens. VTK also comes with a series of very robust algorithms for modifying and manipulating meshes. These algorithms are very efficient since they target real-time visualisation.
For each triangle, the surface mesh of the muscle attachment is first cut by a plane normal to $`\boldsymbol{d}_{T}`$ and passing through the barycentre $`\boldsymbol{c}`$ of the triangle. This operation divides the mesh into a front and a back part (see Figure 3) which are needed to identify the part containing the origin of the fibre bundle. Next, the intersection of both parts with the plane defined by $`\boldsymbol{o}`$ and $`\boldsymbol{n}`$ is calculated. The result of this operation is 2 sets of piecewise-linear segments which correspond to the mesh displayed in Figure 3. The vertices are sorted and the fibre length $`\boldsymbol{s}`$ is approximated by $`\tilde{\boldsymbol{s}}`$, the sum of the lengths of the line segments coming from the back part of the surface mesh (the blue segments in Figure 3). Then, a smooth high-order polynomial approximation $$p(t)$$ of the bone surface shape is built in the local axes $`(\boldsymbol{d}_T, \boldsymbol{n})`$ from the position of the first 2 vertices found on both sides of the current triangle. The curvature of this polynomial at the barycentre $`\boldsymbol{c}`$ of the triangle can be easily calculated by
For each triangle, the surface mesh of the muscle attachment is first cut by a plane normal to $`\boldsymbol{d}_{T}`$ and passing through the barycentre $`\boldsymbol{c}`$ of the triangle. This operation divides the mesh into a front and a back part (see Figure 3) which are needed to identify the part containing the origin of the fibre bundle. Next, the intersection of both parts with the plane defined by $`\boldsymbol{o}`$ and $`\boldsymbol{n}`$ is calculated. The result of this operation is 2 sets of piecewise-linear segments which correspond to the mesh displayed in Figure 3. The vertices are sorted and the fibre length $`\boldsymbol{s}`$ is approximated by $`\tilde{\boldsymbol{s}}`$, the sum of the lengths of the line segments coming from the back part of the surface mesh (the blue segments in Figure 3). Then, a smooth high-order polynomial approximation $`p(t)`$ of the bone surface shape is built in the local axes $`(\boldsymbol{d}_T, \boldsymbol{n})`$ from the position of the first 2 vertices found on both sides of the current triangle. The curvature of this polynomial at the barycentre $`\boldsymbol{c}`$ of the triangle can be easily calculated by