MCPcopy Create free account
hub / github.com/MrKepzie/Natron / transformPattern

Method transformPattern

Engine/TrackerNodeInteract.cpp:1485–1776  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1483}
1484
1485void
1486TrackerNodeInteract::transformPattern(double time,
1487 TrackerMouseStateEnum state,
1488 const Point& delta)
1489{
1490 boost::shared_ptr<KnobDouble> searchWndTopRight, searchWndBtmLeft;
1491 boost::shared_ptr<KnobDouble> patternCorners[4];
1492 boost::shared_ptr<TrackerContext> context = getContext();
1493 boost::shared_ptr<KnobDouble> centerKnob = interactMarker->getCenterKnob();
1494 boost::shared_ptr<KnobDouble> offsetKnob = interactMarker->getOffsetKnob();
1495 bool transformPatternCorners = state != eMouseStateDraggingOuterBtmLeft &&
1496 state != eMouseStateDraggingOuterBtmRight &&
1497 state != eMouseStateDraggingOuterTopLeft &&
1498 state != eMouseStateDraggingOuterTopRight &&
1499 state != eMouseStateDraggingOuterMidLeft &&
1500 state != eMouseStateDraggingOuterMidRight &&
1501 state != eMouseStateDraggingOuterTopMid &&
1502 state != eMouseStateDraggingOuterBtmMid;
1503
1504 if (transformPatternCorners) {
1505 patternCorners[0] = interactMarker->getPatternTopLeftKnob();
1506 patternCorners[1] = interactMarker->getPatternBtmLeftKnob();
1507 patternCorners[2] = interactMarker->getPatternBtmRightKnob();
1508 patternCorners[3] = interactMarker->getPatternTopRightKnob();
1509 }
1510 searchWndTopRight = interactMarker->getSearchWindowTopRightKnob();
1511 searchWndBtmLeft = interactMarker->getSearchWindowBottomLeftKnob();
1512
1513 QPointF centerPoint;
1514 centerPoint.rx() = centerKnob->getValueAtTime(time, 0);
1515 centerPoint.ry() = centerKnob->getValueAtTime(time, 1);
1516
1517 QPointF offset;
1518 offset.rx() = offsetKnob->getValueAtTime(time, 0);
1519 offset.ry() = offsetKnob->getValueAtTime(time, 1);
1520
1521 QPointF patternPoints[4];
1522 QPointF searchPoints[4];
1523 if (transformPatternCorners) {
1524 for (int i = 0; i < 4; ++i) {
1525 patternPoints[i].rx() = patternCorners[i]->getValueAtTime(time, 0) + centerPoint.x() + offset.x();
1526 patternPoints[i].ry() = patternCorners[i]->getValueAtTime(time, 1) + centerPoint.y() + offset.y();
1527 }
1528 }
1529 searchPoints[1].rx() = searchWndBtmLeft->getValueAtTime(time, 0) + centerPoint.x() + offset.x();
1530 searchPoints[1].ry() = searchWndBtmLeft->getValueAtTime(time, 1) + centerPoint.y() + offset.y();
1531
1532 searchPoints[3].rx() = searchWndTopRight->getValueAtTime(time, 0) + centerPoint.x() + offset.x();
1533 searchPoints[3].ry() = searchWndTopRight->getValueAtTime(time, 1) + centerPoint.y() + offset.y();
1534
1535 searchPoints[0].rx() = searchPoints[1].x();
1536 searchPoints[0].ry() = searchPoints[3].y();
1537
1538 searchPoints[2].rx() = searchPoints[3].x();
1539 searchPoints[2].ry() = searchPoints[1].y();
1540
1541 if ( (state == eMouseStateDraggingInnerBtmLeft) ||
1542 ( state == eMouseStateDraggingOuterBtmLeft) ) {

Callers 1

onOverlayPenMotionMethod · 0.80

Calls 15

currentFunction · 0.85
getOffsetKnobMethod · 0.80
getPatternTopLeftKnobMethod · 0.80
getPatternBtmLeftKnobMethod · 0.80
getEffectInstanceMethod · 0.80
hasAnimationMethod · 0.80
setValuesAtTimeMethod · 0.80
setValuesMethod · 0.80

Tested by

no test coverage detected