Blender  V3.3
Functions
sculpt_smooth.c File Reference
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_hash.h"
#include "BLI_math.h"
#include "BLI_task.h"
#include "DNA_brush_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "BKE_brush.h"
#include "BKE_context.h"
#include "BKE_mesh.h"
#include "BKE_mesh_mapping.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_pbvh.h"
#include "BKE_scene.h"
#include "DEG_depsgraph.h"
#include "WM_api.h"
#include "WM_message.h"
#include "WM_toolsystem.h"
#include "WM_types.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_sculpt.h"
#include "paint_intern.h"
#include "sculpt_intern.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "bmesh.h"
#include <math.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

void SCULPT_neighbor_coords_average_interior (SculptSession *ss, float result[3], int index)
 
void SCULPT_bmesh_four_neighbor_average (float avg[3], float direction[3], BMVert *v)
 
void SCULPT_neighbor_coords_average (SculptSession *ss, float result[3], int index)
 
float SCULPT_neighbor_mask_average (SculptSession *ss, int index)
 
void SCULPT_neighbor_color_average (SculptSession *ss, float result[4], int index)
 
static void do_enhance_details_brush_task_cb_ex (void *__restrict userdata, const int n, const TaskParallelTLS *__restrict tls)
 
static void SCULPT_enhance_details_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, const int totnode)
 
static void do_smooth_brush_task_cb_ex (void *__restrict userdata, const int n, const TaskParallelTLS *__restrict tls)
 
void SCULPT_smooth (Sculpt *sd, Object *ob, PBVHNode **nodes, const int totnode, float bstrength, const bool smooth_mask)
 
void SCULPT_do_smooth_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 
void SCULPT_surface_smooth_laplacian_step (SculptSession *ss, float *disp, const float co[3], float(*laplacian_disp)[3], const int v_index, const float origco[3], const float alpha)
 
void SCULPT_surface_smooth_displace_step (SculptSession *ss, float *co, float(*laplacian_disp)[3], const int v_index, const float beta, const float fade)
 
static void SCULPT_do_surface_smooth_brush_laplacian_task_cb_ex (void *__restrict userdata, const int n, const TaskParallelTLS *__restrict tls)
 
static void SCULPT_do_surface_smooth_brush_displace_task_cb_ex (void *__restrict userdata, const int n, const TaskParallelTLS *__restrict tls)
 
void SCULPT_do_surface_smooth_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode)
 

Function Documentation

◆ do_enhance_details_brush_task_cb_ex()

static void do_enhance_details_brush_task_cb_ex ( void *__restrict  userdata,
const int  n,
const TaskParallelTLS *__restrict  tls 
)
static

◆ do_smooth_brush_task_cb_ex()

static void do_smooth_brush_task_cb_ex ( void *__restrict  userdata,
const int  n,
const TaskParallelTLS *__restrict  tls 
)
static

◆ SCULPT_bmesh_four_neighbor_average()

void SCULPT_bmesh_four_neighbor_average ( float  avg[3],
float  direction[3],
struct BMVert v 
)

For bmesh: Average surrounding verts based on an orthogonality measure. Naturally converges to a quad-like structure.

Definition at line 89 of file sculpt_smooth.c.

References add_v3_v3(), BM_edge_is_boundary(), BM_EDGES_OF_VERT, BM_ITER_ELEM, BMVert::co, copy_v3_v3(), dot_v3v3(), e, madd_v3_v3fl(), mul_v3_v3fl(), BMVert::no, normalize_v3(), sub_v3_v3(), sub_v3_v3v3(), v, and zero_v3().

Referenced by do_topology_rake_bmesh_task_cb_ex().

◆ SCULPT_do_smooth_brush()

void SCULPT_do_smooth_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_surface_smooth_brush()

void SCULPT_do_surface_smooth_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
int  totnode 
)

◆ SCULPT_do_surface_smooth_brush_displace_task_cb_ex()

static void SCULPT_do_surface_smooth_brush_displace_task_cb_ex ( void *__restrict  userdata,
const int  n,
const TaskParallelTLS *__restrict  tls 
)
static

◆ SCULPT_do_surface_smooth_brush_laplacian_task_cb_ex()

static void SCULPT_do_surface_smooth_brush_laplacian_task_cb_ex ( void *__restrict  userdata,
const int  n,
const TaskParallelTLS *__restrict  tls 
)
static

◆ SCULPT_enhance_details_brush()

static void SCULPT_enhance_details_brush ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
const int  totnode 
)
static

◆ SCULPT_neighbor_color_average()

void SCULPT_neighbor_color_average ( SculptSession ss,
float  result[4],
int  index 
)

◆ SCULPT_neighbor_coords_average()

void SCULPT_neighbor_coords_average ( SculptSession ss,
float  result[3],
int  index 
)

◆ SCULPT_neighbor_coords_average_interior()

void SCULPT_neighbor_coords_average_interior ( SculptSession ss,
float  result[3],
int  index 
)

◆ SCULPT_neighbor_mask_average()

float SCULPT_neighbor_mask_average ( SculptSession ss,
int  index 
)

◆ SCULPT_smooth()

void SCULPT_smooth ( Sculpt sd,
Object ob,
PBVHNode **  nodes,
const int  totnode,
float  bstrength,
const bool  smooth_mask 
)

◆ SCULPT_surface_smooth_displace_step()

void SCULPT_surface_smooth_displace_step ( SculptSession ss,
float co,
float(*)  laplacian_disp[3],
const int  v_index,
const float  beta,
const float  fade 
)

◆ SCULPT_surface_smooth_laplacian_step()

void SCULPT_surface_smooth_laplacian_step ( SculptSession ss,
float disp,
const float  co[3],
float(*)  laplacian_disp[3],
const int  v_index,
const float  origco[3],
const float  alpha 
)