longbone_FragmentGeometry
This function analyzes the cross-sectional geometry of any diaphyseal long bone fragment at custom intervals defined by user defined points on the bone’s surface.
The fragment must be saved in Wavefront OBJ 3D model format, specified in filename, and the user defined points saved in a Meshlab PickedPoints file format, specified in points. Optionally, the folder containing the 3D model can be defined in folder, if the function is invoked from a different working directory. All thre input arguments must be strings.
longbone_FragmentGeometry
will process an arbitrary number of cross
sections, according to the user defined points, as specified in points,
as long as they lie between 10% and 90% of the fragment’s maximum length.
Points beyond this range are ignored.
longbone_FragmentGeometry
does not return any output arguments, but it
saves all geometric properties in CSV files as described in the following
section. 3D models must be pure triangular meshes and their coordinate units
are assumed to be in . Each OBJ file must explicitly contain a
single 3D model of any long bone fragment.
Assuming a 3D model named "bone_ID.obj"
, the following files are
generated:
Filename | Description | |
---|---|---|
Fgeometry-bone_ID.csv | It contains the properties of
area (measured in ), perimeter (measured in
), centroid (returned as [x,y,z]
coordinates in units), and the sectioning normal (returned
as an [x,y,z] vector). Each row of the CSV file corresponds
to the user defined points at the same order as they appear in the relevant
Meshlab PickedPoints file. The aforementioned properties for each cross
section are stored as a row vector with the respective order in columns
[[2],[3],[4:6],[7:9]]. The first column contains the index of the
corresponding cross-sectioning point in increasing order. | |
Finertia-bone_ID.csv | It contains the properties of
Ixy , Imin , and Imax , all measured in .
Accordingly, they are saved in a row vector [2:4] with the first column
containing the index of each cross section. | |
Fpolyline2D-bone_ID.csv | It contains the 2D coordinates (on an arbitrary x,y local axis) for each cross section as an matrix, where is the number of points for each cross-sectional polygon. These polygons are ordered as column duplets, i.e. [[1:2],...,[end-1:end]], in the same order their corresponding points are stored in the Meshlab PickedPoints file. Polygon coordinates start from the second row ([2:end],:), while the first row (1,[1,3,...,end-1]) contains the index of the corresponding cross-sectioning points. | |
Fpolyline3D-bone_ID.csv | It contains the 3D model coordinates for each cross section as an matrix, where is the number of points for each cross-sectional polygon. These polygons are ordered as column triplets, i.e. [[1:3],...,[end-2:end]], in the same order their corresponding points are stored in the Meshlab PickedPoints file. Polygon coordinates start from starting from the second row ([2:end],:), while the first row (1,[1,4,...,end-2]) contains the index of the corresponding cross-sectioning points. |
See also: longbone_Geometry, longbone_CustomGeometry, visualize_CrossSections
Source Code: longbone_FragmentGeometry