Class SimulatedDataTrackingProvider<TSynthTrackable, TData>
Base class for a provider that simulates changes to the tracking states of synthesized data over time and updates data accordingly
Inheritance
Implements
Inherited Members
Namespace: Unity.MARS.Providers.Synthetic
Assembly: Unity.MARS.dll
Syntax
public abstract class SimulatedDataTrackingProvider<TSynthTrackable, TData> : MonoBehaviour, IUsesFunctionalityInjection, IFunctionalitySubscriber<IProvidesFunctionalityInjection>, IFunctionalitySubscriber where TSynthTrackable : SynthesizedTrackable<TData> where TData : IMRTrackable
Type Parameters
Name | Description |
---|---|
TSynthTrackable | The type of SynthesizedTrackable to track |
TData | The type of IMRTrackable data to provide |
Fields
m_DiscoveredTrackables
Declaration
protected readonly HashSet<TSynthTrackable> m_DiscoveredTrackables
Field Value
Type | Description |
---|---|
HashSet<TSynthTrackable> |
m_EnvironmentPhysicsScene
Declaration
protected PhysicsScene m_EnvironmentPhysicsScene
Field Value
Type | Description |
---|---|
PhysicsScene |
m_EnvironmentScene
Declaration
protected Scene m_EnvironmentScene
Field Value
Type | Description |
---|---|
Scene |
m_SimulatedTrackableObjects
Declaration
protected readonly Dictionary<TSynthTrackable, SimulatedObject> m_SimulatedTrackableObjects
Field Value
Type | Description |
---|---|
Dictionary<TSynthTrackable, SimulatedObject> |
Methods
AddTrackableData(TSynthTrackable, MARSTrackingState)
Add data from the synthesized trackable. This is called when the trackable has started tracking for the first time and has been added to m_DiscoveredTrackables.
Declaration
protected abstract void AddTrackableData(TSynthTrackable synthesizedTrackable, MARSTrackingState trackingState)
Parameters
Type | Name | Description |
---|---|---|
TSynthTrackable | synthesizedTrackable | Synthesized trackable whose data to add |
MARSTrackingState | trackingState | Initial tracking quality of the trackable |
GetTrackingState(TSynthTrackable, Camera)
Get the tracking quality of the synthesized trackable relative to the MARS camera. This is where to check whether the trackable is within the camera frustum and whether it is occluded by other objects in m_EnvironmentPhysicsScene.
Declaration
protected abstract MARSTrackingState GetTrackingState(TSynthTrackable synthesizedTrackable, Camera marsCamera)
Parameters
Type | Name | Description |
---|---|---|
TSynthTrackable | synthesizedTrackable | |
Camera | marsCamera |
Returns
Type | Description |
---|---|
MARSTrackingState |
OnDisable()
Declaration
protected virtual void OnDisable()
OnEnable()
Declaration
protected virtual void OnEnable()
OnMarsUpdate()
Declaration
protected virtual void OnMarsUpdate()
RemoveTrackableData(TSynthTrackable)
Remove data from the synthesized trackable
Declaration
protected abstract void RemoveTrackableData(TSynthTrackable synthesizedTrackable)
Parameters
Type | Name | Description |
---|---|---|
TSynthTrackable | synthesizedTrackable | Synthesized trackable whose data to remove |
SetupTrackingForEnvironment()
Gather trackable objects in the simulated environment and do any other initialization that depends on the environment
Declaration
protected virtual void SetupTrackingForEnvironment()
UpdateTrackableData(TSynthTrackable, MARSTrackingState)
Update data from a synthesized trackable that has been previously discovered. The tracking quality may be Unknown, but this does not necessarily mean the data must be removed from the database.
Declaration
protected abstract void UpdateTrackableData(TSynthTrackable synthesizedTrackable, MARSTrackingState trackingState)
Parameters
Type | Name | Description |
---|---|---|
TSynthTrackable | synthesizedTrackable | Synthesized trackable whose data to update |
MARSTrackingState | trackingState | Current tracking quality of the trackable, may be used to limit which traits get updated |