1 // Copyright 2019 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 #ifndef DEVICE_VR_WINDOWS_MIXED_REALITY_WRAPPERS_WMR_WRAPPER_FACTORIES_H_
5 #define DEVICE_VR_WINDOWS_MIXED_REALITY_WRAPPERS_WMR_WRAPPER_FACTORIES_H_
6 
7 #include "device/vr/windows_mixed_reality/wrappers/wmr_holographic_space.h"
8 #include "device/vr/windows_mixed_reality/wrappers/wmr_input_manager.h"
9 #include "device/vr/windows_mixed_reality/wrappers/wmr_origins.h"
10 
11 namespace device {
12 
13 class WMRStationaryOriginFactory {
14  public:
15   static std::unique_ptr<WMRStationaryOrigin> CreateAtCurrentLocation();
16 };
17 
18 class WMRAttachedOriginFactory {
19  public:
20   static std::unique_ptr<WMRAttachedOrigin> CreateAtCurrentLocation();
21 };
22 
23 class WMRStageStaticsFactory {
24  public:
25   static std::unique_ptr<WMRStageStatics> Create();
26 };
27 
28 class WMRSpatialAnchorFactory {
29  public:
30   static std::unique_ptr<WMRCoordinateSystem> TryCreateRelativeTo(
31       WMRCoordinateSystem* origin);
32 };
33 
34 class WMRInputManagerFactory {
35  public:
36   static std::unique_ptr<WMRInputManager> GetForWindow(HWND hwnd);
37 };
38 
39 class WMRHolographicSpaceFactory {
40  public:
41   static std::unique_ptr<WMRHolographicSpace> CreateForWindow(HWND hwnd);
42 };
43 
44 }  // namespace device
45 
46 #endif  // DEVICE_VR_WINDOWS_MIXED_REALITY_WRAPPERS_WMR_WRAPPER_FACTORIES_H_
47