| /* |
| * Copyright (C) 2023 Mohamad Al-Jaf |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #ifdef __WIDL__ |
| #pragma winrt ns_prefix |
| #endif |
| |
| import "inspectable.idl"; |
| import "asyncinfo.idl"; |
| import "eventtoken.idl"; |
| import "windowscontracts.idl"; |
| import "windows.foundation.idl"; |
| import "windows.foundation.numerics.idl"; |
| import "windows.graphics.directx.idl"; |
| import "windows.perception.spatial.idl"; |
| import "windows.storage.streams.idl"; |
| |
| namespace Windows.Perception.Spatial.Surfaces { |
| interface ISpatialSurfaceInfo; |
| interface ISpatialSurfaceMesh; |
| interface ISpatialSurfaceMeshBuffer; |
| interface ISpatialSurfaceMeshOptions; |
| interface ISpatialSurfaceMeshOptionsStatics; |
| interface ISpatialSurfaceObserver; |
| interface ISpatialSurfaceObserverStatics; |
| interface ISpatialSurfaceObserverStatics2; |
| |
| runtimeclass SpatialSurfaceInfo; |
| runtimeclass SpatialSurfaceMesh; |
| runtimeclass SpatialSurfaceMeshBuffer; |
| runtimeclass SpatialSurfaceMeshOptions; |
| runtimeclass SpatialSurfaceObserver; |
| |
| declare { |
| interface Windows.Foundation.Collections.IMapView<GUID, Windows.Perception.Spatial.Surfaces.SpatialSurfaceInfo *>; |
| interface Windows.Foundation.Collections.IKeyValuePair<GUID, Windows.Perception.Spatial.Surfaces.SpatialSurfaceInfo *>; |
| interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<GUID, Windows.Perception.Spatial.Surfaces.SpatialSurfaceInfo *> *>; |
| interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<GUID, Windows.Perception.Spatial.Surfaces.SpatialSurfaceInfo *> *>; |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Perception.Spatial.Surfaces.SpatialSurfaceMesh *>; |
| interface Windows.Foundation.IAsyncOperation<Windows.Perception.Spatial.Surfaces.SpatialSurfaceMesh *>; |
| interface Windows.Foundation.TypedEventHandler<Windows.Perception.Spatial.Surfaces.SpatialSurfaceObserver *, IInspectable *>; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceInfo), |
| uuid(f8e9ebe7-39b7-3962-bb03-57f56e1fb0a1) |
| ] |
| interface ISpatialSurfaceInfo : IInspectable |
| { |
| [propget] HRESULT Id([out, retval] GUID *value); |
| [propget] HRESULT UpdateTime([out, retval] Windows.Foundation.DateTime *value); |
| HRESULT TryGetBounds( |
| [in] Windows.Perception.Spatial.SpatialCoordinateSystem *system, |
| [out, retval] Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingOrientedBox> **value |
| ); |
| [overload("TryComputeLatestMeshAsync")] HRESULT TryComputeLatestMeshAsync( |
| [in] DOUBLE triangles, |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Perception.Spatial.Surfaces.SpatialSurfaceMesh *> **value |
| ); |
| [overload("TryComputeLatestMeshAsync")] HRESULT TryComputeLatestMeshWithOptionsAsync( |
| [in] DOUBLE triangles, |
| [in] Windows.Perception.Spatial.Surfaces.SpatialSurfaceMeshOptions *options, |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Perception.Spatial.Surfaces.SpatialSurfaceMesh *> **value |
| ); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceMesh), |
| uuid(108f57d9-df0d-3950-a0fd-f972c77c27b4) |
| ] |
| interface ISpatialSurfaceMesh : IInspectable |
| { |
| [propget] HRESULT SurfaceInfo([out, retval] Windows.Perception.Spatial.Surfaces.SpatialSurfaceInfo **value); |
| [propget] HRESULT CoordinateSystem([out, retval] Windows.Perception.Spatial.SpatialCoordinateSystem **value); |
| [propget] HRESULT TriangleIndices([out, retval] Windows.Perception.Spatial.Surfaces.SpatialSurfaceMeshBuffer **value); |
| [propget] HRESULT VertexPositions([out, retval] Windows.Perception.Spatial.Surfaces.SpatialSurfaceMeshBuffer **value); |
| [propget] HRESULT VertexPositionScale([out, retval] Windows.Foundation.Numerics.Vector3 *value); |
| [propget] HRESULT VertexNormals([out, retval] Windows.Perception.Spatial.Surfaces.SpatialSurfaceMeshBuffer **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceMeshBuffer), |
| uuid(93cf59e0-871f-33f8-98b2-03d101458f6f) |
| ] |
| interface ISpatialSurfaceMeshBuffer : IInspectable |
| { |
| [propget] HRESULT Format([out, retval] Windows.Graphics.DirectX.DirectXPixelFormat *value); |
| [propget] HRESULT Stride([out, retval] UINT32 *value); |
| [propget] HRESULT ElementCount([out, retval] UINT32 *value); |
| [propget] HRESULT Data([out, retval] Windows.Storage.Streams.IBuffer **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceMeshOptions), |
| uuid(d2759f89-3572-3d2d-a10d-5fee9394aa37) |
| ] |
| interface ISpatialSurfaceMeshOptions : IInspectable |
| { |
| [propget] HRESULT VertexPositionFormat([out, retval] Windows.Graphics.DirectX.DirectXPixelFormat *value); |
| [propput] HRESULT VertexPositionFormat([in] Windows.Graphics.DirectX.DirectXPixelFormat value); |
| [propget] HRESULT TriangleIndexFormat([out, retval] Windows.Graphics.DirectX.DirectXPixelFormat *value); |
| [propput] HRESULT TriangleIndexFormat([in] Windows.Graphics.DirectX.DirectXPixelFormat value); |
| [propget] HRESULT VertexNormalFormat([out, retval] Windows.Graphics.DirectX.DirectXPixelFormat *value); |
| [propput] HRESULT VertexNormalFormat([in] Windows.Graphics.DirectX.DirectXPixelFormat value); |
| [propget] HRESULT IncludeVertexNormals([out, retval] boolean *value); |
| [propput] HRESULT IncludeVertexNormals([in] boolean value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceMeshOptions), |
| uuid(9b340abf-9781-4505-8935-013575caae5e) |
| ] |
| interface ISpatialSurfaceMeshOptionsStatics : IInspectable |
| { |
| [propget] HRESULT SupportedVertexPositionFormats([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.DirectX.DirectXPixelFormat> **value); |
| [propget] HRESULT SupportedTriangleIndexFormats([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.DirectX.DirectXPixelFormat> **value); |
| [propget] HRESULT SupportedVertexNormalFormats([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.DirectX.DirectXPixelFormat> **value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceObserver), |
| uuid(10b69819-ddca-3483-ac3a-748fe8c86df5) |
| ] |
| interface ISpatialSurfaceObserver : IInspectable |
| { |
| HRESULT GetObservedSurfaces([out, retval] Windows.Foundation.Collections.IMapView<GUID, Windows.Perception.Spatial.Surfaces.SpatialSurfaceInfo *> **value); |
| HRESULT SetBoundingVolume([in] Windows.Perception.Spatial.SpatialBoundingVolume *bounds); |
| HRESULT SetBoundingVolumes([in] Windows.Foundation.Collections.IIterable<Windows.Perception.Spatial.SpatialBoundingVolume *> *bounds); |
| [eventadd] HRESULT ObservedSurfacesChanged( |
| [in] Windows.Foundation.TypedEventHandler<Windows.Perception.Spatial.Surfaces.SpatialSurfaceObserver *, IInspectable *> *handler, |
| [out, retval] EventRegistrationToken *token |
| ); |
| [eventremove] HRESULT ObservedSurfacesChanged([in] EventRegistrationToken token); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceObserver), |
| uuid(165951ed-2108-4168-9175-87e027bc9285) |
| ] |
| interface ISpatialSurfaceObserverStatics : IInspectable |
| { |
| HRESULT RequestAccessAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Perception.Spatial.SpatialPerceptionAccessStatus> **result); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 4.0), |
| exclusiveto(Windows.Perception.Spatial.Surfaces.SpatialSurfaceObserver), |
| uuid(0f534261-c55d-4e6b-a895-a19de69a42e3) |
| ] |
| interface ISpatialSurfaceObserverStatics2 : IInspectable |
| requires Windows.Perception.Spatial.Surfaces.ISpatialSurfaceObserverStatics |
| { |
| HRESULT IsSupported([out, retval] boolean *value); |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass SpatialSurfaceInfo |
| { |
| [default] interface Windows.Perception.Spatial.Surfaces.ISpatialSurfaceInfo; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass SpatialSurfaceMesh |
| { |
| [default] interface Windows.Perception.Spatial.Surfaces.ISpatialSurfaceMesh; |
| } |
| |
| [ |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| threading(both) |
| ] |
| runtimeclass SpatialSurfaceMeshBuffer |
| { |
| [default] interface Windows.Perception.Spatial.Surfaces.ISpatialSurfaceMeshBuffer; |
| } |
| |
| [ |
| activatable(Windows.Foundation.UniversalApiContract, 2.0), |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| static(Windows.Perception.Spatial.Surfaces.ISpatialSurfaceMeshOptionsStatics, Windows.Foundation.UniversalApiContract, 2.0), |
| threading(both) |
| ] |
| runtimeclass SpatialSurfaceMeshOptions |
| { |
| [default] interface Windows.Perception.Spatial.Surfaces.ISpatialSurfaceMeshOptions; |
| } |
| |
| [ |
| activatable(Windows.Foundation.UniversalApiContract, 2.0), |
| contract(Windows.Foundation.UniversalApiContract, 2.0), |
| marshaling_behavior(agile), |
| static(Windows.Perception.Spatial.Surfaces.ISpatialSurfaceObserverStatics, Windows.Foundation.UniversalApiContract, 2.0), |
| static(Windows.Perception.Spatial.Surfaces.ISpatialSurfaceObserverStatics2, Windows.Foundation.UniversalApiContract, 4.0), |
| threading(both) |
| ] |
| runtimeclass SpatialSurfaceObserver |
| { |
| [default] interface Windows.Perception.Spatial.Surfaces.ISpatialSurfaceObserver; |
| } |
| } |