/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * Licensed under the Oculus SDK License Agreement (the "License"); * you may not use the Oculus SDK except in compliance with the License, * which is provided at the time of installation or download, or which * otherwise accompanies this software in either electronic or hard copy form. * * You may obtain a copy of the License at * * https://developer.oculus.com/licenses/oculussdk/ * * Unless required by applicable law or agreed to in writing, the Oculus SDK * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System.Collections.Generic; namespace Oculus.Interaction.Surfaces { /// /// An IClippedSurface is a specific type of in which the for both the /// patch itself and its is the same, but where the solutions to spatial /// queries against the ISurfacePatch itself are constrained by spatial constraints characterized as s. /// The canonical (and most instructive) example of a TClipper is , which confines solutions /// to spatial queries against an ISurface to an allowable region within certain spatial bounds; results outside of these bounds /// will either be rejected outright (for example, for /// queries) or "clamped" to within the acceptable region (for example, for /// queries). In this way, an /// IClippedSurface can be thought of as a larger surface which has been trimmed down or "clipped" to a subsection. /// /// A type of "trimming" mechanism used to constrain the allowable region of an ISurface public interface IClippedSurface : ISurfacePatch { /// /// Retrieves the list of "clipper" constraints which are used to confine the to /// a specific allowable region which serves as the base of the . /// As a colloquial example, if the backing surface were defined as a plane with origin _v_, and GetClippers returned a /// constraint which mandated, "Only points within 10cm world space of _v_ are considered part of the surface," then the /// itself would be defined as the region of the backing surface which lies within 10cm of _v_ in /// world space. /// /// /// The list of s which define the as a subset of its /// . /// IReadOnlyList GetClippers(); } }