include: Add some new ProcThreadAttribute definitions.
[wine.git] / include / windows.perception.spatial.idl
blobd19330963f7125ed6f35111e601aaa74ebe9ac8d
1 /*
2 * Copyright (C) 2023 Mohamad Al-Jaf
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifdef __WIDL__
20 #pragma winrt ns_prefix
21 #endif
23 import "inspectable.idl";
24 import "asyncinfo.idl";
25 import "eventtoken.idl";
26 import "windowscontracts.idl";
27 import "windows.foundation.idl";
28 import "windows.foundation.numerics.idl";
29 /* import "windows.perception.idl"; */
30 import "windows.storage.streams.idl";
31 /* import "windows.system.remotesystems.idl"; */
33 namespace Windows.Perception.Spatial {
34 typedef enum SpatialPerceptionAccessStatus SpatialPerceptionAccessStatus;
35 typedef struct SpatialBoundingBox SpatialBoundingBox;
36 typedef struct SpatialBoundingFrustum SpatialBoundingFrustum;
37 typedef struct SpatialBoundingOrientedBox SpatialBoundingOrientedBox;
38 typedef struct SpatialBoundingSphere SpatialBoundingSphere;
40 interface ISpatialBoundingVolume;
41 interface ISpatialBoundingVolumeStatics;
42 interface ISpatialCoordinateSystem;
44 runtimeclass SpatialBoundingVolume;
45 runtimeclass SpatialCoordinateSystem;
47 declare {
48 interface Windows.Foundation.Collections.IIterable<Windows.Perception.Spatial.SpatialBoundingVolume *>;
49 interface Windows.Foundation.Collections.IIterator<Windows.Perception.Spatial.SpatialBoundingVolume *>;
50 interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Perception.Spatial.SpatialPerceptionAccessStatus>;
51 interface Windows.Foundation.IAsyncOperation<Windows.Perception.Spatial.SpatialPerceptionAccessStatus>;
52 interface Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingBox>;
53 interface Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingFrustum>;
54 interface Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingOrientedBox>;
58 contract(Windows.Foundation.UniversalApiContract, 2.0)
60 enum SpatialPerceptionAccessStatus
62 Unspecified = 0,
63 Allowed = 1,
64 DeniedByUser = 2,
65 DeniedBySystem = 3,
69 contract(Windows.Foundation.UniversalApiContract, 2.0)
71 struct SpatialBoundingBox
73 Windows.Foundation.Numerics.Vector3 Center;
74 Windows.Foundation.Numerics.Vector3 Extents;
78 contract(Windows.Foundation.UniversalApiContract, 2.0)
80 struct SpatialBoundingFrustum
82 Windows.Foundation.Numerics.Plane Near;
83 Windows.Foundation.Numerics.Plane Far;
84 Windows.Foundation.Numerics.Plane Right;
85 Windows.Foundation.Numerics.Plane Left;
86 Windows.Foundation.Numerics.Plane Top;
87 Windows.Foundation.Numerics.Plane Bottom;
91 contract(Windows.Foundation.UniversalApiContract, 2.0)
93 struct SpatialBoundingOrientedBox
95 Windows.Foundation.Numerics.Vector3 Center;
96 Windows.Foundation.Numerics.Vector3 Extents;
97 Windows.Foundation.Numerics.Quaternion Orientation;
101 contract(Windows.Foundation.UniversalApiContract, 2.0)
103 struct SpatialBoundingSphere
105 Windows.Foundation.Numerics.Vector3 Center;
106 FLOAT Radius;
110 contract(Windows.Foundation.UniversalApiContract, 2.0),
111 exclusiveto(Windows.Perception.Spatial.SpatialBoundingVolume),
112 uuid(fb2065da-68c3-33df-b7af-4c787207999c)
114 interface ISpatialBoundingVolume : IInspectable
119 contract(Windows.Foundation.UniversalApiContract, 2.0),
120 exclusiveto(Windows.Perception.Spatial.SpatialBoundingVolume),
121 uuid(05889117-b3e1-36d8-b017-566181a5b196)
123 interface ISpatialBoundingVolumeStatics : IInspectable
125 HRESULT FromBox(
126 [in] Windows.Perception.Spatial.SpatialCoordinateSystem *system,
127 [in] Windows.Perception.Spatial.SpatialBoundingBox box,
128 [out, retval] Windows.Perception.Spatial.SpatialBoundingVolume **value
130 HRESULT FromOrientedBox(
131 [in] Windows.Perception.Spatial.SpatialCoordinateSystem *system,
132 [in] Windows.Perception.Spatial.SpatialBoundingOrientedBox box,
133 [out, retval] Windows.Perception.Spatial.SpatialBoundingVolume **value
135 HRESULT FromSphere(
136 [in] Windows.Perception.Spatial.SpatialCoordinateSystem *system,
137 [in] Windows.Perception.Spatial.SpatialBoundingSphere sphere,
138 [out, retval] Windows.Perception.Spatial.SpatialBoundingVolume **value
140 HRESULT FromFrustum(
141 [in] Windows.Perception.Spatial.SpatialCoordinateSystem *system,
142 [in] Windows.Perception.Spatial.SpatialBoundingFrustum frustum,
143 [out, retval] Windows.Perception.Spatial.SpatialBoundingVolume **value
148 contract(Windows.Foundation.UniversalApiContract, 2.0),
149 exclusiveto(Windows.Perception.Spatial.SpatialCoordinateSystem),
150 uuid(69ebca4b-60a3-3586-a653-59a7bd676d07)
152 interface ISpatialCoordinateSystem : IInspectable
154 HRESULT TryGetTransformTo(
155 [in] Windows.Perception.Spatial.SpatialCoordinateSystem *target,
156 [out, retval] Windows.Foundation.IReference<Windows.Foundation.Numerics.Matrix4x4> **value
161 contract(Windows.Foundation.UniversalApiContract, 2.0),
162 marshaling_behavior(agile),
163 static(Windows.Perception.Spatial.ISpatialBoundingVolumeStatics, Windows.Foundation.UniversalApiContract, 2.0),
164 threading(both)
166 runtimeclass SpatialBoundingVolume
168 [default] interface Windows.Perception.Spatial.ISpatialBoundingVolume;
172 contract(Windows.Foundation.UniversalApiContract, 2.0),
173 marshaling_behavior(agile),
174 threading(both)
176 runtimeclass SpatialCoordinateSystem
178 [default] interface Windows.Perception.Spatial.ISpatialCoordinateSystem;