public void UnMatchesWhenBelowMinimumQuality(MARSTrackingState minimum, MARSTrackingState state, float expectedRating) { m_Condition.MinimumState = minimum; var traitValue = (int)state; Assert.AreEqual(m_Condition.RateDataMatch(ref traitValue), expectedRating); }
// update any dynamic properties of the marker and return data id int UpdateMarkerData(ref MRMarker marker, MARSTrackingState trackingState) { marker.trackingState = trackingState; var dataId = this.AddOrUpdateData(marker); // while real-world image markers aren't likely to change size, supporting it in sim is convenient this.AddOrUpdateTrait(dataId, TraitNames.Bounds2D, marker.extents); this.AddOrUpdateTrait(dataId, TraitNames.TrackingState, (int)trackingState); // stop updating poses once tracking is lost if (trackingState != MARSTrackingState.Unknown) { this.AddOrUpdateTrait(dataId, TraitNames.Pose, marker.pose); } return(dataId); }
void AddMarkerData(SynthesizedMarker synthMarker, ref MRMarker marker, MARSTrackingState trackingState) { var dataId = UpdateMarkerData(ref marker, trackingState); synthMarker.dataID = dataId; // add every trait that won't change in here - semantic tags and marker id in this case this.AddOrUpdateTrait(dataId, TraitNames.Marker, true); this.AddOrUpdateTrait(dataId, TraitNames.MarkerId, marker.markerId.ToString()); k_TempSynthTags.Clear(); synthMarker.GetComponents(k_TempSynthTags); foreach (var synthTag in k_TempSynthTags) { if (!synthTag.isActiveAndEnabled) { continue; } this.AddOrUpdateTrait(dataId, synthTag.TraitName, synthTag.GetTraitData()); } }
protected override void UpdateTrackableData(SynthesizedBody synthesizedTrackable, MARSTrackingState trackingState) { var body = synthesizedTrackable.GetData(); var dataId = this.AddOrUpdateData(body); this.AddOrUpdateTrait(dataId, TraitNames.Pose, body.pose); BodyUpdated?.Invoke(body); }
protected override void AddTrackableData(SynthesizedBody synthesizedTrackable, MARSTrackingState trackingState) { var body = synthesizedTrackable.GetData(); var dataId = this.AddOrUpdateData(body); this.AddOrUpdateTrait(dataId, TraitNames.Body, true); this.AddOrUpdateTrait(dataId, TraitNames.Pose, body.pose); foreach (var synthTag in synthesizedTrackable.GetComponents <SynthesizedSemanticTag>()) { if (!synthTag.isActiveAndEnabled) { continue; } this.AddOrUpdateTrait(dataId, synthTag.TraitName, synthTag.GetTraitData()); } BodyAdded?.Invoke(body); }
/// <summary> /// 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. /// </summary> /// <param name="synthesizedTrackable">Synthesized trackable whose data to update</param> /// <param name="trackingState">Current tracking quality of the trackable, may be used to limit which traits get updated</param> protected abstract void UpdateTrackableData(TSynthTrackable synthesizedTrackable, MARSTrackingState trackingState);
public MRReferencePoint(Pose pose, MARSTrackingState state = MARSTrackingState.Unknown) : this() { id = MarsTrackableId.Create(); trackingState = state; this.pose = pose; }