MCPcopy Create free account
hub / github.com/LuxCoreRender/LuxCore / CreateBox

Function CreateBox

src/luxcore/kernelcachefill.cpp:36–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34#if !defined(LUXRAYS_DISABLE_OPENCL)
35
36static void CreateBox(Scene *scene, const string &objName, const string &meshName,
37 const string &matName, const bool enableUV, const BBox &bbox) {
38 Point *p = (Point *)Scene::AllocVerticesBuffer(24);
39 // Bottom face
40 p[0] = Point(bbox.pMin.x, bbox.pMin.y, bbox.pMin.z);
41 p[1] = Point(bbox.pMin.x, bbox.pMax.y, bbox.pMin.z);
42 p[2] = Point(bbox.pMax.x, bbox.pMax.y, bbox.pMin.z);
43 p[3] = Point(bbox.pMax.x, bbox.pMin.y, bbox.pMin.z);
44 // Top face
45 p[4] = Point(bbox.pMin.x, bbox.pMin.y, bbox.pMax.z);
46 p[5] = Point(bbox.pMax.x, bbox.pMin.y, bbox.pMax.z);
47 p[6] = Point(bbox.pMax.x, bbox.pMax.y, bbox.pMax.z);
48 p[7] = Point(bbox.pMin.x, bbox.pMax.y, bbox.pMax.z);
49 // Side left
50 p[8] = Point(bbox.pMin.x, bbox.pMin.y, bbox.pMin.z);
51 p[9] = Point(bbox.pMin.x, bbox.pMin.y, bbox.pMax.z);
52 p[10] = Point(bbox.pMin.x, bbox.pMax.y, bbox.pMax.z);
53 p[11] = Point(bbox.pMin.x, bbox.pMax.y, bbox.pMin.z);
54 // Side right
55 p[12] = Point(bbox.pMax.x, bbox.pMin.y, bbox.pMin.z);
56 p[13] = Point(bbox.pMax.x, bbox.pMax.y, bbox.pMin.z);
57 p[14] = Point(bbox.pMax.x, bbox.pMax.y, bbox.pMax.z);
58 p[15] = Point(bbox.pMax.x, bbox.pMin.y, bbox.pMax.z);
59 // Side back
60 p[16] = Point(bbox.pMin.x, bbox.pMin.y, bbox.pMin.z);
61 p[17] = Point(bbox.pMax.x, bbox.pMin.y, bbox.pMin.z);
62 p[18] = Point(bbox.pMax.x, bbox.pMin.y, bbox.pMax.z);
63 p[19] = Point(bbox.pMin.x, bbox.pMin.y, bbox.pMax.z);
64 // Side front
65 p[20] = Point(bbox.pMin.x, bbox.pMax.y, bbox.pMin.z);
66 p[21] = Point(bbox.pMin.x, bbox.pMax.y, bbox.pMax.z);
67 p[22] = Point(bbox.pMax.x, bbox.pMax.y, bbox.pMax.z);
68 p[23] = Point(bbox.pMax.x, bbox.pMax.y, bbox.pMin.z);
69
70 Triangle *vi = (Triangle *)Scene::AllocTrianglesBuffer(12);
71 // Bottom face
72 vi[0] = Triangle(0, 1, 2);
73 vi[1] = Triangle(2, 3, 0);
74 // Top face
75 vi[2] = Triangle(4, 5, 6);
76 vi[3] = Triangle(6, 7, 4);
77 // Side left
78 vi[4] = Triangle(8, 9, 10);
79 vi[5] = Triangle(10, 11, 8);
80 // Side right
81 vi[6] = Triangle(12, 13, 14);
82 vi[7] = Triangle(14, 15, 12);
83 // Side back
84 vi[8] = Triangle(16, 17, 18);
85 vi[9] = Triangle(18, 19, 16);
86 // Side back
87 vi[10] = Triangle(20, 21, 22);
88 vi[11] = Triangle(22, 23, 20);
89
90 // Define the Mesh
91 if (!enableUV) {
92 // Define the object
93 scene->DefineMesh(meshName, 24, 12, (float *)p, (unsigned int *)vi, NULL, NULL, NULL, NULL);

Callers 1

RenderTestSceneFunction · 0.70

Calls 7

AllocVerticesBufferFunction · 0.85
AllocTrianglesBufferFunction · 0.85
PointClass · 0.50
TriangleClass · 0.50
UVClass · 0.50
DefineMeshMethod · 0.45
ParseMethod · 0.45

Tested by

no test coverage detected