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
20 #pragma winrt ns_prefix
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
;
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
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
;
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
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
136 [in] Windows.Perception.Spatial.SpatialCoordinateSystem
*system
,
137 [in] Windows.Perception.Spatial.SpatialBoundingSphere sphere
,
138 [out, retval] Windows.Perception.Spatial.SpatialBoundingVolume
**value
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),
166 runtimeclass SpatialBoundingVolume
168 [default] interface Windows.Perception.Spatial.ISpatialBoundingVolume
;
172 contract
(Windows.Foundation.UniversalApiContract
, 2.0),
173 marshaling_behavior
(agile
),
176 runtimeclass SpatialCoordinateSystem
178 [default] interface Windows.Perception.Spatial.ISpatialCoordinateSystem
;