Track Position node now could output absolute position of track at a given frame

This commit is contained in:
2013-06-12 14:28:36 +00:00
parent ba3a1067fa
commit 9aa088bab6
4 changed files with 16 additions and 3 deletions

View File

@@ -27,6 +27,8 @@
extern "C" {
#include "DNA_movieclip_types.h"
#include "BKE_node.h"
}
TrackPositionNode::TrackPositionNode(bNode *editorNode) : Node(editorNode)
@@ -44,13 +46,21 @@ void TrackPositionNode::convertToOperations(ExecutionSystem *graph, CompositorCo
NodeTrackPosData *trackpos_data = (NodeTrackPosData *) editorNode->storage;
int frame_number;
if (editorNode->custom1 == CMP_TRACKPOS_ABSOLUTE_FRAME) {
frame_number = editorNode->custom2;
}
else {
frame_number = context->getFramenumber();
}
TrackPositionOperation *operationX = new TrackPositionOperation();
TrackPositionOperation *operationY = new TrackPositionOperation();
operationX->setMovieClip(clip);
operationX->setTrackingObject(trackpos_data->tracking_object);
operationX->setTrackName(trackpos_data->track_name);
operationX->setFramenumber(context->getFramenumber());
operationX->setFramenumber(frame_number);
operationX->setAxis(0);
operationX->setPosition(editorNode->custom1);
operationX->setRelativeFrame(editorNode->custom2);
@@ -58,7 +68,7 @@ void TrackPositionNode::convertToOperations(ExecutionSystem *graph, CompositorCo
operationY->setMovieClip(clip);
operationY->setTrackingObject(trackpos_data->tracking_object);
operationY->setTrackName(trackpos_data->track_name);
operationY->setFramenumber(context->getFramenumber());
operationY->setFramenumber(frame_number);
operationY->setAxis(1);
operationY->setPosition(editorNode->custom1);
operationY->setRelativeFrame(editorNode->custom2);