1 // Copyright 2017 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_VR_UI_SCENE_CONSTANTS_H_ 6 #define CHROME_BROWSER_VR_UI_SCENE_CONSTANTS_H_ 7 8 #include "ui/gfx/geometry/angle_conversions.h" 9 10 namespace vr { 11 12 static constexpr float kExitWarningDistance = 0.6f; 13 static constexpr float kExitWarningTextWidthDMM = 0.44288f; 14 static constexpr float kExitWarningFontHeightDMM = 0.024576f; 15 static constexpr float kExitWarningXPaddingDMM = 0.033f; 16 static constexpr float kExitWarningYPaddingDMM = 0.023f; 17 static constexpr float kExitWarningCornerRadiusDMM = 0.008f; 18 19 static constexpr float kContentDistance = 2.5f; 20 static constexpr float kContentWidthDMM = 0.96f; 21 static constexpr float kContentHeightDMM = 0.64f; 22 static constexpr float kContentWidth = kContentWidthDMM * kContentDistance; 23 static constexpr float kContentHeight = kContentHeightDMM * kContentDistance; 24 static constexpr float kContentVerticalOffsetDMM = -0.1f; 25 static constexpr float kContentVerticalOffset = 26 kContentVerticalOffsetDMM * kContentDistance; 27 static constexpr float kContentCornerRadius = 0.005f * kContentWidth; 28 static constexpr float kLoadingIndicatorHeightDMM = 0.016f; 29 static constexpr float kLoadingIndicatorHeight = 0.016f * kContentDistance; 30 static constexpr float kLoadingIndicatorYOffset = -0.002f; 31 static constexpr float kBackplaneSize = 1000.0f; 32 static constexpr float kBackgroundDistanceMultiplier = 1.414f; 33 34 static constexpr float kFullscreenDistance = 3.0f; 35 // Make sure that the aspect ratio for fullscreen is 16:9. Otherwise, we may 36 // experience visual artefacts for fullscreened videos. 37 static constexpr float kFullscreenHeightDMM = 0.64f; 38 static constexpr float kFullscreenHeight = 39 kFullscreenHeightDMM * kFullscreenDistance; 40 static constexpr float kFullscreenWidth = 1.138f * kFullscreenDistance; 41 static constexpr float kFullscreenVerticalOffsetDMM = -0.1f; 42 static constexpr float kFullscreenVerticalOffset = 43 kFullscreenVerticalOffsetDMM * kFullscreenDistance; 44 45 static constexpr float kUrlBarDistance = 2.4f; 46 static constexpr float kUrlBarHeightDMM = 0.088f; 47 // This is the non-DMM relative offset of the URL bar. It is used to position 48 // the DMM root of the URL bar. 49 static constexpr float kUrlBarRelativeOffset = -0.45f; 50 // This is the absolute offset of the URL bar's neutral position in DMM. 51 static constexpr float kUrlBarVerticalOffsetDMM = -0.516f; 52 static constexpr float kUrlBarRotationRad = gfx::DegToRad(-10.0f); 53 static constexpr float kUrlBarFontHeightDMM = 0.027f; 54 static constexpr float kUrlBarButtonSizeDMM = 0.064f; 55 static constexpr float kUrlBarButtonIconSizeDMM = 0.038f; 56 static constexpr float kUrlBarEndButtonIconOffsetDMM = 0.0045f; 57 static constexpr float kUrlBarEndButtonWidthDMM = 0.088f; 58 static constexpr float kUrlBarSeparatorWidthDMM = 0.002f; 59 static constexpr float kUrlBarOriginRegionWidthDMM = 0.492f; 60 static constexpr float kUrlBarOriginRightMarginDMM = 0.020f; 61 static constexpr float kUrlBarOriginContentOffsetDMM = 0.020f; 62 static constexpr float kUrlBarItemCornerRadiusDMM = 0.006f; 63 static constexpr float kUrlBarUrlWidthDMM = kUrlBarOriginRegionWidthDMM - 64 kUrlBarEndButtonWidthDMM - 65 kUrlBarOriginRightMarginDMM; 66 static constexpr float kUrlBarButtonIconScaleFactor = 67 kUrlBarButtonIconSizeDMM / kUrlBarButtonSizeDMM; 68 69 static constexpr float kIndicatorHeightDMM = 0.064f; 70 static constexpr float kIndicatorIconScaleFactor = 0.55f; 71 static constexpr float kIndicatorXPaddingDMM = 0.024f; 72 static constexpr float kIndicatorYPaddingDMM = 0.018f; 73 static constexpr float kIndicatorCornerRadiusDMM = 0.006f; 74 static constexpr float kIndicatorOffsetDMM = -0.008f; 75 static constexpr float kIndicatorMarginDMM = 0.001f; 76 static constexpr float kIndicatorVerticalOffset = 0.1f; 77 static constexpr float kIndicatorDistanceOffset = 0.1f; 78 static constexpr float kIndicatorDepth = 2.4f; 79 80 static constexpr float kWebVrToastDistance = 1.0f; 81 static constexpr float kToastXPaddingDMM = 0.017f; 82 static constexpr float kToastYPaddingDMM = 0.02f; 83 static constexpr float kToastCornerRadiusDMM = 0.004f; 84 static constexpr float kToastTextFontHeightDMM = 0.023f; 85 static constexpr int kToastTimeoutSeconds = 6; 86 static constexpr int kWmrInitialIndicatorsTimeoutSeconds = 10; 87 static constexpr float kPlatformToastVerticalOffset = 0.5f; 88 89 static constexpr float kSplashScreenTextDistance = 2.5f; 90 static constexpr float kSplashScreenTextFontHeightDMM = 0.05f; 91 static constexpr float kSplashScreenTextWidthDMM = 0.9f; 92 static constexpr float kSplashScreenTextVerticalOffsetDMM = -0.072f; 93 static constexpr float kSplashScreenMinDurationSeconds = 2.0f; 94 95 static constexpr float kButtonDiameterDMM = 0.088f; 96 static constexpr float kButtonZOffsetHoverDMM = 0.048f; 97 98 static constexpr float kCloseButtonDistance = 2.4f; 99 static constexpr float kCloseButtonRelativeOffset = -0.8f; 100 static constexpr float kCloseButtonVerticalOffset = 101 kFullscreenVerticalOffset - (kFullscreenHeight * 0.5f) - 0.35f; 102 static constexpr float kCloseButtonDiameter = 103 kButtonDiameterDMM * kCloseButtonDistance; 104 static constexpr float kCloseButtonFullscreenDistance = 2.9f; 105 static constexpr float kCloseButtonFullscreenVerticalOffset = 106 kFullscreenVerticalOffset - (kFullscreenHeight / 2) - 0.35f; 107 static constexpr float kCloseButtonFullscreenDiameter = 108 kButtonDiameterDMM * kCloseButtonFullscreenDistance; 109 110 static constexpr float kSceneSize = 25.0f; 111 static constexpr float kSceneHeight = 4.0f; 112 static constexpr float kFloorHeight = -kSceneHeight / 2.0f; 113 static constexpr int kFloorGridlineCount = 40; 114 115 static constexpr float kVoiceSearchCloseButtonDiameterDMM = 0.096f; 116 static constexpr float kVoiceSearchCloseButtonDiameter = 117 kVoiceSearchCloseButtonDiameterDMM * kContentDistance; 118 static constexpr float kVoiceSearchCloseButtonYOffset = 119 0.316f * kContentDistance + 0.5f * kVoiceSearchCloseButtonDiameter; 120 static constexpr float kVoiceSearchRecognitionResultTextHeight = 121 0.026f * kContentDistance; 122 static constexpr float kVoiceSearchRecognitionResultTextWidth = 123 0.4f * kContentDistance; 124 125 static constexpr float kTimeoutScreenDisatance = 2.5f; 126 static constexpr float kTimeoutSpinnerSizeDMM = 0.088f; 127 static constexpr float kTimeoutSpinnerVerticalOffsetDMM = 128 kSplashScreenTextVerticalOffsetDMM; 129 130 static constexpr float kTimeoutMessageHorizontalPaddingDMM = 0.04f; 131 static constexpr float kTimeoutMessageVerticalPaddingDMM = 0.024f; 132 133 static constexpr float kTimeoutMessageCornerRadiusDMM = 0.008f; 134 135 static constexpr float kTimeoutMessageLayoutGapDMM = 0.024f; 136 static constexpr float kTimeoutMessageIconWidthDMM = 0.056f; 137 static constexpr float kTimeoutMessageIconHeightDMM = 0.056f; 138 static constexpr float kTimeoutMessageTextFontHeightDMM = 0.022f; 139 static constexpr float kTimeoutMessageTextWidthDMM = 0.4f; 140 141 static constexpr float kTimeoutButtonDepthOffset = -0.1f; 142 static constexpr float kTimeoutButtonRotationRad = kUrlBarRotationRad; 143 static constexpr float kWebVrTimeoutMessageButtonDiameterDMM = 0.096f; 144 145 static constexpr float kTimeoutButtonTextWidthDMM = 0.058f; 146 static constexpr float kTimeoutButtonTextVerticalOffsetDMM = 0.024f; 147 148 static constexpr float kHostedUiHeightRatio = 0.6f; 149 static constexpr float kHostedUiWidthRatio = 0.6f; 150 static constexpr float kHostedUiDepthOffset = 0.3f; 151 static constexpr float kHostedUiShadowOffset = 0.09f; 152 static constexpr float kFloatingHostedUiDistance = 0.01f; 153 154 static constexpr float kScreenDimmerOpacity = 0.9f; 155 156 static constexpr gfx::Point3F kOrigin = {0.0f, 0.0f, 0.0f}; 157 158 static constexpr float kLaserWidth = 0.01f; 159 160 static constexpr float kReticleWidth = 0.025f; 161 static constexpr float kReticleHeight = 0.025f; 162 163 static constexpr float kOmniboxWidthDMM = 0.672f; 164 static constexpr float kOmniboxHeightDMM = 0.088f; 165 static constexpr float kOmniboxVerticalOffsetDMM = -0.2f; 166 static constexpr float kOmniboxTextHeightDMM = 0.032f; 167 static constexpr float kOmniboxTextMarginDMM = 0.024f; 168 static constexpr float kOmniboxMicIconRightMarginDMM = 0.012f; 169 static constexpr float kOmniboxCloseButtonDiameterDMM = kButtonDiameterDMM; 170 static constexpr float kOmniboxCloseButtonVerticalOffsetDMM = -0.75f; 171 static constexpr float kOmniboxCornerRadiusDMM = 0.006f; 172 static constexpr float kOmniboxCloseButtonDepthOffset = -0.35f; 173 static constexpr int kOmniboxTransitionMs = 300; 174 175 static constexpr float kOmniboxTextFieldIconButtonSizeDMM = 0.064f; 176 static constexpr float kUrlBarButtonHoverOffsetDMM = 0.012f; 177 static constexpr float kOmniboxTextFieldRightMargin = 178 ((kOmniboxHeightDMM - kOmniboxTextFieldIconButtonSizeDMM) / 2); 179 180 static constexpr float kSuggestionHeightDMM = 0.088f; 181 static constexpr float kSuggestionGapDMM = 0.0018f; 182 static constexpr float kSuggestionLineGapDMM = 0.01f; 183 static constexpr float kSuggestionIconSizeDMM = 0.036f; 184 static constexpr float kSuggestionIconFieldWidthDMM = 0.104f; 185 static constexpr float kSuggestionRightMarginDMM = 0.024f; 186 static constexpr float kSuggestionTextFieldWidthDMM = 187 kOmniboxWidthDMM - kSuggestionIconFieldWidthDMM - kSuggestionRightMarginDMM; 188 static constexpr float kSuggestionContentTextHeightDMM = 0.024f; 189 static constexpr float kSuggestionDescriptionTextHeightDMM = 0.020f; 190 static constexpr float kSuggestionVerticalPaddingDMM = 0.008f; 191 192 static constexpr int kControllerFadeInMs = 200; 193 static constexpr int kControllerFadeOutMs = 550; 194 195 static constexpr float kSpeechRecognitionResultTextYOffset = 0.5f; 196 static constexpr int kSpeechRecognitionResultTimeoutMs = 2000; 197 static constexpr int kSpeechRecognitionOpacityAnimationDurationMs = 200; 198 199 static constexpr float kModalPromptFadeOpacity = 0.5f; 200 201 static constexpr float kKeyboardDistance = 2.2f; 202 static constexpr float kKeyboardVerticalOffsetDMM = -0.45f; 203 static constexpr float kKeyboardWebInputOffset = 1.2f; 204 205 static constexpr float kControllerLabelSpacerSize = 0.025f; 206 static constexpr float kControllerLabelLayoutMargin = -0.005f; 207 static constexpr float kControllerLabelCalloutWidth = 0.02f; 208 static constexpr float kControllerLabelCalloutHeight = 0.001f; 209 static constexpr float kControllerLabelFontHeight = 0.05f; 210 static constexpr float kControllerLabelScale = 0.2f; 211 212 // TODO(vollick): these should be encoded in the controller mesh. 213 static constexpr float kControllerTrackpadOffset = -0.035f; 214 static constexpr float kControllerExitButtonOffset = -0.008f; 215 static constexpr float kControllerBackButtonOffset = -0.008f; 216 217 static constexpr int kControllerLabelTransitionDurationMs = 700; 218 219 static constexpr float kControllerWidth = 0.035f; 220 static constexpr float kControllerHeight = 0.016f; 221 static constexpr float kControllerLength = 0.105f; 222 static constexpr float kControllerSmallButtonSize = kControllerWidth * 0.306f; 223 static constexpr float kControllerAppButtonZ = kControllerLength * -0.075f; 224 static constexpr float kControllerHomeButtonZ = kControllerLength * 0.075f; 225 static constexpr float kControllerBatteryDotMargin = kControllerWidth * 0.07f; 226 static constexpr float kControllerBatteryDotSize = kControllerWidth * 0.07f; 227 static constexpr float kControllerBatteryDotZ = kControllerLength * 0.325f; 228 static constexpr int kControllerBatteryDotCount = 5; 229 230 static constexpr float kSkyDistance = 1000.0f; 231 static constexpr float kGridOpacity = 0.5f; 232 233 static constexpr float kRepositionContentOpacity = 0.2f; 234 235 static constexpr float kWebVrPermissionCornerRadius = 0.006f; 236 static constexpr float kWebVrPermissionLeftPadding = 0.024f; 237 static constexpr float kWebVrPermissionRightPadding = 0.032f; 238 static constexpr float kWebVrPermissionTopPadding = 0.026f; 239 static constexpr float kWebVrPermissionBottomPadding = 0.026f; 240 static constexpr float kWebVrPermissionMargin = 0.016f; 241 static constexpr float kWebVrPermissionIconSize = 0.034f; 242 static constexpr float kWebVrPermissionFontHeight = 0.024f; 243 static constexpr float kWebVrPermissionTextWidth = 0.380f; 244 static constexpr float kWebVrPermissionOuterMargin = 0.008f; 245 static constexpr float kWebVrPermissionDepth = 0.015f; 246 static constexpr float kWebVrPermissionOffsetStart = 0.3f; 247 static constexpr float kWebVrPermissionOffsetOvershoot = -0.01f; 248 static constexpr float kWebVrPermissionOffsetFinal = 0.0f; 249 static constexpr int kWebVrPermissionOffsetMs = 250; 250 static constexpr int kWebVrPermissionAnimationDurationMs = 750; 251 252 static constexpr float kPromptVerticalOffsetDMM = -0.1f; 253 static constexpr float kPromptShadowOffsetDMM = 0.1f; 254 static constexpr float kPromptDistance = 2.4f; 255 static constexpr float kPromptPadding = 0.028f; 256 static constexpr float kPromptCornerRadius = 0.006f; 257 static constexpr float kPromptTextWidth = 0.522f; 258 static constexpr float kPromptFontSize = 0.028f; 259 static constexpr float kPromptIconSize = 0.042f; 260 static constexpr float kPromptButtonCornerRadius = 0.0035f; 261 static constexpr float kPromptIconTextGap = 0.010f; 262 static constexpr float kPromptMessageButtonGap = 0.056f; 263 static constexpr float kPromptButtonTextSize = 0.024f; 264 static constexpr float kPromptButtonGap = 0.014f; 265 266 static constexpr float kRepositionCursorBackgroundSize = 1.85f; 267 static constexpr float kRepositionCursorSize = 1.5f; 268 269 static constexpr float kMinResizerScale = 0.5f; 270 static constexpr float kMaxResizerScale = 1.5f; 271 272 static constexpr float kRepositionFrameTopPadding = 0.25f; 273 static constexpr float kRepositionFrameEdgePadding = 0.04f; 274 static constexpr float kRepositionFrameHitPlaneTopPadding = 0.5f; 275 static constexpr float kRepositionFrameTransitionDurationMs = 300; 276 277 static constexpr float kOverflowMenuOffset = 0.016f; 278 static constexpr float kOverflowMenuMinimumWidth = 0.312f; 279 static constexpr float kOverflowButtonRegionHeight = 0.088f; 280 static constexpr float kOverflowButtonRegionOpacity = 0.97f; 281 static constexpr float kOverflowButtonXPadding = 0.016f; 282 static constexpr float kOverflowButtonYPadding = 0.012f; 283 static constexpr float kOverflowMenuYPadding = 0.012f; 284 static constexpr float kOverflowMenuItemHeight = 0.080f; 285 static constexpr float kOverflowMenuItemXPadding = 0.024f; 286 static constexpr float kOverflowMenuMaxSpan = 0.384f - kOverflowMenuYPadding; 287 288 static constexpr const char* kCrashVrBrowserUrl = "chrome://crash-vr-browser"; 289 290 } // namespace vr 291 292 #endif // CHROME_BROWSER_VR_UI_SCENE_CONSTANTS_H_ 293