41 #include <AtomsUtils/Globals.h>
46 #include <AtomsUtils/KdTree/KdTreeNode.h>
47 #include <AtomsUtils/KdTree/SAH.h>
48 #include <AtomsUtils/Triangle.h>
58 unsigned int numThreads,
unsigned int max_depth,
59 float Ct = Ct_DEFAULT,
60 float Ci = Ci_DEFAULT,
61 float emptyBonus = emptyBonus_DEFAULT);
65 virtual void build() = 0;
67 bool intersect(
const AtomsMath::Vector3f &orig,
const AtomsMath::Vector3f &dir,
float ¶m,
unsigned int &outFaceId,
float& outU,
float &outV);
69 AtomsMath::Vector3f closestPoint(
const AtomsMath::Vector3f& orig,
unsigned int& outFaceId,
float& outU,
float& outV,
float& distance);
71 void searchInSiblings(
const AtomsMath::Vector3f& orig,
KdTreeNode *closestNode, AtomsMath::Vector3f& closetsPoint,
int& outFaceId,
float& outU,
float& outV,
float& minDistance, std::set<KdTreeNode*>& nodeVisited);
75 std::vector<KdTreeNode*>& nodes() {
return m_nodes; }
79 bool intersectsBoxLine(
const AtomsMath::Box3f& b,
const AtomsMath::Line3f& r, AtomsMath::Vector3f& ip)
const;
87 unsigned int m_numThreads;
89 unsigned int m_maxDepth;
91 std::vector<Triangle> m_triangleList;
93 std::vector<KdTreeNode*> m_nodes;
Definition: KdTreeAccel_base.h:55
Definition: KdTreeNode.h:49
Mesh class.
Definition: Mesh.h:30
AtomsCore namespace.
Definition: Base64.h:13