Move compute_segment_center body to dcx

This commit is contained in:
Kp 2017-02-22 03:05:44 +00:00
parent 892d450022
commit 8a89313ec4
2 changed files with 13 additions and 9 deletions

View file

@ -66,8 +66,8 @@ static inline vms_vector compute_center_point_on_side(const segment &sp, const u
vms_vector v;
return compute_center_point_on_side(v, sp, side), v;
}
void compute_segment_center(vms_vector &vp,vcsegptr_t sp);
static inline vms_vector compute_segment_center(vcsegptr_t sp)
void compute_segment_center(vms_vector &vp, const segment &sp);
static inline vms_vector compute_segment_center(const segment &sp)
{
vms_vector v;
compute_segment_center(v, sp);

View file

@ -112,6 +112,15 @@ static void compute_center_point_on_side(vms_vector &r, const array<unsigned, MA
vm_vec_copy_scale(r, vp, F1_0 / 4);
}
static void compute_segment_center(vms_vector &r, const array<unsigned, MAX_VERTICES_PER_SEGMENT> &verts)
{
vms_vector vp;
vm_vec_zero(vp);
range_for (auto &v, verts)
vm_vec_add2(vp, Vertices[v]);
vm_vec_copy_scale(r, vp, F1_0 / 8);
}
}
namespace dsx {
@ -132,14 +141,9 @@ void compute_center_point_on_side(vms_vector &vp, const segment &sp, const unsig
// ------------------------------------------------------------------------------------------
// Compute segment center.
// The center point is defined to be the average of the 8 points defining the segment.
void compute_segment_center(vms_vector &vp,const vcsegptr_t sp)
void compute_segment_center(vms_vector &vp, const segment &sp)
{
vm_vec_zero(vp);
range_for (auto &v, sp->verts)
vm_vec_add2(vp,Vertices[v]);
vm_vec_scale(vp,F1_0/8);
compute_segment_center(vp, sp.verts);
}
// -----------------------------------------------------------------------------