common: fix build of bsputils.cc with double == vec_t
This commit is contained in:
parent
3b17e577b5
commit
f7256907d5
|
|
@ -56,12 +56,16 @@ set(QBSP_INCLUDES
|
||||||
${CMAKE_SOURCE_DIR}/include/qbsp/writebsp.hh)
|
${CMAKE_SOURCE_DIR}/include/qbsp/writebsp.hh)
|
||||||
|
|
||||||
set(QBSP_SOURCES
|
set(QBSP_SOURCES
|
||||||
|
${CMAKE_SOURCE_DIR}/common/bspfile.cc
|
||||||
|
${CMAKE_SOURCE_DIR}/common/entdata.cc
|
||||||
${CMAKE_SOURCE_DIR}/common/threads.cc
|
${CMAKE_SOURCE_DIR}/common/threads.cc
|
||||||
${CMAKE_SOURCE_DIR}/common/cmdlib.cc
|
${CMAKE_SOURCE_DIR}/common/cmdlib.cc
|
||||||
${CMAKE_SOURCE_DIR}/common/log.cc
|
${CMAKE_SOURCE_DIR}/common/log.cc
|
||||||
${CMAKE_SOURCE_DIR}/common/qvec.cc
|
${CMAKE_SOURCE_DIR}/common/qvec.cc
|
||||||
|
${CMAKE_SOURCE_DIR}/common/mesh.cc
|
||||||
${CMAKE_SOURCE_DIR}/common/mathlib.cc
|
${CMAKE_SOURCE_DIR}/common/mathlib.cc
|
||||||
${CMAKE_SOURCE_DIR}/common/polylib.cc
|
${CMAKE_SOURCE_DIR}/common/polylib.cc
|
||||||
|
${CMAKE_SOURCE_DIR}/common/bsputils.cc
|
||||||
${CMAKE_SOURCE_DIR}/qbsp/brush.cc
|
${CMAKE_SOURCE_DIR}/qbsp/brush.cc
|
||||||
${CMAKE_SOURCE_DIR}/qbsp/bspfile.cc
|
${CMAKE_SOURCE_DIR}/qbsp/bspfile.cc
|
||||||
${CMAKE_SOURCE_DIR}/qbsp/csg4.cc
|
${CMAKE_SOURCE_DIR}/qbsp/csg4.cc
|
||||||
|
|
|
||||||
|
|
@ -132,12 +132,15 @@ Face_Plane(const mbsp_t *bsp, const bsp2_dface_t *f)
|
||||||
Q_assert(f->planenum >= 0 && f->planenum < bsp->numplanes);
|
Q_assert(f->planenum >= 0 && f->planenum < bsp->numplanes);
|
||||||
const dplane_t *dplane = &bsp->dplanes[f->planenum];
|
const dplane_t *dplane = &bsp->dplanes[f->planenum];
|
||||||
|
|
||||||
|
vec3_t planeNormal;
|
||||||
|
VectorCopy(dplane->normal, planeNormal); // convert from float->double if needed
|
||||||
|
|
||||||
plane_t result;
|
plane_t result;
|
||||||
if (f->side) {
|
if (f->side) {
|
||||||
VectorSubtract(vec3_origin, dplane->normal, result.normal);
|
VectorSubtract(vec3_origin, planeNormal, result.normal);
|
||||||
result.dist = -dplane->dist;
|
result.dist = -dplane->dist;
|
||||||
} else {
|
} else {
|
||||||
VectorCopy(dplane->normal, result.normal);
|
VectorCopy(planeNormal, result.normal);
|
||||||
result.dist = dplane->dist;
|
result.dist = dplane->dist;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -266,7 +269,11 @@ vec_t Plane_Dist(const vec3_t point, const dplane_t *plane)
|
||||||
case PLANE_X: return point[0] - plane->dist;
|
case PLANE_X: return point[0] - plane->dist;
|
||||||
case PLANE_Y: return point[1] - plane->dist;
|
case PLANE_Y: return point[1] - plane->dist;
|
||||||
case PLANE_Z: return point[2] - plane->dist;
|
case PLANE_Z: return point[2] - plane->dist;
|
||||||
default: return DotProduct(point, plane->normal) - plane->dist;
|
default: {
|
||||||
|
vec3_t planeNormal;
|
||||||
|
VectorCopy(plane->normal, planeNormal); // convert from float->double if needed
|
||||||
|
return DotProduct(point, planeNormal) - plane->dist;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -377,15 +384,21 @@ Face_AllocInwardFacingEdgePlanes(const mbsp_t *bsp, const bsp2_dface_t *face)
|
||||||
{
|
{
|
||||||
plane_t *dest = &out[i];
|
plane_t *dest = &out[i];
|
||||||
|
|
||||||
const vec_t *v0 = GetSurfaceVertexPoint(bsp, face, i);
|
const float *v0 = GetSurfaceVertexPoint(bsp, face, i);
|
||||||
const vec_t *v1 = GetSurfaceVertexPoint(bsp, face, (i+1)%face->numedges);
|
const float *v1 = GetSurfaceVertexPoint(bsp, face, (i+1)%face->numedges);
|
||||||
|
|
||||||
|
vec3_t v0_vec3t;
|
||||||
|
vec3_t v1_vec3t;
|
||||||
|
|
||||||
|
VectorCopy(v0, v0_vec3t);
|
||||||
|
VectorCopy(v1, v1_vec3t); // convert float->double
|
||||||
|
|
||||||
vec3_t edgevec;
|
vec3_t edgevec;
|
||||||
VectorSubtract(v1, v0, edgevec);
|
VectorSubtract(v1_vec3t, v0_vec3t, edgevec);
|
||||||
VectorNormalize(edgevec);
|
VectorNormalize(edgevec);
|
||||||
|
|
||||||
CrossProduct(edgevec, faceplane.normal, dest->normal);
|
CrossProduct(edgevec, faceplane.normal, dest->normal);
|
||||||
dest->dist = DotProduct(dest->normal, v0);
|
dest->dist = DotProduct(dest->normal, v0_vec3t);
|
||||||
}
|
}
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
|
|
@ -461,7 +474,7 @@ void Face_DebugPrint(const mbsp_t *bsp, const bsp2_dface_t *face)
|
||||||
for (int i = 0; i < face->numedges; i++) {
|
for (int i = 0; i < face->numedges; i++) {
|
||||||
int edge = bsp->dsurfedges[face->firstedge + i];
|
int edge = bsp->dsurfedges[face->firstedge + i];
|
||||||
int vert = Face_VertexAtIndex(bsp, face, i);
|
int vert = Face_VertexAtIndex(bsp, face, i);
|
||||||
const vec_t *point = GetSurfaceVertexPoint(bsp, face, i);
|
const float *point = GetSurfaceVertexPoint(bsp, face, i);
|
||||||
logprint("%s %3d (%3.3f, %3.3f, %3.3f) :: edge %d\n",
|
logprint("%s %3d (%3.3f, %3.3f, %3.3f) :: edge %d\n",
|
||||||
i ? " " : " verts ", vert,
|
i ? " " : " verts ", vert,
|
||||||
point[0], point[1], point[2],
|
point[0], point[1], point[2],
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,16 @@ VectorCopy(const vec3_t in, vec3_t out)
|
||||||
out[2] = in[2];
|
out[2] = in[2];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DOUBLEVEC_T
|
||||||
|
static inline void
|
||||||
|
VectorCopy(const float in[3], vec3_t out)
|
||||||
|
{
|
||||||
|
out[0] = in[0];
|
||||||
|
out[1] = in[1];
|
||||||
|
out[2] = in[2];
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
VectorScale(const vec3_t v, vec_t scale, vec3_t out)
|
VectorScale(const vec3_t v, vec_t scale, vec3_t out)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue