Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/compositor/operations/COM_TrackPositionOperation.cpp')
-rw-r--r--source/blender/compositor/operations/COM_TrackPositionOperation.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/compositor/operations/COM_TrackPositionOperation.cpp b/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
index 359e973adc7..cf516401a3c 100644
--- a/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
+++ b/source/blender/compositor/operations/COM_TrackPositionOperation.cpp
@@ -44,6 +44,7 @@ TrackPositionOperation::TrackPositionOperation() : NodeOperation()
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 @@ void TrackPositionOperation::executePixel(float *outputValue, float x, float y,
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