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. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to