rename the enums for surface classification in the SShell class.

This commit is contained in:
phkahler 2023-05-15 18:24:22 -04:00 committed by Paul Kahler
parent 2e2aceb5ed
commit 604335f1c9
3 changed files with 39 additions and 39 deletions

View File

@ -270,10 +270,10 @@ void SSurface::TrimFromEdgeList(SEdgeList *el, bool asUv) {
static bool KeepRegion(SSurface::CombineAs type, bool opA, SShell::Class shell, SShell::Class orig)
{
bool inShell = (shell == SShell::Class::INSIDE),
outSide = (shell == SShell::Class::OUTSIDE),
inSame = (shell == SShell::Class::COINC_SAME),
inOrig = (orig == SShell::Class::INSIDE);
bool inShell = (shell == SShell::Class::SURF_INSIDE),
outSide = (shell == SShell::Class::SURF_OUTSIDE),
inSame = (shell == SShell::Class::SURF_COINC_SAME),
inOrig = (orig == SShell::Class::SURF_INSIDE);
if(!inOrig) return false;
switch(type) {
@ -318,29 +318,29 @@ static void TagByClassifiedEdge(SBspUv::Class bspclass, SShell::Class *indir, SS
{
switch(bspclass) {
case SBspUv::Class::INSIDE:
*indir = SShell::Class::INSIDE;
*outdir = SShell::Class::INSIDE;
*indir = SShell::Class::SURF_INSIDE;
*outdir = SShell::Class::SURF_INSIDE;
break;
case SBspUv::Class::OUTSIDE:
*indir = SShell::Class::OUTSIDE;
*outdir = SShell::Class::OUTSIDE;
*indir = SShell::Class::SURF_OUTSIDE;
*outdir = SShell::Class::SURF_OUTSIDE;
break;
case SBspUv::Class::EDGE_PARALLEL:
*indir = SShell::Class::INSIDE;
*outdir = SShell::Class::OUTSIDE;
*indir = SShell::Class::SURF_INSIDE;
*outdir = SShell::Class::SURF_OUTSIDE;
break;
case SBspUv::Class::EDGE_ANTIPARALLEL:
*indir = SShell::Class::OUTSIDE;
*outdir = SShell::Class::INSIDE;
*indir = SShell::Class::SURF_OUTSIDE;
*outdir = SShell::Class::SURF_INSIDE;
break;
default:
dbp("TagByClassifiedEdge: fail!");
*indir = SShell::Class::OUTSIDE;
*outdir = SShell::Class::OUTSIDE;
*indir = SShell::Class::SURF_OUTSIDE;
*outdir = SShell::Class::SURF_OUTSIDE;
break;
}
}
@ -612,8 +612,8 @@ SSurface SSurface::MakeCopyTrimAgainst(SShell *parent,
SShell::Class indir_shell, outdir_shell, indir_orig, outdir_orig;
indir_orig = SShell::Class::INSIDE;
outdir_orig = SShell::Class::OUTSIDE;
indir_orig = SShell::Class::SURF_INSIDE;
outdir_orig = SShell::Class::SURF_OUTSIDE;
agnst->ClassifyEdge(&indir_shell, &outdir_shell,
ret.PointAt(auv), ret.PointAt(buv), pt,

View File

@ -398,14 +398,14 @@ SShell::Class SShell::ClassifyRegion(Vector edge_n, Vector inter_surf_n,
// are coincident. Test the edge's surface normal
// to see if it's with same or opposite normals.
if(inter_surf_n.Dot(edge_surf_n) > 0) {
return Class::COINC_SAME;
return Class::SURF_COINC_SAME;
} else {
return Class::COINC_OPP;
return Class::SURF_COINC_OPP;
}
} else if(dot > 0) {
return Class::OUTSIDE;
return Class::SURF_OUTSIDE;
} else {
return Class::INSIDE;
return Class::SURF_INSIDE;
}
}
@ -474,7 +474,7 @@ bool SShell::ClassifyEdge(Class *indir, Class *outdir,
swap(inter_edge_n[0], inter_edge_n[1]);
}
Class coinc = (surf_n.Dot(inter_surf_n[0])) > 0 ? Class::COINC_SAME : Class::COINC_OPP;
Class coinc = (surf_n.Dot(inter_surf_n[0])) > 0 ? Class::SURF_COINC_SAME : Class::SURF_COINC_OPP;
if(fabs(dotp[0]) < DOTP_TOL && fabs(dotp[1]) < DOTP_TOL) {
// This is actually an edge on face case, just that the face
@ -484,25 +484,25 @@ bool SShell::ClassifyEdge(Class *indir, Class *outdir,
} else if(fabs(dotp[0]) < DOTP_TOL && dotp[1] > DOTP_TOL) {
if(edge_n_out.Dot(inter_edge_n[0]) > 0) {
*indir = coinc;
*outdir = Class::OUTSIDE;
*outdir = Class::SURF_OUTSIDE;
} else {
*indir = Class::INSIDE;
*indir = Class::SURF_INSIDE;
*outdir = coinc;
}
} else if(fabs(dotp[0]) < DOTP_TOL && dotp[1] < -DOTP_TOL) {
if(edge_n_out.Dot(inter_edge_n[0]) > 0) {
*indir = coinc;
*outdir = Class::INSIDE;
*outdir = Class::SURF_INSIDE;
} else {
*indir = Class::OUTSIDE;
*indir = Class::SURF_OUTSIDE;
*outdir = coinc;
}
} else if(dotp[0] > DOTP_TOL && dotp[1] > DOTP_TOL) {
*indir = Class::INSIDE;
*outdir = Class::OUTSIDE;
*indir = Class::SURF_INSIDE;
*outdir = Class::SURF_OUTSIDE;
} else if(dotp[0] < -DOTP_TOL && dotp[1] < -DOTP_TOL) {
*indir = Class::OUTSIDE;
*outdir = Class::INSIDE;
*indir = Class::SURF_OUTSIDE;
*outdir = Class::SURF_INSIDE;
} else {
// Edge is tangent to the shell at shell's edge, so can't be
// a boundary of the surface.
@ -557,8 +557,8 @@ bool SShell::ClassifyEdge(Class *indir, Class *outdir,
/*asSegment=*/false, /*trimmed=*/true, /*inclTangent=*/false);
// no intersections means it's outside
*indir = Class::OUTSIDE;
*outdir = Class::OUTSIDE;
*indir = Class::SURF_OUTSIDE;
*outdir = Class::SURF_OUTSIDE;
double dmin = VERY_POSITIVE;
bool onEdge = false;
edge_inters = 0;
@ -584,11 +584,11 @@ bool SShell::ClassifyEdge(Class *indir, Class *outdir,
// Edge does not lie on surface; either strictly inside
// or strictly outside
if((si->surfNormal).Dot(ray) > 0) {
*indir = Class::INSIDE;
*outdir = Class::INSIDE;
*indir = Class::SURF_INSIDE;
*outdir = Class::SURF_INSIDE;
} else {
*indir = Class::OUTSIDE;
*outdir = Class::OUTSIDE;
*indir = Class::SURF_OUTSIDE;
*outdir = Class::SURF_OUTSIDE;
}
onEdge = si->onEdge;
}

View File

@ -407,10 +407,10 @@ public:
// outside, or coincident (with parallel or antiparallel normal) with a
// shell.
enum class Class : uint32_t {
INSIDE = 100,
OUTSIDE = 200,
COINC_SAME = 300,
COINC_OPP = 400
SURF_INSIDE = 100,
SURF_OUTSIDE = 200,
SURF_COINC_SAME = 300,
SURF_COINC_OPP = 400
};
static const double DOTP_TOL;
Class ClassifyRegion(Vector edge_n, Vector inter_surf_n,