internal bool ForceEvaluation() { m_ForceEvaluationMarker.Begin(); CycleStart(); MemberTraitCacheStage.Complete(); RelationTraitCacheStage.Complete(); MemberConditionRatingStage.Complete(); IncompleteGroupFilterStage.Complete(); MemberMatchIntersectionStage.Complete(); MemberDataAvailabilityStage.Complete(); MemberTraitRequirementStage.Complete(); MemberMatchReductionStage.Complete(); GroupRelationRatingStage.Complete(); FilterRelationMembersStage.Complete(); MatchSearchStage.Complete(); MarkDataUsedStage.Complete(); MemberResultFillStage.Complete(); GroupResultFillStage.Complete(); m_ForceEvaluationMarker.End(); // acquire handling comes after the profiler label because we've already found the answer AcquireHandlingStage.Complete(); onStageGroupCompletion?.Invoke(); // Return whether we had any matches this iteration return(Data.DefiniteMatchAcquireIndices.Count > 0); }
internal bool ForceEvaluation() { m_ForceEvaluationMarker.Begin(); CycleStart(); AcquireHandlingStage.OnCycleStart(); BestStandaloneMatchStage.CycleStart(); CacheTraitReferencesStage.Complete(); ConditionRatingStage.Complete(); FindMatchProposalsStage.Complete(); DataAvailabilityStage.Complete(); TraitFilterStage.Complete(); MatchReductionStage.Complete(); BestStandaloneMatchStage.Complete(); ResultFillStage.Transformation.applyOffsetToPose = m_Database.ApplyOffsetToPose; ResultFillStage.Complete(); MarkUsedStage.Complete(); m_ForceEvaluationMarker.End(); // acquire handling usually takes longer than any other stage by far and we already have the answers AcquireHandlingStage.Complete(); if (onStageGroupCompletion != null) { onStageGroupCompletion(); } CurrentlyActive = false; // Return whether we had any matches this iteration return(Data.DefiniteMatchAcquireIndices.Count > 0); }