Move fvi.cpp fvi_hit_side out of global scope
This commit is contained in:
parent
f640917052
commit
7ffd54377c
|
@ -611,14 +611,13 @@ struct fvi_segments_visited_t : public fvi_segment_visit_count_t, public visited
|
||||||
|
|
||||||
//these vars are used to pass vars from fvi_sub() to find_vector_intersection()
|
//these vars are used to pass vars from fvi_sub() to find_vector_intersection()
|
||||||
objnum_t fvi_hit_object; // object number of object hit in last find_vector_intersection call.
|
objnum_t fvi_hit_object; // object number of object hit in last find_vector_intersection call.
|
||||||
int fvi_hit_side; // what side was hit
|
|
||||||
segnum_t fvi_hit_side_seg;// what seg the hitside is in
|
segnum_t fvi_hit_side_seg;// what seg the hitside is in
|
||||||
segnum_t fvi_hit_seg2; // what segment the hit point is in
|
segnum_t fvi_hit_seg2; // what segment the hit point is in
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace dsx {
|
namespace dsx {
|
||||||
static int fvi_sub(vms_vector &intp, segnum_t &ints, const vms_vector &p0, const vcsegptridx_t startseg, const vms_vector &p1, fix rad, const icobjptridx_t thisobjnum, const std::pair<const objnum_t *, const objnum_t *> ignore_obj_list, int flags, fvi_info::segment_array_t &seglist, segnum_t entry_seg, fvi_segments_visited_t &visited, unsigned &fvi_nest_count, const vms_vector *&wall_norm);
|
static int fvi_sub(vms_vector &intp, segnum_t &ints, const vms_vector &p0, const vcsegptridx_t startseg, const vms_vector &p1, fix rad, const icobjptridx_t thisobjnum, const std::pair<const objnum_t *, const objnum_t *> ignore_obj_list, int flags, fvi_info::segment_array_t &seglist, segnum_t entry_seg, fvi_segments_visited_t &visited, unsigned &fvi_hit_side, unsigned &fvi_nest_count, const vms_vector *&wall_norm);
|
||||||
|
|
||||||
//What the hell is fvi_hit_seg for???
|
//What the hell is fvi_hit_seg for???
|
||||||
|
|
||||||
|
@ -638,7 +637,6 @@ int find_vector_intersection(const fvi_query &fq, fvi_info &hit_data)
|
||||||
int hit_type;
|
int hit_type;
|
||||||
segnum_t hit_seg2;
|
segnum_t hit_seg2;
|
||||||
vms_vector hit_pnt;
|
vms_vector hit_pnt;
|
||||||
fvi_hit_side = -1;
|
|
||||||
|
|
||||||
fvi_hit_object = object_none;
|
fvi_hit_object = object_none;
|
||||||
|
|
||||||
|
@ -673,12 +671,13 @@ int find_vector_intersection(const fvi_query &fq, fvi_info &hit_data)
|
||||||
fvi_segments_visited_t visited;
|
fvi_segments_visited_t visited;
|
||||||
visited[fq.startseg] = true;
|
visited[fq.startseg] = true;
|
||||||
|
|
||||||
|
unsigned fvi_hit_side = ~0u;
|
||||||
unsigned fvi_nest_count = 0;
|
unsigned fvi_nest_count = 0;
|
||||||
|
|
||||||
hit_seg2 = fvi_hit_seg2 = segment_none;
|
hit_seg2 = fvi_hit_seg2 = segment_none;
|
||||||
|
|
||||||
const vms_vector *wall_norm = nullptr; //surface normal of hit wall
|
const vms_vector *wall_norm = nullptr; //surface normal of hit wall
|
||||||
hit_type = fvi_sub(hit_pnt, hit_seg2, *fq.p0, vcsegptridx(fq.startseg), *fq.p1, fq.rad, imobjptridx(fq.thisobjnum), fq.ignore_obj_list, fq.flags, hit_data.seglist, segment_exit, visited, fvi_nest_count, wall_norm);
|
hit_type = fvi_sub(hit_pnt, hit_seg2, *fq.p0, vcsegptridx(fq.startseg), *fq.p1, fq.rad, imobjptridx(fq.thisobjnum), fq.ignore_obj_list, fq.flags, hit_data.seglist, segment_exit, visited, fvi_hit_side, fvi_nest_count, wall_norm);
|
||||||
segnum_t hit_seg;
|
segnum_t hit_seg;
|
||||||
if (hit_seg2 != segment_none && !get_seg_masks(vcvertptr, hit_pnt, vcsegptr(hit_seg2), 0).centermask)
|
if (hit_seg2 != segment_none && !get_seg_masks(vcvertptr, hit_pnt, vcsegptr(hit_seg2), 0).centermask)
|
||||||
hit_seg = hit_seg2;
|
hit_seg = hit_seg2;
|
||||||
|
@ -698,7 +697,7 @@ int find_vector_intersection(const fvi_query &fq, fvi_info &hit_data)
|
||||||
//because of code that deal with object with non-zero radius has
|
//because of code that deal with object with non-zero radius has
|
||||||
//problems, try using zero radius and see if we hit a wall
|
//problems, try using zero radius and see if we hit a wall
|
||||||
|
|
||||||
new_hit_type = fvi_sub(new_hit_pnt, new_hit_seg2, *fq.p0, vcsegptridx(fq.startseg), *fq.p1, 0, imobjptridx(fq.thisobjnum), fq.ignore_obj_list, fq.flags, hit_data.seglist, segment_exit, visited, fvi_nest_count, wall_norm);
|
new_hit_type = fvi_sub(new_hit_pnt, new_hit_seg2, *fq.p0, vcsegptridx(fq.startseg), *fq.p1, 0, imobjptridx(fq.thisobjnum), fq.ignore_obj_list, fq.flags, hit_data.seglist, segment_exit, visited, fvi_hit_side, fvi_nest_count, wall_norm);
|
||||||
(void)new_hit_type; // FIXME! This should become hit_type, right?
|
(void)new_hit_type; // FIXME! This should become hit_type, right?
|
||||||
|
|
||||||
if (new_hit_seg2 != segment_none) {
|
if (new_hit_seg2 != segment_none) {
|
||||||
|
@ -792,7 +791,7 @@ static void append_segments(fvi_info::segment_array_t &dst, const fvi_info::segm
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace dsx {
|
namespace dsx {
|
||||||
static int fvi_sub(vms_vector &intp, segnum_t &ints, const vms_vector &p0, const vcsegptridx_t startseg, const vms_vector &p1, fix rad, icobjptridx_t thisobjnum, const std::pair<const objnum_t *, const objnum_t *> ignore_obj_list, int flags, fvi_info::segment_array_t &seglist, segnum_t entry_seg, fvi_segments_visited_t &visited, unsigned &fvi_nest_count, const vms_vector *&wall_norm)
|
static int fvi_sub(vms_vector &intp, segnum_t &ints, const vms_vector &p0, const vcsegptridx_t startseg, const vms_vector &p1, fix rad, icobjptridx_t thisobjnum, const std::pair<const objnum_t *, const objnum_t *> ignore_obj_list, int flags, fvi_info::segment_array_t &seglist, segnum_t entry_seg, fvi_segments_visited_t &visited, unsigned &fvi_hit_side, unsigned &fvi_nest_count, const vms_vector *&wall_norm)
|
||||||
{
|
{
|
||||||
int startmask,endmask; //mask of faces
|
int startmask,endmask; //mask of faces
|
||||||
//@@int sidemask; //mask of sides - can be on back of face but not side
|
//@@int sidemask; //mask of sides - can be on back of face but not side
|
||||||
|
@ -963,7 +962,7 @@ static int fvi_sub(vms_vector &intp, segnum_t &ints, const vms_vector &p0, const
|
||||||
goto quit_looking; //we've looked a long time, so give up
|
goto quit_looking; //we've looked a long time, so give up
|
||||||
|
|
||||||
fvi_info::segment_array_t temp_seglist;
|
fvi_info::segment_array_t temp_seglist;
|
||||||
sub_hit_type = fvi_sub(sub_hit_point, sub_hit_seg, p0, startseg.absolute_sibling(newsegnum), p1, rad, thisobjnum, ignore_obj_list, flags, temp_seglist, startseg, visited, fvi_nest_count, wall_norm);
|
sub_hit_type = fvi_sub(sub_hit_point, sub_hit_seg, p0, startseg.absolute_sibling(newsegnum), p1, rad, thisobjnum, ignore_obj_list, flags, temp_seglist, startseg, visited, fvi_hit_side, fvi_nest_count, wall_norm);
|
||||||
|
|
||||||
if (sub_hit_type != HIT_NONE) {
|
if (sub_hit_type != HIT_NONE) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue