5#ifndef __SUBD_SUBPATCH_H__
6#define __SUBD_SUBPATCH_H__
77 return (Mu - 1) * (Mv - 1);
87 int inner_triangles = (Mu - 2) * (Mv - 2) * 2;
91 return inner_triangles + edge_triangles;
167 assert(n >= 0 && n <= T);
182 assert(n >= 0 && n <= T);
188 n = edge->T - offset - T + n;
194 n = edge->T - offset - n;
197 return edge->get_vert_along_edge(n);
202 return edges[edge].get_vert_along_edge(n);
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
int get_vert_along_grid_edge(int edge, int n) const
Subpatch(Patch *patch=nullptr)
int inner_grid_vert_offset
int calc_num_triangles() const
Subpatch(Patch *patch, float2 c00, float2 c01, float2 c11, float2 c10)
int calc_num_inner_verts() const
int get_vert_along_edge(int e, int n) const
#define CCL_NAMESPACE_END
ccl_device_inline float2 one_float2()
CCL_NAMESPACE_BEGIN ccl_device_inline float2 zero_float2()
bool bottom_indices_decrease
int stitch_end_vert_index
pair< int, int > stitch_edge_key
bool top_indices_decrease
int get_vert_along_edge(int n) const
int stitch_start_vert_index
bool sub_edges_created_in_reverse_order
int get_vert_along_edge(int n) const
bool indices_decrease_along_edge