Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.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 "DNA_object_types.h"
#include "BKE_brush.h"
#include "BKE_ccg.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_mesh.h"
#include "BKE_multires.h"
#include "BKE_node.h"
#include "BKE_object.h"
#include "BKE_paint.h"
#include "BKE_pbvh.h"
#include "BKE_scene.h"
#include "paint_intern.h"
#include "sculpt_intern.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
#include "GPU_matrix.h"
#include "GPU_state.h"
#include "bmesh.h"
#include <math.h>
#include <stdlib.h>
Go to the source code of this file.
Classes | |
struct | MultiplaneScrapeSampleData |
Typedefs | |
typedef struct MultiplaneScrapeSampleData | MultiplaneScrapeSampleData |
Functions | |
static void | calc_multiplane_scrape_surface_task_cb (void *__restrict userdata, const int n, const TaskParallelTLS *__restrict tls) |
static void | calc_multiplane_scrape_surface_reduce (const void *__restrict UNUSED(userdata), void *__restrict chunk_join, void *__restrict chunk) |
static void | do_multiplane_scrape_brush_task_cb_ex (void *__restrict userdata, const int n, const TaskParallelTLS *__restrict tls) |
void | SCULPT_do_multiplane_scrape_brush (Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) |
void | SCULPT_multiplane_scrape_preview_draw (const uint gpuattr, Brush *brush, SculptSession *ss, const float outline_col[3], const float outline_alpha) |
typedef struct MultiplaneScrapeSampleData MultiplaneScrapeSampleData |
|
static |
Definition at line 107 of file sculpt_multiplane_scrape.c.
References add_v3_v3(), MultiplaneScrapeSampleData::area_cos, MultiplaneScrapeSampleData::area_count, and MultiplaneScrapeSampleData::area_nos.
Referenced by SCULPT_do_multiplane_scrape_brush().
|
static |
Definition at line 50 of file sculpt_multiplane_scrape.c.
References add_v3_v3(), MultiplaneScrapeSampleData::area_cos, MultiplaneScrapeSampleData::area_count, MultiplaneScrapeSampleData::area_nos, BKE_pbvh_vertex_iter_begin, BKE_pbvh_vertex_iter_end, BLI_task_parallel_thread_id(), PBVHVertexIter::co, copy_v3_v3(), data, SculptBrushTest::dist, fade(), Brush::falloff_shape, float(), PBVHVertexIter::fno, PBVHVertexIter::index, madd_v3_v3fl(), PBVHVertexIter::mask, mul_v3_m4v3(), PBVHVertexIter::no, normal, Brush::normal_radius_factor, SculptSession::pbvh, PBVH_ITER_UNIQUE, SculptBrushTest::radius_squared, SCULPT_brush_strength_factor(), SCULPT_brush_test_init_with_falloff_shape(), sqrtf, and blender::threading::enumerable_thread_specific_utils::thread_id.
Referenced by SCULPT_do_multiplane_scrape_brush().
|
static |
Definition at line 124 of file sculpt_multiplane_scrape.c.
References angle(), BKE_pbvh_node_add_proxy(), BKE_pbvh_vert_tag_update_normal(), BKE_pbvh_vertex_iter_begin, BKE_pbvh_vertex_iter_end, BLI_task_parallel_thread_id(), StrokeCache::bstrength, SculptSession::cache, closest_to_plane_normalized_v3(), PBVHProxyNode::co, PBVHVertexIter::co, data, fabsf, fade(), float(), PBVHVertexIter::fno, PBVHVertexIter::i, PBVHVertexIter::index, len_v3(), PBVHVertexIter::mask, mul_v3_m4v3(), mul_v3_v3fl(), PBVHVertexIter::mvert, PBVHVertexIter::no, SculptSession::pbvh, PBVH_ITER_UNIQUE, SCULPT_brush_strength_factor(), SCULPT_brush_test_init_with_falloff_shape(), SCULPT_plane_point_side(), SCULPT_plane_trim(), sub_v3_v3v3(), and blender::threading::enumerable_thread_specific_utils::thread_id.
Referenced by SCULPT_do_multiplane_scrape_brush().
Definition at line 211 of file sculpt_multiplane_scrape.c.
References add_v3_v3(), angle_v3v3(), MultiplaneScrapeSampleData::area_cos, MultiplaneScrapeSampleData::area_count, MultiplaneScrapeSampleData::area_nos, BKE_paint_brush(), BKE_pbvh_parallel_range_settings(), BLI_task_parallel_range(), BRUSH_MULTIPLANE_SCRAPE_DYNAMIC, BRUSH_ORIGINAL_NORMAL, StrokeCache::bstrength, SculptSession::cache, calc_multiplane_scrape_surface_reduce(), calc_multiplane_scrape_surface_task_cb(), copy_m4_m4(), copy_v3_v3(), cross_v3_v3v3(), data, DEG2RADF, do_multiplane_scrape_brush_task_cb_ex(), dot_v3v3(), Brush::flag, Brush::flag2, TaskParallelSettings::func_reduce, StrokeCache::grab_delta_symmetry, interpf(), invert_m4(), invert_m4_m4(), is_zero_v3(), StrokeCache::location, mid_v3_v3v3(), StrokeCache::mirror_symmetry_pass, mul_v3_fl(), mul_v3_mat3_m4v3(), mul_v3_v3fl(), mul_v3_v3v3(), StrokeCache::multiplane_scrape_angle, Brush::multiplane_scrape_angle, normalize_m4(), normalize_v3(), NULL, offset, Sculpt::paint, plane_from_point_normal_v3(), StrokeCache::pressure, RAD2DEGF, StrokeCache::radial_symmetry_pass, StrokeCache::radius, rotate_v3_v3v3fl(), StrokeCache::scale, Object::sculpt, SCULPT_brush_plane_offset_get(), SCULPT_calc_area_normal(), SCULPT_calc_brush_plane(), SCULPT_DISP_DIR_AREA, Brush::sculpt_plane, SCULPT_stroke_is_first_brush_step_of_symmetry_pass(), SculptThreadedTaskData::sd, StrokeCache::stroke_local_mat, sub_v3_v3v3(), TaskParallelSettings::userdata_chunk, and TaskParallelSettings::userdata_chunk_size.
Referenced by do_brush_action().
void SCULPT_multiplane_scrape_preview_draw | ( | const uint | gpuattr, |
Brush * | brush, | ||
SculptSession * | ss, | ||
const float | outline_col[3], | ||
const float | outline_alpha | ||
) |
Definition at line 383 of file sculpt_multiplane_scrape.c.
References angle(), BRUSH_MULTIPLANE_SCRAPE_PLANES_PREVIEW, SculptSession::cache, DEG2RADF, Brush::flag2, GPU_matrix_mul, GPU_PRIM_LINES, GPU_PRIM_TRIS, immBegin(), immEnd(), immUniformColor3fvAlpha(), immVertex3f(), StrokeCache::invert, invert_m4_m4(), StrokeCache::multiplane_scrape_angle, offset, StrokeCache::pen_flip, StrokeCache::radius, rotate_v3_v3v3fl(), and StrokeCache::stroke_local_mat.
Referenced by paint_cursor_cursor_draw_3d_view_brush_cursor_active().