[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38367] branches/soc-2011-salad: Merging r38344 through r38366 from soc-2011-tomato into soc-2011-salad
Sergey Sharybin
g.ulairi at gmail.com
Wed Jul 13 19:12:49 CEST 2011
Revision: 38367
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38367
Author: nazgul
Date: 2011-07-13 17:12:49 +0000 (Wed, 13 Jul 2011)
Log Message:
-----------
Merging r38344 through r38366 from soc-2011-tomato into soc-2011-salad
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38344
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38366
Modified Paths:
--------------
branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py
branches/soc-2011-salad/source/blender/blenkernel/BKE_object.h
branches/soc-2011-salad/source/blender/blenkernel/intern/depsgraph.c
branches/soc-2011-salad/source/blender/blenkernel/intern/object.c
branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c
branches/soc-2011-salad/source/blender/editors/CMakeLists.txt
branches/soc-2011-salad/source/blender/editors/space_clip/clip_intern.h
branches/soc-2011-salad/source/blender/editors/space_clip/space_clip.c
branches/soc-2011-salad/source/blender/editors/space_clip/tracking_ops.c
Property Changed:
----------------
branches/soc-2011-salad/
Property changes on: branches/soc-2011-salad
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/branches/soc-2011-carrot:36854,37548,37564,37602,37622,37848,38043,38064,38226,38231,38282
/branches/soc-2011-cucumber:36829-36994
/branches/soc-2011-onion:36833-38309
/branches/soc-2011-pepper:36830-38208
/branches/soc-2011-tomato:36831-38343
/trunk/blender:36834-38365
+ /branches/soc-2010-jwilkins:28499-37009
/branches/soc-2010-nicolasbishop:28448-30783,30792-30793,30797-30798,30815
/branches/soc-2011-carrot:36854,37548,37564,37602,37622,37848,38043,38064,38226,38231,38282
/branches/soc-2011-cucumber:36829-36994
/branches/soc-2011-onion:36833-38309
/branches/soc-2011-pepper:36830-38208
/branches/soc-2011-tomato:36831-38366
/trunk/blender:36834-38365
Modified: branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/release/scripts/startup/bl_ui/space_clip.py 2011-07-13 17:12:49 UTC (rev 38367)
@@ -84,12 +84,6 @@
ob = bpy.data.objects.new(name="Bundles", object_data=mesh)
- camera = bpy.context.scene.camera
- if camera:
- ob.location = camera.location
- ob.rotation_quaternion = camera.rotation_quaternion
- ob.rotation_euler = camera.rotation_euler
-
bpy.context.scene.objects.link(ob)
return {'FINISHED'}
@@ -183,7 +177,12 @@
col = layout.column(align=True)
col.label(text="Scene Orientation:")
+ col.operator("clip.set_floor")
col.operator("clip.set_origin")
+
+ row = col.row()
+ row.operator("clip.set_axis", text="Set X Axis").axis = 'X'
+ row.operator("clip.set_axis", text="Set Y Axis").axis = 'Y'
else:
layout.operator('clip.open')
@@ -244,7 +243,6 @@
row.prop(settings, "frames_limit")
-
class CLIP_PT_tracking_camera(bpy.types.Panel):
bl_space_type = 'CLIP_EDITOR'
bl_region_type = 'UI'
Modified: branches/soc-2011-salad/source/blender/blenkernel/BKE_object.h
===================================================================
--- branches/soc-2011-salad/source/blender/blenkernel/BKE_object.h 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/blenkernel/BKE_object.h 2011-07-13 17:12:49 UTC (rev 38367)
@@ -112,6 +112,7 @@
void where_is_object_time(struct Scene *scene, struct Object *ob, float ctime);
void where_is_object(struct Scene *scene, struct Object *ob);
void where_is_object_simul(struct Scene *scene, struct Object *ob);
+void where_is_object_mat(struct Scene *scene, struct Object *ob, float obmat[4][4]);
struct BoundBox *unit_boundbox(void);
void boundbox_set_from_min_max(struct BoundBox *bb, float min[3], float max[3]);
Modified: branches/soc-2011-salad/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- branches/soc-2011-salad/source/blender/blenkernel/intern/depsgraph.c 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/blenkernel/intern/depsgraph.c 2011-07-13 17:12:49 UTC (rev 38367)
@@ -645,6 +645,17 @@
/* special case for FollowTrack -- it doesn't use targets to define relations */
if(ELEM(cti->type, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_CAMERASOLVER)) {
+ if(cti->type==CONSTRAINT_TYPE_FOLLOWTRACK) {
+ bFollowTrackConstraint *data= (bFollowTrackConstraint *)con->data;
+
+ if(data->reference==FOLLOWTRACK_BUNDLE) {
+ if((data->clip || data->flag&FOLLOWTRACK_DEFAULTCLIP) && data->track[0]) {
+ node2 = dag_get_node(dag, scene->camera);
+ dag_add_relation(dag, node2, node, DAG_RL_DATA_OB|DAG_RL_OB_OB, cti->name);
+ }
+ }
+ }
+
dag_add_relation(dag,scenenode,node,DAG_RL_SCENE, "Scene Relation");
addtoroot = 0;
}
Modified: branches/soc-2011-salad/source/blender/blenkernel/intern/object.c
===================================================================
--- branches/soc-2011-salad/source/blender/blenkernel/intern/object.c 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/blenkernel/intern/object.c 2011-07-13 17:12:49 UTC (rev 38367)
@@ -2114,6 +2114,39 @@
else ob->transflag &= ~OB_NEG_SCALE;
}
+/* get object transformation matrix without recalculating dependencies and
+ constraints -- assume dependencies are already solved by depsgraph.
+ no changes to object and it's parent would be done.
+ used for bundles orientation in 3d space relative to parented blender camera */
+void where_is_object_mat(Scene *scene, Object *ob, float obmat[4][4])
+{
+ float *fp1, *fp2, slowmat[4][4] = MAT4_UNITY;
+ float fac1, fac2;
+ int a;
+
+ if(ob->parent) {
+ Object *par= ob->parent;
+
+ solve_parenting(scene, ob, par, obmat, slowmat, 1);
+
+ if(ob->partype & PARSLOW) {
+ // include framerate
+ fac1= ( 1.0f / (1.0f + (float)fabs(give_timeoffset(ob))) );
+ if(fac1 >= 1.0f) return;
+ fac2= 1.0f-fac1;
+
+ fp1= obmat[0];
+ fp2= slowmat[0];
+ for(a=0; a<16; a++, fp1++, fp2++) {
+ fp1[0]= fac1*fp1[0] + fac2*fp2[0];
+ }
+ }
+ }
+ else {
+ object_to_mat4(ob, obmat);
+ }
+}
+
static void solve_parenting (Scene *scene, Object *ob, Object *par, float obmat[][4], float slowmat[][4], int simul)
{
float totmat[4][4];
Modified: branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/blenkernel/intern/tracking.c 2011-07-13 17:12:49 UTC (rev 38367)
@@ -873,17 +873,13 @@
void BKE_get_tracking_mat(Scene *scene, float mat[4][4])
{
- float obmat[4][4];
-
- unit_m4(obmat);
-
if(!scene->camera)
scene->camera= scene_find_camera(scene);
if(scene->camera)
- object_to_mat4(scene->camera, obmat);
-
- copy_m4_m4(mat, obmat);
+ where_is_object_mat(scene, scene->camera, mat);
+ else
+ unit_m4(mat);
}
void BKE_tracking_projection_matrix(MovieTracking *tracking, int framenr, int winx, int winy, float mat[4][4])
Modified: branches/soc-2011-salad/source/blender/editors/CMakeLists.txt
===================================================================
--- branches/soc-2011-salad/source/blender/editors/CMakeLists.txt 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/editors/CMakeLists.txt 2011-07-13 17:12:49 UTC (rev 38367)
@@ -36,6 +36,7 @@
add_subdirectory(space_action)
add_subdirectory(space_api)
add_subdirectory(space_buttons)
+ add_subdirectory(space_clip)
add_subdirectory(space_console)
add_subdirectory(space_file)
add_subdirectory(space_graph)
Modified: branches/soc-2011-salad/source/blender/editors/space_clip/clip_intern.h
===================================================================
--- branches/soc-2011-salad/source/blender/editors/space_clip/clip_intern.h 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/editors/space_clip/clip_intern.h 2011-07-13 17:12:49 UTC (rev 38367)
@@ -78,6 +78,8 @@
void CLIP_OT_hide_tracks_clear(struct wmOperatorType *ot);
void CLIP_OT_set_origin(struct wmOperatorType *ot);
+void CLIP_OT_set_floor(struct wmOperatorType *ot);
+void CLIP_OT_set_axis(struct wmOperatorType *ot);
void CLIP_OT_slide_marker(struct wmOperatorType *ot);
Modified: branches/soc-2011-salad/source/blender/editors/space_clip/space_clip.c
===================================================================
--- branches/soc-2011-salad/source/blender/editors/space_clip/space_clip.c 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/editors/space_clip/space_clip.c 2011-07-13 17:12:49 UTC (rev 38367)
@@ -212,7 +212,10 @@
WM_operatortype_append(CLIP_OT_disable_markers);
WM_operatortype_append(CLIP_OT_hide_tracks);
WM_operatortype_append(CLIP_OT_hide_tracks_clear);
+
WM_operatortype_append(CLIP_OT_set_origin);
+ WM_operatortype_append(CLIP_OT_set_floor);
+ WM_operatortype_append(CLIP_OT_set_axis);
WM_operatortype_append(CLIP_OT_clear_track_path);
Modified: branches/soc-2011-salad/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- branches/soc-2011-salad/source/blender/editors/space_clip/tracking_ops.c 2011-07-13 16:55:57 UTC (rev 38366)
+++ branches/soc-2011-salad/source/blender/editors/space_clip/tracking_ops.c 2011-07-13 17:12:49 UTC (rev 38367)
@@ -46,6 +46,7 @@
#include "BKE_tracking.h"
#include "BKE_global.h"
#include "BKE_depsgraph.h"
+#include "BKE_object.h"
#include "BKE_report.h"
#include "BKE_scene.h"
@@ -97,25 +98,25 @@
return 0;
}
-static int space_clip_frame_act_bundle_poll(bContext *C)
+static int space_clip_frame_camera_poll(bContext *C)
{
- SpaceClip *sc= CTX_wm_space_clip(C);
+ Scene *scene= CTX_data_scene(C);
- if(sc) {
- MovieClip *clip= ED_space_clip(sc);
+ if(space_clip_frame_poll(C)) {
+ return scene->camera != NULL;
+ }
- if(clip) {
- if (BKE_movieclip_has_frame(clip, &sc->user)) {
- int sel_type;
- MovieTrackingTrack *sel;
- BKE_movieclip_last_selection(clip, &sel_type, (void**)&sel);
+ return 0;
+}
- if(sel_type == MCLIP_SEL_TRACK)
- return sel->flag&TRACK_HAS_BUNDLE;
- }
- }
- }
+static int space_clip_camera_poll(bContext *C)
+{
+ SpaceClip *sc= CTX_wm_space_clip(C);
+ Scene *scene= CTX_data_scene(C);
+ if(sc && sc->clip && scene->camera)
+ return 1;
+
return 0;
}
@@ -1156,6 +1157,7 @@
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ /* proeprties */
RNA_def_enum(ot->srna, "action", clear_path_actions, TRACK_CLEAR_REMAINED, "Action", "Clear action to execute");
}
@@ -1216,29 +1218,56 @@
/********************** set origin operator *********************/
-static int set_origin_exec(bContext *C, wmOperator *UNUSED(op))
+static int count_selected_bundles(bContext *C)
{
SpaceClip *sc= CTX_wm_space_clip(C);
MovieClip *clip= ED_space_clip(sc);
- MovieTrackingTrack *sel;
+ MovieTrackingTrack *track;
+ int tot= 0;
+
+ track= clip->tracking.tracks.first;
+ while(track) {
+ if(TRACK_SELECTED(track))
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list