/* * 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.PoseDetection { /// /// Defines threshold configurations for feature state transitions in pose and gesture detection systems. /// This interface provides a generic approach to defining boundaries between different states of a feature, /// such as finger poses or transform orientations. /// /// The type of feature being monitored (e.g., TransformFeature, FingerFeature) /// The type representing possible states of the feature /// /// Used in conjunction with and /// to define when features should transition between states. /// The thresholds use a midpoint and width system to prevent rapid state flickering at transition boundaries. /// public interface IFeatureStateThresholds { /// /// Gets the specific feature type that these thresholds apply to. /// /// The feature identifier (e.g., WristUp, PalmDown for TransformFeature) TFeature Feature { get; } /// /// Gets the collection of state thresholds that define the boundaries between different feature states. /// Each threshold defines when a feature should transition between two states. /// /// A read-only list of thresholds IReadOnlyList> Thresholds { get; } } }