#include "stt_class.h" void SttGenerator::CutHole(QuadTreeNode** p_tree){ //切割范围多边形之外的四叉树节点 从深到浅执行 QuadTreeNode* current_node = *p_tree; //当前节点是叶子节点 进行判断 if (current_node->children[0]==nullptr && current_node->children[1]==nullptr && current_node->children[2]==nullptr && current_node->children[3]==nullptr){ //如果节点三角形在范围多边形之外 删除节点三角形 同时初始化指针 if (InPolyOutline(current_node)){ current_node->out_ok = false; return; } else return; } else{ for (int i = 0; i < 4; i++){ //顺序访问当前节点的四个子节点 先处理子节点的情况 当然前提是节点存在 if (current_node->children[i] != nullptr){ CutHole(&(current_node->children[i])); } else continue; } } return; }