35 const int64_t n = normals.GetLength();
38 scalar_t* ptr = normals.GetDataPtr<scalar_t>();
42 int64_t idx = 3 * workload_idx;
43 scalar_t x = ptr[idx];
44 scalar_t y = ptr[idx + 1];
45 scalar_t z = ptr[idx + 2];
51 scalar_t norm = sqrt(x * x + y * y + z * z);
74 const int64_t n = normals.GetLength();
78 scalar_t* normal_ptr = normals.GetDataPtr<scalar_t>();
79 const int64_t* triangle_ptr = triangles_d.
GetDataPtr<int64_t>();
80 const scalar_t* vertex_ptr = vertices.GetDataPtr<scalar_t>();
84 int64_t idx = 3 * workload_idx;
86 int64_t triangle_id1 = triangle_ptr[idx];
87 int64_t triangle_id2 = triangle_ptr[idx + 1];
88 int64_t triangle_id3 = triangle_ptr[idx + 2];
90 scalar_t v01[3], v02[3];
91 v01[0] = vertex_ptr[3 * triangle_id2] -
92 vertex_ptr[3 * triangle_id1];
93 v01[1] = vertex_ptr[3 * triangle_id2 + 1] -
94 vertex_ptr[3 * triangle_id1 + 1];
95 v01[2] = vertex_ptr[3 * triangle_id2 + 2] -
96 vertex_ptr[3 * triangle_id1 + 2];
97 v02[0] = vertex_ptr[3 * triangle_id3] -
98 vertex_ptr[3 * triangle_id1];
99 v02[1] = vertex_ptr[3 * triangle_id3 + 1] -
100 vertex_ptr[3 * triangle_id1 + 1];
101 v02[2] = vertex_ptr[3 * triangle_id3 + 2] -
102 vertex_ptr[3 * triangle_id1 + 2];
118 const int64_t n = triangle_areas.
GetLength();
119 const core::Dtype dtype = triangle_areas.GetDtype();
123 scalar_t* area_ptr = triangle_areas.GetDataPtr<scalar_t>();
124 const int64_t* triangle_ptr = triangles_d.
GetDataPtr<int64_t>();
125 const scalar_t* vertex_ptr = vertices.GetDataPtr<scalar_t>();
129 int64_t idx = 3 * workload_idx;
131 int64_t triangle_id1 = triangle_ptr[idx];
132 int64_t triangle_id2 = triangle_ptr[idx + 1];
133 int64_t triangle_id3 = triangle_ptr[idx + 2];
135 scalar_t v01[3], v02[3];
136 v01[0] = vertex_ptr[3 * triangle_id2] -
137 vertex_ptr[3 * triangle_id1];
138 v01[1] = vertex_ptr[3 * triangle_id2 + 1] -
139 vertex_ptr[3 * triangle_id1 + 1];
140 v01[2] = vertex_ptr[3 * triangle_id2 + 2] -
141 vertex_ptr[3 * triangle_id1 + 2];
142 v02[0] = vertex_ptr[3 * triangle_id3] -
143 vertex_ptr[3 * triangle_id1];
144 v02[1] = vertex_ptr[3 * triangle_id3 + 1] -
145 vertex_ptr[3 * triangle_id1 + 1];
146 v02[2] = vertex_ptr[3 * triangle_id3 + 2] -
147 vertex_ptr[3 * triangle_id1 + 2];
149 area_ptr[workload_idx] =