125 return edge->mid_vert_index;
134 assert(n_relative >= 0 && n_relative <= edge->
T);
136 const int n = (
reversed) ?
edge->T - n_relative : n_relative;
138 return edge->get_vert_along_edge(n);
181 return M * (
M - 1) / 2;
186 return (Mu - 1) * (Mv - 1);
200 const int inner_M =
M - 2;
201 const int inner_triangles = inner_M * inner_M;
202 const int edge_triangles =
edges[0].edge->T +
edges[1].edge->T +
edges[2].edge->T +
204 return inner_triangles + edge_triangles;
217 const int inner_triangles = (Mu - 2) * (Mv - 2) * 2;
218 const int edge_triangles =
edges[0].edge->T +
edges[2].edge->T +
edges[3].edge->T +
219 edges[1].edge->T + ((Mu - 2) * 2) + ((Mv - 2) * 2);
221 return inner_triangles + edge_triangles;
226 return edges[edge].get_vert_along_edge(n);
237 const int offset = j * (j + 1) / 2 +
i;
246 const int inner_M =
M - 2;
270 assert(Mu >= 2 && Mv >= 2);
280 const int reverse_n = (Mu - 2) - n;
284 const int reverse_n = (Mv - 2) - n;
int get_inner_grid_vert_triangle(int i, int j) const
enum SubPatch::@271217051357320143155373165321151177022113114126 shape
int get_vert_along_edge_reverse(const int edge, const int n) const
int get_vert_along_edge(const int edge, const int n) const
int inner_grid_vert_offset
int calc_num_triangles() const
SubPatch(const Patch *patch, const int face_index, const int corner=0)
int get_vert_along_grid_edge(const int edge, const int n) const
int calc_num_inner_verts() const
float2 map_uv(float2 uv) const
#define CCL_NAMESPACE_END
#define assert(assertion)
constexpr T clamp(T, U, U) RET
ccl_device_inline uint hash_uint2(const uint kx, const uint ky)
ccl_device_inline float interp(const float a, const float b, const float t)
ccl_device_inline float2 one_float2()
CCL_NAMESPACE_BEGIN ccl_device_inline float2 zero_float2()
size_t operator()(const SubEdge &a, const SubEdge &b) const
size_t operator()(const SubEdge &edge) const
int get_vert_along_edge(const int n) const
SubEdge(const int start_vert_index, const int end_vert_index, const int depth)
int start_vert_index() const
int mid_vert_index() const
int end_vert_index() const
int get_vert_along_edge(const int n_relative) const