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

Function updateEdgeLevelBuffer

tutorials/viewer/viewer_device.cpp:43–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41
42
43void updateEdgeLevelBuffer( ISPCSubdivMesh* mesh, const Vec3fa& cam_pos, unsigned int startID, unsigned int endID )
44{
45 for (unsigned int f=startID; f<endID;f++) {
46 unsigned int e = mesh->face_offsets[f];
47 unsigned int N = mesh->verticesPerFace[f];
48 if (N == 4) /* fast path for quads */
49 for (unsigned int i=0; i<4; i++)
50 mesh->subdivlevel[e+i] = updateEdgeLevel(mesh,cam_pos,e+(i+0),e+(i+1)%4);
51 else if (N == 3) /* fast path for triangles */
52 for (unsigned int i=0; i<3; i++)
53 mesh->subdivlevel[e+i] = updateEdgeLevel(mesh,cam_pos,e+(i+0),e+(i+1)%3);
54 else /* fast path for general polygons */
55 for (unsigned int i=0; i<N; i++)
56 mesh->subdivlevel[e+i] = updateEdgeLevel(mesh,cam_pos,e+(i+0),e+(i+1)%N);
57 }
58}
59
60#if defined(ISPC)
61void updateSubMeshEdgeLevelBufferTask (int taskIndex, int threadIndex, ISPCSubdivMesh* mesh, const Vec3fa& cam_pos )

Callers 3

updateEdgeLevelsFunction · 0.70

Calls 1

updateEdgeLevelFunction · 0.70

Tested by

no test coverage detected