76 Triangle tri = {{triangles[i * 3 + 0], triangles[i * 3 + 1], triangles[i * 3 + 2]}};
82 return triangles.size() / 3;
112 s.
v[0] = subd_creases_edge[i * 2];
113 s.v[1] = subd_creases_edge[i * 2 + 1];
114 s.crease = subd_creases_weight[i];
167 size_t patch_table_offset;
169 size_t corner_offset;
171 size_t num_subd_verts;
172 size_t num_subd_faces;
174 unordered_map<
int,
int> vert_to_stitching_key_map;
175 unordered_multimap<
int,
int>
202 void add_triangle(
int v0,
int v1,
int v2,
int shader,
bool smooth);
203 void add_subd_face(const
int *corners,
int num_corners,
int shader_,
bool smooth_);
235 return num_subd_faces;
240 num_subd_faces = num_subd_faces_;
245 return num_subd_verts;
249 void clear(
bool preserve_shaders,
bool preserve_voxel_data);
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert * v
int motion_step(float time) const
#define CCL_NAMESPACE_END
#define NODE_SOCKET_API_ARRAY(type_, name)
#define NODE_SOCKET_API(type_, name)
ccl_gpu_kernel_postfix ccl_global KernelWorkTile * tiles
int num_ptex_faces() const
float3 normal(const Mesh *mesh) const
bool valid(const float3 *verts) const
void motion_verts(const float3 *verts, const float3 *vert_steps, size_t num_verts, size_t num_steps, float time, float3 r_verts[3]) const
void verts_for_step(const float3 *verts, const float3 *vert_steps, size_t num_verts, size_t num_steps, size_t step, float3 r_verts[3]) const
void bounds_grow(const float3 *verts, BoundBox &bounds) const
float3 compute_normal(const float3 *verts) const
void tessellate(DiagSplit *split)
SubdParams * get_subd_params()
void reserve_subd_faces(int numfaces, int num_ngons, int numcorners)
size_t get_num_subd_faces() const
void add_edge_crease(int v0, int v1, float weight)
void reserve_subd_creases(size_t num_creases)
void compute_bounds() override
void add_vertex_normals()
AttributeSet subd_attributes
Triangle get_triangle(size_t i) const
void copy_center_to_motion_step(const int motion_step)
void clear(bool preserve_shaders=false) override
void resize_subd_faces(int numfaces, int num_ngons, int numcorners)
void pack_patches(uint *patch_data)
void pack_verts(packed_float3 *tri_verts, packed_uint3 *tri_vindex, uint *tri_patch, float2 *tri_patch_uv)
void reserve_mesh(int numverts, int numfaces)
void add_vertex_slow(float3 P)
@ SUBDIVISION_CATMULL_CLARK
size_t num_triangles() const
void set_num_subd_faces(size_t num_subd_faces_)
void pack_normals(packed_float3 *vnormal)
void add_vertex(float3 P)
SubdEdgeCrease get_subd_crease(size_t i) const
void get_uv_tiles(ustring map, unordered_set< int > &tiles) override
void add_vertex_crease(int v, float weight)
void add_triangle(int v0, int v1, int v2, int shader, bool smooth)
SubdFace get_subd_face(size_t index) const
void pack_shaders(Scene *scene, uint *shader)
PrimitiveType primitive_type() const override
void resize_mesh(int numverts, int numfaces)
void add_subd_face(const int *corners, int num_corners, int shader_, bool smooth_)
void apply_transform(const Transform &tfm, const bool apply_to_motion) override
size_t get_num_subd_verts()