diff options
author | tombrazier <68918209+tombrazier@users.noreply.github.com> | 2023-06-11 19:36:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-11 20:36:45 +0200 |
commit | 2b68feee9be04a51facc56cbc0c1cb7616a26d6b (patch) | |
tree | b7adbac57c083aaf3dc17fb814d4fae3064f70c8 /filter-hamilton | |
parent | 4588c6398f73730df70d4592be6db9f4cc17cbaf (diff) |
Hamilton documentation and minor fixes (#1667)
* Minor corrections to alpha calculation and some comments to help it make sense
* Added some explanatory text to the hamilton filter dialog and changed the layout
Diffstat (limited to 'filter-hamilton')
-rw-r--r-- | filter-hamilton/ftnoir_filter_hamilton.cpp | 29 | ||||
-rw-r--r-- | filter-hamilton/ftnoir_filter_hamilton.h | 2 | ||||
-rw-r--r-- | filter-hamilton/ftnoir_hamilton_filtercontrols.ui | 1509 | ||||
-rw-r--r-- | filter-hamilton/lang/nl_NL.ts | 26 | ||||
-rw-r--r-- | filter-hamilton/lang/ru_RU.ts | 26 | ||||
-rw-r--r-- | filter-hamilton/lang/stub.ts | 26 | ||||
-rw-r--r-- | filter-hamilton/lang/zh_CN.ts | 26 |
7 files changed, 772 insertions, 872 deletions
diff --git a/filter-hamilton/ftnoir_filter_hamilton.cpp b/filter-hamilton/ftnoir_filter_hamilton.cpp index be3faa7f..7bbc91de 100644 --- a/filter-hamilton/ftnoir_filter_hamilton.cpp +++ b/filter-hamilton/ftnoir_filter_hamilton.cpp @@ -34,11 +34,15 @@ void hamilton::filter(const double *input, double *output) double dist = VectorDistance( &input[TX], pos_last); double alpha = (dist - pos_deadzone) / (pos_max + pos_deadzone + EPSILON); - alpha = fmin(alpha, 1.0); - alpha = fmax(alpha, 0.0); - alpha = pow (alpha, pos_pow); - alpha = alpha * (dist - pos_deadzone) / (dist + EPSILON); - + alpha = std::min(1.0, std::max(0.0, alpha)); + if (alpha > 0.0) + alpha = pow(alpha, pos_pow); + // Scale alpha so that alpha * dist <= dist - pos_deadzone. This ensures that + // the center of the deadzone will never move closer to the input position than + // distance dist. And this ensures that the view never jumps ahead of head + // movements. + alpha *= (dist - pos_deadzone) / (dist + EPSILON); + pos_last = Lerp(pos_last, input, alpha); output[TX] = pos_last.v[0]; @@ -48,11 +52,11 @@ void hamilton::filter(const double *input, double *output) // zoom smoothing: const double pow_zoom {s.kPowZoom}; const double max_z {s.kMaxZ}; - double rot_zoom = pow_zoom; + double rot_zoom = pow_zoom; if (output[TZ] > 0) rot_zoom = 0; - else rot_zoom *= -output[TZ] / (max_z + EPSILON); - rot_zoom = fmin( rot_zoom, pow_zoom ); + else rot_zoom *= -output[TZ] / (max_z + EPSILON); + rot_zoom = fmin( rot_zoom, pow_zoom ); // rotations: const double rot_max {s.kMaxRot}; @@ -62,10 +66,11 @@ void hamilton::filter(const double *input, double *output) double angle = AngleBetween(quat_input, quat_last); alpha = (angle - rot_deadzone) / (rot_max + rot_deadzone + EPSILON); - alpha = fmin(alpha, 1.0); - alpha = fmax(alpha, 0.0); - alpha = pow (alpha, rot_pow + rot_zoom); - alpha = alpha * (angle - rot_deadzone) / (angle + EPSILON); + alpha = std::min(1.0, std::max(0.0, alpha)); + if (alpha > 0.0) + alpha = pow(alpha, rot_pow + rot_zoom); + // see comment in earlier alpha calculation above + alpha *= (angle - rot_deadzone) / (angle + EPSILON); quat_last = Slerp(quat_last, quat_input, alpha); diff --git a/filter-hamilton/ftnoir_filter_hamilton.h b/filter-hamilton/ftnoir_filter_hamilton.h index 0756c216..b724d973 100644 --- a/filter-hamilton/ftnoir_filter_hamilton.h +++ b/filter-hamilton/ftnoir_filter_hamilton.h @@ -43,7 +43,7 @@ public: module_status initialize() override { return status_ok(); } private: tQuat quat_last; - tVector pos_last; + tVector pos_last; settings s; bool first_run = true; }; diff --git a/filter-hamilton/ftnoir_hamilton_filtercontrols.ui b/filter-hamilton/ftnoir_hamilton_filtercontrols.ui index 71cdb6da..4c8b1536 100644 --- a/filter-hamilton/ftnoir_hamilton_filtercontrols.ui +++ b/filter-hamilton/ftnoir_hamilton_filtercontrols.ui @@ -13,7 +13,7 @@ <x>0</x> <y>0</y> <width>514</width> - <height>491</height> + <height>563</height> </rect> </property> <property name="sizePolicy"> @@ -50,8 +50,8 @@ <property name="styleSheet"> <string notr="true"/> </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="2" column="0"> <widget class="QGroupBox" name="groupBox"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> @@ -65,322 +65,286 @@ <height>150</height> </size> </property> - <property name="font"> - <font> - <pointsize>8</pointsize> - <weight>50</weight> - <bold>false</bold> - </font> - </property> <property name="title"> <string>Rotations: </string> </property> <property name="flat"> <bool>false</bool> </property> - <widget class="QSlider" name="maxRot"> - <property name="geometry"> - <rect> - <x>103</x> - <y>30</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>250</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>50</number> - </property> - <property name="value"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>50</number> - </property> - </widget> - <widget class="QLabel" name="lbRmax"> - <property name="geometry"> - <rect> - <x>7</x> - <y>30</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string> Max distance:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QLabel" name="lbMaxRot"> - <property name="geometry"> - <rect> - <x>424</x> - <y>30</y> - <width>61</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>45</width> - <height>0</height> - </size> - </property> - <property name="toolTip"> - <string notr="true"/> - </property> - <property name="text"> - <string>10,00</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QLabel" name="lbRdz"> - <property name="geometry"> - <rect> - <x>7</x> - <y>110</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string> Dead Zone:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QSlider" name="dzRot"> - <property name="geometry"> - <rect> - <x>103</x> - <y>110</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>50</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>5</number> - </property> - <property name="value"> - <number>1</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>10</number> - </property> - </widget> - <widget class="QLabel" name="lbDZRot"> - <property name="geometry"> - <rect> - <x>424</x> - <y>110</y> - <width>61</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>45</width> - <height>0</height> - </size> - </property> - <property name="toolTip"> - <string notr="true"/> - </property> - <property name="text"> - <string>0,01</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QSlider" name="powRot"> - <property name="geometry"> - <rect> - <x>103</x> - <y>70</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="autoFillBackground"> - <bool>false</bool> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>400</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>50</number> - </property> - <property name="value"> - <number>200</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>100</number> - </property> - </widget> - <widget class="QLabel" name="lbPowRot"> - <property name="geometry"> - <rect> - <x>430</x> - <y>70</y> - <width>45</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>45</width> - <height>0</height> - </size> - </property> - <property name="toolTip"> - <string notr="true"/> - </property> - <property name="text"> - <string>2,00</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QLabel" name="lbRpow"> - <property name="geometry"> - <rect> - <x>7</x> - <y>70</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string> Smoothing:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> + <layout class="QGridLayout" name="gridLayout"> + <item row="8" column="2"> + <widget class="QSlider" name="powRot"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>400</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>50</number> + </property> + <property name="value"> + <number>200</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>100</number> + </property> + </widget> + </item> + <item row="8" column="3"> + <widget class="QLabel" name="lbPowRot"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>0</height> + </size> + </property> + <property name="toolTip"> + <string notr="true"/> + </property> + <property name="text"> + <string>2,00</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="6" column="2"> + <widget class="QSlider" name="dzRot"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>50</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>5</number> + </property> + <property name="value"> + <number>1</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>10</number> + </property> + </widget> + </item> + <item row="8" column="0"> + <widget class="QLabel" name="lbRpow"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Smoothing power:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="6" column="0"> + <widget class="QLabel" name="lbRdz"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Dead Zone:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="6" column="3"> + <widget class="QLabel" name="lbDZRot"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>0</height> + </size> + </property> + <property name="toolTip"> + <string notr="true"/> + </property> + <property name="text"> + <string>0,01</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="7" column="0"> + <widget class="QLabel" name="lbRmax"> + <property name="text"> + <string>Max distance:</string> + </property> + </widget> + </item> + <item row="7" column="2"> + <widget class="QSlider" name="maxRot"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>250</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>50</number> + </property> + <property name="value"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>50</number> + </property> + </widget> + </item> + <item row="7" column="3"> + <widget class="QLabel" name="lbMaxRot"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>0</height> + </size> + </property> + <property name="toolTip"> + <string notr="true"/> + </property> + <property name="text"> + <string>10,00</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item row="6" column="0"> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="layoutDirection"> + <enum>Qt::LeftToRight</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + <property name="centerButtons"> + <bool>true</bool> + </property> </widget> </item> - <item> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>For both rotations and positions: No movement occurs within the dead zone. Smoothing scales down to minimum at max distance + 2 x dead zone.</string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="3" column="0"> <widget class="QGroupBox" name="groupBox_2"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> @@ -397,300 +361,248 @@ <property name="title"> <string>Positions: </string> </property> - <widget class="QSlider" name="maxDist"> - <property name="geometry"> - <rect> - <x>103</x> - <y>30</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>200</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>50</number> - </property> - <property name="value"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>50</number> - </property> - </widget> - <widget class="QLabel" name="lbRpow_3"> - <property name="geometry"> - <rect> - <x>7</x> - <y>70</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string> Smoothing:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QSlider" name="powDist"> - <property name="geometry"> - <rect> - <x>103</x> - <y>70</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="autoFillBackground"> - <bool>false</bool> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>400</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>50</number> - </property> - <property name="value"> - <number>100</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>100</number> - </property> - </widget> - <widget class="QLabel" name="lbRdz_3"> - <property name="geometry"> - <rect> - <x>7</x> - <y>110</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string> Dead Zone:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QLabel" name="lbPowDist"> - <property name="geometry"> - <rect> - <x>430</x> - <y>70</y> - <width>51</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>40</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>1,00</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QLabel" name="lbDmax"> - <property name="geometry"> - <rect> - <x>7</x> - <y>30</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string> Max distance:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QSlider" name="dzDist"> - <property name="geometry"> - <rect> - <x>103</x> - <y>110</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>50</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>10</number> - </property> - <property name="value"> - <number>2</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>10</number> - </property> - </widget> - <widget class="QLabel" name="lbMaxDist"> - <property name="geometry"> - <rect> - <x>420</x> - <y>30</y> - <width>71</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>45</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>10,00</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QLabel" name="lbDZDist"> - <property name="geometry"> - <rect> - <x>420</x> - <y>110</y> - <width>71</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>45</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>0,02</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> + <layout class="QGridLayout" name="gridLayout_4"> + <item row="1" column="2"> + <widget class="QLabel" name="lbMaxDist"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>10,00</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="lbRpow_3"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Smoothing power:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="lbDmax"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Max distance:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QSlider" name="maxDist"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>200</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>50</number> + </property> + <property name="value"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>50</number> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QSlider" name="powDist"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>400</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>50</number> + </property> + <property name="value"> + <number>100</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>100</number> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QLabel" name="lbPowDist"> + <property name="minimumSize"> + <size> + <width>40</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>1,00</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="lbRdz_3"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Dead Zone:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QSlider" name="dzDist"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>50</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>10</number> + </property> + <property name="value"> + <number>2</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>10</number> + </property> + </widget> + </item> + <item row="0" column="2"> + <widget class="QLabel" name="lbDZDist"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>0,02</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> </widget> </item> - <item> + <item row="5" column="0"> <widget class="QGroupBox" name="groupBox_3"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -707,227 +619,194 @@ <property name="title"> <string>Zoom smoothing: </string> </property> - <widget class="QLabel" name="lbPowZoom"> - <property name="geometry"> - <rect> - <x>434</x> - <y>30</y> - <width>45</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>45</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>2,00</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QSlider" name="powZoom"> - <property name="geometry"> - <rect> - <x>103</x> - <y>30</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="autoFillBackground"> - <bool>false</bool> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>400</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>50</number> - </property> - <property name="value"> - <number>200</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>100</number> - </property> - </widget> - <widget class="QLabel" name="lbZpow"> - <property name="geometry"> - <rect> - <x>7</x> - <y>30</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string> Smoothing :</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QSlider" name="maxZ"> - <property name="geometry"> - <rect> - <x>103</x> - <y>60</y> - <width>311</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="focusPolicy"> - <enum>Qt::StrongFocus</enum> - </property> - <property name="autoFillBackground"> - <bool>false</bool> - </property> - <property name="minimum"> - <number>0</number> - </property> - <property name="maximum"> - <number>1000</number> - </property> - <property name="singleStep"> - <number>1</number> - </property> - <property name="pageStep"> - <number>50</number> - </property> - <property name="value"> - <number>150</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="tickPosition"> - <enum>QSlider::TicksBothSides</enum> - </property> - <property name="tickInterval"> - <number>100</number> - </property> - </widget> - <widget class="QLabel" name="lbZpow_2"> - <property name="geometry"> - <rect> - <x>7</x> - <y>60</y> - <width>91</width> - <height>20</height> - </rect> - </property> - <property name="sizePolicy"> - <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="minimumSize"> - <size> - <width>0</width> - <height>0</height> - </size> - </property> - <property name="styleSheet"> - <string notr="true"/> - </property> - <property name="text"> - <string>Max Z:</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> - <widget class="QLabel" name="lbMaxZ"> - <property name="geometry"> - <rect> - <x>434</x> - <y>60</y> - <width>45</width> - <height>20</height> - </rect> - </property> - <property name="minimumSize"> - <size> - <width>45</width> - <height>0</height> - </size> - </property> - <property name="text"> - <string>15,00</string> - </property> - <property name="alignment"> - <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> - </property> - </widget> + <layout class="QGridLayout" name="gridLayout_3"> + <item row="2" column="0"> + <widget class="QLabel" name="lbZpow"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Smoothing power:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="2"> + <widget class="QLabel" name="lbPowZoom"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>2,00</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QSlider" name="powZoom"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>400</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>50</number> + </property> + <property name="value"> + <number>200</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>100</number> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="lbZpow_2"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>0</width> + <height>0</height> + </size> + </property> + <property name="styleSheet"> + <string notr="true"/> + </property> + <property name="text"> + <string>Max Z:</string> + </property> + <property name="alignment"> + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QSlider" name="maxZ"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="focusPolicy"> + <enum>Qt::StrongFocus</enum> + </property> + <property name="autoFillBackground"> + <bool>false</bool> + </property> + <property name="minimum"> + <number>0</number> + </property> + <property name="maximum"> + <number>1000</number> + </property> + <property name="singleStep"> + <number>1</number> + </property> + <property name="pageStep"> + <number>50</number> + </property> + <property name="value"> + <number>150</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="tickPosition"> + <enum>QSlider::TicksBothSides</enum> + </property> + <property name="tickInterval"> + <number>100</number> + </property> + </widget> + </item> + <item row="1" column="2"> + <widget class="QLabel" name="lbMaxZ"> + <property name="minimumSize"> + <size> + <width>45</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>15,00</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + </widget> + </item> + </layout> </widget> </item> - <item> - <widget class="QDialogButtonBox" name="buttonBox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> + <item row="1" column="0"> + <widget class="QLabel" name="label_3"> + <property name="text"> + <string>When you lean forward, zoom smoothing increases the smoothing power for rotations. Maximum additonal smoothing power occurs when you lean forward by a distance of Max Z.</string> </property> - <property name="layoutDirection"> - <enum>Qt::LeftToRight</enum> - </property> - <property name="standardButtons"> - <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> - </property> - <property name="centerButtons"> + <property name="wordWrap"> <bool>true</bool> </property> </widget> </item> </layout> </widget> + <tabstops> + <tabstop>dzRot</tabstop> + <tabstop>maxRot</tabstop> + <tabstop>powRot</tabstop> + <tabstop>dzDist</tabstop> + <tabstop>maxDist</tabstop> + <tabstop>powDist</tabstop> + <tabstop>maxZ</tabstop> + <tabstop>powZoom</tabstop> + </tabstops> <resources> <include location="../gui/opentrack-res.qrc"/> </resources> diff --git a/filter-hamilton/lang/nl_NL.ts b/filter-hamilton/lang/nl_NL.ts index b03e4c0b..1c720540 100644 --- a/filter-hamilton/lang/nl_NL.ts +++ b/filter-hamilton/lang/nl_NL.ts @@ -8,18 +8,10 @@ <translation type="unfinished"></translation> </message> <message> - <source> Smoothing :</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Positions: </source> <translation type="unfinished"></translation> </message> <message> - <source> Max distance:</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Zoom smoothing: </source> <translation type="unfinished"></translation> </message> @@ -52,15 +44,27 @@ <translation type="unfinished"></translation> </message> <message> - <source> Dead Zone:</source> + <source>15,00</source> <translation type="unfinished"></translation> </message> <message> - <source> Smoothing:</source> + <source>Smoothing power:</source> <translation type="unfinished"></translation> </message> <message> - <source>15,00</source> + <source>Dead Zone:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Max distance:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>For both rotations and positions: No movement occurs within the dead zone. Smoothing scales down to minimum at max distance + 2 x dead zone.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>When you lean forward, zoom smoothing increases the smoothing power for rotations. Maximum additonal smoothing power occurs when you lean forward by a distance of Max Z.</source> <translation type="unfinished"></translation> </message> </context> diff --git a/filter-hamilton/lang/ru_RU.ts b/filter-hamilton/lang/ru_RU.ts index dfbb2268..f0681b21 100644 --- a/filter-hamilton/lang/ru_RU.ts +++ b/filter-hamilton/lang/ru_RU.ts @@ -8,18 +8,10 @@ <translation type="unfinished"></translation> </message> <message> - <source> Smoothing :</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Positions: </source> <translation type="unfinished"></translation> </message> <message> - <source> Max distance:</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Zoom smoothing: </source> <translation type="unfinished"></translation> </message> @@ -52,15 +44,27 @@ <translation type="unfinished"></translation> </message> <message> - <source> Dead Zone:</source> + <source>15,00</source> <translation type="unfinished"></translation> </message> <message> - <source> Smoothing:</source> + <source>Smoothing power:</source> <translation type="unfinished"></translation> </message> <message> - <source>15,00</source> + <source>Dead Zone:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Max distance:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>For both rotations and positions: No movement occurs within the dead zone. Smoothing scales down to minimum at max distance + 2 x dead zone.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>When you lean forward, zoom smoothing increases the smoothing power for rotations. Maximum additonal smoothing power occurs when you lean forward by a distance of Max Z.</source> <translation type="unfinished"></translation> </message> </context> diff --git a/filter-hamilton/lang/stub.ts b/filter-hamilton/lang/stub.ts index a8af9f98..2b767312 100644 --- a/filter-hamilton/lang/stub.ts +++ b/filter-hamilton/lang/stub.ts @@ -8,18 +8,10 @@ <translation type="unfinished"></translation> </message> <message> - <source> Smoothing :</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Positions: </source> <translation type="unfinished"></translation> </message> <message> - <source> Max distance:</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Zoom smoothing: </source> <translation type="unfinished"></translation> </message> @@ -52,15 +44,27 @@ <translation type="unfinished"></translation> </message> <message> - <source> Dead Zone:</source> + <source>15,00</source> <translation type="unfinished"></translation> </message> <message> - <source> Smoothing:</source> + <source>Smoothing power:</source> <translation type="unfinished"></translation> </message> <message> - <source>15,00</source> + <source>Dead Zone:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Max distance:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>For both rotations and positions: No movement occurs within the dead zone. Smoothing scales down to minimum at max distance + 2 x dead zone.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>When you lean forward, zoom smoothing increases the smoothing power for rotations. Maximum additonal smoothing power occurs when you lean forward by a distance of Max Z.</source> <translation type="unfinished"></translation> </message> </context> diff --git a/filter-hamilton/lang/zh_CN.ts b/filter-hamilton/lang/zh_CN.ts index 4fc4d812..222569e4 100644 --- a/filter-hamilton/lang/zh_CN.ts +++ b/filter-hamilton/lang/zh_CN.ts @@ -8,18 +8,10 @@ <translation type="unfinished"></translation> </message> <message> - <source> Smoothing :</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Positions: </source> <translation type="unfinished"></translation> </message> <message> - <source> Max distance:</source> - <translation type="unfinished"></translation> - </message> - <message> <source>Zoom smoothing: </source> <translation type="unfinished"></translation> </message> @@ -52,15 +44,27 @@ <translation type="unfinished"></translation> </message> <message> - <source> Dead Zone:</source> + <source>15,00</source> <translation type="unfinished"></translation> </message> <message> - <source> Smoothing:</source> + <source>Smoothing power:</source> <translation type="unfinished"></translation> </message> <message> - <source>15,00</source> + <source>Dead Zone:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Max distance:</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>For both rotations and positions: No movement occurs within the dead zone. Smoothing scales down to minimum at max distance + 2 x dead zone.</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>When you lean forward, zoom smoothing increases the smoothing power for rotations. Maximum additonal smoothing power occurs when you lean forward by a distance of Max Z.</source> <translation type="unfinished"></translation> </message> </context> |