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

Method drawSelectedMarkerKeyframes

Engine/TrackerNodeInteract.cpp:644–850  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

642}
643
644void
645TrackerNodeInteract::drawSelectedMarkerKeyframes(const std::pair<double, double>& pixelScale,
646 int currentTime)
647{
648 TrackMarkerPtr marker = selectedMarker.lock();
649
650 assert(marker);
651 if (!marker) {
652 return;
653 }
654 if ( !marker->isEnabled(currentTime) ) {
655 return;
656 }
657
658 OverlaySupport* overlay = _p->publicInterface->getCurrentViewportForOverlays();
659 assert(overlay);
660
661 double overlayColor[3];
662 if ( !_p->publicInterface->getNode()->getOverlayColor(&overlayColor[0], &overlayColor[1], &overlayColor[2]) ) {
663 overlayColor[0] = overlayColor[1] = overlayColor[2] = 0.8;
664 }
665
666 boost::shared_ptr<KnobDouble> centerKnob = marker->getCenterKnob();
667 boost::shared_ptr<KnobDouble> offsetKnob = marker->getOffsetKnob();
668 boost::shared_ptr<KnobDouble> errorKnob = marker->getErrorKnob();
669 boost::shared_ptr<KnobDouble> ptnTopLeft = marker->getPatternTopLeftKnob();
670 boost::shared_ptr<KnobDouble> ptnTopRight = marker->getPatternTopRightKnob();
671 boost::shared_ptr<KnobDouble> ptnBtmRight = marker->getPatternBtmRightKnob();
672 boost::shared_ptr<KnobDouble> ptnBtmLeft = marker->getPatternBtmLeftKnob();
673 boost::shared_ptr<KnobDouble> searchWndBtmLeft = marker->getSearchWindowBottomLeftKnob();
674 boost::shared_ptr<KnobDouble> searchWndTopRight = marker->getSearchWindowTopRightKnob();
675 int fontHeight = overlay->getWidgetFontHeight();
676
677 int selectedMarkerWidth = magWindowPxSizeKnob.lock()->getValue();
678 double xOffsetPixels = selectedMarkerWidth;
679 QPointF viewerTopLeftCanonical = overlay->toCanonicalCoordinates( QPointF(0, 0.) );
680
681
682 for (TrackKeysMap::iterator it = trackTextures.begin(); it != trackTextures.end(); ++it) {
683 if (it->first.lock() == marker) {
684 if ( it->second.empty() ) {
685 break;
686 }
687 ///Render at most MAX_TRACK_KEYS_TO_DISPLAY keyframes
688 KeyFrameTexIDs keysToRender = getKeysToRenderForMarker(currentTime, it->second);
689
690 for (KeyFrameTexIDs::const_iterator it2 = keysToRender.begin(); it2 != keysToRender.end(); ++it2) {
691 double time = (double)it2->first;
692 Point offset, center, topLeft, topRight, btmRight, btmLeft;
693
694 center.x = centerKnob->getValueAtTime(time, 0);
695 center.y = centerKnob->getValueAtTime(time, 1);
696 offset.x = offsetKnob->getValueAtTime(time, 0);
697 offset.y = offsetKnob->getValueAtTime(time, 1);
698
699 topLeft.x = ptnTopLeft->getValueAtTime(time, 0) + offset.x + center.x;
700 topLeft.y = ptnTopLeft->getValueAtTime(time, 1) + offset.y + center.y;
701

Callers

nothing calls this directly

Calls 15

QPointFClass · 0.85
getOffsetKnobMethod · 0.80
getErrorKnobMethod · 0.80
getPatternTopLeftKnobMethod · 0.80
getPatternBtmLeftKnobMethod · 0.80
emptyMethod · 0.80

Tested by

no test coverage detected