MCPcopy Create free account
hub / github.com/jerryuhoo/Fire / moveToX

Method moveToX

Source/Panels/SpectrogramPanel/FreqDividerGroup.cpp:79–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77}
78
79void FreqDividerGroup::moveToX(int lineNum, float newXPercent, float margin, std::unique_ptr<FreqDividerGroup> freqDividerGroup[])
80{
81 if (! getToggleState())
82 return;
83 float leftLimit;
84 float rightLimit;
85
86 leftLimit = (verticalLine.getIndex() + 1) * margin;
87 rightLimit = 1 - (lineNum - verticalLine.getIndex()) * margin;
88
89 if (newXPercent < leftLimit)
90 {
91 newXPercent = leftLimit;
92 }
93 else if (newXPercent > rightLimit)
94 {
95 newXPercent = rightLimit;
96 }
97
98 verticalLine.setXPercent(newXPercent);
99 verticalLine.setValue(transformFromLog(newXPercent)); // * (44100 / 2.0)
100
101 if (verticalLine.getLeft() >= 0 && freqDividerGroup[verticalLine.getLeft()]->getToggleState() && newXPercent - freqDividerGroup[verticalLine.getLeft()]->verticalLine.getXPercent() - margin < -0.00001f) // float is not accurate!!!!
102 {
103 freqDividerGroup[verticalLine.getLeft()]->moveToX(lineNum, newXPercent - margin, margin, freqDividerGroup);
104 }
105 if (verticalLine.getRight() > 0 && verticalLine.getRight() < lineNum && freqDividerGroup[verticalLine.getRight()]->getToggleState() && freqDividerGroup[verticalLine.getRight()]->verticalLine.getXPercent() - newXPercent - margin < -0.00001f)
106 {
107 freqDividerGroup[verticalLine.getRight()]->moveToX(lineNum, newXPercent + margin, margin, freqDividerGroup);
108 }
109}
110
111VerticalLine& FreqDividerGroup::getVerticalLine()
112{

Callers

nothing calls this directly

Calls 6

transformFromLogFunction · 0.85
getIndexMethod · 0.80
setXPercentMethod · 0.80
getLeftMethod · 0.80
getXPercentMethod · 0.80
getRightMethod · 0.80

Tested by

no test coverage detected