INT32 TriangleClipperBase::clipByPlane(const Plane& plane) { int state = processVertices(plane); if (state == 1) return +1; // Nothing is clipped else if (state == -1) return -1; // Everything is clipped processEdges(); processFaces(); return 0; }
ClipMesh::Result ClipMesh::clip( const Plane& clipPlane ) { const Result result = processVertices(clipPlane); // no more processing required if the mesh isn't clipped if( result != Result::Dissected ) { return result; } processEdges(); if( !processFaces(clipPlane) ) { //printf("Error: Failed to process faces.\n"); return Result::Visible; } return Result::Dissected; }