diff options
Diffstat (limited to 'source/blender/compositor/operations/COM_TrackPositionOperation.cpp')
-rw-r--r-- | source/blender/compositor/operations/COM_TrackPositionOperation.cpp | 15 |
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 |