[Bf-blender-cvs] [d685b9ca571] xr-actions-D9124: Cleanup: comments, variables
Peter Kim
noreply at git.blender.org
Sun Nov 15 15:53:23 CET 2020
Commit: d685b9ca571f49e4b73f0c2ddb1db811af71e53d
Author: Peter Kim
Date: Sat Nov 14 22:22:46 2020 +0900
Branches: xr-actions-D9124
https://developer.blender.org/rBd685b9ca571f49e4b73f0c2ddb1db811af71e53d
Cleanup: comments, variables
===================================================================
M intern/ghost/intern/GHOST_XrSession.cpp
M source/blender/makesdna/DNA_xr_types.h
M source/blender/makesrna/intern/rna_xr.c
M source/blender/windowmanager/xr/intern/wm_xr_actions.c
M source/blender/windowmanager/xr/intern/wm_xr_draw.c
M source/blender/windowmanager/xr/intern/wm_xr_operators.c
===================================================================
diff --git a/intern/ghost/intern/GHOST_XrSession.cpp b/intern/ghost/intern/GHOST_XrSession.cpp
index 0f74e151edd..8d6879502f9 100644
--- a/intern/ghost/intern/GHOST_XrSession.cpp
+++ b/intern/ghost/intern/GHOST_XrSession.cpp
@@ -179,7 +179,6 @@ static void create_reference_spaces(OpenXRSessionData &oxr, const GHOST_XrPose &
stage reference space for absolute tracking, if the runtime doesn't support it then just
fallback to the local space. */
if (result == XR_ERROR_REFERENCE_SPACE_UNSUPPORTED) {
- /* TODO_XR: Log to Info editor instead of stdout. */
printf(
"Warning: XR runtime does not support stage reference space, disabling absolute "
"tracking.\n");
@@ -199,7 +198,6 @@ static void create_reference_spaces(OpenXRSessionData &oxr, const GHOST_XrPose &
CHECK_XR(xrGetReferenceSpaceBoundsRect(oxr.session, XR_REFERENCE_SPACE_TYPE_STAGE, &extents),
"Failed to get stage reference space bounds.");
if (extents.width == 0.0f || extents.height == 0.0f) {
- /* TODO_XR: Log to Info editor. */
printf(
"Warning: Invalid stage reference space bounds, disabling absolute tracking. To use "
"absolute tracking, please define a tracking space via the XR runtime.\n");
diff --git a/source/blender/makesdna/DNA_xr_types.h b/source/blender/makesdna/DNA_xr_types.h
index 1b547ca8360..0f1b9f69777 100644
--- a/source/blender/makesdna/DNA_xr_types.h
+++ b/source/blender/makesdna/DNA_xr_types.h
@@ -47,7 +47,7 @@ typedef struct XrSessionSettings {
int flag;
- /** Objects whose location and rotation will be constrained to the XR headset / controller poses.
+ /** Objects whose location and rotation will be constrained to the XR headset/controller poses.
*/
Object *headset_object;
Object *controller0_object;
diff --git a/source/blender/makesrna/intern/rna_xr.c b/source/blender/makesrna/intern/rna_xr.c
index 8c8623e14e3..06ba291f229 100644
--- a/source/blender/makesrna/intern/rna_xr.c
+++ b/source/blender/makesrna/intern/rna_xr.c
@@ -971,7 +971,7 @@ static void rna_def_xr_session_state(BlenderRNA *brna)
0.0f,
1.0f,
"Threshold",
- "Input threshold for button actions",
+ "Input threshold for button/axis actions",
0.0f,
1.0f);
RNA_def_parameter_flags(parm, 0, PARM_REQUIRED);
diff --git a/source/blender/windowmanager/xr/intern/wm_xr_actions.c b/source/blender/windowmanager/xr/intern/wm_xr_actions.c
index ed6b870b2c3..3ada9b6ca8e 100644
--- a/source/blender/windowmanager/xr/intern/wm_xr_actions.c
+++ b/source/blender/windowmanager/xr/intern/wm_xr_actions.c
@@ -387,9 +387,8 @@ bool WM_xr_action_states_get(const wmXrData *xr,
break;
}
case GHOST_kXrActionTypeVector2fInput: {
- memcpy(((float(*)[2])info->states)[ist_idx],
- ((float(*)[2])action->states)[ast_idx],
- sizeof(float[2]));
+ copy_v2_v2(((float(*)[2])info->states)[ist_idx],
+ ((float(*)[2])action->states)[ast_idx]);
break;
}
case GHOST_kXrActionTypePoseInput: {
diff --git a/source/blender/windowmanager/xr/intern/wm_xr_draw.c b/source/blender/windowmanager/xr/intern/wm_xr_draw.c
index 527741ea6d3..39f21466710 100644
--- a/source/blender/windowmanager/xr/intern/wm_xr_draw.c
+++ b/source/blender/windowmanager/xr/intern/wm_xr_draw.c
@@ -193,9 +193,7 @@ void wm_xr_draw_controllers(const bContext *UNUSED(C), ARegion *UNUSED(region),
const float b[4] = {0.157f, 0.565f, 1.0f, 1.0f};
const float scale = 0.1f;
- float x_axis[3];
- float y_axis[3];
- float z_axis[3];
+ float x_axis[3], y_axis[3], z_axis[3];
for (int i = 0; i < 2; ++i) {
const float(*mat)[4] = state->controllers[i].mat;
diff --git a/source/blender/windowmanager/xr/intern/wm_xr_operators.c b/source/blender/windowmanager/xr/intern/wm_xr_operators.c
index 594d6ef8795..ed9124f4e6f 100644
--- a/source/blender/windowmanager/xr/intern/wm_xr_operators.c
+++ b/source/blender/windowmanager/xr/intern/wm_xr_operators.c
@@ -630,7 +630,7 @@ static void WM_OT_xr_select_raycast(wmOperatorType *ot)
-1.0f,
1.0f,
"Axis",
- "Normalized raycast axis in controller space",
+ "Raycast axis in controller space",
-1.0f,
1.0f);
}
@@ -677,7 +677,7 @@ static int wm_xr_grab_invoke_3d(bContext *C, wmOperator *op, const wmEvent *even
loc_lock = prop ? RNA_property_boolean_get(op->ptr, prop) : false;
if (!loc_lock) {
prop = RNA_struct_find_property(op->ptr, "location_interpolation");
- loc_t = prop ? RNA_property_float_get(op->ptr, prop) : 1.0f;
+ loc_t = prop ? RNA_property_float_get(op->ptr, prop) : 0.0f;
prop = RNA_struct_find_property(op->ptr, "location_offset");
if (prop && RNA_property_is_set(op->ptr, prop)) {
RNA_property_float_get_array(op->ptr, prop, loc_ofs);
@@ -689,7 +689,7 @@ static int wm_xr_grab_invoke_3d(bContext *C, wmOperator *op, const wmEvent *even
rot_lock = prop ? RNA_property_boolean_get(op->ptr, prop) : false;
if (!rot_lock) {
prop = RNA_struct_find_property(op->ptr, "rotation_interpolation");
- rot_t = prop ? RNA_property_float_get(op->ptr, prop) : 1.0f;
+ rot_t = prop ? RNA_property_float_get(op->ptr, prop) : 0.0f;
prop = RNA_struct_find_property(op->ptr, "rotation_offset");
if (prop && RNA_property_is_set(op->ptr, prop)) {
float tmp[3];
@@ -762,15 +762,20 @@ static int wm_xr_grab_invoke_3d(bContext *C, wmOperator *op, const wmEvent *even
}
}
else {
+ /* Apply interpolation and offsets. */
CTX_DATA_BEGIN (C, Object *, ob, selected_objects) {
+ bool update = false;
+
if (!loc_lock) {
if (loc_t > 0.0f) {
ob->loc[0] += loc_t * (actiondata->controller_loc[0] - ob->loc[0]);
ob->loc[1] += loc_t * (actiondata->controller_loc[1] - ob->loc[1]);
ob->loc[2] += loc_t * (actiondata->controller_loc[2] - ob->loc[2]);
+ update = true;
}
if (loc_ofs_set) {
add_v3_v3(ob->loc, loc_ofs);
+ update = true;
}
}
@@ -781,6 +786,7 @@ static int wm_xr_grab_invoke_3d(bContext *C, wmOperator *op, const wmEvent *even
if (!rot_ofs_set) {
quat_to_eul(ob->rot, tmp0);
}
+ update = true;
}
else if (rot_ofs_set) {
eul_to_quat(tmp0, ob->rot);
@@ -796,11 +802,13 @@ static int wm_xr_grab_invoke_3d(bContext *C, wmOperator *op, const wmEvent *even
mul_qt_qtqt(tmp2, tmp0, tmp1);
normalize_qt(tmp2);
quat_to_eul(ob->rot, tmp2);
+ update = true;
}
}
- DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM);
-
+ if (update) {
+ DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM);
+ }
selected = true;
}
CTX_DATA_END;
@@ -843,7 +851,7 @@ static int wm_xr_grab_modal_3d(bContext *C, wmOperator *op, const wmEvent *event
bScreen *screen_anim = ED_screen_animation_playing(wm);
bool loc_lock, rot_lock;
bool selected = false;
- float delta[4][4], tmp[4][4];
+ float delta[4][4], tmp0[4][4], tmp1[4][4], tmp2[4][4];
PropertyRNA *prop = RNA_struct_find_property(op->ptr, "location_lock");
loc_lock = prop ? RNA_property_boolean_get(op->ptr, prop) : false;
@@ -852,36 +860,34 @@ static int wm_xr_grab_modal_3d(bContext *C, wmOperator *op, const wmEvent *event
if (em) { /* TODO_XR: Non-mesh objects. */
if (!loc_lock || !rot_lock) {
- Scene *scene = CTX_data_scene(C);
ToolSettings *ts = scene->toolsettings;
BMesh *bm = em->bm;
BMIter iter;
- float tmp0[4][4], tmp1[4][4];
if (rot_lock) {
- unit_m4(tmp);
- copy_v3_v3(tmp[3], data->mat_prev[3]);
- mul_m4_m4m4(tmp0, obedit->imat, tmp);
- invert_m4(tmp0);
+ unit_m4(tmp0);
+ copy_v3_v3(tmp0[3], data->mat_prev[3]);
+ mul_m4_m4m4(tmp1, obedit->imat, tmp0);
+ invert_m4(tmp1);
quat_to_mat4(data->mat_prev, actiondata->controller_rot);
copy_v3_v3(data->mat_prev[3], actiondata->controller_loc);
- copy_v3_v3(tmp[3], data->mat_prev[3]);
- mul_m4_m4m4(tmp1, obedit->imat, tmp);
+ copy_v3_v3(tmp0[3], data->mat_prev[3]);
+ mul_m4_m4m4(tmp2, obedit->imat, tmp0);
- mul_m4_m4m4(delta, tmp1, tmp0);
+ mul_m4_m4m4(delta, tmp2, tmp1);
}
else {
- copy_m4_m4(tmp, data->mat_prev);
- mul_m4_m4m4(tmp0, obedit->imat, tmp);
- invert_m4(tmp0);
+ copy_m4_m4(tmp0, data->mat_prev);
+ mul_m4_m4m4(tmp1, obedit->imat, tmp0);
+ invert_m4(tmp1);
quat_to_mat4(data->mat_prev, actiondata->controller_rot);
copy_v3_v3(data->mat_prev[3], actiondata->controller_loc);
- copy_m4_m4(tmp, data->mat_prev);
- mul_m4_m4m4(tmp1, obedit->imat, tmp);
+ copy_m4_m4(tmp0, data->mat_prev);
+ mul_m4_m4m4(tmp2, obedit->imat, tmp0);
- mul_m4_m4m4(delta, tmp1, tmp0);
+ mul_m4_m4m4(delta, tmp2, tmp1);
if (loc_lock) {
zero_v3(delta[3]);
@@ -943,22 +949,21 @@ static int wm_xr_grab_modal_3d(bContext *C, wmOperator *op, const wmEvent *event
else {
if (!loc_lock || !rot_lock) {
if (rot_lock) {
- float tmp0[4][4];
unit_m4(tmp0);
copy_v3_v3(tmp0[3], data->mat_prev[3]);
- invert_m4_m4(tmp, tmp0);
+ invert_m4_m4(tmp1, tmp0);
quat_to_mat4(data->mat_prev, actiondata->controller_rot);
copy_v3_v3(data->mat_prev[3], actiondata->controller_loc);
copy_v3_v3(tmp0[3], data->mat_prev[3]);
- mul_m4_m4m4(delta, tmp0, tmp);
+ mul_m4_m4m4(delta, tmp0, tmp1);
}
else {
- invert_m4_m4(tmp, data->mat_prev);
+ invert_m4_m4(tmp0, data->mat_prev);
quat_to_mat4(data->mat_prev, actiondata->controller_rot);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list