29 bool enabled_ =
false;
33 : relations_buf_(selection_type,
"relations_buf_"),
34 points_buf_(selection_type,
"points_buf_")
43 relations_buf_.
clear();
57 const float3 &parent_pos = ob->
runtime->parent_display_origin;
58 relations_buf_.
append(parent_pos, ob->object_to_world().location(), relation_color);
67 relations_buf_.
append(hmd->
object->object_to_world().location(), center, relation_color);
69 points_buf_.
append(center, relation_color);
80 relations_buf_.
append(hmd->
object->object_to_world().location(), center, relation_color);
82 points_buf_.
append(center, relation_color);
91 relations_buf_.
append(rbc_ob1->object_to_world().location(),
92 ob->object_to_world().location(),
96 relations_buf_.
append(rbc_ob2->object_to_world().location(),
97 ob->object_to_world().location(),
117 camob = data->camera ? data->camera : scene->camera;
121 camob = data->camera ? data->camera : scene->camera;
125 relations_buf_.
append(camob->object_to_world().location(),
126 ob->object_to_world().location(),
132 ListBase targets = {
nullptr,
nullptr};
134 if ((constraint->ui_expand_flag & (1 << 0)) &&
148 target_pos = target->matrix[3];
151 target_pos, ob->object_to_world().location(), constraint_color);
176 state.clipping_plane_count);
185 state.clipping_plane_count);
199 manager.
submit(ps_, view);
void BKE_constraint_targets_flush(struct bConstraint *con, struct ListBase *targets, bool no_copy)
int BKE_constraint_targets_get(struct bConstraint *con, struct ListBase *r_targets)
void BKE_constraint_custom_object_space_init(struct bConstraintOb *cob, struct bConstraint *con)
const bConstraintTypeInfo * BKE_constraint_typeinfo_get(struct bConstraint *con)
struct bConstraintOb * BKE_constraints_make_evalob(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, void *subdata, short datatype)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
float DEG_get_ctime(const Depsgraph *graph)
@ CONSTRAINT_TAR_CUSTOM_SPACE
@ CONSTRAINT_TYPE_FOLLOWTRACK
@ CONSTRAINT_TYPE_OBJECTSOLVER
@ CONSTRAINT_OBTYPE_OBJECT
@ eGpencilModifierType_Hook
void GPU_framebuffer_bind(GPUFrameBuffer *framebuffer)
void submit(PassSimple &pass, View &view)
PassBase< DrawCommandBufType > & sub(const char *name)
void state_set(DRWState state, int clip_plane_count=0)
void bind_ubo(const char *name, GPUUniformBuf *buffer)
void shader_set(GPUShader *shader)
void end_sync(Resources &res, const State &state)
void draw(Framebuffer &framebuffer, Manager &manager, View &view)
void begin_sync(Resources &, const State &state)
void object_sync(const ObjectRef &ob_ref, Resources &res, const State &state)
Relations(SelectionType selection_type)
ShaderPtr extra_loose_points
int DRW_object_visibility_in_active_context(const Object *ob)
@ DRW_STATE_DEPTH_LESS_EQUAL
void MEM_freeN(void *vmemh)
VecBase< T, 3 > transform_point(const CartesianBasis &basis, const VecBase< T, 3 > &v)
ListBaseWrapperTemplate< ListBase, T > ListBaseWrapper
VecBase< float, 3 > float3
ObjectRuntimeHandle * runtime
ListBase greasepencil_modifiers
struct RigidBodyCon * rigidbody_constraint
float space_obj_world_matrix[4][4]
void(* get_target_matrix)(struct Depsgraph *depsgraph, struct bConstraint *con, struct bConstraintOb *cob, struct bConstraintTarget *ct, float ctime)
void append(const float3 &start, const float3 &end, const float4 &color, select::ID select_id=select::SelectMap::select_invalid_id())
void end_sync(PassSimple::Sub &pass)
void end_sync(PassSimple::Sub &pass)
void append(const float3 &position, const float4 &color, select::ID select_id=select::SelectMap::select_invalid_id())
GPUUniformBuf * globals_buf
GlobalsUboStorage theme_settings
void select_bind(PassSimple &pass)