diff --git a/algoim/organizer/organizer.hpp b/algoim/organizer/organizer.hpp index caecf50..ae363aa 100644 --- a/algoim/organizer/organizer.hpp +++ b/algoim/organizer/organizer.hpp @@ -178,4 +178,17 @@ void basicTask(const std::vector>& primitives, in void quadratureTask(const Scene& scene) {} void buildOctree(const Scene& scene, std::vector& nodes, const uvector3& min, const uvector3& max) {} + +void build(const Scene& scene, std::vector& nodes, int nowNodeIdx, const uvector3& nowNodeMin, const uvector3& nowNodeMax) +{ + const std::vector& polyIntersectIndices = nodes[nowNodeIdx].polyIntersectIndices; + if (polyIntersectIndices.size() == 1) { + // TODO 相交很少时 + } + buildOctree(scene, nodes, nowNodeMin, nowNodeMax); + nodes.resize(nodes.size() + 8); + for (int i = 0; i < polyIntersectIndices.size(); ++i) { + for (int faceAxis = 0; faceAxis < 3; ++faceAxis) { restrictToFace } + } +} }; // namespace algoim::Organizer