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

Function init_crackfix

kernels/subdiv/gregory_patch.h:222–289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220 }
221
222 __noinline void init_crackfix(const CatmullClarkPatch& patch,
223 const BezierCurve* border0,
224 const BezierCurve* border1,
225 const BezierCurve* border2,
226 const BezierCurve* border3)
227 {
228 assert( patch.ring[0].hasValidPositions() );
229 assert( patch.ring[1].hasValidPositions() );
230 assert( patch.ring[2].hasValidPositions() );
231 assert( patch.ring[3].hasValidPositions() );
232
233 p0() = initCornerVertex(patch,0);
234 p1() = initCornerVertex(patch,1);
235 p2() = initCornerVertex(patch,2);
236 p3() = initCornerVertex(patch,3);
237
238 e0_p() = initPositiveEdgeVertex(patch,0, p0());
239 e1_p() = initPositiveEdgeVertex(patch,1, p1());
240 e2_p() = initPositiveEdgeVertex(patch,2, p2());
241 e3_p() = initPositiveEdgeVertex(patch,3, p3());
242
243 e0_m() = initNegativeEdgeVertex(patch,0, p0());
244 e1_m() = initNegativeEdgeVertex(patch,1, p1());
245 e2_m() = initNegativeEdgeVertex(patch,2, p2());
246 e3_m() = initNegativeEdgeVertex(patch,3, p3());
247
248 if (unlikely(border0 != nullptr))
249 {
250 p0() = border0->v0;
251 e0_p() = border0->v1;
252 e1_m() = border0->v2;
253 p1() = border0->v3;
254 }
255
256 if (unlikely(border1 != nullptr))
257 {
258 p1() = border1->v0;
259 e1_p() = border1->v1;
260 e2_m() = border1->v2;
261 p2() = border1->v3;
262 }
263
264 if (unlikely(border2 != nullptr))
265 {
266 p2() = border2->v0;
267 e2_p() = border2->v1;
268 e3_m() = border2->v2;
269 p3() = border2->v3;
270 }
271
272 if (unlikely(border3 != nullptr))
273 {
274 p3() = border3->v0;
275 e3_p() = border3->v1;
276 e0_m() = border3->v2;
277 p0() = border3->v3;
278 }
279

Callers 1

GregoryPatchTFunction · 0.85

Calls 4

initCornerVertexFunction · 0.85
initPositiveEdgeVertexFunction · 0.85
initNegativeEdgeVertexFunction · 0.85
initFaceVertexFunction · 0.85

Tested by

no test coverage detected