75 Triangle tri = {{triangles[i * 3 + 0], triangles[i * 3 + 1], triangles[i * 3 + 2]}};
81 return triangles.size() / 3;
111 s.
v[0] = subd_creases_edge[i * 2];
112 s.
v[1] = subd_creases_edge[i * 2 + 1];
113 s.
crease = subd_creases_weight[i];
166 size_t patch_table_offset;
168 size_t corner_offset;
170 size_t num_subd_verts;
171 size_t num_subd_faces;
173 unordered_map<
int,
int> vert_to_stitching_key_map;
174 unordered_multimap<
int,
int>
202 void add_subd_face(const
int *corners,
int num_corners,
int shader_,
bool smooth_);
234 return num_subd_faces;
239 num_subd_faces = num_subd_faces_;
244 return num_subd_verts;
248 void clear(
bool preserve_shaders,
bool preserve_voxel_data);
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
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(type_, name)
ccl_gpu_kernel_postfix ccl_global KernelWorkTile * tiles
static void vnormal(PROCESS *process, const float point[3], float r_no[3])
void split(const std::string &s, const char delim, std::vector< std::string > &tokens)
SocketIndexByIdentifierMap * map
smooth(Type::FLOAT, "mask_weight")
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)
void pack_verts(packed_float3 *tri_verts, uint4 *tri_vindex, uint *tri_patch, float2 *tri_patch_uv)
NODE_SOCKET_API_ARRAY(array< int >, triangle_patch) AttributeSet subd_attributes
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()
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 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()