VR-Engage  2.2
Loading...
Searching...
No Matches
deadZoneValueTransform.h
Go to the documentation of this file.
1/******************************************************************************
2** Copyright (c) 2025 MAK Technologies, Inc.
3** All rights reserved.
4******************************************************************************/
5
6//! \file
7//! \brief Value transformation that applies a dead zone to input values
8
9#pragma once
10
11#include "vreInput/export.h"
13
14namespace makVre
15{
16//! \brief Value transformation that filters out small input values
17//!
18//! This transform applies a dead zone to input values. Values within the dead zone
19//! (close to zero) are filtered out and returned as zero. This helps eliminate
20//! noise or small unintentional movements from input devices like joysticks.
22{
23public:
24 //! \brief Default constructor
25 //!
26 //! Initializes the dead zone value to zero
28
29 //! \brief Virtual destructor
30 virtual ~DtDeadZoneValueTransform() override;
31
32 //! \brief Initialize the dead zone transform from configuration
33 //!
34 //! Reads the dead zone value from the configuration table.
35 //! The expected configuration parameter is "DeadZone" which specifies
36 //! the threshold below which input values will be zeroed out.
37 //!
38 //! \param config Pointer to the configuration table
39 virtual void init(DtInitTable* config) override;
40
41 //! \brief Apply the dead zone transformation to an input value
42 //!
43 //! Values with absolute magnitude less than the dead zone threshold
44 //! are set to zero. Values outside the dead zone are passed through unchanged.
45 //!
46 //! \param value The raw input value to transform
47 //! \return The transformed value (0.0 if within dead zone, original value otherwise)
48 virtual float transform(float value) override;
49
50protected:
51 //! \brief Dead zone threshold value
52 //!
53 //! Input values with absolute magnitude less than this value will be zeroed out
54 float myDeadZone = 0.0;
55 float myScale = 1.0;
56};
57
58} // namespace makVre
float myScale
Definition deadZoneValueTransform.h:55
virtual void init(DtInitTable *config) override
Initialize the dead zone transform from configuration.
DtDeadZoneValueTransform()
Default constructor.
virtual ~DtDeadZoneValueTransform() override
Virtual destructor.
float myDeadZone
Dead zone threshold value.
Definition deadZoneValueTransform.h:54
virtual float transform(float value) override
Apply the dead zone transformation to an input value.
Table-based access to Lua state for configuration data.
Definition initializer.h:38
DtValueTransform()
Default constructor.
Definition valueTransform.h:27
Defines DLL export/import macros for the vreInput library.
#define VREINPUT_DLL
DLL export/import macro for the vreInput library.
Definition export.h:25
Include export definitions for this library.
Definition glsVreMessageUtil.h:49
Abstract base class for input value transformation operations.