22#include "RNA_prototypes.hh"
61 gz->
ptr = MEM_new<PointerRNA>(
"wmGizmoPtrRNA");
62 if (properties && properties->
data) {
105 const float color_default[4] = {1.0f, 1.0f, 1.0f, 1.0f};
144 if (gz->
ptr !=
nullptr) {
197 if ((part_index >= 0) && (part_index < gz->op_data.size())) {
198 return &gz->
op_data[part_index];
234 if (gzop->
ptr.
data ==
nullptr) {
246 const float z_axis[3])
250 const float z_global[3] = {0.0f, 0.0f, 1.0f};
264 const float y_axis[3],
265 const float z_axis[3])
278 const float y_axis[3],
279 const float z_axis[3])
293 const float y_axis[3],
294 const float z_axis[3])
359 bool changed =
false;
382 if (use_callback && changed) {
455 scale *=
U.gizmo_size;
458 float matrix_world[4][4];
460 float matrix_basis[4][4];
523 const float(*
const matrix_space)[4] =
params->matrix_space ?
params->matrix_space :
525 const float(*
const matrix_basis)[4] =
params->matrix_basis ?
params->matrix_basis :
527 const float(*
const matrix_offset)[4] =
params->matrix_offset ?
params->matrix_offset :
531 float final_matrix[4][4];
540 mul_m4_m4m4(final_matrix, final_matrix, matrix_offset);
545 mul_m4_m4m4(final_matrix, final_matrix, matrix_offset);
548 mul_m4_m4m4(final_matrix, final_matrix, matrix_offset);
558 float mat_identity[4][4];
562 params.matrix_space =
nullptr;
563 params.matrix_basis =
nullptr;
564 params.matrix_offset = mat_identity;
565 params.scale_final =
nullptr;
572 params.matrix_space =
nullptr;
573 params.matrix_basis =
nullptr;
574 params.matrix_offset =
nullptr;
575 params.scale_final =
nullptr;
605 if (*properties ==
nullptr) {
609 if (*
ptr ==
nullptr) {
610 *
ptr = MEM_new<PointerRNA>(
"wmOpItemPtr");
614 (*ptr)->data = *properties;
648 bool changed =
false;
653 if (ptype != &RNA_Struct) {
RegionView3D * CTX_wm_region_view3d(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
void IDP_FreeProperty(IDProperty *prop)
void IDP_ClearProperty(IDProperty *prop)
IDProperty * IDP_CopyProperty(const IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_MergeGroup(IDProperty *dest, const IDProperty *src, bool do_overwrite) ATTR_NONNULL()
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
void mul_mat3_m4_fl(float R[4][4], float f)
void unit_m4(float m[4][4])
void copy_m4_m4(float m1[4][4], const float m2[4][4])
void rotation_between_vecs_to_mat3(float m[3][3], const float v1[3], const float v2[3])
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void cross_v3_v3v3(float r[3], const float a[3], const float b[3])
MINLINE float normalize_v3_v3(float r[3], const float a[3])
void ortho_basis_v3v3_v3(float r_n1[3], float r_n2[3], const float n[3])
MINLINE float normalize_v3(float n[3])
void BPY_DECREF_RNA_INVALIDATE(void *pyob_ptr)
bScreen * ED_screen_animation_playing(const wmWindowManager *wm)
float ED_view3d_pixel_size_no_ui_scale(const RegionView3D *rv3d, const float co[3])
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
#define RNA_STRUCT_BEGIN(sptr, prop)
#define RNA_PROP_BEGIN(sptr, itemptr, prop)
@ WM_GIZMOMAP_DRAWSTEP_3D
@ WM_GIZMOMAP_DRAWSTEP_2D
@ WM_GIZMO_OPERATOR_TOOL_INIT
@ WM_GIZMO_DRAW_OFFSET_SCALE
@ WM_GIZMOGROUPTYPE_SCALE
@ WM_GIZMO_STATE_HIGHLIGHT
void resize(const int64_t new_size)
draw_view in_light_buf[] float
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
ccl_device_inline float4 select(const int4 mask, const float4 a, const float4 b)
std::unique_ptr< IDProperty, IDPropertyDeleter > create_group(StringRefNull prop_name, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_GROUP.
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
bool RNA_property_reset(PointerRNA *ptr, PropertyRNA *prop, int index)
StructRNA * RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
PropertyType RNA_property_type(PropertyRNA *prop)
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_flag(PropertyRNA *prop)
bool RNA_struct_idprops_unset(PointerRNA *ptr, const char *identifier)
PointerRNA RNA_pointer_create(ID *id, StructRNA *type, void *data)
PropertyRNA * RNA_struct_iterator_property(StructRNA *type)
const char * RNA_property_identifier(const PropertyRNA *prop)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
eWM_GizmoFlagGroupTypeFlag flag
struct wmGizmoMap::@202124367153150113353305105306303106072217353120 gzmap_context
Gizmo map runtime context.
struct wmGizmoProperty::@117015166124357113140055046164066116264326071147 custom_func
wmGizmoPropertyFnFree free_fn
wmGizmoFnSelectRefresh select_refresh
int target_property_defs_len
wmGizmoFnMatrixBasisGet matrix_basis_get
wmGizmoFnPropertyUpdate property_update
wmGizmoGroup * parent_gzgroup
float matrix_offset[4][4]
blender::Vector< wmGizmoOpElem, 4 > op_data
wmGizmoFnModal custom_modal
int WM_operator_name_call_ptr(bContext *C, wmOperatorType *ot, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
int WM_operator_name_call(bContext *C, const char *opstring, wmOperatorCallContext context, PointerRNA *properties, const wmEvent *event)
bool wm_gizmo_select_set_ex(wmGizmoMap *gzmap, wmGizmo *gz, bool select, bool use_array, bool use_callback)
void WM_gizmo_set_matrix_offset_location(wmGizmo *gz, const float offset[3])
void WM_gizmo_modal_set_from_setup(wmGizmoMap *gzmap, bContext *C, wmGizmo *gz, int part_index, const wmEvent *event)
wmGizmoOpElem * WM_gizmo_operator_get(wmGizmo *gz, int part_index)
bool WM_gizmo_context_check_drawstep(const bContext *C, eWM_GizmoFlagMapDrawStep step)
static void wm_gizmo_register(wmGizmoGroup *gzgroup, wmGizmo *gz)
static void gizmo_update_prop_data(wmGizmo *gz)
void WM_gizmo_modal_set_while_modal(wmGizmoMap *gzmap, bContext *C, wmGizmo *gz, const wmEvent *event)
void WM_gizmo_set_color_highlight(wmGizmo *gz, const float color_hi[4])
void WM_gizmo_set_line_width(wmGizmo *gz, const float line_width)
void WM_gizmo_calc_matrix_final_params(const wmGizmo *gz, const WM_GizmoMatrixParams *params, float r_mat[4][4])
bool wm_gizmo_select_and_highlight(bContext *C, wmGizmoMap *gzmap, wmGizmo *gz)
void WM_gizmo_get_color_highlight(const wmGizmo *gz, float color_hi[4])
void WM_gizmo_set_fn_custom_modal(wmGizmo *gz, wmGizmoFnModal fn)
void WM_gizmo_free(wmGizmo *gz)
void WM_gizmo_set_matrix_offset_rotation_from_yz_axis(wmGizmo *gz, const float y_axis[3], const float z_axis[3])
void WM_gizmo_calc_matrix_final(const wmGizmo *gz, float r_mat[4][4])
int WM_gizmo_operator_invoke(bContext *C, wmGizmo *gz, wmGizmoOpElem *gzop, const wmEvent *event)
wmGizmo * WM_gizmo_new(const char *idname, wmGizmoGroup *gzgroup, PointerRNA *properties)
void WM_gizmo_set_matrix_rotation_from_yz_axis(wmGizmo *gz, const float y_axis[3], const float z_axis[3])
void WM_gizmo_properties_create_ptr(PointerRNA *ptr, wmGizmoType *gzt)
wmGizmo * WM_gizmo_new_ptr(const wmGizmoType *gzt, wmGizmoGroup *gzgroup, PointerRNA *properties)
static void wm_gizmo_set_matrix_rotation_from_yz_axis__internal(float matrix[4][4], const float y_axis[3], const float z_axis[3])
void WM_gizmo_get_color(const wmGizmo *gz, float color[4])
void WM_gizmo_calc_matrix_final_no_offset(const wmGizmo *gz, float r_mat[4][4])
static wmGizmo * wm_gizmo_create(const wmGizmoType *gzt, PointerRNA *properties)
void wm_gizmo_update(wmGizmo *gz, const bContext *C, const bool refresh_map)
bool WM_gizmo_highlight_set(wmGizmoMap *gzmap, wmGizmo *gz)
void WM_gizmo_set_matrix_offset_rotation_from_z_axis(wmGizmo *gz, const float z_axis[3])
static void gizmo_init(wmGizmo *gz)
void WM_gizmo_set_scale(wmGizmo *gz, const float scale)
void WM_gizmo_set_matrix_location(wmGizmo *gz, const float origin[3])
bool WM_gizmo_select_unlink(wmGizmoMap *gzmap, wmGizmo *gz)
void WM_gizmo_set_flag(wmGizmo *gz, const int flag, const bool enable)
void WM_gizmo_set_matrix_rotation_from_z_axis(wmGizmo *gz, const float z_axis[3])
static void wm_gizmo_set_matrix_rotation_from_z_axis__internal(float matrix[4][4], const float z_axis[3])
bool WM_gizmo_select_set(wmGizmoMap *gzmap, wmGizmo *gz, bool select)
PointerRNA * WM_gizmo_operator_set(wmGizmo *gz, int part_index, wmOperatorType *ot, IDProperty *properties)
void WM_gizmo_properties_sanitize(PointerRNA *ptr, const bool no_context)
void WM_gizmo_properties_free(PointerRNA *ptr)
void WM_gizmo_properties_reset(wmGizmo *gz)
void WM_gizmo_properties_clear(PointerRNA *ptr)
void wm_gizmo_calculate_scale(wmGizmo *gz, const bContext *C)
bool WM_gizmo_properties_default(PointerRNA *ptr, const bool do_update)
void WM_gizmo_properties_create(PointerRNA *ptr, const char *gtstring)
void WM_gizmo_set_color(wmGizmo *gz, const float color[4])
int wm_gizmo_is_visible(wmGizmo *gz)
void WM_gizmo_properties_alloc(PointerRNA **ptr, IDProperty **properties, const char *gtstring)
void WM_gizmo_unlink(ListBase *gizmolist, wmGizmoMap *gzmap, wmGizmo *gz, bContext *C)
int(*)(bContext *, wmGizmo *, const wmEvent *, eWM_GizmoFlagTweak) wmGizmoFnModal
void wm_gizmogroup_gizmo_register(wmGizmoGroup *gzgroup, wmGizmo *gz)
void wm_gizmomap_select_array_remove(wmGizmoMap *gzmap, wmGizmo *gz)
@ WM_GIZMO_IS_VISIBLE_DRAW
@ WM_GIZMO_IS_VISIBLE_UPDATE
void wm_gizmomap_select_array_push_back(wmGizmoMap *gzmap, wmGizmo *gz)
void wm_gizmomap_modal_set(wmGizmoMap *gzmap, bContext *C, wmGizmo *gz, const wmEvent *event, bool enable)
bool wm_gizmomap_highlight_set(wmGizmoMap *gzmap, const bContext *C, wmGizmo *gz, int part)
bool WM_gizmo_target_property_is_valid(const wmGizmoProperty *gz_prop)
wmGizmoProperty * WM_gizmo_target_property_array(wmGizmo *gz)
const wmGizmoType * WM_gizmotype_find(const char *idname, bool quiet)
void WM_operator_properties_create_ptr(PointerRNA *ptr, wmOperatorType *ot)
void WM_operator_properties_free(PointerRNA *ptr)