32 template<
class Po
int,
class Po
intRef>
33 template<
class AboveOp,
class BelowOp>
78 point p01 = planeIntersection(d, tri, i0, i1);
79 point p02 = planeIntersection(d, tri, i0, i2);
81 aboveOp(
triPoints(tri[i1], tri[i2], p02));
95 point p01 = planeIntersection(d, tri, i0, i1);
96 point p02 = planeIntersection(d, tri, i0, i2);
98 belowOp(
triPoints(tri[i1], tri[i2], p02));
110 template<
class Po
int,
class Po
intRef>
111 template<
class AboveOp,
class BelowOp>
119 triSliceWithPlane(pl,
triPoints(a_, b_, c_), aboveOp, belowOp);
123 template<
class Po
int,
class Po
intRef>
124 template<
class Ins
ideOp,
class Outs
ideOp>
142 storeOp insideOpA(insideTrisA, nInsideA);
146 storeOp outsideOpA(outsideTrisA, nOutsideA);
156 const plane pl0(tgt.
a(), tgt.
b(), tgt.
b() +
s*
n);
157 triSliceWithPlane(pl0, thisTri, insideOpA, outsideOpA);
162 if (insideOpA.nTris_ == 0)
168 if (outsideOpA.nTris_ == 0)
180 storeOp insideOpB(insideTrisB, nInsideB);
188 const plane pl0(tgt.
b(), tgt.
c(), tgt.
c() +
s*
n);
190 for (
label i = 0; i < insideOpA.nTris_; i++)
193 triSliceWithPlane(pl0, tri, insideOpB, outsideOpA);
210 const plane pl0(tgt.
c(), tgt.
a(), tgt.
a() +
s*
n);
212 insideOpA.nTris_ = 0;
214 for (
label i = 0; i < insideOpB.nTris_; i++)
217 triSliceWithPlane(pl0, tri, insideOpA, outsideOpA);
230 for (
label i = 0; i < insideOpA.nTris_; i++)
232 insideOp(insideOpA.
tris_[i]);
235 for (
label i = 0; i < outsideOpA.nTris_; i++)
237 outsideOp(outsideOpA.
tris_[i]);