30 SphereOutlineInstanceBuf circle_buf_ = {selection_type_,
"metaball_data_buf"};
45 const Object *ob = ob_ref.object;
49 const float *col_radius = res.theme.colors.mball_radius;
50 const float *col_radius_select = res.theme.colors.mball_radius_select;
51 const float *col_stiffness = res.theme.colors.mball_stiffness;
52 const float *col_stiffness_select = res.theme.colors.mball_stiffness_select;
56 const bool is_selected = (ml->flag &
SELECT) != 0;
57 const bool is_scale_radius = (ml->flag &
MB_SCALE_RAD) != 0;
62 color = (is_selected && is_scale_radius) ? col_radius_select : col_radius;
63 circle_buf_.append({ob->object_to_world(), position, radius_stiffness[0],
color}, radius_id);
66 color = (is_selected && !is_scale_radius) ? col_stiffness_select : col_stiffness;
67 circle_buf_.append({ob->object_to_world(), position, radius_stiffness[1],
color}, stiff_id);
77 const Object *ob = ob_ref.object;
81 const select::ID select_id = res.select_id(ob_ref);
87 circle_buf_.append({ob->object_to_world(), position, radius,
color}, select_id);
95 state.clipping_plane_count);
98 ps_.shader_set(res.shaders->armature_sphere_outline.get());
101 ps_.push_constant(
"alpha", 1.0f);
102 res.select_bind(ps_);
104 circle_buf_.end_sync(ps_, res.shapes.metaball_wire_circle.get());
110 manager.submit(ps_,
view);
blender::float2 BKE_mball_element_display_radius_calc_with_stiffness(const MetaElem *ml)
float BKE_mball_element_display_radius_calc(const MetaElem *ml)
#define LISTBASE_FOREACH(type, var, list)
T & DRW_object_get_data_for_drawing(const Object &object)
void GPU_framebuffer_bind(blender::gpu::FrameBuffer *fb)
#define DRW_CLIPPING_UBO_SLOT
#define OVERLAY_GLOBALS_SLOT
@ DRW_STATE_DEPTH_LESS_EQUAL
select::SelectionType SelectionType
detail::Pass< command::DrawCommandBuf > PassSimple
VecBase< float, 4 > float4
VecBase< float, 2 > float2
VecBase< float, 3 > float3