4 #ifndef __SUBD_SUBPATCH_H__
5 #define __SUBD_SUBPATCH_H__
76 return (Mu - 1) * (Mv - 1);
86 int inner_triangles = (Mu - 2) * (Mv - 2) * 2;
90 return inner_triangles + edge_triangles;
166 assert(n >= 0 && n <=
T);
181 assert(n >= 0 && n <=
T);
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_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