[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48092] branches/soc-2011-tomato/source/ blender: Added option to witch track position output node value to relative value

Sergey Sharybin sergey.vfx at gmail.com
Tue Jun 19 20:04:44 CEST 2012


Revision: 48092
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48092
Author:   nazgul
Date:     2012-06-19 18:04:40 +0000 (Tue, 19 Jun 2012)
Log Message:
-----------
Added option to witch track position output node value to relative value
against initial's track position.

Modified Paths:
--------------
    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/space_node/drawnode.c
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c

Modified: branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TrackPositionNode.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TrackPositionNode.cpp	2012-06-19 17:57:51 UTC (rev 48091)
+++ branches/soc-2011-tomato/source/blender/compositor/nodes/COM_TrackPositionNode.cpp	2012-06-19 18:04:40 UTC (rev 48092)
@@ -52,12 +52,14 @@
 	operationX->setTrackName(trackpos_data->track_name);
 	operationX->setFramenumber(context->getFramenumber());
 	operationX->setAxis(0);
+	operationX->setRelative(editorNode->custom1);
 
 	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);
 
 	outputX->relinkConnections(operationX->getOutputSocket());
 	outputY->relinkConnections(operationY->getOutputSocket());

Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.cpp	2012-06-19 17:57:51 UTC (rev 48091)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.cpp	2012-06-19 18:04:40 UTC (rev 48092)
@@ -44,6 +44,7 @@
 	this->trackingObject[0] = 0;
 	this->trackName[0] = 0;
 	this->axis = 0;
+	this->relative = false;
 }
 
 void TrackPositionOperation::executePixel(float *outputValue, float x, float y, PixelSampler sampler, MemoryBuffer *inputBuffers[])
@@ -72,6 +73,20 @@
 
 	outputValue[0] = marker->pos[this->axis];
 
+	if (this->relative) {
+		int i;
+
+		for (i = 0; i < track->markersnr; i++) {
+			marker = &track->markers[i];
+
+			if ((marker->flag & MARKER_DISABLED) == 0) {
+				outputValue[0] -= marker->pos[this->axis];
+
+				break;
+			}
+		}
+	}
+
 	if (this->axis == 0)
 		outputValue[0] *= width;
 	else

Modified: branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.h
===================================================================
--- branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.h	2012-06-19 17:57:51 UTC (rev 48091)
+++ branches/soc-2011-tomato/source/blender/compositor/operations/COM_TrackPositionOperation.h	2012-06-19 18:04:40 UTC (rev 48092)
@@ -44,6 +44,7 @@
 	char trackingObject[64];
 	char trackName[64];
 	int axis;
+	bool relative;
 
 	/**
 	  * Determine the output resolution. The resolution is retrieved from the Renderer
@@ -58,6 +59,7 @@
 	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 executePixel(float *color, float x, float y, PixelSampler sampler, MemoryBuffer * inputBuffers[]);
 

Modified: branches/soc-2011-tomato/source/blender/editors/space_node/drawnode.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/space_node/drawnode.c	2012-06-19 17:57:51 UTC (rev 48091)
+++ branches/soc-2011-tomato/source/blender/editors/space_node/drawnode.c	2012-06-19 18:04:40 UTC (rev 48092)
@@ -2497,6 +2497,8 @@
 		else {
 			uiItemR(layout, ptr, "track_name", 0, "", ICON_ANIM_DATA);
 		}
+
+		uiItemR(layout, ptr, "use_relative", 0, NULL, ICON_NONE);
 	}
 }
 

Modified: branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c
===================================================================
--- branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c	2012-06-19 17:57:51 UTC (rev 48091)
+++ branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c	2012-06-19 18:04:40 UTC (rev 48092)
@@ -3624,6 +3624,11 @@
 	RNA_def_property_ui_text(prop, "Movie Clip", "");
 	RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
 
+	prop = RNA_def_property(srna, "use_relative", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "custom1", 1);
+	RNA_def_property_ui_text(prop, "Relative", "Return relative position to first track's marker");
+	RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");
+
 	RNA_def_struct_sdna_from(srna, "NodeTrackPosData", "storage");
 
 	prop = RNA_def_property(srna, "tracking_object", PROP_STRING, PROP_NONE);




More information about the Bf-blender-cvs mailing list