#include <XnVSlider1D.h>
Public Types | |
| typedef void(XN_CALLBACK_TYPE * | ValueChangeCB )(XnFloat fValue, void *cxt) |
| typedef void(XN_CALLBACK_TYPE * | OffAxisMovementCB )(XnVDirection eDir, void *cxt) |
Public Member Functions | |
| XnVSlider1D (XnVAxis eAxis, const XnPoint3D &ptInitialPosition, XnPoint3D ptMinPoint, XnPoint3D ptMaxPoint, XnFloat fMinOutput, XnFloat fMaxOutput, XnFloat fOffAxisDetectionAngle=ms_fOffAxisDefaultDetectionAngle, XnFloat fOffAxisDetectionMinimumVelocity=ms_fDefaultMinimumOffAxisVelocity) | |
| XnVSlider1D (XnVAxis eAxis, const XnPoint3D &ptInitialPosition, XnFloat fSliderLength, XnFloat fInitialValue, XnFloat fMinOutput, XnFloat fMaxOutput, XnFloat fOffAxisDetectionAngle=ms_fOffAxisDefaultDetectionAngle, XnFloat fOffAxisDetectionMinimumVelocity=ms_fDefaultMinimumOffAxisVelocity) | |
| ~XnVSlider1D () | |
| void | Reinitialize (XnVAxis eAxis, const XnPoint3D &ptInitialPoint, const XnPoint3D &ptMinPoint, const XnPoint3D &ptMaxPoint, XnFloat fMinOutput, XnFloat fMaxOutput) |
| void | Reinitialize (XnVAxis eAxis, const XnPoint3D &ptInitialPoint, XnFloat fSliderLength, XnFloat fInitialValue, XnFloat fMinOutput, XnFloat fMaxOutput) |
| XnFloat | ValueAtPosition (const XnPoint3D &pt) |
| XnStatus | Update (const XnPoint3D &pt, XnFloat fTime, XnBool bCheckOffAxis=true) |
| void | LostPoint () |
| XnCallbackHandle | RegisterValueChange (void *cxt, ValueChangeCB CB) |
| XnCallbackHandle | RegisterOffAxisMovement (void *cxt, OffAxisMovementCB CB) |
| void | UnregisterValueChange (XnCallbackHandle hCB) |
| void | UnregisterOffAxisMovement (XnCallbackHandle hCB) |
| XnFloat | GetValue () const |
| const XnPoint3D & | GetPosition () const |
| XnBool | IsValid () const |
| XnVAxis | GetAxis () const |
| XnFloat | GetOffAxisDetectionVelocity () const |
| XnFloat | GetOffAxisDetectionAngle () const |
| XnUInt32 | GetOffAxisDetectionTime () const |
| void | SetOffAxisDetectionVelocity (XnFloat fVelocity) |
| void | SetOffAxisDetectionAngle (XnFloat fAngle) |
| void | SetOffAxisDetectionTime (XnUInt32 nTime) |
Protected Member Functions | |
| void | ValueChange (XnFloat fValue) |
| void | OffAxisMovement (XnVDirection eDir) |
| XnVSlider1D (XnVAxis eAxis, XnBool bDraggable, const XnPoint3D &ptInitialPosition, XnFloat fSliderLength, XnFloat fInitialValue, XnFloat fMinOutput, XnFloat fMaxOutput, XnFloat fOffAxisDetectionAngle=ms_fOffAxisDefaultDetectionAngle, XnFloat fOffAxisDetectionMinimumVelocity=ms_fDefaultMinimumOffAxisVelocity) | |
| void | InitializeFromPoint (const XnPoint3D &ptInitialPosition, const XnPoint3D &ptMinPoint, const XnPoint3D &ptMaxPoint, XnBool bVertical, XnFloat &fSliderLength, XnFloat &fInitialValue) |
| void | Initialize (XnVAxis eAxis, XnBool bDraggable, const XnPoint3D &ptInitialPosition, XnFloat fSliderLength, XnFloat fInitialValue, XnFloat fMinOutput, XnFloat fMaxOutput, XnFloat fOffAxisDetectionAngle, XnFloat fOffAxisDetectionMinimumMovement) |
| XnVDirection | CheckForOffAxisMovement (const XnPoint3D &pt, XnFloat fTime) |
| XnInt32 | CheckOffAxis (XnFloat fPrimaryAxisDelta, XnFloat fOffAxisDelta) |
Protected Attributes | |
| XnFloat | m_fOffAxisDetectionMinimumVelocity |
| XnFloat | m_fOffAxisDetectionAngle |
| XnUInt32 | m_nOffAxisDetectionTime |
| XnVAxis | m_eAxis |
| XnBool | m_bIsDraggable |
| XnFloat | m_fCurrentOutput |
| XnPoint3D | m_ptCurrentPosition |
| XnFloat | m_fOutputMinimum |
| XnFloat | m_fOutputMaximum |
| XnFloat | m_fMaxOutputMajorAxisPosition |
| XnFloat | m_fMinOutputMajorAxisPosition |
| XnVPointBuffer * | m_pPointBuffer |
| XnVFloatSpecificEvent * | m_pValueChangeCBs |
| XnVDirectionSpecificEvent * | m_pOffAxisMovementCBs |
Static Protected Attributes | |
| static const XnFloat | ms_fDefaultMinimumOffAxisVelocity |
| static const XnFloat | ms_fOffAxisDefaultDetectionAngle |
| static const XnUInt32 | ms_nDefaultTimeForOffAxisDetection |
This is a simple slider. It receives a point, and normalizes it in one (configurable) axis to a number between 0 and 1. It can also recognize movement in its non-primary axis. The XnVSlider1D defines 2 events:
Definition at line 27 of file XnVSlider1D.h.
| typedef void(XN_CALLBACK_TYPE* XnVSlider1D::OffAxisMovementCB)(XnVDirection eDir, void *cxt) |
Type for the off axis movement event callback. It receives a direction of the off-axis movement.
Definition at line 37 of file XnVSlider1D.h.
| typedef void(XN_CALLBACK_TYPE* XnVSlider1D::ValueChangeCB)(XnFloat fValue, void *cxt) |
Type for the value change event callback. The value is between the slider's minimum and maximum output values.
Definition at line 33 of file XnVSlider1D.h.
| XnVSlider1D::XnVSlider1D | ( | XnVAxis | eAxis, | |
| const XnPoint3D & | ptInitialPosition, | |||
| XnPoint3D | ptMinPoint, | |||
| XnPoint3D | ptMaxPoint, | |||
| XnFloat | fMinOutput, | |||
| XnFloat | fMaxOutput, | |||
| XnFloat | fOffAxisDetectionAngle = ms_fOffAxisDefaultDetectionAngle, |
|||
| XnFloat | fOffAxisDetectionMinimumVelocity = ms_fDefaultMinimumOffAxisVelocity | |||
| ) |
Constructor
| [in] | eAxis | The axis of the slider |
| [in] | ptInitialPosition | The initial point within the slider |
| [in] | ptMinPoint | One edge of the slider |
| [in] | ptMaxPoint | Other edge of the slider |
| [in] | fMinOutput | Minimum value for slider output |
| [in] | fMaxOutput | Maximum value for slider output |
| [in] | fOffAxisDetectionAngle | Angle from the slider to consider off-axis |
| [in] | fOffAxisDetectionMinimumVelocity | Velocity of off-axis movement to consider off-axis |
| XnVSlider1D::XnVSlider1D | ( | XnVAxis | eAxis, | |
| const XnPoint3D & | ptInitialPosition, | |||
| XnFloat | fSliderLength, | |||
| XnFloat | fInitialValue, | |||
| XnFloat | fMinOutput, | |||
| XnFloat | fMaxOutput, | |||
| XnFloat | fOffAxisDetectionAngle = ms_fOffAxisDefaultDetectionAngle, |
|||
| XnFloat | fOffAxisDetectionMinimumVelocity = ms_fDefaultMinimumOffAxisVelocity | |||
| ) |
Constructor
| [in] | eAxis | The axis of the slider |
| [in] | ptInitialPosition | The initial point within the slider |
| [in] | fSliderLength | The length of the slider |
| [in] | fInitialValue | The initial value to consider the initial point |
| [in] | fMinOutput | Minimum value for slider output |
| [in] | fMaxOutput | Maximum value for slider output |
| [in] | fOffAxisDetectionAngle | Angle from the slider to consider off-axis |
| [in] | fOffAxisDetectionMinimumVelocity | Velocity of off-axis movement to consider off-axis |
| XnVSlider1D::~XnVSlider1D | ( | ) |
| XnVSlider1D::XnVSlider1D | ( | XnVAxis | eAxis, | |
| XnBool | bDraggable, | |||
| const XnPoint3D & | ptInitialPosition, | |||
| XnFloat | fSliderLength, | |||
| XnFloat | fInitialValue, | |||
| XnFloat | fMinOutput, | |||
| XnFloat | fMaxOutput, | |||
| XnFloat | fOffAxisDetectionAngle = ms_fOffAxisDefaultDetectionAngle, |
|||
| XnFloat | fOffAxisDetectionMinimumVelocity = ms_fDefaultMinimumOffAxisVelocity | |||
| ) | [protected] |
| XnVDirection XnVSlider1D::CheckForOffAxisMovement | ( | const XnPoint3D & | pt, | |
| XnFloat | fTime | |||
| ) | [protected] |
| XnInt32 XnVSlider1D::CheckOffAxis | ( | XnFloat | fPrimaryAxisDelta, | |
| XnFloat | fOffAxisDelta | |||
| ) | [protected] |
| XnVAxis XnVSlider1D::GetAxis | ( | ) | const |
Get the axis on which the slider works
| XnFloat XnVSlider1D::GetOffAxisDetectionAngle | ( | ) | const |
Get the minimum angle to consider Off Axis movement
| XnUInt32 XnVSlider1D::GetOffAxisDetectionTime | ( | ) | const |
Get the time span in which an off axis movement should be identified
| XnFloat XnVSlider1D::GetOffAxisDetectionVelocity | ( | ) | const |
Get the minimum velocity to consider Off Axis movement
| const XnPoint3D& XnVSlider1D::GetPosition | ( | ) | const |
| XnFloat XnVSlider1D::GetValue | ( | ) | const |
| void XnVSlider1D::Initialize | ( | XnVAxis | eAxis, | |
| XnBool | bDraggable, | |||
| const XnPoint3D & | ptInitialPosition, | |||
| XnFloat | fSliderLength, | |||
| XnFloat | fInitialValue, | |||
| XnFloat | fMinOutput, | |||
| XnFloat | fMaxOutput, | |||
| XnFloat | fOffAxisDetectionAngle, | |||
| XnFloat | fOffAxisDetectionMinimumMovement | |||
| ) | [protected] |
| void XnVSlider1D::InitializeFromPoint | ( | const XnPoint3D & | ptInitialPosition, | |
| const XnPoint3D & | ptMinPoint, | |||
| const XnPoint3D & | ptMaxPoint, | |||
| XnBool | bVertical, | |||
| XnFloat & | fSliderLength, | |||
| XnFloat & | fInitialValue | |||
| ) | [protected] |
| XnBool XnVSlider1D::IsValid | ( | ) | const |
| void XnVSlider1D::LostPoint | ( | ) |
Restart the search for off axis movement.
| void XnVSlider1D::OffAxisMovement | ( | XnVDirection | eDir | ) | [protected] |
| XnCallbackHandle XnVSlider1D::RegisterOffAxisMovement | ( | void * | cxt, | |
| OffAxisMovementCB | CB | |||
| ) |
Register for the off-axis event
| [in] | cxt | User's context |
| [in] | CB | The Callback to call when the event is invoked. |
| XnCallbackHandle XnVSlider1D::RegisterValueChange | ( | void * | cxt, | |
| ValueChangeCB | CB | |||
| ) |
Register for the value change event
| [in] | cxt | User's context |
| [in] | CB | The Callback to call when the event is invoked. |
| void XnVSlider1D::Reinitialize | ( | XnVAxis | eAxis, | |
| const XnPoint3D & | ptInitialPoint, | |||
| const XnPoint3D & | ptMinPoint, | |||
| const XnPoint3D & | ptMaxPoint, | |||
| XnFloat | fMinOutput, | |||
| XnFloat | fMaxOutput | |||
| ) |
Recreate the slider
| [in] | eAxis | The axis of the slider |
| [in] | ptInitialPoint | The initial point within the slider |
| [in] | ptMinPoint | One edge of the slider |
| [in] | ptMaxPoint | Other edge of the slider |
| [in] | fMinOutput | Minimum value for slider output |
| [in] | fMaxOutput | Maximum value for slider output |
| void XnVSlider1D::Reinitialize | ( | XnVAxis | eAxis, | |
| const XnPoint3D & | ptInitialPoint, | |||
| XnFloat | fSliderLength, | |||
| XnFloat | fInitialValue, | |||
| XnFloat | fMinOutput, | |||
| XnFloat | fMaxOutput | |||
| ) |
Recreate the slider
| [in] | eAxis | The axis of the slider |
| [in] | ptInitialPoint | The initial point within the slider |
| [in] | fSliderLength | The length of the slider |
| [in] | fInitialValue | The initial value to consider the initial point |
| [in] | fMinOutput | Minimum value for slider output |
| [in] | fMaxOutput | Maximum value for slider output |
| void XnVSlider1D::SetOffAxisDetectionAngle | ( | XnFloat | fAngle | ) |
Change the minimum angle to consider Off Axis movement, in degrees. Default is 60
| [in] | fAngle | New minimum angle |
| void XnVSlider1D::SetOffAxisDetectionTime | ( | XnUInt32 | nTime | ) |
Change the time span in which an Off Axis movement should be identified, in milliseconds. Default is 350ms
| [in] | nTime | New time span |
| void XnVSlider1D::SetOffAxisDetectionVelocity | ( | XnFloat | fVelocity | ) |
Change the minimum velocity to consider Off Axis movement, in m/s. Default is 0.15m/s
| [in] | fVelocity | New minimum velocity |
| void XnVSlider1D::UnregisterOffAxisMovement | ( | XnCallbackHandle | hCB | ) |
Unregister from the off-axis event
| [in] | hCB | The handle provided on registration. |
| void XnVSlider1D::UnregisterValueChange | ( | XnCallbackHandle | hCB | ) |
Unregister from the value change event
| [in] | hCB | The handle provided on registration. |
| XnStatus XnVSlider1D::Update | ( | const XnPoint3D & | pt, | |
| XnFloat | fTime, | |||
| XnBool | bCheckOffAxis = true | |||
| ) |
The main function. It receives a point, normalizes it, and calculates the new value.
| [in] | pt | The point to check in the slider. |
| [in] | fTime | The timestamp (in seconds) of this update |
| [in] | bCheckOffAxis | Is the OffAxis event interesting at all? |
| XnFloat XnVSlider1D::ValueAtPosition | ( | const XnPoint3D & | pt | ) |
Translation between value and point.
| void XnVSlider1D::ValueChange | ( | XnFloat | fValue | ) | [protected] |
XnBool XnVSlider1D::m_bIsDraggable [protected] |
Definition at line 226 of file XnVSlider1D.h.
XnVAxis XnVSlider1D::m_eAxis [protected] |
Definition at line 225 of file XnVSlider1D.h.
XnFloat XnVSlider1D::m_fCurrentOutput [protected] |
Definition at line 228 of file XnVSlider1D.h.
XnFloat XnVSlider1D::m_fMaxOutputMajorAxisPosition [protected] |
Definition at line 232 of file XnVSlider1D.h.
XnFloat XnVSlider1D::m_fMinOutputMajorAxisPosition [protected] |
Definition at line 232 of file XnVSlider1D.h.
XnFloat XnVSlider1D::m_fOffAxisDetectionAngle [protected] |
Definition at line 222 of file XnVSlider1D.h.
XnFloat XnVSlider1D::m_fOffAxisDetectionMinimumVelocity [protected] |
Definition at line 221 of file XnVSlider1D.h.
XnFloat XnVSlider1D::m_fOutputMaximum [protected] |
Definition at line 231 of file XnVSlider1D.h.
XnFloat XnVSlider1D::m_fOutputMinimum [protected] |
Definition at line 231 of file XnVSlider1D.h.
XnUInt32 XnVSlider1D::m_nOffAxisDetectionTime [protected] |
Definition at line 223 of file XnVSlider1D.h.
XnVDirectionSpecificEvent* XnVSlider1D::m_pOffAxisMovementCBs [protected] |
Definition at line 237 of file XnVSlider1D.h.
XnVPointBuffer* XnVSlider1D::m_pPointBuffer [protected] |
Definition at line 234 of file XnVSlider1D.h.
XnPoint3D XnVSlider1D::m_ptCurrentPosition [protected] |
Definition at line 229 of file XnVSlider1D.h.
XnVFloatSpecificEvent* XnVSlider1D::m_pValueChangeCBs [protected] |
Definition at line 236 of file XnVSlider1D.h.
const XnFloat XnVSlider1D::ms_fDefaultMinimumOffAxisVelocity [static, protected] |
Definition at line 217 of file XnVSlider1D.h.
const XnFloat XnVSlider1D::ms_fOffAxisDefaultDetectionAngle [static, protected] |
Definition at line 218 of file XnVSlider1D.h.
const XnUInt32 XnVSlider1D::ms_nDefaultTimeForOffAxisDetection [static, protected] |
Definition at line 219 of file XnVSlider1D.h.
1.7.1