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;
80 const float4 &color = res.object_wire_color(ob_ref,
state);
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());
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)
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
void state_set(DRWState state, int clip_plane_count=0)
void bind_ubo(const char *name, GPUUniformBuf *buffer)
void push_constant(const char *name, const float &data)
void shader_set(GPUShader *shader)
Mesh & DRW_object_get_data_for_drawing(const Object &object)
#define DRW_CLIPPING_UBO_SLOT
#define OVERLAY_GLOBALS_SLOT
@ DRW_STATE_DEPTH_LESS_EQUAL
VecBase< float, 3 > float3
void end_sync(PassSimple::Sub &pass, gpu::Batch *shape)
void append(const InstanceDataT &data, select::ID select_id)