Move find_connect_side body to dcx
This commit is contained in:
parent
b82d9d2b51
commit
b918760b3f
|
@ -73,7 +73,8 @@ static inline vms_vector compute_segment_center(vcsegptr_t sp)
|
||||||
compute_segment_center(v, sp);
|
compute_segment_center(v, sp);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
int_fast32_t find_connect_side(vcsegptridx_t base_seg, vcsegptr_t con_seg) __attribute_warn_unused_result;
|
__attribute_warn_unused_result
|
||||||
|
uint_fast32_t find_connect_side(vcsegidx_t base_seg, const segment &con_seg);
|
||||||
|
|
||||||
// Fill in array with four absolute point numbers for a given side
|
// Fill in array with four absolute point numbers for a given side
|
||||||
void get_side_verts(side_vertnum_list_t &vertlist, const segment &seg, unsigned sidenum);
|
void get_side_verts(side_vertnum_list_t &vertlist, const segment &seg, unsigned sidenum);
|
||||||
|
|
|
@ -92,9 +92,19 @@ constexpr vm_distance fcd_abort_return_value{-1};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace dcx {
|
||||||
|
|
||||||
// How far a point can be from a plane, and still be "in" the plane
|
// How far a point can be from a plane, and still be "in" the plane
|
||||||
#define PLANE_DIST_TOLERANCE 250
|
#define PLANE_DIST_TOLERANCE 250
|
||||||
|
|
||||||
|
static uint_fast32_t find_connect_child(const vcsegidx_t base_seg, const array<segnum_t, MAX_SIDES_PER_SEGMENT> &children)
|
||||||
|
{
|
||||||
|
const auto &&b = begin(children);
|
||||||
|
return std::distance(b, std::find(b, end(children), base_seg));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
namespace dsx {
|
namespace dsx {
|
||||||
#if defined(DXX_BUILD_DESCENT_II)
|
#if defined(DXX_BUILD_DESCENT_II)
|
||||||
array<dl_index, MAX_DL_INDICES> Dl_indices;
|
array<dl_index, MAX_DL_INDICES> Dl_indices;
|
||||||
|
@ -131,13 +141,9 @@ void compute_segment_center(vms_vector &vp,const vcsegptr_t sp)
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// Given two segments, return the side index in the connecting segment which connects to the base segment
|
// Given two segments, return the side index in the connecting segment which connects to the base segment
|
||||||
// Optimized by MK on 4/21/94 because it is a 2% load.
|
// Optimized by MK on 4/21/94 because it is a 2% load.
|
||||||
int_fast32_t find_connect_side(const vcsegptridx_t base_seg, const vcsegptr_t con_seg)
|
uint_fast32_t find_connect_side(const vcsegidx_t base_seg, const segment &con_seg)
|
||||||
{
|
{
|
||||||
auto &children = con_seg->children;
|
return find_connect_child(base_seg, con_seg.children);
|
||||||
auto b = begin(children);
|
|
||||||
auto i = std::find(b, end(children), base_seg);
|
|
||||||
// legal to return -1, used in object_move_one(), mk, 06/08/94: Assert(0); // Illegal -- there is no connecting side between these two segments
|
|
||||||
return std::distance(b, i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue