[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49287] branches/soc-2011-tomato: Merging r49281 through r49286 from trunk into soc-2011-tomato
Sergey Sharybin
sergey.vfx at gmail.com
Fri Jul 27 13:07:55 CEST 2012
Revision: 49287
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49287
Author: nazgul
Date: 2012-07-27 11:07:55 +0000 (Fri, 27 Jul 2012)
Log Message:
-----------
Merging r49281 through r49286 from trunk into soc-2011-tomato
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49281
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49286
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TrackPositionNode.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.h
branches/soc-2011-tomato/source/blender/editors/screen/screen_ops.c
branches/soc-2011-tomato/source/blender/editors/space_node/drawnode.c
branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c
branches/soc-2011-tomato/source/blender/windowmanager/intern/wm_init_exit.c
Property Changed:
----------------
branches/soc-2011-tomato/
branches/soc-2011-tomato/source/blender/editors/interface/interface.c
branches/soc-2011-tomato/source/blender/editors/space_outliner/
Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-49280
+ /branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-49286
Modified: branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h 2012-07-27 11:07:12 UTC (rev 49286)
+++ branches/soc-2011-tomato/source/blender/blenkernel/BKE_mask.h 2012-07-27 11:07:55 UTC (rev 49287)
@@ -214,6 +214,8 @@
#define MASKPOINT_SEL_HANDLE(p) { (p)->bezt.f1 |= SELECT; (p)->bezt.f3 |= SELECT; } (void)0
#define MASKPOINT_DESEL_HANDLE(p) { (p)->bezt.f1 &= ~SELECT; (p)->bezt.f3 &= ~SELECT; } (void)0
+#define MASK_RESOL_MAX 128
+
/* disable to test alternate rasterizer */
/* #define USE_RASKTER */
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c 2012-07-27 11:07:12 UTC (rev 49286)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/mask.c 2012-07-27 11:07:55 UTC (rev 49287)
@@ -316,6 +316,12 @@
resol = MAX2(resol, cur_resol);
}
+ BLI_assert(resol > 0);
+
+ if (resol > MASK_RESOL_MAX) {
+ resol = MASK_RESOL_MAX;
+ }
+
return resol;
}
@@ -346,6 +352,12 @@
resol += max_jump / max_segment;
+ BLI_assert(resol > 0);
+
+ if (resol > MASK_RESOL_MAX) {
+ resol = MASK_RESOL_MAX;
+ }
+
return resol;
}
Modified: branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TrackPositionNode.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TrackPositionNode.cpp 2012-07-27 11:07:12 UTC (rev 49286)
+++ branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TrackPositionNode.cpp 2012-07-27 11:07:55 UTC (rev 49287)
@@ -52,17 +52,20 @@
operationX->setTrackName(trackpos_data->track_name);
operationX->setFramenumber(context->getFramenumber());
operationX->setAxis(0);
- operationX->setRelative(editorNode->custom1);
+ operationX->setPosition(editorNode->custom1);
+ operationX->setRelativeFrame(editorNode->custom2);
operationY->setMovieClip(clip);
operationY->setTrackingObject(trackpos_data->tracking_object);
operationY->setTrackName(trackpos_data->track_name);
operationY->setFramenumber(context->getFramenumber());
operationY->setAxis(1);
- operationY->setRelative(editorNode->custom1);
+ operationY->setPosition(editorNode->custom1);
+ operationY->setRelativeFrame(editorNode->custom2);
outputX->relinkConnections(operationX->getOutputSocket());
outputY->relinkConnections(operationY->getOutputSocket());
graph->addOperation(operationX);
+ graph->addOperation(operationY);
}
Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.cpp 2012-07-27 11:07:12 UTC (rev 49286)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.cpp 2012-07-27 11:07:55 UTC (rev 49287)
@@ -39,58 +39,78 @@
TrackPositionOperation::TrackPositionOperation() : NodeOperation()
{
this->addOutputSocket(COM_DT_VALUE);
- this->movieClip = NULL;
- this->framenumber = 0;
- this->trackingObject[0] = 0;
- this->trackName[0] = 0;
- this->axis = 0;
- this->relative = false;
+ this->m_movieClip = NULL;
+ this->m_framenumber = 0;
+ this->m_trackingObjectName[0] = 0;
+ this->m_trackName[0] = 0;
+ this->m_axis = 0;
+ this->m_position = POSITION_ABSOLUTE;;
+ this->m_relativeFrame = 0;
}
-void TrackPositionOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler)
+void TrackPositionOperation::initExecution()
{
+ MovieTracking *tracking = NULL;
MovieClipUser user = {0};
- MovieTracking *tracking = &movieClip->tracking;
- MovieTrackingObject *object = BKE_tracking_object_get_named(tracking, this->trackingObject);
- MovieTrackingTrack *track;
- MovieTrackingMarker *marker;
- int width, height;
+ MovieTrackingObject *object;
- outputValue[0] = 0.0f;
+ zero_v2(this->m_markerPos);
+ zero_v2(this->m_relativePos);
- if (!object)
+ if (!this->m_movieClip)
return;
- track = BKE_tracking_track_get_named(tracking, object, this->trackName);
+ tracking = &this->m_movieClip->tracking;
- if (!track)
- return;
+ BKE_movieclip_user_set_frame(&user, this->m_framenumber);
+ BKE_movieclip_get_size(this->m_movieClip, &user, &this->m_width, &this->m_height);
- BKE_movieclip_user_set_frame(&user, this->framenumber);
- BKE_movieclip_get_size(this->movieClip, &user, &width, &height);
+ object = BKE_tracking_object_get_named(tracking, this->m_trackingObjectName);
+ if (object) {
+ MovieTrackingTrack *track;
- marker = BKE_tracking_marker_get(track, this->framenumber);
+ track = BKE_tracking_track_get_named(tracking, object, this->m_trackName);
- outputValue[0] = marker->pos[this->axis];
+ if (track) {
+ MovieTrackingMarker *marker;
+ int clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(this->m_movieClip, this->m_framenumber);
- if (this->relative) {
- int i;
+ marker = BKE_tracking_marker_get(track, clip_framenr);
- for (i = 0; i < track->markersnr; i++) {
- marker = &track->markers[i];
+ copy_v2_v2(this->m_markerPos, marker->pos);
- if ((marker->flag & MARKER_DISABLED) == 0) {
- outputValue[0] -= marker->pos[this->axis];
+ if (this->m_position == POSITION_RELATIVE_START) {
+ int i;
- break;
+ for (i = 0; i < track->markersnr; i++) {
+ marker = &track->markers[i];
+
+ if ((marker->flag & MARKER_DISABLED) == 0) {
+ copy_v2_v2(this->m_relativePos, marker->pos);
+
+ break;
+ }
+ }
}
+ else if (this->m_position == POSITION_RELATIVE_FRAME) {
+ int relative_clip_framenr = BKE_movieclip_remap_scene_to_clip_frame(this->m_movieClip,
+ this->m_relativeFrame);
+
+ marker = BKE_tracking_marker_get(track, relative_clip_framenr);
+ copy_v2_v2(this->m_relativePos, marker->pos);
+ }
}
}
+}
- if (this->axis == 0)
- outputValue[0] *= width;
+void TrackPositionOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler)
+{
+ outputValue[0] = this->m_markerPos[this->m_axis] - this->m_relativePos[this->m_axis];
+
+ if (this->m_axis == 0)
+ outputValue[0] *= this->m_width;
else
- outputValue[0] *= height;
+ outputValue[0] *= this->m_height;
}
void TrackPositionOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.h
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.h 2012-07-27 11:07:12 UTC (rev 49286)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.h 2012-07-27 11:07:55 UTC (rev 49287)
@@ -31,6 +31,7 @@
#include "DNA_scene_types.h"
#include "DNA_movieclip_types.h"
+#include "DNA_tracking_types.h"
#include "BLI_listbase.h"
@@ -39,13 +40,24 @@
*/
class TrackPositionOperation : public NodeOperation {
protected:
- MovieClip *movieClip;
- int framenumber;
- char trackingObject[64];
- char trackName[64];
- int axis;
- bool relative;
+ enum {
+ POSITION_ABSOLUTE = 0,
+ POSITION_RELATIVE_START,
+ POSITION_RELATIVE_FRAME
+ };
+ MovieClip *m_movieClip;
+ int m_framenumber;
+ char m_trackingObjectName[64];
+ char m_trackName[64];
+ int m_axis;
+ int m_position;
+ int m_relativeFrame;
+
+ int m_width, m_height;
+ float m_markerPos[2];
+ float m_relativePos[2];
+
/**
* Determine the output resolution. The resolution is retrieved from the Renderer
*/
@@ -54,13 +66,16 @@
public:
TrackPositionOperation();
- void setMovieClip(MovieClip *clip) {this->movieClip = clip;}
- void setTrackingObject(char *object) {strncpy(this->trackingObject, object, sizeof(this->trackingObject));}
- void setTrackName(char *track) {strncpy(this->trackName, track, sizeof(this->trackName));}
- void setFramenumber(int framenumber) {this->framenumber = framenumber;}
- void setAxis(int value) {this->axis = value;}
- void setRelative(bool value) {this->relative = value;}
+ void setMovieClip(MovieClip *clip) {this->m_movieClip = clip;}
+ void setTrackingObject(char *object) {strncpy(this->m_trackingObjectName, object, sizeof(this->m_trackingObjectName));}
+ void setTrackName(char *track) {strncpy(this->m_trackName, track, sizeof(this->m_trackName));}
+ void setFramenumber(int framenumber) {this->m_framenumber = framenumber;}
+ void setAxis(int value) {this->m_axis = value;}
+ void setPosition(int value) {this->m_position = value;}
+ void setRelativeFrame(int value) {this->m_relativeFrame = value;}
+ void initExecution();
+
void executePixel(float *color, float x, float y, PixelSampler sampler);
const bool isSetOperation() const { return true; }
Property changes on: branches/soc-2011-tomato/source/blender/editors/interface/interface.c
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ge_candy/source/blender/editors/interface/interface.c:45070-46163
/branches/ge_harmony/source/blender/editors/interface/interface.c:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list