MCPcopy Create free account
hub / github.com/RenderKit/embree / Splitter

Class Splitter

kernels/common/rtcore_builder.cpp:262–285  ·  view source on GitHub ↗

function that splits a build primitive */

Source from the content-addressed store, hash-verified

260
261 /* function that splits a build primitive */
262 struct Splitter
263 {
264 Splitter (RTCSplitPrimitiveFunction splitPrimitive, unsigned geomID, unsigned primID, void* userPtr)
265 : splitPrimitive(splitPrimitive), geomID(geomID), primID(primID), userPtr(userPtr) {}
266
267 __forceinline void operator() (PrimRef& prim, const size_t dim, const float pos, PrimRef& left_o, PrimRef& right_o) const
268 {
269 prim.geomIDref() &= BVHBuilderBinnedFastSpatialSAH::GEOMID_MASK;
270 splitPrimitive((RTCBuildPrimitive*)&prim,(unsigned)dim,pos,(RTCBounds*)&left_o,(RTCBounds*)&right_o,userPtr);
271 left_o.geomIDref() = geomID; left_o.primIDref() = primID;
272 right_o.geomIDref() = geomID; right_o.primIDref() = primID;
273 }
274
275 __forceinline void operator() (const BBox3fa& box, const size_t dim, const float pos, BBox3fa& left_o, BBox3fa& right_o) const
276 {
277 PrimRef prim(box,geomID & BVHBuilderBinnedFastSpatialSAH::GEOMID_MASK,primID);
278 splitPrimitive((RTCBuildPrimitive*)&prim,(unsigned)dim,pos,(RTCBounds*)&left_o,(RTCBounds*)&right_o,userPtr);
279 }
280
281 RTCSplitPrimitiveFunction splitPrimitive;
282 unsigned geomID;
283 unsigned primID;
284 void* userPtr;
285 };
286
287 /* build BVH */
288 void* root = BVHBuilderBinnedFastSpatialSAH::build<void*>(

Callers 2

rtcBuildBVHSpatialSAHFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected