diff --git a/src/area3d.m b/src/area3d.m index c9b4d610614f466e0dc541026cb9bf93ec4d75db..b47b52d9e7cf91b781d68a7eeba94ebf5d52dd40 100644 --- a/src/area3d.m +++ b/src/area3d.m @@ -3,15 +3,11 @@ function [ area, uncorr_area ] = area3d( o ) %% Deprojected 3D version. - p = o.boundary; + % Put all vertex coordinates with respect to center. + p = centered_points( o ); n_vertices = size( p, 1 ); - % Put all vertex coordinates with respect to center. - center = mean( p ); - center = repmat( center, [ n_vertices, 1 ] ); - p = p - center; - % Build small triangles. index = [ 2 : n_vertices 1 ]; p1 = p; diff --git a/src/centered_points.m b/src/centered_points.m new file mode 100644 index 0000000000000000000000000000000000000000..29f7cbb4f38b34478203ebdac208766e1c5302c8 --- /dev/null +++ b/src/centered_points.m @@ -0,0 +1,12 @@ +function p = centered_points( o ) +%CENTERED_POINTS Returns the 3D coordinates of the object bounds, with +%respect to its center. + + p = o.boundary; + n_vertices = size( p ,1 ); + center = mean( p ); + center = repmat( center, [ n_vertices, 1 ] ); + p = p - center; + +end +