Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_select.c
| Show First 20 Lines • Show All 2,071 Lines • ▼ Show 20 Lines | if (hits > 0) { | ||||
| basact = object_mouse_select_menu(C, &vc, buffer, hits, mval, extend, deselect, toggle); | basact = object_mouse_select_menu(C, &vc, buffer, hits, mval, extend, deselect, toggle); | ||||
| } | } | ||||
| else { | else { | ||||
| basact = mouse_select_eval_buffer(&vc, buffer, hits, startbase, has_bones, do_nearest); | basact = mouse_select_eval_buffer(&vc, buffer, hits, startbase, has_bones, do_nearest); | ||||
| } | } | ||||
| if (has_bones && basact) { | if (has_bones && basact) { | ||||
| if (basact->object->type == OB_CAMERA) { | if (basact->object->type == OB_CAMERA) { | ||||
| if (oldbasact == basact) { | MovieClip *clip = BKE_object_movieclip_get(scene, basact->object, false); | ||||
| if (clip != NULL && oldbasact == basact) { | |||||
jbakker: false, or true doesn't matter for the question, but this should be put back to false if we… | |||||
| int i, hitresult; | int i, hitresult; | ||||
| bool changed = false; | bool changed = false; | ||||
| for (i = 0; i < hits; i++) { | for (i = 0; i < hits; i++) { | ||||
| hitresult = buffer[3 + (i * 4)]; | hitresult = buffer[3 + (i * 4)]; | ||||
| /* if there's bundles in buffer select bundles first, | /* if there's bundles in buffer select bundles first, | ||||
| * so non-camera elements should be ignored in buffer */ | * so non-camera elements should be ignored in buffer */ | ||||
| if (basact->object->runtime.select_id != (hitresult & 0xFFFF)) { | if (basact->object->runtime.select_id != (hitresult & 0xFFFF)) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| /* index of bundle is 1<<16-based. if there's no "bone" index | /* index of bundle is 1<<16-based. if there's no "bone" index | ||||
| * in height word, this buffer value belongs to camera. not to bundle | * in height word, this buffer value belongs to camera. not to bundle | ||||
| */ | */ | ||||
| if (buffer[4 * i + 3] & 0xFFFF0000) { | if (buffer[4 * i + 3] & 0xFFFF0000) { | ||||
| MovieClip *clip = BKE_object_movieclip_get(scene, basact->object, false); | |||||
| MovieTracking *tracking = &clip->tracking; | MovieTracking *tracking = &clip->tracking; | ||||
| ListBase *tracksbase; | ListBase *tracksbase; | ||||
| MovieTrackingTrack *track; | MovieTrackingTrack *track; | ||||
| track = BKE_tracking_track_get_indexed( | track = BKE_tracking_track_get_indexed( | ||||
| &clip->tracking, hitresult >> 16, &tracksbase); | &clip->tracking, hitresult >> 16, &tracksbase); | ||||
| if (TRACK_SELECTED(track) && extend) { | if (TRACK_SELECTED(track) && extend) { | ||||
| ▲ Show 20 Lines • Show All 2,011 Lines • Show Last 20 Lines | |||||
false, or true doesn't matter for the question, but this should be put back to false if we continue