Candy
|
The adaptive smoothing tracker filter reorders the tracker data and interpolates with the data previously provided to smooth out noise. More...
Classes | |
struct | FilteredId |
struct | FilteredOrientation |
struct | FilteredPoints |
struct | FilteredPosition |
struct | FilteredVelocity |
struct | point |
Public Member Functions | |
AdaptiveSmoothingTrackerFilter (H3D::Inst< H3D::SFNode > _metadata=0, H3D::Inst< H3D::MFVec3f > _rawPosition=0, H3D::Inst< H3D::MFRotation > _rawOrientation=0, H3D::Inst< CalibratedMatrix > _trackerMatrix=0, H3D::Inst< FilteredPosition > _trackerPosition=0, H3D::Inst< FilteredOrientation > _trackerOrientation=0, H3D::Inst< SFTrackerNode > _tracker=0, H3D::Inst< FilteredPoints > _points=0, H3D::Inst< FilteredId > _trackerId=0, H3D::Inst< FilteredVelocity > _trackerVelocity=0, H3D::Inst< H3D::SFInt32 > _historySamples=0, H3D::Inst< H3D::SFFloat > _historyTime=0, H3D::Inst< H3D::SFFloat > _errorThreshold=0, H3D::Inst< H3D::SFVec2f > _filterRange=0, H3D::Inst< H3D::SFFloat > _cutoffRange=0, H3D::Inst< H3D::SFVec2f > _positionBlending=0, H3D::Inst< H3D::SFVec2f > _orientationBlending=0, H3D::Inst< H3D::SFBool > _extrapolatePosition=0, H3D::Inst< H3D::SFFloat > _birthDelay=0, H3D::Inst< H3D::SFFloat > _deathDelay=0) | |
![]() | |
HVRTrackerFilterNode (H3D::Inst< H3D::SFNode > _metadata=0, H3D::Inst< H3D::MFVec3f > _rawPosition=0, H3D::Inst< H3D::MFRotation > _rawOrientation=0, H3D::Inst< CalibratedMatrix > _trackerMatrix=0, H3D::Inst< H3D::MFVec3f > _trackerPosition=0, H3D::Inst< H3D::MFRotation > _trackerOrientation=0, H3D::Inst< SFTrackerNode > _tracker=0) | |
![]() | |
HVRTrackerNode (H3D::Inst< H3D::SFNode > _metadata=0, H3D::Inst< H3D::MFVec3f > _rawPosition=0, H3D::Inst< H3D::MFRotation > _rawOrientation=0, H3D::Inst< CalibratedMatrix > _trackerMatrix=0, H3D::Inst< H3D::MFVec3f > _trackerPosition=0, H3D::Inst< H3D::MFRotation > _trackerOrientation=0) | |
virtual std::string | defaultXMLContainerField () |
Public Attributes | |
std::auto_ptr< FilteredId > | trackerId |
![]() | |
std::auto_ptr< FilteredVelocity > | trackerVelocity |
![]() | |
std::auto_ptr< H3D::SFInt32 > | historySamples |
![]() | |
std::auto_ptr< H3D::SFFloat > | historyTime |
![]() | |
std::auto_ptr< H3D::SFFloat > | errorThreshold |
![]() | |
std::auto_ptr< H3D::SFVec2f > | filterRange |
![]() | |
std::auto_ptr< H3D::SFFloat > | cutoffRange |
![]() | |
std::auto_ptr< H3D::SFVec2f > | positionBlending |
![]() | |
std::auto_ptr< H3D::SFVec2f > | orientationBlending |
![]() | |
std::auto_ptr< H3D::SFBool > | extrapolatePosition |
![]() | |
std::auto_ptr< H3D::SFFloat > | birthDelay |
![]() | |
std::auto_ptr< H3D::SFFloat > | deathDelay |
![]() | |
![]() | |
std::auto_ptr< SFTrackerNode > | tracker |
![]() | |
![]() | |
std::auto_ptr< H3D::MFVec3f > | rawPosition |
![]() | |
std::auto_ptr< H3D::MFRotation > | rawOrientation |
![]() | |
std::auto_ptr< CalibratedMatrix > | trackerMatrix |
![]() | |
std::auto_ptr< H3D::MFVec3f > | trackerPosition |
![]() | |
std::auto_ptr< H3D::MFRotation > | trackerOrientation |
![]() | |
Static Public Attributes | |
static H3D::H3DNodeDatabase | database |
![]() | |
static H3D::H3DNodeDatabase | database |
![]() | |
static H3D::H3DNodeDatabase | database |
Protected Types | |
typedef H3D::MField< point > | MFPoint |
Protected Member Functions | |
virtual void | connect_tracker (HVRTrackerNode *) |
virtual void | disconnect_tracker (HVRTrackerNode *) |
![]() | |
void | updateRawMatrix (const std::vector< H3D::Matrix4f > &m) |
Call this function to update the tracker data. More... | |
void | updateRawPositionOrientation (const std::vector< H3D::Vec3f > &x, const std::vector< H3D::Rotation > &r) |
Call this function to update the tracker data. More... | |
Protected Attributes | |
std::auto_ptr< FilteredPoints > | points |
The adaptive smoothing tracker filter reorders the tracker data and interpolates with the data previously provided to smooth out noise.
Use filter range and filter blending to control how far away the samples to blend may be and how much old and new data to use, respectively.
std::auto_ptr< H3D::SFFloat > HVR::AdaptiveSmoothingTrackerFilter::birthDelay |
How many seconds to wait before a new point qualifies as a tracker point.
std::auto_ptr< H3D::SFFloat > HVR::AdaptiveSmoothingTrackerFilter::cutoffRange |
The distance between an old sample and a new sample that is far enough to not be treated as the sample tracked point.
std::auto_ptr< H3D::SFFloat > HVR::AdaptiveSmoothingTrackerFilter::deathDelay |
How many seconds to wait before removing a point that is not being updated.
std::auto_ptr< H3D::SFFloat > HVR::AdaptiveSmoothingTrackerFilter::errorThreshold |
An estimate of the position tracking error, which is used in the velocity estimation.
std::auto_ptr< H3D::SFBool > HVR::AdaptiveSmoothingTrackerFilter::extrapolatePosition |
(true) When true the last position is extrapolated using the last velocity estimation when a sample is not updated (because there are no new data) but still not dead (because deathDelay has not been reached).
std::auto_ptr< H3D::SFVec2f > HVR::AdaptiveSmoothingTrackerFilter::filterRange |
The distances between the old sample and a new sample to consider close or distant, respectively.
std::auto_ptr< H3D::SFInt32 > HVR::AdaptiveSmoothingTrackerFilter::historySamples |
The number of position samples to save, which are used in the velocity estimation.
std::auto_ptr< H3D::SFFloat > HVR::AdaptiveSmoothingTrackerFilter::historyTime |
How old position samples to save.
std::auto_ptr< H3D::SFVec2f > HVR::AdaptiveSmoothingTrackerFilter::orientationBlending |
How much new sample data to blend in (0-1) for close or distant samples, respectively.
Far and close are defined by the filterRange field.
std::auto_ptr< H3D::SFVec2f > HVR::AdaptiveSmoothingTrackerFilter::positionBlending |
How much new sample data to blend in (0-1) for close or distant samples, respectively.
Far and close are defined by the filterRange field.
std::auto_ptr< FilteredId > HVR::AdaptiveSmoothingTrackerFilter::trackerId |
The id associated with each point.
This list is of the same length as the trackerPosition and trackerOrientation fields.
std::auto_ptr< FilteredVelocity > HVR::AdaptiveSmoothingTrackerFilter::trackerVelocity |
The velocity associated with each point.
This list is of the same length as the trackerPosition and trackerOrientation fields. The velocity is estimated using end-fit-first-order-adaptive-window (end-fit-FOAW) of a history of position samples. Samples are only taken upon request so make sure to call getValue() every frame to get accurate velocity measures.